:root {
  --black:#030303;
  --white:#e7e7e4;
  --gray:#939492;
  --steel:#b7bec0;
  --blood:#831c22;
  --beat-scale:1;
  --beat-brightness:1;
  --light-opacity:0;
  --light-scale:.98;
  --light-brightness:.45;
  --light-saturation:1.05;
  --crowd-back-opacity:0;
  --crowd-mid-opacity:0;
  --crowd-front-opacity:0;
  --crowd-back-scale:1.04;
  --crowd-mid-scale:1.02;
  --crowd-front-scale:1;
  --crowd-back-y:118%;
  --crowd-mid-y:115%;
  --crowd-front-y:110%;
  --crowd-back-brightness:.3;
  --crowd-mid-brightness:.3;
  --crowd-front-brightness:.3;
}

* { box-sizing:border-box; }
html { background:var(--black); }
body { margin:0; color:var(--white); background:var(--black); font-family:"Arial Narrow","Roboto Condensed",Arial,sans-serif; overflow-x:hidden; }
body.dialog-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
img { max-width:100%; }

.demo-back { position:fixed; z-index:80; top:18px; left:18px; padding:10px 14px; color:#b4b5b3; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.72); font:700 10px "Courier New",monospace; letter-spacing:.1em; text-transform:uppercase; backdrop-filter:blur(7px); transition:color .2s,border-color .2s; }
.demo-back:hover { color:white; border-color:white; }
.audio-toggle { position:fixed; z-index:80; top:18px; right:18px; min-height:38px; padding:8px 13px; display:flex; align-items:center; gap:10px; color:#a9abaa; background:rgba(0,0,0,.76); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(8px); cursor:pointer; transition:color .2s,border-color .2s,background .2s; }
.audio-toggle:hover,.audio-toggle.is-playing { color:white; border-color:rgba(255,255,255,.58); background:rgba(12,12,12,.9); }
.audio-toggle.is-muted { color:#8b8d8b; border-color:rgba(255,255,255,.18); }
.audio-toggle b { font:700 9px "Courier New",monospace; letter-spacing:.1em; text-transform:uppercase; }
.audio-bars { height:16px; display:flex; align-items:center; gap:2px; }
.audio-bars i { width:2px; height:4px; display:block; background:currentColor; transform-origin:center; }
.audio-toggle.is-playing .audio-bars i { animation:audio-bar .55s ease-in-out infinite alternate; }
.audio-toggle.is-playing .audio-bars i:nth-child(2) { animation-delay:-.18s; }
.audio-toggle.is-playing .audio-bars i:nth-child(3) { animation-delay:-.35s; }
.audio-toggle.is-playing .audio-bars i:nth-child(4) { animation-delay:-.09s; }
@keyframes audio-bar { from { transform:scaleY(.35); } to { transform:scaleY(3.6); } }

.stage { min-height:100svh; position:relative; padding:38px clamp(24px,5vw,80px) 105px; display:grid; grid-template-rows:auto 1fr auto; overflow:hidden; isolation:isolate; background:
  radial-gradient(ellipse at 50% 110%,rgba(255,255,255,.1),transparent 42%),
  linear-gradient(180deg,#050505 0%,#010101 100%);
}
.stage::before { content:""; position:absolute; z-index:-3; inset:0; opacity:.2; background:repeating-linear-gradient(92deg,transparent 0 14%,rgba(255,255,255,.025) 14.1% 14.25%,transparent 14.35% 28%); }
.side-light { position:absolute; z-index:-2; top:-10%; bottom:-10%; width:58vw; opacity:0; filter:blur(5px) saturate(1.55) brightness(1.22); animation:concert-flash 2.35s ease-in-out infinite; pointer-events:none; }
.side-light::before { content:""; position:absolute; inset:-3% 0; opacity:.96; filter:blur(6px); }
.side-light-left { left:-25vw; background:radial-gradient(ellipse at left center,rgba(213,0,185,1) 0%,rgba(131,16,153,.86) 25%,rgba(63,16,91,.5) 48%,transparent 73%); }
.side-light-left::before { background:conic-gradient(from -20deg at 0 52%,transparent 0 38%,rgba(255,66,224,.9) 43%,transparent 49%,rgba(153,54,215,.7) 54%,transparent 62%); }
.side-light-right { right:-25vw; background:radial-gradient(ellipse at right center,rgba(0,189,245,1) 0%,rgba(13,111,193,.86) 27%,rgba(8,55,105,.5) 49%,transparent 73%); }
.side-light-right::before { background:conic-gradient(from 160deg at 100% 48%,transparent 0 38%,rgba(67,220,255,.9) 43%,transparent 49%,rgba(23,130,224,.68) 54%,transparent 62%); }
@keyframes concert-flash {
  0%,9%,55%,64%,100% { opacity:0; transform:scale(.98); filter:blur(9px) saturate(1.05) brightness(.45); }
  18% { opacity:.5; transform:scale(1.04); filter:blur(6px) saturate(1.35) brightness(.9); }
  27% { opacity:1; transform:scale(1.15); filter:blur(2px) saturate(1.9) brightness(1.65); }
  35% { opacity:.32; transform:scale(1.03); filter:blur(6px) saturate(1.3) brightness(.78); }
  44% { opacity:.92; transform:scale(1.13); filter:blur(3px) saturate(1.75) brightness(1.5); }
  72% { opacity:.28; transform:scale(1.02); filter:blur(7px) saturate(1.25) brightness(.7); }
  81% { opacity:1; transform:scale(1.16); filter:blur(2px) saturate(1.95) brightness(1.7); }
  89% { opacity:.4; transform:scale(1.04); filter:blur(6px) saturate(1.35) brightness(.82); }
}

.band-header { min-height:210px; position:relative; display:flex; flex-direction:column; justify-content:flex-start; align-items:center; }
.wordmark { width:min(38vw,390px); height:auto; max-height:180px; object-fit:contain; filter:drop-shadow(0 0 18px rgba(221,229,232,.2)); animation:wordmark-flicker 8s steps(1) infinite; }
.band-tagline { max-width:780px; margin:-2px 70px 0; color:#c1c3c0; font:900 clamp(12px,1.15vw,17px)/1.35 "Arial Black","Arial Narrow",Arial,sans-serif; letter-spacing:.075em; text-align:center; text-shadow:-2px 0 rgba(50,112,184,.38),2px 0 rgba(139,27,36,.38),0 0 14px rgba(255,255,255,.12); }
.axe-mark { position:absolute; top:-20px; left:0; width:62px; height:92px; object-fit:contain; transform:rotate(-22deg); filter:grayscale(.25) contrast(1.15); }
.signal { position:absolute; top:12px; right:0; color:#626462; font:700 9px "Courier New",monospace; letter-spacing:.22em; }
@keyframes wordmark-flicker {
  0%,96%,100% { opacity:1; transform:none; }
  97% { opacity:.55; transform:translateX(-3px); }
  98% { opacity:.9; transform:translateX(2px); }
}

.show { align-self:center; position:relative; z-index:5; margin:-25px auto 45px; display:grid; justify-items:center; text-align:center; transform-origin:center; will-change:transform,filter; animation:bass-pulse 1.35s linear infinite; }
.eyebrow { margin:0 0 24px; color:#8e918e; font:700 10px "Courier New",monospace; letter-spacing:.28em; text-transform:uppercase; }
.show h1 { margin:0; color:#a4a6a4; font:400 clamp(14px,1.45vw,21px)/1.4 "Courier New",monospace; letter-spacing:.16em; text-transform:uppercase; }
.show h1 strong { display:block; margin-top:8px; color:var(--white); font:900 clamp(52px,8vw,124px)/.9 Impact,"Arial Black",sans-serif; letter-spacing:.03em; text-shadow:-3px 0 rgba(102,127,163,.24),3px 0 rgba(119,45,49,.22),0 0 22px rgba(255,255,255,.1); }
.venue { margin:24px 0 26px; color:#b1b2af; font:700 12px "Courier New",monospace; letter-spacing:.2em; }
.venue span { margin:0 13px; color:var(--blood); }
.countdown { margin-bottom:34px; display:flex; align-items:center; gap:19px; color:#747673; }
.countdown div { min-width:54px; display:grid; gap:3px; }
.countdown strong { color:#d1d2cf; font:700 21px "Courier New",monospace; }
.countdown span { font:700 8px "Courier New",monospace; letter-spacing:.15em; text-transform:uppercase; }
.countdown i { width:3px; height:3px; background:#7b171c; border-radius:50%; }
.ticket-button { min-width:min(330px,88vw); min-height:68px; padding:0 25px; position:relative; display:flex; align-items:center; justify-content:space-between; gap:45px; color:white; background:#74171d; border:1px solid #a1393e; clip-path:polygon(0 0,96% 0,100% 22%,100% 100%,4% 100%,0 78%); box-shadow:0 0 35px rgba(128,24,31,.35); font:900 15px "Arial Black",Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:background .2s,filter .2s,transform .2s; }
.ticket-button::before { content:""; position:absolute; inset:4px; border:1px solid rgba(255,255,255,.2); clip-path:inherit; }
.ticket-button:hover { background:#9b2027; filter:brightness(1.18); transform:translateY(-3px); }
.ticket-button b { font-size:25px; }
@keyframes bass-pulse {
  0%,4%,19%,100% { transform:scale(1); filter:brightness(1); }
  7% { transform:scale(1.026); filter:brightness(1.16); }
  11% { transform:scale(.994); filter:brightness(.97); }
  15% { transform:scale(1.017); filter:brightness(1.1); }
}

.spotify-frame { position:absolute; z-index:8; right:clamp(22px,5vw,80px); bottom:62px; width:270px; height:170px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#d7dcdd; text-align:center; transition:transform .35s,filter .35s; }
.spotify-frame > img { position:absolute; z-index:-1; left:50%; top:50%; width:414px; height:414px; object-fit:contain; transform:translate(-50%,-50%); filter:grayscale(1) brightness(.4) contrast(1.75); opacity:.82; mix-blend-mode:screen; -webkit-mask-image:radial-gradient(ellipse at center,#000 24%,rgba(0,0,0,.96) 48%,rgba(0,0,0,.48) 67%,transparent 83%); mask-image:radial-gradient(ellipse at center,#000 24%,rgba(0,0,0,.96) 48%,rgba(0,0,0,.48) 67%,transparent 83%); }
.spotify-frame span:not(.spotify-icon) { color:#888d8e; font:700 8px "Courier New",monospace; letter-spacing:.2em; text-transform:uppercase; }
.spotify-frame strong { margin:7px 0 5px; font:900 18px "Arial Black",Arial,sans-serif; letter-spacing:.1em; }
.spotify-frame small { color:#717575; font:700 8px "Courier New",monospace; letter-spacing:.08em; }
.spotify-icon { color:#aeb6b7; font:700 20px "Courier New",monospace; letter-spacing:-.2em; }
.spotify-frame:hover { transform:scale(1.05) rotate(-1deg); filter:brightness(1.35); }
.spotify-message { position:absolute; z-index:9; right:clamp(22px,5vw,80px); bottom:48px; margin:0; color:#8c8f8d; font:700 8px "Courier New",monospace; letter-spacing:.08em; }

.crowd-layer { position:absolute; z-index:4; left:0; right:0; bottom:-2px; height:clamp(180px,26.2vw,503px); overflow:hidden; pointer-events:none; }
.crowd-layer img { position:absolute; left:50%; bottom:0; display:block; width:100%; max-width:none; opacity:0; transform-origin:center bottom; }
.crowd-back { translate:-57% 8%; transform:scale(1.08); filter:hue-rotate(92deg) saturate(1.7) contrast(1.12) brightness(.62) blur(.7px); mix-blend-mode:screen; animation:crowd-back-build 20.25s linear infinite; }
.crowd-mid { translate:-43% 4%; transform:scale(1.045); filter:hue-rotate(-48deg) saturate(1.85) contrast(1.16) brightness(.68); mix-blend-mode:screen; animation:crowd-mid-build 20.25s linear infinite; }
.crowd-front { translate:-50% 0; transform:scale(1); filter:grayscale(.45) sepia(.18) saturate(1.5) hue-rotate(175deg) contrast(1.18) brightness(.78) drop-shadow(0 -12px 28px rgba(36,24,62,.5)); animation:crowd-front-build 20.25s linear infinite; }
@keyframes crowd-back-build {
  0% { opacity:0; translate:-57% 118%; }
  5% { opacity:.18; }
  28% { opacity:.9; translate:-57% 8%; }
  84% { opacity:.9; translate:-57% 8%; }
  100% { opacity:0; translate:-57% 8%; }
}
@keyframes crowd-mid-build {
  0%,28% { opacity:0; translate:-43% 115%; }
  34% { opacity:.16; }
  56% { opacity:.84; translate:-43% 4%; }
  84% { opacity:.84; translate:-43% 4%; }
  100% { opacity:0; translate:-43% 4%; }
}
@keyframes crowd-front-build {
  0%,56% { opacity:0; translate:-50% 110%; }
  62% { opacity:.14; }
  84% { opacity:.78; translate:-50% 0; }
  92% { opacity:.78; translate:-50% 0; }
  100% { opacity:0; translate:-50% 0; }
}

body.audio-reactive .show { animation:none; transform:scale(var(--beat-scale)); filter:brightness(var(--beat-brightness)); transition:transform .045s linear,filter .045s linear; }
body.audio-reactive .side-light { animation:none; opacity:var(--light-opacity); transform:scale(var(--light-scale)); filter:blur(3px) saturate(var(--light-saturation)) brightness(var(--light-brightness)); transition:opacity .055s linear,transform .055s linear,filter .055s linear; }
body.audio-reactive .crowd-layer img { animation:none; transition:opacity .055s linear,transform .055s linear,filter .055s linear; }
body.audio-reactive .crowd-back { opacity:var(--crowd-back-opacity); translate:-57% var(--crowd-back-y); transform:scale(var(--crowd-back-scale)); filter:hue-rotate(92deg) saturate(1.8) contrast(1.14) brightness(var(--crowd-back-brightness)) blur(.7px); }
body.audio-reactive .crowd-mid { opacity:var(--crowd-mid-opacity); translate:-43% var(--crowd-mid-y); transform:scale(var(--crowd-mid-scale)); filter:hue-rotate(-48deg) saturate(1.95) contrast(1.18) brightness(var(--crowd-mid-brightness)); }
body.audio-reactive .crowd-front { opacity:var(--crowd-front-opacity); translate:-50% var(--crowd-front-y); transform:scale(var(--crowd-front-scale)); filter:grayscale(.45) sepia(.18) saturate(1.55) hue-rotate(175deg) contrast(1.2) brightness(var(--crowd-front-brightness)) drop-shadow(0 -12px 34px rgba(71,30,108,.62)); }

.stage-footer { position:absolute; z-index:12; left:clamp(24px,5vw,80px); right:clamp(24px,5vw,80px); bottom:25px; display:flex; justify-content:space-between; gap:30px; color:#5e605e; font:700 8px "Courier New",monospace; letter-spacing:.16em; text-transform:uppercase; }
.stage-footer a { color:#898b88; transition:color .2s; }
.stage-footer a:hover { color:white; }

.smoke { position:absolute; z-index:3; left:-8%; right:auto; bottom:-125px; width:67%; height:360px; overflow:hidden; filter:blur(20px); -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 52%,rgba(0,0,0,.82) 69%,rgba(0,0,0,.26) 86%,transparent 100%); mask-image:linear-gradient(90deg,#000 0%,#000 52%,rgba(0,0,0,.82) 69%,rgba(0,0,0,.26) 86%,transparent 100%); pointer-events:none; }
.smoke::before { content:""; position:absolute; inset:30% 0 0; background:linear-gradient(0deg,rgba(177,180,178,.58),rgba(75,78,76,.24) 46%,transparent); }
.smoke i { position:absolute; bottom:-55px; width:30vw; height:290px; border-radius:50%; background:radial-gradient(ellipse,rgba(218,221,219,.56) 0%,rgba(108,112,109,.32) 35%,transparent 72%); animation:smoke-roll 9s ease-in-out infinite alternate; }
.smoke i:nth-child(1) { left:-8%; }
.smoke i:nth-child(2) { left:12%; width:38vw; animation-delay:-6s; }
.smoke i:nth-child(3) { left:34%; width:35vw; animation-delay:-3s; }
.smoke i:nth-child(4) { left:50%; width:30vw; animation-delay:-8s; }
.smoke i:nth-child(5) { left:61%; width:24vw; animation-delay:-4s; }
@keyframes smoke-roll {
  0% { transform:translate(-5%,22px) scale(.9); opacity:.42; }
  50% { transform:translate(5%,-25px) scale(1.16); opacity:.78; }
  100% { transform:translate(-2%,-8px) scale(1.04); opacity:.58; }
}

.vhs-layer,.vhs-noise,.film-grain { position:fixed; z-index:70; inset:0; pointer-events:none; }
.vhs-layer { opacity:.52; background:repeating-linear-gradient(0deg,rgba(255,255,255,.07) 0 1px,rgba(0,0,0,.055) 1px 2px,transparent 2px 4px); mix-blend-mode:screen; }
.vhs-layer::before { content:""; position:absolute; inset:-20%; background:linear-gradient(180deg,transparent 0 42%,rgba(255,255,255,.15) 47%,rgba(255,255,255,.035) 49%,transparent 53%); animation:vhs-scan 4.3s linear infinite; }
.vhs-layer::after { content:""; position:absolute; inset:0; opacity:.7; background:repeating-linear-gradient(180deg,transparent 0 12%,rgba(255,255,255,.055) 12.2% 12.5%,transparent 12.8% 28%); animation:vhs-tracking .42s steps(2) infinite; }
.vhs-noise { opacity:.3; mix-blend-mode:screen; background:
  repeating-radial-gradient(circle at 17% 32%,rgba(255,255,255,.38) 0 1px,transparent 1px 3px),
  repeating-linear-gradient(93deg,transparent 0 9px,rgba(255,255,255,.11) 10px,transparent 11px 23px);
  background-size:5px 6px,24px 100%;
  animation:vhs-noise .11s steps(3) infinite;
}
.film-grain { z-index:69; inset:-35%; opacity:.38; mix-blend-mode:soft-light; background:
  repeating-radial-gradient(circle at 23% 31%,rgba(255,255,255,.9) 0 .7px,rgba(0,0,0,.75) .8px 1.4px,transparent 1.5px 3px),
  repeating-radial-gradient(circle at 71% 66%,rgba(255,255,255,.6) 0 .6px,transparent .7px 2.6px);
  background-size:6px 7px,9px 8px;
  animation:film-grain .16s steps(4) infinite;
}
@keyframes vhs-scan { from { transform:translateY(-35%); } to { transform:translateY(35%); } }
@keyframes vhs-tracking { 0% { transform:translateY(-4px); } 50% { transform:translateY(5px); } }
@keyframes vhs-noise { 0% { transform:translate(0); } 25% { transform:translate(-4px,2px); } 50% { transform:translate(3px,-3px); } 75% { transform:translate(2px,4px); } }
@keyframes film-grain { 0% { transform:translate(0,0); } 25% { transform:translate(4%,-3%); } 50% { transform:translate(-3%,5%); } 75% { transform:translate(5%,2%); } 100% { transform:translate(-2%,-4%); } }
body.glitch-burst .stage { filter:contrast(1.2) brightness(1.12); transform:translateX(1px); }
body.glitch-burst .show h1 strong { text-shadow:-8px 0 rgba(75,111,161,.45),7px 0 rgba(150,29,38,.45); }

.tv-shutdown { position:fixed; z-index:250; inset:0; visibility:hidden; overflow:hidden; background:#000; opacity:0; pointer-events:none; }
.tv-shutdown::before { content:""; position:absolute; left:7%; right:7%; top:50%; height:2px; opacity:0; background:#f7f7ef; box-shadow:0 0 12px white,0 0 45px rgba(255,255,255,.8); transform:scaleX(0); }
.tv-shutdown i { position:absolute; inset:0; display:block; background:linear-gradient(90deg,rgba(49,102,166,.5),white 49%,rgba(133,28,37,.5)); opacity:0; transform-origin:center; }
.tv-shutdown.is-active { visibility:visible; animation:tv-blackout 1.28s linear both; }
.tv-shutdown.is-active::before { animation:tv-line 1.28s ease-in-out both; }
.tv-shutdown.is-active i { animation:tv-collapse 1.28s cubic-bezier(.7,0,.3,1) both; }
@keyframes tv-blackout {
  0%,12% { opacity:0; }
  31%,73% { opacity:1; }
  100% { opacity:0; }
}
@keyframes tv-collapse {
  0%,8% { opacity:0; transform:scale(1); }
  14% { opacity:.3; transform:scale(1); }
  28% { opacity:.72; transform:scale(1,.025); }
  39% { opacity:1; transform:scale(.18,.012); }
  48%,100% { opacity:0; transform:scale(0,.008); }
}
@keyframes tv-line {
  0%,25% { opacity:0; transform:scaleX(1); }
  32% { opacity:1; transform:scaleX(1); }
  46% { opacity:1; transform:scaleX(.16); }
  55%,100% { opacity:0; transform:scaleX(0); }
}

.ticket-dialog { width:min(92vw,560px); max-height:90svh; padding:48px; color:var(--white); background:#0b0b0b; border:1px solid #4d4f4d; box-shadow:0 0 80px rgba(0,0,0,.9); }
.ticket-dialog::backdrop { background:rgba(0,0,0,.86); backdrop-filter:blur(5px); }
.ticket-dialog > img { width:60px; height:85px; position:absolute; top:20px; right:28px; object-fit:contain; transform:rotate(16deg); }
.dialog-close { position:absolute; top:12px; left:16px; color:#777; background:none; border:0; font-size:30px; cursor:pointer; }
.dialog-kicker { color:#797b78; font:700 9px "Courier New",monospace; letter-spacing:.18em; text-transform:uppercase; }
.ticket-dialog h2 { margin:18px 0 32px; font:900 clamp(42px,8vw,70px)/1 Impact,"Arial Black",sans-serif; letter-spacing:.04em; }
.ticket-dialog form { display:grid; grid-template-columns:1fr 1fr; gap:19px; }
.ticket-dialog label { display:grid; gap:7px; color:#8e918e; font:700 9px "Courier New",monospace; letter-spacing:.12em; text-transform:uppercase; }
.ticket-dialog label:nth-child(-n+2) { grid-column:1/-1; }
.ticket-dialog input,.ticket-dialog select { min-width:0; width:100%; padding:14px; color:white; background:#151615; border:1px solid #3f413f; outline:none; }
.ticket-dialog input:focus,.ticket-dialog select:focus { border-color:#a1393e; }
.ticket-dialog form > button { grid-column:1/-1; min-height:58px; color:white; background:#74171d; border:1px solid #a1393e; font-weight:900; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.ticket-dialog form > p { grid-column:1/-1; margin:0; color:#656765; font:10px "Courier New",monospace; text-align:center; }
.ticket-success { grid-column:1/-1; padding:15px; color:#c7c9c6; border:1px solid #555; background:#151515; font:12px/1.5 "Courier New",monospace; }
.ticket-success.is-success { border-color:#617b62; }
.ticket-success.is-error { color:#efb9b9; border-color:#873f43; }
.ticket-dialog form > button:disabled { opacity:.65; cursor:wait; }
.ticket-dialog .ticket-consent { grid-column:1/-1; display:flex; flex-direction:row; gap:9px; align-items:flex-start; color:#90928f; font:10px/1.5 "Courier New",monospace; letter-spacing:0; text-transform:none; }
.ticket-dialog .ticket-consent input { width:17px; height:17px; flex:0 0 17px; margin:0; padding:0; accent-color:#a1393e; }
.ticket-consent a { color:#d0d1ce; text-decoration:underline; text-underline-offset:3px; }
.honeypot-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

@media (prefers-reduced-motion:reduce) {
  * { animation:none!important; transition:none!important; }
}

@media (max-width:850px) {
  .stage { min-height:950px; padding:80px 20px 120px; }
  .band-header { min-height:175px; }
  .wordmark { width:min(72vw,390px); height:auto; }
  .band-tagline { margin-top:2px; font-size:12px; }
  .axe-mark { top:-42px; width:42px; height:70px; }
  .signal { top:-38px; }
  .show { margin-top:0; }
  .spotify-frame { right:50%; bottom:78px; width:230px; height:140px; transform:translateX(50%); }
  .spotify-frame:hover { transform:translateX(50%) scale(1.04); }
  .spotify-message { right:50%; bottom:62px; width:260px; text-align:center; transform:translateX(50%); }
  .stage-footer { bottom:18px; }
}

@media (max-width:560px) {
  .demo-back { top:10px; left:10px; }
  .audio-toggle { top:10px; right:10px; padding-inline:10px; }
  .audio-toggle b { max-width:74px; font-size:8px; line-height:1.15; text-align:left; }
  .stage { min-height:900px; padding-inline:16px; }
  .band-tagline { margin-inline:0; max-width:340px; font-size:10px; line-height:1.45; letter-spacing:.045em; }
  .band-header { min-height:130px; }
  .wordmark { width:78vw; }
  .show h1 { font-size:11px; letter-spacing:.08em; }
  .show h1 strong { margin-top:13px; font-size:clamp(47px,17vw,72px); line-height:.92; }
  .venue { font-size:9px; letter-spacing:.12em; }
  .countdown { gap:8px; }
  .countdown div { min-width:43px; }
  .countdown strong { font-size:17px; }
  .ticket-button { min-height:62px; }
  .spotify-frame { bottom:74px; width:210px; }
  .crowd-layer { height:230px; }
  .crowd-layer img { width:180%; }
  .stage-footer span { display:none; }
  .stage-footer { justify-content:center; }
  .ticket-dialog { padding:42px 22px 28px; }
  .ticket-dialog form { grid-template-columns:1fr; }
  .ticket-dialog label,.ticket-dialog label:nth-child(-n+2),.ticket-dialog form > button,.ticket-dialog form > p,.ticket-success { grid-column:1; }
}
