@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800;900&family=Caveat+Brush&display=swap');
:root {
  color-scheme: dark;
  --black: #06030c;
  --night: #0b0614;
  --white: #fff8fc;
  --muted: #c9b9d2;
  --violet: #b345ff;
  --pink: #f450fd;
  --lime: #a6ff54;
  --orange: #ffad37;
  --red: #ff525e;
  --blue: #43bbff;
  --display: 'Barlow Condensed', Impact, 'Arial Narrow', sans-serif;
  --brush: 'Caveat Brush', 'Brush Script MT', cursive;
  --body: 'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-width: 320px; margin: 0; color: var(--white); background: var(--black); font-family: var(--body); overflow-x: hidden; }
::selection { color: #10031a; background: var(--lime); }
a { color: inherit; text-decoration: none; }
button,a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 5px; }
h1,h2,h3,p { margin-top: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 12px 16px; color: #10031a; background: var(--lime); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

/* Header: a small crop of the poster logo keeps the exact marquee lettering. */
.site-header { position: relative; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 89px; padding: 7px clamp(20px,4vw,64px); background: rgba(3,1,10,.95); border-bottom: 1px solid rgba(195,61,255,.49); box-shadow: 0 0 22px rgba(172,27,255,.23); }
.brand { display: inline-flex; align-items: center; gap: 13px; flex: none; min-width: 0; }
.brand-art { position: relative; display: block; flex: none; width: clamp(117px,12vw,166px); aspect-ratio: 725 / 345; overflow: hidden; filter: drop-shadow(0 0 7px rgba(255,162,15,.63)); }
.brand-logo-img { position: absolute; display: block; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.brand-name { color: #ffe5a7; font: 900 clamp(17px,1.8vw,23px)/.9 var(--display); letter-spacing: .025em; text-transform: uppercase; text-shadow: 0 0 8px #ff981f,0 0 17px rgba(255,101,6,.77); white-space: nowrap; }
.brand-name strong { display: block; color: #ffc444; font-weight: 900; font-size: 1.3em; }
.site-nav { display: flex; align-items: center; gap: clamp(12px,2.4vw,38px); }
.site-nav a { color: #f9e9ff; font: 800 16px/1 var(--display); letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; transition: color .2s,text-shadow .2s; }
.site-nav a:hover,.site-nav a:focus-visible { color: #f099ff; text-shadow: 0 0 12px #bf36ed; }
.header-cta { display: inline-flex; align-items: center; gap: 14px; flex: none; padding: 12px 16px; color: #fff7ff; border: 2px solid var(--violet); border-radius: 11px; box-shadow: inset 0 0 12px rgba(179,69,255,.34),0 0 12px rgba(179,69,255,.57); font: 800 16px/1 var(--display); letter-spacing: .06em; text-transform: uppercase; transition: background .2s,box-shadow .2s; }
.header-cta:hover { background: rgba(179,69,255,.24); box-shadow: inset 0 0 16px rgba(179,69,255,.54),0 0 23px rgba(179,69,255,.8); }
.header-cta span { font-size: 19px; }

/* Poster stage. The background photograph supplies the crowd and colored lights. */
.hero { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: center; min-height: 740px; padding: clamp(36px,5vw,72px) 24px clamp(68px,8vw,112px); text-align: center; overflow: hidden; background: linear-gradient(180deg,rgba(4,0,12,.2) 0%,rgba(5,0,12,.12) 48%,#07010d 100%),url('assets/concert-backdrop.webp') center 37% / cover no-repeat,radial-gradient(ellipse at 50% 42%,#401273 0%,#120322 54%,#020109 100%); }
.hero::before { content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 30%,transparent 0 25%,rgba(2,0,8,.4) 67%,rgba(2,0,8,.86) 100%),linear-gradient(90deg,rgba(4,1,12,.65),transparent 23% 77%,rgba(4,1,12,.65)); }
.hero::after { content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none; opacity: .65; background: conic-gradient(from 185deg at 9% -17%,transparent,rgba(52,151,255,.23) 11deg,transparent 23deg),conic-gradient(from 178deg at 88% -12%,transparent,rgba(255,127,20,.21) 13deg,transparent 28deg); }
.hero-grain { position: absolute; inset: 0; pointer-events: none; opacity: .13; background-image: radial-gradient(#fff .55px,transparent .55px); background-size: 19px 19px; }
/* Visitor-controlled spotlights sit behind the logo and all interactive content. */
.stage-light-show { position: absolute; z-index: 3; inset: 0; overflow: hidden; pointer-events: none; opacity: 0; mix-blend-mode: screen; transition: opacity .65s ease; }
.hero.lights-on .stage-light-show { opacity: 1; }
.stage-light-show__beam { position: absolute; top: -7%; width: 40%; height: 112%; transform-origin: 50% 0; clip-path: polygon(46% 0,54% 0,100% 100%,0 100%); filter: blur(10px); mix-blend-mode: screen; }
.stage-light-show__beam--violet { left: -9%; background: linear-gradient(180deg,rgba(230,163,255,.72),rgba(135,32,255,.4) 36%,rgba(127,20,225,.13) 77%,transparent); transform: rotate(-17deg); }
.stage-light-show__beam--blue { left: 18%; background: linear-gradient(180deg,rgba(157,234,255,.66),rgba(30,166,255,.4) 39%,rgba(28,124,255,.11) 78%,transparent); transform: rotate(13deg); }
.stage-light-show__beam--orange { right: 18%; background: linear-gradient(180deg,rgba(255,226,158,.75),rgba(255,130,29,.46) 38%,rgba(255,94,17,.12) 78%,transparent); transform: rotate(-13deg); }
.stage-light-show__beam--pink { right: -9%; background: linear-gradient(180deg,rgba(255,177,242,.68),rgba(247,48,210,.42) 38%,rgba(199,38,207,.13) 78%,transparent); transform: rotate(17deg); }
.hero.lights-on .stage-light-show__beam--violet { animation: stage-sweep-left 7.5s ease-in-out infinite alternate; }
.hero.lights-on .stage-light-show__beam--blue { animation: stage-sweep-right 6.2s ease-in-out infinite alternate; animation-delay: -2s; }
.hero.lights-on .stage-light-show__beam--orange { animation: stage-sweep-left 6.8s ease-in-out infinite alternate; animation-delay: -3s; }
.hero.lights-on .stage-light-show__beam--pink { animation: stage-sweep-right 8s ease-in-out infinite alternate; animation-delay: -4s; }
@keyframes stage-sweep-left { from { transform: rotate(-19deg); opacity: .66; } to { transform: rotate(20deg); opacity: 1; } }
@keyframes stage-sweep-right { from { transform: rotate(19deg); opacity: .7; } to { transform: rotate(-20deg); opacity: 1; } }
.stage-light-show__floor { position: absolute; right: -10%; bottom: -12%; left: -10%; height: 43%; background: radial-gradient(ellipse at 20% 87%,rgba(156,39,255,.37),transparent 42%),radial-gradient(ellipse at 52% 100%,rgba(58,149,255,.28),transparent 51%),radial-gradient(ellipse at 85% 88%,rgba(255,115,37,.3),transparent 43%); }
.stage-light-show__spark { position: absolute; font-size: clamp(22px,3vw,43px); line-height: 1; color: #fff6d5; text-shadow: 0 0 8px #fff,0 0 22px #ffae4e,0 0 42px #fd64da; }
.stage-light-show__spark--one { top: 10%; left: 23%; }.stage-light-show__spark--two { top: 25%; right: 16%; color: #d2f5ff; }.stage-light-show__spark--three { bottom: 28%; left: 11%; color: #ffe0a1; }.stage-light-show__spark--four { bottom: 17%; right: 19%; color: #ffc0f8; }
.hero.lights-on .stage-light-show__spark { animation: stage-shimmer 4s ease-in-out infinite alternate; }
.hero.lights-on .stage-light-show__spark--two { animation-delay: -1s; }.hero.lights-on .stage-light-show__spark--three { animation-delay: -2.5s; }.hero.lights-on .stage-light-show__spark--four { animation-delay: -3.2s; }
@keyframes stage-shimmer { from { opacity: .45; transform: scale(.75) rotate(-9deg); } to { opacity: 1; transform: scale(1.2) rotate(9deg); } }
.hero.lights-on .stage-halo { border-color: rgba(235,105,255,.55); box-shadow: 0 0 52px rgba(190,37,255,.53),inset 0 0 46px rgba(77,149,255,.2); }
.hero.lights-on .hero-logo-art { filter: drop-shadow(0 0 8px rgba(255,211,101,.9)) drop-shadow(0 0 24px rgba(252,74,212,.73)); }
.hero.lights-on .hero-tagline { text-shadow: 0 0 6px #fff,0 0 23px #e584ff,0 0 44px #c02cff,0 0 76px #8600e2; }
.hero.lights-paused .stage-light-show__beam,.hero.lights-paused .stage-light-show__spark { animation-play-state: paused; }
.hero-stage { position: relative; z-index: 2; order: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; min-height: 0; overflow: visible; background: none; }
.hero-logo-frame { position: relative; display: block; width: min(940px,96vw); aspect-ratio: 725 / 345; overflow: hidden; border-radius: 4px; isolation: isolate; filter: drop-shadow(0 0 17px rgba(247,112,18,.76)) drop-shadow(0 0 28px rgba(194,24,255,.56)); animation: logo-live 4s ease-in-out infinite; }
.hero-logo-art { position: absolute; display: block; inset: 0; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: normal; filter: none; animation: none; }
@keyframes logo-live { 0%,100% { transform: translateY(4px) rotate(-.6deg) scale(1); filter: drop-shadow(0 0 12px rgba(247,112,18,.72)) drop-shadow(0 0 24px rgba(194,24,255,.5)); } 50% { transform: translateY(-15px) rotate(.7deg) scale(1.055); filter: drop-shadow(0 0 30px rgba(255,156,14,1)) drop-shadow(0 0 46px rgba(220,48,255,.91)); } }
.stage-halo { position: absolute; z-index: -1; width: min(84vw,850px); aspect-ratio: 1; border: 1px solid rgba(223,39,252,.18); border-radius: 50%; box-shadow: 0 0 75px rgba(149,0,221,.27); }.halo-two { width: min(100vw,1060px); border-color: rgba(60,147,255,.12); }
.light-beam { position: absolute; top: -110px; width: 130px; height: 540px; background: linear-gradient(180deg,rgba(117,56,255,.19),transparent); filter: blur(13px); transform-origin: top center; animation: beam-live 7s ease-in-out infinite alternate; }.beam-left { left: 9%; transform: rotate(22deg); }.beam-right { right: 10%; transform: rotate(-24deg); background: linear-gradient(180deg,rgba(255,96,22,.2),transparent); animation-delay: -3s; }
@keyframes beam-live { to { rotate: 9deg; opacity: .4; } }
.stage-flash { position: absolute; z-index: -1; color: #fff6ac; text-shadow: 0 0 9px #ff8e29,0 0 20px #ff6023; animation: twinkle 2.3s ease-in-out infinite alternate; }.flash-one { top: 15%; left: 10%; font-size: 35px; }.flash-two { bottom: 20%; right: 10%; font-size: 47px; animation-delay: -.8s; }.flash-three { top: 5%; right: 22%; font-size: 23px; color: #f984fa; animation-delay: -1.4s; }
@keyframes twinkle { 50% { opacity: .3; transform: scale(.75) rotate(20deg); } }
.stage-caption { display: none; }
.hero-content { position: relative; z-index: 4; order: 2; width: min(100%,980px); padding: 6px 0 0; align-self: center; }
.hero .eyebrow { color: var(--lime); }
.eyebrow { margin-bottom: 14px; color: var(--lime); font: 800 17px/1.25 var(--display); letter-spacing: .19em; text-transform: uppercase; text-shadow: 0 0 10px rgba(145,255,49,.42); }
.pulse-dot { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 9px var(--lime); animation: twinkle 1.8s ease-in-out infinite alternate; }
.hero h1,.hero-tagline { position: relative; display: inline-block; margin: 4px 0 24px; color: #fff9ff; font: 400 clamp(58px,8.9vw,117px)/.85 var(--brush); letter-spacing: -.035em; text-transform: none; white-space: normal; text-shadow: 0 0 3px #fff,0 0 12px #d84dff,0 0 25px #a600ee,0 0 47px #8400c4; transform: rotate(-3deg); animation: tagline-live 3.8s ease-in-out infinite; }
.hero h1::after,.hero-tagline::after { content: ''; position: absolute; width: 83%; height: 21px; bottom: -24px; left: 13%; border-top: 5px solid #e195ff; border-radius: 50%; box-shadow: 0 -5px 12px #c756ff,0 -8px 20px #8712d6; transform: rotate(-5deg); }
@keyframes tagline-live { 50% { text-shadow: 0 0 5px #fff,0 0 16px #e584ff,0 0 34px #c02cff,0 0 65px #8600e2; } }
.hero h1 em { color: inherit; font-style: normal; }.hero-final,.outlined { display: inline; color: inherit; -webkit-text-stroke: 0; text-shadow: inherit; }
.hero-lede { max-width: 590px; margin: 23px auto 0; color: #f4def8; font-size: 22px; }
.hero-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 37px; }
.stage-toggle { position: relative; z-index: 4; order: 1; display: none; align-items: center; justify-content: center; gap: 10px; min-height: 48px; margin: 12px auto 7px; padding: 9px 13px 9px 17px; border: 1px solid #7ad8ff; border-radius: 999px; color: #f4faff; background: rgba(7,18,44,.87); box-shadow: inset 0 0 14px rgba(43,170,255,.24),0 0 16px rgba(54,184,255,.42); font: 800 16px/1 var(--display); letter-spacing: .11em; text-transform: uppercase; cursor: pointer; transition: transform .2s,box-shadow .25s,background .25s,border-color .25s; }
.js .stage-toggle { display: inline-flex; }
.stage-toggle:hover { transform: translateY(-2px); box-shadow: inset 0 0 20px rgba(43,170,255,.38),0 0 25px rgba(54,184,255,.75); }
.stage-toggle__icon { color: #95e6ff; font-size: 22px; text-shadow: 0 0 11px #4dbaff; }
.stage-toggle__status { min-width: 34px; padding: 5px 6px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; color: #bed3e2; font: 800 12px/1 var(--display); letter-spacing: .06em; }
.stage-toggle[aria-pressed="true"] { border-color: #ffc05c; background: rgba(61,18,31,.93); box-shadow: inset 0 0 17px rgba(255,112,73,.28),0 0 23px rgba(255,138,45,.76),0 0 40px rgba(198,48,249,.43); }
.stage-toggle[aria-pressed="true"] .stage-toggle__icon { color: #ffe6a4; text-shadow: 0 0 13px #ff9b3e; }
.stage-toggle[aria-pressed="true"] .stage-toggle__status { border-color: #baff7b; color: #0a1804; background: #a6ff54; box-shadow: 0 0 13px rgba(166,255,84,.7); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 50px; padding: 11px 23px; border: 2px solid currentColor; border-radius: 9px; font: 800 19px/1 var(--display); letter-spacing: .04em; text-transform: uppercase; transition: transform .2s,background .2s,box-shadow .2s; }
.button:hover { transform: translateY(-3px); }.button span { font-size: 21px; }
.button-gold { color: #120513; border-color: #ffc554; background: linear-gradient(#ffdb76,#ff9e27); box-shadow: 0 0 17px rgba(255,131,19,.6),inset 0 0 10px rgba(255,255,181,.5); }.button-gold:hover { box-shadow: 0 0 29px rgba(255,146,13,.95),inset 0 0 11px rgba(255,255,181,.6); }
.button-outline { color: #f8ebff; border-color: #d169ff; background: rgba(32,3,44,.6); box-shadow: 0 0 17px rgba(193,49,255,.45),inset 0 0 12px rgba(193,49,255,.24); }.button-outline:hover { background: rgba(115,16,155,.45); box-shadow: 0 0 26px rgba(193,49,255,.77); }
.hero-location { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 32px; color: #fffaff; font: 800 clamp(20px,2.3vw,30px)/1.1 var(--display); letter-spacing: .06em; text-transform: uppercase; text-shadow: 0 0 10px rgba(215,113,255,.8); }.location-star { color: var(--pink); font-size: 1.15em; text-shadow: 0 0 13px var(--pink); }
.ticker { display: none; }

.section-pad { padding: clamp(72px,7vw,104px) clamp(22px,6vw,94px); }
.next-show-card.section-pad { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 20px clamp(25px,4vw,58px); align-items: center; max-width: 1250px; margin: -30px auto 75px; padding: clamp(25px,3vw,44px); border: 2px solid #d164ff; border-radius: 22px; background: radial-gradient(circle at 82% 0,rgba(150,33,204,.29),transparent 42%),linear-gradient(130deg,rgba(21,5,34,.98),rgba(5,2,13,.98)); box-shadow: 0 0 4px #fff,0 0 27px rgba(181,49,255,.55),inset 0 0 27px rgba(188,54,255,.16); }
.next-show-card [hidden] { display: none !important; }
.next-show-card__intro .eyebrow { color: var(--lime); }
.next-show-card__intro h2 { margin: 0 0 24px; color: #fff; font: 400 clamp(58px,6vw,86px)/.83 var(--brush); letter-spacing: -.025em; text-shadow: 0 0 5px #fff,0 0 15px #d049ff,0 0 35px #9411dc; transform: rotate(-2deg); }
.next-show-card__intro h2 em { color: #ffbc50; font-style: normal; text-shadow: 0 0 11px #ff9219,0 0 26px rgba(255,101,6,.78); }
.next-show-card__details { padding: clamp(22px,3vw,36px); border: 2px solid var(--orange); border-radius: 17px; background: rgba(11,3,24,.83); box-shadow: inset 0 0 16px rgba(255,149,31,.17),0 0 19px rgba(255,151,29,.39); }
.next-show-card__label { margin: 0 0 9px; color: var(--lime); font: 900 16px/1 var(--display); letter-spacing: .14em; }
.next-show-card__venue { margin: 0 0 17px; color: #fff; font: 900 clamp(39px,4.8vw,66px)/.88 var(--display); text-transform: uppercase; text-shadow: 0 0 17px rgba(255,136,25,.65); }
.next-show-card__when { display: flex; flex-wrap: wrap; align-items: center; gap: 11px 20px; margin: 0 0 20px; color: #fff; font: 800 clamp(22px,2.4vw,29px)/1.07 var(--display); }
.next-show-card__when span { display: inline-block; padding: 8px 12px; border: 1px solid var(--lime); border-radius: 7px; color: var(--lime); font-size: .8em; white-space: nowrap; box-shadow: 0 0 13px rgba(166,255,84,.27); }
.next-show-card__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.next-show-card__actions a,.next-show-card__calendar { display: inline-flex; align-items: center; gap: 8px; min-height: 43px; padding: 9px 15px; border: 1px solid #cb84ee; border-radius: 8px; color: #fff; background: rgba(106,24,139,.28); font: 800 18px/1 var(--display); text-transform: uppercase; letter-spacing: .04em; transition: transform .2s,box-shadow .2s; }
.next-show-card__actions a:hover,.next-show-card__calendar:hover { transform: translateY(-2px); box-shadow: 0 0 14px rgba(206,87,255,.7); }
.next-show-card__qr { display: flex; align-items: center; gap: 13px; margin-top: 23px; padding: 10px; border: 1px solid var(--blue); border-radius: 10px; color: #d8f4ff; background: rgba(30,106,150,.15); font: 800 19px/1.1 var(--display); box-shadow: 0 0 15px rgba(67,187,255,.28); }
.next-show-card__qr img { flex: none; width: 145px; height: 132px; object-fit: contain; border-radius: 5px; background: #fff; }
.next-show-card__fallback { color: #e9d7f0; font: 700 26px/1.15 var(--display); }
.next-show-card__calendar { grid-column: 1 / -1; width: max-content; color: #d4f1ff; border-color: var(--blue); background: rgba(16,82,124,.19); }
@media (max-width: 760px) { .next-show-card.section-pad { grid-template-columns: 1fr; margin: -24px 17px 58px; padding: 25px 21px; }.next-show-card__intro h2 { font-size: clamp(60px,10vw,78px); }}
@media (max-width: 580px) { .next-show-card.section-pad { margin-inline: 12px; padding: 21px 17px; border-radius: 17px; }.next-show-card__intro h2 { font-size: clamp(54px,13vw,72px); }.next-show-card__venue { font-size: clamp(37px,10vw,54px); }.next-show-card__when { font-size: 22px; }.next-show-card__actions a { font-size: 16px; }.next-show-card__qr { flex-direction: column; align-items: start; }.next-show-card__qr img { width: min(100%,220px); height: auto; }.next-show-card__calendar { width: 100%; justify-content: center; } }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin: 0 auto 42px; max-width: 1290px; }
.section-heading h2,.contact h2 { margin: 0; color: #fff; font: 400 clamp(61px,8.5vw,110px)/.85 var(--brush); letter-spacing: -.03em; text-transform: none; text-shadow: 0 0 4px #fff,0 0 12px #d049ff,0 0 29px #9411dc; transform: rotate(-2deg); }
.section-heading h2 em,.contact h2 em { color: inherit; font-style: normal; }
.heading-note { max-width: 280px; margin: 0 0 4px; color: #eee0f3; font: 500 22px/1.15 var(--display); }

/* Feature icons stand on the black stage, divided by slender purple light bars. */
.experience { position: relative; isolation: isolate; padding-bottom: clamp(25px,3vw,45px); background: radial-gradient(ellipse at 50% -10%,rgba(111,18,165,.3),transparent 58%),#07030d; }
.experience::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg,rgba(62,7,91,.12),transparent 32% 70%,rgba(81,8,112,.17)); }
.experience-bg { display: none; }
.experience .section-heading { text-align: center; display: block; }.experience .heading-note { max-width: none; margin: 19px auto 0; }
.feature-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); max-width: 1280px; margin: 0 auto; }
.feature-card { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-height: 235px; padding: 4px clamp(12px,2.3vw,34px) 0; text-align: center; background: none; border: 0; transition: transform .25s; }.feature-card:hover { transform: translateY(-5px); }
.feature-card + .feature-card::before { content: ''; position: absolute; left: 0; top: 9%; bottom: 4%; width: 2px; background: #d152ff; box-shadow: 0 0 7px #e67bff,0 0 18px #aa2dff; }
.feature-no { display: none; }
.feature-symbol { display: flex; align-items: center; justify-content: center; width: 95px; height: 102px; margin: 0 auto 14px; color: var(--lime); font: 84px/1 var(--display); text-shadow: 0 0 9px currentColor,0 0 21px currentColor; filter: drop-shadow(0 0 8px currentColor); }
.feature-symbol svg { width: 87px; height: 87px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.feature-card:nth-child(2) .feature-symbol { color: var(--orange); }.feature-card:nth-child(3) .feature-symbol { color: #b77aff; }.feature-card:nth-child(4) .feature-symbol { color: var(--lime); }
.feature-card h3 { margin: 0; color: #fff; font: 800 clamp(23px,2.25vw,33px)/.99 var(--display); letter-spacing: .015em; text-transform: uppercase; text-shadow: 0 0 4px rgba(255,255,255,.35); }
.feature-card p { margin: 10px 0 0; color: #eadfec; font: 500 18px/1.12 var(--display); }
.experience-cta { display: flex; width: max-content; margin: 42px auto 0; }
.mobile-song-shortcut { display: none; }

/* One framed weekly lineup reproduces the flyer board. */
.shows { position: relative; isolation: isolate; padding-top: clamp(45px,5vw,70px); background: radial-gradient(ellipse at 50% 5%,rgba(87,8,138,.24),transparent 54%),#050209; }
.shows::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: .14; pointer-events: none; background: url('assets/concert-backdrop.webp') center / cover no-repeat; }
.shows .section-heading { display: block; margin-bottom: 36px; text-align: center; }.shows .section-heading h2 { font-size: clamp(72px,11vw,132px); }.shows .heading-note { max-width: 650px; margin: 23px auto 0; }
.show-list { max-width: 1250px; margin: 0 auto; padding: clamp(14px,2.7vw,35px) clamp(18px,3.5vw,44px); border: 3px solid #e294ff; border-radius: 25px; background: rgba(4,1,11,.84); box-shadow: 0 0 3px #fff,inset 0 0 18px rgba(200,52,255,.35),0 0 15px #b62dff,0 0 43px rgba(180,39,255,.44); }
.show-link { display: block; min-width: 0; border-radius: 5px; }.show-link + .show-link { border-top: 1px solid rgba(195,58,245,.31); }
.show-row { display: grid; grid-template-columns: clamp(115px,13vw,165px) minmax(0,1fr) 115px; align-items: center; gap: clamp(10px,2vw,26px); min-height: 102px; padding: 11px 5px; background: transparent; border: 0; border-radius: 0; box-shadow: none; transition: transform .2s,background .2s; }.show-link:hover .show-row,.show-link:focus-visible .show-row { transform: translateX(5px); background: rgba(189,48,252,.1); }
.show-day { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 51px; padding-left: 45px; color: var(--lime); }.show-day small { margin: 0; color: currentColor; font: 700 12px/1 var(--display); letter-spacing: .13em; }.show-day strong { color: currentColor; font: 900 clamp(27px,3vw,40px)/.95 var(--display); text-shadow: 0 0 10px currentColor; }
.venue-icon { position: absolute; left: 0; top: 50%; width: 34px; height: 34px; transform: translateY(-50%); color: currentColor; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 6px currentColor); }
.show-link:nth-child(1) .show-day { color: var(--pink); }.show-link:nth-child(2) .show-day { color: var(--orange); }.show-link:nth-child(3) .show-day { color: var(--red); }
.show-index { color: #e992ff; font: 700 13px/1.15 var(--display); letter-spacing: .13em; }.show-place h3 { margin: 5px 0 2px; font: 800 clamp(24px,2.8vw,38px)/.97 var(--display); letter-spacing: .01em; text-transform: none; }.show-place p { margin: 0; color: #e5d7ea; font: 500 18px/1.1 var(--display); }.show-fb { display: inline-flex; gap: 8px; margin-top: 6px; color: #efbaff; font: 700 16px/1 var(--display); text-decoration: underline; text-underline-offset: 3px; }.show-fb span { text-decoration: none; }.show-link:hover .show-fb { color: #fff; }
.show-time { display: flex; flex-direction: column; justify-content: center; white-space: nowrap; }.show-time span { color: #d8c2df; font: 700 12px/1 var(--display); letter-spacing: .1em; }.show-time strong { color: var(--white); font: 900 clamp(28px,3vw,40px)/1 var(--display); text-shadow: 0 0 8px rgba(255,255,255,.42); }.show-spark { display: none; }
.schedule-note { max-width: 1250px; margin: 20px auto 0; color: #d9c5e2; font: 500 17px/1.2 var(--display); }

/* The calendar remains a readable white document inside a violet sign. */
.calendar-panel { max-width: 1250px; margin: clamp(70px,8vw,115px) auto 0; padding: clamp(19px,3vw,37px); border: 2px solid #c65aff; border-radius: 20px; background: rgba(9,3,19,.9); box-shadow: 0 0 17px rgba(185,42,255,.52),inset 0 0 15px rgba(185,42,255,.23); }
.calendar-heading { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 18px 30px; margin: 0 0 20px; }.calendar-heading .eyebrow { margin-bottom: 5px; }.calendar-heading h3 { margin: 0 0 5px; font: 900 clamp(33px,4.6vw,57px)/.96 var(--display); text-transform: uppercase; text-shadow: 0 0 10px rgba(209,82,255,.7); }.calendar-heading p:not(.eyebrow) { margin: 0; color: #ead8ef; font: 500 18px/1.2 var(--display); }
.calendar-link { display: inline-flex; gap: 10px; align-items: center; margin-bottom: 4px; color: #bdefff; font: 800 17px/1 var(--display); letter-spacing: .04em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; }.calendar-link:hover { color: #fff; text-shadow: 0 0 12px var(--blue); }
.calendar-frame { width: 100%; height: 590px; overflow: hidden; border: 2px solid rgba(238,196,255,.81); border-radius: 8px; background: #fff; }.calendar-frame iframe,.calendar-panel iframe { display: block; width: 100%; max-width: 100%; height: 590px; border: 0; background: #fff; }

/* QR crop shows the original printed flyer art around its working code. */
.queue-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(240px,340px); align-items: center; gap: clamp(22px,5vw,76px); max-width: 1190px; margin: clamp(72px,8vw,120px) auto 0; padding: clamp(22px,4vw,52px); border: 2px solid #d37cff; border-radius: 20px; background: rgba(7,1,14,.84); box-shadow: 0 0 17px rgba(185,42,255,.49),inset 0 0 20px rgba(185,42,255,.18); }
.queue-copy h3 { margin: 4px 0 16px; color: #fff; font: 400 clamp(54px,6vw,83px)/.88 var(--brush); text-shadow: 0 0 6px #fff,0 0 21px var(--violet),0 0 32px var(--violet); }.queue-copy h3 em { color: var(--white); font-style: normal; }.queue-copy p:not(.eyebrow) { color: #f3e9f4; font: 600 clamp(19px,2.25vw,27px)/1.15 var(--display); }
.queue-actions { display: grid; gap: 13px; margin-top: 24px; }.queue-action { display: grid; grid-template-columns: 47px minmax(0,1fr) 24px; align-items: center; gap: 12px; min-height: 75px; padding: 9px 14px; border: 2px solid currentColor; border-radius: 12px; background: rgba(67,187,255,.10); box-shadow: inset 0 0 15px rgba(67,187,255,.12),0 0 14px rgba(67,187,255,.18); transition: transform .18s ease,box-shadow .18s ease,background .18s ease; }.queue-action:hover { transform: translateY(-3px); background: rgba(67,187,255,.18); box-shadow: 0 0 23px rgba(67,187,255,.48); }.queue-action-live { color: var(--blue); }.queue-action-suggest { color: var(--orange); background: rgba(255,173,55,.09); box-shadow: inset 0 0 15px rgba(255,173,55,.11),0 0 14px rgba(255,173,55,.17); }.queue-action-suggest:hover { background: rgba(255,173,55,.17); box-shadow: 0 0 23px rgba(255,173,55,.45); }.queue-action-icon { display: grid; place-items: center; width: 45px; height: 45px; border: 1px solid currentColor; border-radius: 50%; font: 800 30px/1 var(--display); text-shadow: 0 0 10px currentColor; }.queue-action strong { display: block; font: 800 clamp(21px,2.4vw,29px)/.96 var(--display); letter-spacing: .02em; }.queue-action small { display: block; margin-top: 4px; color: #f4e8f7; font: 600 clamp(14px,1.5vw,17px)/1.1 var(--display); }.queue-action-arrow { align-self: start; font: 700 24px/1 var(--display); }.queue-catalog { display: inline-block; margin-top: 15px; color: var(--lime); font: 700 19px/1.1 var(--display); text-decoration: underline; text-underline-offset: 4px; }.queue-catalog:hover { color: #fff; }
.queue-qr { position: relative; display: block; width: 100%; max-width: 340px; aspect-ratio: 582 / 526; overflow: hidden; justify-self: end; border: 8px solid #fff; border-radius: 9px; background: #fff; box-shadow: 0 0 19px rgba(220,108,255,.69); }.queue-qr img { display: block; width: 100%; height: 100%; object-fit: contain; }.queue-qr .queue-flyer-img { position: static; width: 100%; max-width: 100%; height: 100%; object-fit: contain; }

.catalog-panel { max-width: 1190px; margin: 24px auto 0; padding: clamp(22px,3.5vw,40px); border: 2px solid rgba(255,173,55,.8); border-radius: 18px; background: linear-gradient(125deg,rgba(35,12,44,.96),rgba(7,2,15,.97)); box-shadow: inset 0 0 20px rgba(255,173,55,.11),0 0 17px rgba(255,173,55,.2); }
.catalog-panel .eyebrow { margin-bottom: 7px; color: var(--orange); }
.catalog-panel h3 { margin: 0 0 11px; color: #fff; font: 900 clamp(38px,5vw,64px)/.9 var(--display); text-transform: uppercase; text-shadow: 0 0 13px rgba(255,173,55,.5); }
.catalog-panel h3 em { color: var(--orange); font-style: normal; }
.catalog-panel > p:not(.eyebrow) { max-width: 800px; margin-bottom: 20px; color: #f4e8f7; font: 600 clamp(18px,2vw,23px)/1.2 var(--display); }
.catalog-panel .queue-action-suggest,.catalog-panel .song-suggestion { max-width: 750px; }
.queue-action-suggest { width: 100%; font-family: inherit; text-align: left; cursor: pointer; }
.queue-action-suggest[aria-expanded="true"] { background: rgba(255,173,55,.18); box-shadow: 0 0 21px rgba(255,173,55,.42); }
.song-suggestion[hidden] { display: none; }
.song-suggestion { margin-top: 14px; padding: clamp(18px,2.5vw,26px); border: 1px solid rgba(255,173,55,.7); border-radius: 13px; background: linear-gradient(135deg,rgba(45,17,53,.97),rgba(12,5,24,.98)); box-shadow: inset 0 0 24px rgba(179,69,255,.14),0 0 19px rgba(255,173,55,.15); }
.song-suggestion h4 { margin: 0 0 5px; color: var(--orange); font: 900 clamp(27px,3vw,35px)/1 var(--display); text-transform: uppercase; }
.song-suggestion p:not(.eyebrow) { margin: 0 0 16px; color: #ead9eb; font: 600 17px/1.25 var(--display); }
.song-suggestion form { display: grid; gap: 8px; }
.song-suggestion label { color: #fff; font: 800 19px/1 var(--display); text-transform: uppercase; letter-spacing: .04em; }
.song-suggestion label span { color: #d9c1e1; font-weight: 600; text-transform: none; letter-spacing: 0; }
.song-suggestion input { width: 100%; min-height: 48px; margin: 0 0 9px; padding: 11px 13px; border: 2px solid rgba(229,171,255,.55); border-radius: 8px; outline: none; color: #fff; background: #130b20; font: 600 21px/1 var(--display); }
.song-suggestion input::placeholder { color: #b6a8c1; opacity: 1; }
.song-suggestion input:focus { border-color: var(--lime); box-shadow: 0 0 0 2px rgba(166,255,84,.24); }
.song-suggestion .song-suggestion-honeypot { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.song-suggestion-submit { justify-self: start; min-height: 47px; margin-top: 4px; padding: 11px 21px; border: 2px solid var(--orange); border-radius: 8px; color: #17091c; background: var(--orange); box-shadow: 0 0 13px rgba(255,173,55,.45); font: 900 20px/1 var(--display); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.song-suggestion-submit:hover { background: #ffca79; box-shadow: 0 0 22px rgba(255,173,55,.72); }
.song-suggestion-submit span { margin-left: 8px; }

/* Large glowing circles reproduce the phone, email, and web contact strip. */
.contact { position: relative; isolation: isolate; overflow: hidden; text-align: center; background: linear-gradient(180deg,#06020d 0%,rgba(13,1,28,.92) 72%,rgba(25,2,49,.76)),url('assets/concert-backdrop.webp') center bottom / cover no-repeat,#080211; }
.contact::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 50% 45%,rgba(150,16,211,.25),transparent 65%); }
.contact-orb { display: none; }.contact-inner { max-width: 1100px; margin: 0 auto; }.contact h2 { font-size: clamp(72px,10vw,136px); }.contact-inner > p:not(.eyebrow) { max-width: 720px; margin: 29px auto 0; color: #fff; font: 600 clamp(21px,2.4vw,30px)/1.15 var(--display); }
.contact-actions { display: flex; align-items: start; justify-content: center; flex-wrap: wrap; gap: clamp(22px,5vw,78px); margin: 43px auto 16px; }.contact-actions .button { display: flex; flex-direction: column; gap: 15px; min-width: 190px; min-height: 0; padding: 0; color: #fff; border: 0; border-radius: 0; background: none; box-shadow: none; font: 800 clamp(23px,2.7vw,34px)/1 var(--display); letter-spacing: 0; text-transform: none; white-space: nowrap; }.contact-actions .button:hover { color: #fff; box-shadow: none; }.contact-actions .button > span:not(.contact-icon) { display: none; }
.contact-icon { display: flex; align-items: center; justify-content: center; width: clamp(68px,7vw,92px); height: clamp(68px,7vw,92px); margin: 0 auto; border: 3px solid currentColor; border-radius: 50%; color: var(--lime); box-shadow: 0 0 8px currentColor,0 0 19px currentColor,inset 0 0 7px currentColor; }.contact-icon svg { width: 52%; height: 52%; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }.contact-actions .button:nth-child(2) .contact-icon { color: var(--violet); }.contact-actions .button:nth-child(3) .contact-icon { color: var(--blue); }
.contact-email { display: inline-block; margin-top: 13px; color: #efcaff; font: 800 22px/1 var(--display); text-decoration: underline; text-underline-offset: 4px; }
.site-footer { position: relative; isolation: isolate; padding: 80px clamp(22px,6vw,94px) 27px; background: linear-gradient(180deg,#100321,rgba(6,0,11,.77) 40%,rgba(6,0,11,.91)),url('assets/concert-backdrop.webp') center bottom / cover no-repeat,#06010e; border-top: 1px solid rgba(213,66,255,.5); }
.footer-main { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.9fr); gap: 55px; max-width: 1300px; margin: 0 auto; padding-bottom: 78px; }.footer-logo { display: block; color: #ffcf58; font: 900 clamp(62px,9vw,125px)/.82 var(--display); text-transform: uppercase; text-shadow: 0 0 10px #ff9419,0 0 26px rgba(255,85,0,.79); }.footer-logo em { color: inherit; font-style: normal; }.footer-brand p { margin-top: 21px; color: #fff; font: 700 22px/1.1 var(--display); }.footer-socials h2 { margin: 2px 0 18px; color: #fff; font: 900 25px/1 var(--display); letter-spacing: .07em; text-transform: uppercase; text-shadow: 0 0 10px rgba(234,108,255,.62); }.footer-socials a { display: grid; grid-template-columns: 116px minmax(0,1fr) 20px; gap: 10px; align-items: center; padding: 11px 2px; border-bottom: 1px solid rgba(224,92,255,.46); font: 700 18px/1 var(--display); transition: color .2s,padding .2s; }.footer-socials a:hover { color: var(--lime); padding-left: 7px; }.footer-socials a strong { overflow-wrap: anywhere; font-weight: 800; }.footer-socials a span:last-child { text-align: right; }.footer-bottom { display: flex; justify-content: space-between; gap: 20px; max-width: 1300px; margin: 0 auto; padding-top: 23px; border-top: 1px solid rgba(224,92,255,.46); color: #e0cbe9; font: 700 16px/1 var(--display); letter-spacing: .06em; text-transform: uppercase; }.footer-bottom a:hover { color: var(--lime); }
.js .reveal { opacity: 0; transform: translateY(20px); transition: opacity .6s ease,transform .6s ease; }.js .reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1100px) {
  .brand-name { display: none; }.header-cta { display: none; }.site-nav { gap: clamp(15px,3vw,35px); }.feature-card h3 { font-size: clamp(22px,2.8vw,30px); }.show-row { grid-template-columns: 130px minmax(0,1fr) 98px; }.show-time strong { font-size: 31px; }
}
@media (max-width: 760px) {
  .site-header { min-height: 75px; padding-inline: 18px; }.brand-art { width: 128px; }.site-nav a { font-size: 15px; }.hero { min-height: 0; padding: 42px 16px 75px; }.hero-logo-frame { width: min(100%,720px); }.hero-content { padding-top: 21px; }.hero h1,.hero-tagline { font-size: clamp(57px,10.4vw,82px); }.hero-location { font-size: clamp(19px,3.2vw,26px); }.feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 0; }.feature-card { min-height: 220px; }.feature-card:nth-child(3)::before { display: none; }.show-row { grid-template-columns: 122px minmax(0,1fr) 90px; gap: 9px; }.show-place h3 { font-size: 26px; }.show-time strong { font-size: 28px; }.queue-panel { grid-template-columns: minmax(0,1fr) 240px; gap: 22px; }.footer-main { grid-template-columns: 1fr; gap: 50px; }
  body { padding-bottom: 63px; }.mobile-song-shortcut { position: fixed; z-index: 40; right: 15px; bottom: calc(13px + env(safe-area-inset-bottom,0px)); display: inline-flex; align-items: center; gap: 9px; min-height: 48px; padding: 8px 13px; border: 2px solid var(--blue); border-radius: 999px; color: #fff; background: #120826; box-shadow: 0 0 12px rgba(67,187,255,.72),inset 0 0 12px rgba(67,187,255,.22); font: 800 19px/1 var(--display); letter-spacing: .03em; }.mobile-song-shortcut span:first-child { color: var(--blue); font-size: 24px; }.mobile-song-shortcut span:last-child { color: var(--blue); font-size: 20px; }.mobile-song-shortcut:hover { background: #26325a; box-shadow: 0 0 22px rgba(67,187,255,.95); }
}
@media (max-width: 580px) {
  .site-header { display: block; padding: 11px 16px 0; }.brand-art { width: 134px; }.site-nav { justify-content: space-between; gap: 7px; margin-top: 8px; padding: 12px 0; border-top: 1px solid rgba(218,79,255,.38); }.site-nav a { font-size: 14px; }
  .hero { padding: 45px 15px 72px; background-position: center,center 25%,center; }.hero-logo-frame { width: 100%; }.hero h1,.hero-tagline { font-size: clamp(47px,10.5vw,69px); line-height: .93; }.hero h1::after,.hero-tagline::after { bottom: -16px; height: 14px; border-top-width: 3px; }.hero-actions { margin-top: 35px; }.button { min-height: 44px; padding: 9px 13px; font-size: 17px; }.stage-toggle { max-width: 100%; padding-inline: 12px; font-size: 14px; letter-spacing: .075em; }.stage-light-show__beam { width: 58%; filter: blur(8px); }.stage-light-show__beam--violet { left: -28%; }.stage-light-show__beam--blue { left: 4%; }.stage-light-show__beam--orange { right: 4%; }.stage-light-show__beam--pink { right: -28%; }.stage-light-show__spark--three,.stage-light-show__spark--four { display: none; }.hero-location { align-items: start; margin-top: 31px; font-size: 21px; }.stage-flash { display: none; }
  .section-pad { padding: 67px 19px; }.experience.section-pad { padding-bottom: 28px; }.shows.section-pad { padding-top: 43px; }.section-heading { display: block; margin-bottom: 28px; }.section-heading h2 { font-size: clamp(62px,14vw,89px); }.heading-note { max-width: 100%; margin-top: 14px; font-size: 19px; }.experience .section-heading { margin-bottom: 39px; }.feature-grid { gap: 23px 0; }.feature-card { min-height: 202px; padding: 0 8px; }.feature-card + .feature-card::before { bottom: 6%; }.feature-symbol { width: 68px; height: 72px; margin-bottom: 12px; font-size: 58px; }.feature-symbol svg { width: 67px; height: 67px; }.feature-card h3 { font-size: clamp(19px,5vw,25px); }.feature-card p { font-size: 15px; }.experience-cta { margin-top: 32px; }
  .show-list { padding: 12px 14px; border-width: 2px; border-radius: 18px; }.show-row { grid-template-columns: 98px minmax(0,1fr); gap: 6px 11px; min-height: 114px; padding: 13px 0; }.show-day { align-self: start; min-height: 35px; padding-left: 27px; }.venue-icon { width: 23px; height: 23px; }.show-day small { font-size: 10px; }.show-day strong { font-size: 26px; }.show-index { font-size: 11px; }.show-place h3 { font-size: clamp(21px,5.5vw,28px); }.show-place p { font-size: 15px; }.show-fb { font-size: 14px; }.show-time { grid-column: 2; flex-direction: row; align-items: baseline; gap: 8px; }.show-time strong { font-size: 24px; }.show-time span { font-size: 11px; }.schedule-note { font-size: 15px; }
  .calendar-panel { margin-top: 68px; padding: 17px; border-radius: 15px; }.calendar-heading h3 { font-size: 35px; }.calendar-frame,.calendar-frame iframe,.calendar-panel iframe { height: 440px; }.queue-panel { display: flex; flex-direction: column; align-items: flex-start; gap: 26px; margin-top: 65px; padding: 20px; border-radius: 15px; }.queue-copy { width: 100%; }.queue-copy h3 { font-size: 59px; }.queue-action { grid-template-columns: 39px minmax(0,1fr) 18px; gap: 9px; min-height: 69px; padding: 8px; }.queue-action-icon { width: 38px; height: 38px; font-size: 25px; }.queue-action strong { font-size: clamp(20px,6vw,27px); }.queue-action small { font-size: 14px; }.queue-qr { width: min(100%,310px); align-self: center; }
  .contact h2 { font-size: clamp(63px,13vw,85px); }.contact-actions { gap: 20px 12px; }.contact-actions .button { min-width: min(42%,170px); font-size: clamp(18px,5vw,25px); white-space: normal; }.contact-icon { width: 67px; height: 67px; }.contact-email { font-size: 19px; }.site-footer { padding: 69px 20px 24px; }.footer-main { gap: 39px; padding-bottom: 55px; }.footer-logo { font-size: 84px; }.footer-socials a { grid-template-columns: 102px minmax(0,1fr) 15px; gap: 6px; font-size: 16px; }.footer-bottom { flex-wrap: wrap; font-size: 13px; }
}
@media (max-width: 365px) { .site-nav a { font-size: 12px; }.hero h1,.hero-tagline { font-size: 45px; }.hero-actions { flex-direction: column; align-items: stretch; }.feature-card h3 { font-size: 18px; }.show-row { grid-template-columns: 82px minmax(0,1fr); }.show-day { padding-left: 0; }.venue-icon { display: none; }.show-place h3 { font-size: 20px; } }
/* Phone animation keeps motion on composited layers instead of repainting glow. */
@keyframes logo-mobile { 0%,100% { transform: translate3d(0,3px,0) rotate(-.4deg) scale(1); } 50% { transform: translate3d(0,-9px,0) rotate(.5deg) scale(1.035); } }
@keyframes tagline-mobile { 0%,100% { opacity: .87; } 50% { opacity: 1; } }
.hero.animation-idle .hero-logo-frame,.hero.animation-idle .hero-tagline,.hero.animation-idle h1,.hero.animation-idle .light-beam,.hero.animation-idle .stage-flash,.hero.animation-idle .stage-light-show__beam,.hero.animation-idle .stage-light-show__spark { animation-play-state: paused; }
@media (max-width: 760px) {
  .hero-logo-frame { animation: logo-mobile 4.8s ease-in-out infinite; filter: none; box-shadow: 0 0 18px rgba(255,146,26,.48),0 0 25px rgba(192,42,246,.4); will-change: transform; }
  .hero h1,.hero-tagline { animation: tagline-mobile 4.5s ease-in-out infinite; text-shadow: 0 0 3px #fff,0 0 13px #d84dff,0 0 28px #a600ee; will-change: opacity; }
  .hero.lights-on .hero-logo-art { filter: none; }
  .hero.lights-on .hero-tagline { text-shadow: 0 0 3px #fff,0 0 15px #e584ff,0 0 30px #a600ee; }
  .stage-light-show,.stage-light-show__beam { mix-blend-mode: normal; }
  .stage-light-show__beam { filter: none; }
  .stage-light-show__beam--violet,.stage-light-show__beam--pink { display: none; }
  .light-beam { filter: none; opacity: .5; }
  .hero.animation-idle .hero-logo-frame,.hero.animation-idle h1,.hero.animation-idle .hero-tagline { will-change: auto; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }.js .reveal { opacity: 1; transform: none; }.hero.lights-on .stage-light-show__beam,.hero.lights-on .stage-light-show__spark { animation: none !important; }.stage-light-show__beam--violet,.stage-light-show__beam--blue,.stage-light-show__beam--orange,.stage-light-show__beam--pink { transform: rotate(0deg); } }

/* A small venue guide lives between the weekly lineup and the full calendar. */
.venue-explorer { max-width: 1250px; margin: clamp(76px,9vw,132px) auto 0; scroll-margin-top: 24px; }
.venue-panel { scroll-margin-top: 20px; }
.venue-heading { max-width: 780px; margin: 0 auto 31px; text-align: center; }
.venue-heading h3 { margin: 0 0 13px; color: #fff; font: 900 clamp(63px,9vw,112px)/.85 var(--display); letter-spacing: -.015em; text-shadow: 0 0 15px rgba(224,99,255,.48); }
.venue-heading h3 em { color: #ffb742; font-style: normal; text-shadow: 0 0 10px rgba(255,145,23,.9),0 0 28px rgba(255,94,0,.6); }
.venue-heading > p:last-child { margin: 0 auto; color: #e9d6ed; font: 600 clamp(19px,2.2vw,25px)/1.12 var(--display); }
.venue-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin-bottom: 14px; }
.venue-tab { position: relative; min-width: 0; min-height: 145px; padding: 19px 22px 17px; overflow: hidden; border: 2px solid rgba(208,128,246,.48); border-radius: 16px 16px 7px 7px; color: #fff; background: linear-gradient(140deg,rgba(55,12,70,.94),rgba(7,2,16,.95) 65%); text-align: left; cursor: pointer; box-shadow: inset 0 0 12px rgba(169,47,219,.18); transition: transform .2s,border-color .2s,box-shadow .2s; }
.venue-tab:nth-child(1) { --tab-accent: #f450fd; }.venue-tab:nth-child(2) { --tab-accent: #ffad37; }.venue-tab:nth-child(3) { --tab-accent: #ff6566; }
.venue-tab::after { content: ''; position: absolute; right: -42px; top: -50px; width: 155px; height: 155px; border: 1px solid var(--tab-accent); border-radius: 50%; opacity: .25; box-shadow: 0 0 32px var(--tab-accent),inset 0 0 27px var(--tab-accent); pointer-events: none; }
.venue-tab:hover { transform: translateY(-3px); border-color: var(--tab-accent); }.venue-tab[aria-selected="true"] { border-color: var(--tab-accent); background: linear-gradient(140deg,color-mix(in srgb,var(--tab-accent) 25%,#16071d),#090413 75%); box-shadow: inset 0 0 15px color-mix(in srgb,var(--tab-accent) 35%,transparent),0 0 16px color-mix(in srgb,var(--tab-accent) 65%,transparent); }
.venue-tab-day { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; color: var(--tab-accent); font: 900 16px/1 var(--display); letter-spacing: .08em; }.venue-tab-day strong { color: #fff; font-size: 26px; letter-spacing: 0; text-shadow: 0 0 10px var(--tab-accent); }
.venue-tab-name { display: block; margin: 13px 0 7px; font: 900 clamp(24px,2.6vw,34px)/.9 var(--display); text-transform: uppercase; }.venue-tab-city { display: flex; justify-content: space-between; gap: 10px; color: #e0c8e8; font: 600 17px/1 var(--display); }.venue-tab-city span { color: var(--tab-accent); }
.venue-panel { --accent: var(--pink); position: relative; padding: clamp(20px,3.5vw,44px); border: 2px solid var(--accent); border-radius: 9px 9px 24px 24px; background: radial-gradient(ellipse at 18% 0%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 50%),linear-gradient(140deg,rgba(26,7,42,.96),rgba(4,2,12,.97)); box-shadow: inset 0 0 28px color-mix(in srgb,var(--accent) 14%,transparent),0 0 18px color-mix(in srgb,var(--accent) 37%,transparent); }
.venue-panel[hidden] { display: none; }.venue-panel--coachs { --accent: var(--orange); }.venue-panel--sams { --accent: var(--red); }
.venue-panel-top { display: grid; grid-template-columns: clamp(165px,19vw,236px) minmax(0,1fr); align-items: stretch; gap: clamp(18px,3vw,39px); margin-bottom: clamp(22px,3vw,35px); }
.venue-schedule { display: flex; flex-direction: column; justify-content: center; min-height: 170px; padding: 18px; border: 2px solid var(--accent); border-radius: 14px; background: rgba(4,1,11,.7); text-align: center; box-shadow: inset 0 0 16px color-mix(in srgb,var(--accent) 25%,transparent),0 0 11px color-mix(in srgb,var(--accent) 40%,transparent); }
.venue-schedule span { color: var(--accent); font: 900 18px/1 var(--display); letter-spacing: .13em; }.venue-schedule strong { color: #fff; font: 900 clamp(64px,7vw,90px)/.85 var(--display); text-shadow: 0 0 16px var(--accent); }.venue-schedule small { margin-top: 10px; color: #ead5eb; font: 700 clamp(11px,1.1vw,14px)/1.15 var(--display); letter-spacing: .08em; }
.venue-intro { align-self: center; min-width: 0; }.venue-intro .eyebrow { margin: 0 0 9px; color: var(--accent); }.venue-intro h4 { margin: 0 0 11px; color: #fff; font: 900 clamp(45px,6.2vw,85px)/.84 var(--display); text-transform: uppercase; text-shadow: 0 0 13px color-mix(in srgb,var(--accent) 42%,transparent); }.venue-panel--coachs .venue-intro h4 { font-size: clamp(40px,5.1vw,68px); }.venue-intro > p:last-child { margin: 0; color: #e9ddeb; font: 700 clamp(18px,2.15vw,25px)/1.1 var(--display); }
.venue-reel { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(240px,.85fr); gap: clamp(18px,3vw,38px); align-items: center; margin-bottom: clamp(22px,3vw,35px); padding: clamp(12px,1.7vw,19px); border: 1px solid color-mix(in srgb,var(--accent) 72%,#fff); border-radius: 15px; background: linear-gradient(125deg,color-mix(in srgb,var(--accent) 15%,#100719),rgba(4,2,13,.93) 64%); box-shadow: inset 0 0 19px color-mix(in srgb,var(--accent) 13%,transparent),0 0 14px color-mix(in srgb,var(--accent) 18%,transparent); }
.venue-reel-media { min-width: 0; }.venue-reel-preview { position: relative; display: grid; place-items: center; width: min(100%,380px); aspect-ratio: 9 / 16; margin: auto; padding: 0; overflow: hidden; border: 0; border-radius: 10px; color: #fff; background: #130821; cursor: pointer; isolation: isolate; }.venue-reel-preview::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(4,1,12,.48),transparent 70%); }.venue-reel-preview img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease,filter .4s ease; }.venue-reel-preview:hover img,.venue-reel-preview:focus-visible img { transform: scale(1.05); filter: brightness(1.13); }
.venue-reel-play-icon { display: grid; place-items: center; width: 78px; height: 78px; padding-left: 4px; border: 2px solid #fff; border-radius: 50%; background: color-mix(in srgb,var(--accent) 72%,#13041d); box-shadow: 0 0 12px var(--accent),0 0 30px color-mix(in srgb,var(--accent) 65%,transparent); font: 900 29px/1 Arial,sans-serif; transition: transform .2s,box-shadow .2s; }.venue-reel-preview:hover .venue-reel-play-icon,.venue-reel-preview:focus-visible .venue-reel-play-icon { transform: scale(1.12); box-shadow: 0 0 18px var(--accent),0 0 42px var(--accent); }
.venue-reel-preview[hidden],.venue-reel-player[hidden],.venue-reel-watch[hidden] { display: none; }.venue-reel-player { width: min(100%,380px); aspect-ratio: 9 / 16; margin: auto; overflow: hidden; border-radius: 10px; background: #090313; }.venue-reel-player video { display: block; width: 100%; height: 100%; object-fit: contain; }
.venue-reel-copy { min-width: 0; padding: 7px clamp(7px,1.5vw,18px) 7px 0; }.venue-reel-kicker { margin: 0 0 11px; color: var(--accent); font: 900 15px/1.15 var(--display); letter-spacing: .13em; }.venue-reel-copy h5 { margin: 0 0 12px; color: #fff; font: 900 clamp(31px,3.8vw,52px)/.92 var(--display); text-shadow: 0 0 14px color-mix(in srgb,var(--accent) 49%,transparent); }.venue-reel-copy > p:not(.venue-reel-kicker) { margin: 0 0 23px; color: #e7d9ec; font: 600 clamp(18px,2vw,23px)/1.12 var(--display); }
.venue-reel-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px 18px; }.venue-reel-watch { display: inline-flex; align-items: center; gap: 14px; min-height: 45px; padding: 10px 16px; border: 2px solid var(--accent); border-radius: 7px; color: #12061c; background: var(--accent); font: 900 17px/1 var(--display); letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }.venue-reel-watch:hover { box-shadow: 0 0 16px var(--accent); }.venue-reel-actions a { color: #fff; font: 800 17px/1.1 var(--display); text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 5px; }.venue-reel-actions a:hover { color: var(--accent); }
.venue-gallery { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); grid-auto-rows: 200px; gap: 12px; min-height: 412px; }
.venue-gallery:empty { min-height: 0; }.venue-photo { position: relative; display: block; min-width: 0; padding: 0; overflow: hidden; border: 1px solid color-mix(in srgb,var(--accent) 65%,#fff); border-radius: 12px; background: #150d21; color: #fff; cursor: zoom-in; box-shadow: 0 0 11px color-mix(in srgb,var(--accent) 25%,transparent); }
.venue-photo:first-child { grid-row: span 2; }.venue-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease,filter .3s; }.venue-photo:hover img,.venue-photo:focus-visible img { transform: scale(1.055); filter: brightness(1.12); }
.venue-photo span { position: absolute; right: 12px; bottom: 11px; left: 12px; padding: 7px 10px; border-radius: 6px; color: #fff; background: rgba(8,2,17,.78); font: 800 clamp(15px,1.6vw,19px)/1 var(--display); text-align: left; text-shadow: 0 1px 4px #000; }.venue-photo span::after { content: '↗'; float: right; color: var(--accent); }
.venue-photo-credit,.venue-link-note { margin: 11px 0 0; color: #d9c6df; font: 600 15px/1.15 var(--display); }.venue-link-note { margin-top: 12px; }
.venue-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 24px; }.venue-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 47px; padding: 11px 17px; border: 2px solid var(--accent); border-radius: 8px; color: #fff; background: rgba(13,3,24,.77); box-shadow: inset 0 0 9px color-mix(in srgb,var(--accent) 24%,transparent); font: 900 17px/1 var(--display); letter-spacing: .05em; text-transform: uppercase; transition: transform .2s,box-shadow .2s; }.venue-button-primary { color: #13051e; background: var(--accent); }.venue-button:hover { transform: translateY(-2px); box-shadow: 0 0 16px color-mix(in srgb,var(--accent) 60%,transparent); }
.venue-lightbox { max-width: min(1120px,94vw); max-height: 94vh; padding: 12px; border: 2px solid #d774ff; border-radius: 14px; color: #fff; background: #0b0315; box-shadow: 0 0 35px rgba(179,69,255,.7); }.venue-lightbox::backdrop { background: rgba(2,0,8,.86); }.venue-lightbox img { display: block; max-width: 100%; max-height: calc(90vh - 75px); margin: auto; object-fit: contain; }.venue-lightbox p { margin: 9px 45px 0 4px; font: 700 19px/1.1 var(--display); }.lightbox-close { position: absolute; top: 13px; right: 13px; z-index: 1; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #fff; border-radius: 50%; color: #fff; background: #140721; font: 34px/1 Arial,sans-serif; cursor: pointer; }
@media (max-width: 760px) {
  .venue-tabs { gap: 8px; }.venue-tab { min-height: 136px; padding: 14px 12px; }.venue-tab-day { font-size: 13px; }.venue-tab-day strong { font-size: 23px; }.venue-tab-name { font-size: 23px; }.venue-tab-city { font-size: 15px; }
  .venue-panel-top { grid-template-columns: 150px minmax(0,1fr); }.venue-schedule { min-height: 152px; }.venue-schedule strong { font-size: 61px; }.venue-intro h4 { font-size: clamp(40px,6vw,61px); }.venue-panel--coachs .venue-intro h4 { font-size: clamp(36px,5.3vw,53px); }
  .venue-reel { grid-template-columns: minmax(0,1fr); }.venue-reel-copy { padding: 4px 7px 10px; }
}
@media (max-width: 580px) {
  .venue-explorer { margin-top: 70px; }.venue-heading { margin-bottom: 25px; }.venue-heading h3 { font-size: clamp(59px,13vw,76px); }.venue-tabs { display: flex; gap: 9px; margin: 0 -19px 12px; padding: 2px 19px 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: #cc59ff #190723; }.venue-tab { flex: 0 0 min(66vw,240px); min-height: 124px; scroll-snap-align: start; }.venue-panel { padding: 18px; border-radius: 12px; }.venue-panel-top { grid-template-columns: 1fr; gap: 20px; }.venue-schedule { min-height: 0; padding: 14px 18px; }.venue-schedule span { font-size: 16px; }.venue-schedule strong { font-size: 72px; }.venue-intro h4,.venue-panel--coachs .venue-intro h4 { font-size: clamp(41px,10vw,62px); }.venue-intro > p:last-child { font-size: 19px; }
  .venue-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 8px; min-height: 308px; }.venue-photo:first-child { grid-column: span 2; grid-row: span 1; }.venue-photo span { right: 6px; bottom: 6px; left: 6px; font-size: 14px; }.venue-actions { flex-direction: column; }.venue-button { width: 100%; }
  .venue-reel-copy h5 { font-size: clamp(35px,9vw,49px); }
}
