:root {
  --blackout: #282828;
  --blackout-deep: #070707;
  --clip-red: #fd2929;
  --off-white: #e1e1e1;
  --muted: rgba(225, 225, 225, 0.64);
  --line: rgba(225, 225, 225, 0.18);
  --glass: rgba(10, 10, 10, 0.62);
  --header-h: 82px;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.76, 0, .24, 1);
  --hero-progress: 0;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--blackout-deep);
}

body {
  margin: 0;
  color: var(--off-white);
  background:
    radial-gradient(circle at 15% 10%, rgba(253, 41, 41, .12), transparent 28rem),
    radial-gradient(circle at 85% 40%, rgba(253, 41, 41, .08), transparent 24rem),
    var(--blackout-deep);
  font-family:
    "Neue Haas Grotesk Display",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif;
  overflow-x: hidden;
}

body.menu-open {
  overflow: hidden;
}

img,
video {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

::selection {
  background: var(--clip-red);
  color: var(--off-white);
}

.site-header {
  position: fixed;
  z-index: 60;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-h);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 clamp(18px, 3vw, 48px);
  background: linear-gradient(to bottom, rgba(0, 0, 0, .88), rgba(0, 0, 0, .34), transparent);
  transition:
    height .5s var(--ease-out),
    background .5s var(--ease-out),
    border-color .5s var(--ease-out),
    backdrop-filter .5s var(--ease-out);
}

.site-header.is-scrolled {
  height: 68px;
  background: rgba(5, 5, 5, .72);
  border-bottom: 1px solid rgba(225, 225, 225, .11);
  backdrop-filter: blur(18px);
}

.menu-trigger {
  justify-self: start;
  border: 0;
  background: transparent;
  color: var(--off-white);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-transform: uppercase;
  letter-spacing: -.02em;
  cursor: pointer;
  padding: 12px 0;
  font-family: "Fragment Mono", monospace;
  font-size: 12px;
}

.hamburger {
  width: 28px;
  height: 12px;
  position: relative;
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
}

.hamburger span {
  display: block;
  height: 2px;
  background: var(--clip-red);
  transform-origin: left center;
  transition: transform .35s var(--ease-out);
}

.menu-trigger:hover .hamburger span:first-child {
  transform: scaleX(.72);
}

.menu-trigger:hover .hamburger span:last-child {
  transform: scaleX(1.2);
}

.brand-lockup {
  justify-self: center;
  width: clamp(146px, 16vw, 230px);
}

.brand-lockup img,
.site-footer img {
  width: 100%;
  filter:
    invert(22%)
    sepia(98%)
    saturate(5313%)
    hue-rotate(351deg)
    brightness(103%)
    contrast(98%);
}

.ticket-button {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  padding: 0 18px;
  background: var(--clip-red);
  color: white;
  text-transform: uppercase;
  font-family: "Fragment Mono", monospace;
  font-size: 12px;
  transition:
    transform .35s var(--ease-out),
    background .35s var(--ease-out);
}

.ticket-button:hover {
  transform: translateY(-2px);
  background: #ff3d3d;
}

.menu-panel {
  position: fixed;
  inset: 0;
  z-index: 80;
  pointer-events: none;
}

.menu-panel__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .72);
  opacity: 0;
  transition: opacity .55s var(--ease-out);
}

.menu-panel__inner {
  position: absolute;
  inset: 0 0 0 auto;
  width: min(590px, 100%);
  padding: clamp(24px, 5vw, 70px);
  background:
    radial-gradient(circle at 90% 20%, rgba(253, 41, 41, .20), transparent 24rem),
    linear-gradient(135deg, rgba(253, 41, 41, .06), transparent 44%),
    #0b0b0b;
  border-left: 1px solid var(--line);
  transform: translateX(110%);
  transition: transform .75s var(--ease-in-out);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.menu-panel.is-open {
  pointer-events: auto;
}

.menu-panel.is-open .menu-panel__backdrop {
  opacity: 1;
}

.menu-panel.is-open .menu-panel__inner {
  transform: translateX(0);
}

.menu-close {
  align-self: flex-end;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--off-white);
  padding: 12px 16px;
  text-transform: uppercase;
  font-family: "Fragment Mono", monospace;
  font-size: 12px;
  cursor: pointer;
}

.menu-panel__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--clip-red);
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 12px;
}

.menu-panel__meta img {
  width: 18px;
  filter:
    invert(22%)
    sepia(98%)
    saturate(5313%)
    hue-rotate(351deg)
    brightness(103%)
    contrast(98%);
}

.menu-links {
  list-style: none;
  padding: 0;
  margin: clamp(40px, 7vh, 90px) 0;
  display: grid;
  gap: 8px;
}

.menu-links a {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(225, 225, 225, .10);
  font-size: clamp(44px, 7vw, 92px);
  letter-spacing: -.075em;
  line-height: .86;
  transition:
    color .35s var(--ease-out),
    transform .35s var(--ease-out);
}

.menu-links a:hover {
  color: var(--clip-red);
  transform: translateX(12px);
}

.menu-links span {
  font-family: "Fragment Mono", monospace;
  font-size: 12px;
  letter-spacing: 0;
  color: var(--clip-red);
}

.menu-panel__footer {
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--muted);
}

.hero-scroll {
  height: 200svh;
  position: relative;
}

.hero-stage {
  position: sticky;
  top: 0;
  min-height: 100svh;
  overflow: hidden;
  background: #050505;
  isolation: isolate;
}

.hero-video,
.hero-fallback,
.hero-vignette,
.hero-noise {
  position: absolute;
  inset: 0;
}

.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -4;
  transform:
    scale(calc(1.18 - (var(--hero-progress) * .18)))
    translateY(calc(var(--hero-progress) * -2vh));
  filter:
    saturate(calc(.72 + (var(--hero-progress) * .4)))
    contrast(calc(1.06 + (var(--hero-progress) * .16)))
    brightness(calc(.62 - (var(--hero-progress) * .14)));
}

.hero-fallback {
  z-index: -5;
  background:
    radial-gradient(circle at calc(20% + var(--hero-progress) * 40%) 30%, rgba(253, 41, 41, .38), transparent 22rem),
    radial-gradient(circle at 72% 62%, rgba(255,255,255,.09), transparent 18rem),
    linear-gradient(130deg, #050505, #151515 48%, #040404);
  animation: floatLight 9s linear infinite alternate;
}

.hero-vignette {
  z-index: -2;
  background:
    linear-gradient(to right, rgba(0, 0, 0, .86), transparent 38%, rgba(0, 0, 0, .54)),
    linear-gradient(to top, rgba(0, 0, 0, .86), transparent 44%, rgba(0, 0, 0, .36));
}

.hero-noise {
  z-index: -1;
  opacity: .28;
  mix-blend-mode: overlay;
  background-image:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.20) 0 1px, transparent 1px),
    radial-gradient(circle at 70% 40%, rgba(255,255,255,.12) 0 1px, transparent 1px);
  background-size: 9px 9px, 13px 13px;
  animation: grain 1s steps(2) infinite;
}

.hero-wordmark {
  position: absolute;
  z-index: 0;
  inset: 4vh -12vw auto 28vw;
  transform:
    translateX(calc(var(--hero-progress) * -26vw))
    translateY(calc(var(--hero-progress) * 19vh))
    rotate(calc(-7deg + (var(--hero-progress) * 14deg)))
    skewX(calc(-10deg + (var(--hero-progress) * 10deg)))
    scale(calc(1 + (var(--hero-progress) * .32)));
  transform-origin: center;
  opacity: calc(.95 - (var(--hero-progress) * .18));
  pointer-events: none;
}

.hero-wordmark span {
  display: block;
  color: var(--clip-red);
  font-weight: 900;
  font-size: clamp(116px, 21vw, 330px);
  letter-spacing: -.13em;
  line-height: .75;
  filter: drop-shadow(0 34px 100px rgba(253, 41, 41, .18));
}

.hero-copy {
  position: absolute;
  left: clamp(22px, 4.8vw, 76px);
  bottom: clamp(62px, 13vh, 142px);
  width: min(660px, calc(100vw - 44px));
  z-index: 4;
  transform:
    translateY(calc(var(--hero-progress) * -11vh))
    scale(calc(1 - (var(--hero-progress) * .05)));
  opacity: calc(1 - (var(--hero-progress) * .35));
}

.eyebrow {
  margin: 0 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--clip-red);
  text-transform: uppercase;
  font-family: "Fragment Mono", monospace;
  letter-spacing: -.04em;
  font-size: 12px;
}

.eyebrow img {
  width: 14px;
  filter:
    invert(22%)
    sepia(98%)
    saturate(5313%)
    hue-rotate(351deg)
    brightness(103%)
    contrast(98%);
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2 {
  font-weight: 600;
  letter-spacing: -.075em;
  line-height: .88;
}

h1 {
  margin-bottom: 24px;
  font-size: clamp(58px, 8vw, 132px);
  max-width: 760px;
}

h2 {
  font-size: clamp(46px, 6.6vw, 112px);
  max-width: 1050px;
}

.hero-subline {
  margin-bottom: 26px;
  color: var(--off-white);
  font-size: clamp(18px, 2vw, 28px);
  letter-spacing: -.04em;
}

.hero-actions,
.carousel-actions,
.footer-links {
  display: flex;
  align-items: center;
  gap: 14px;
}

.button {
  border: 1px solid var(--line);
  min-height: 54px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  text-transform: uppercase;
  font-family: "Fragment Mono", monospace;
  font-size: 12px;
  cursor: pointer;
  transition:
    transform .35s var(--ease-out),
    background .35s var(--ease-out),
    color .35s var(--ease-out),
    border-color .35s var(--ease-out);
}

.button:hover {
  transform: translateY(-3px);
}

.button--solid {
  border-color: var(--clip-red);
  background: var(--clip-red);
  color: white;
}

.button--ghost {
  background: rgba(0, 0, 0, .18);
  color: var(--off-white);
}

.button--ghost:hover {
  background: var(--off-white);
  color: #050505;
}

.hero-micro {
  margin-top: 26px;
  color: var(--clip-red);
  font-family: "Fragment Mono", monospace;
  font-size: 12px;
  line-height: 1.45;
  text-transform: uppercase;
}

.hero-data {
  position: absolute;
  right: clamp(20px, 4.2vw, 66px);
  top: 42%;
  z-index: 4;
  display: grid;
  gap: 8px;
  color: rgba(225, 225, 225, .74);
  text-align: right;
  font-family: "Fragment Mono", monospace;
  font-size: 12px;
  text-transform: uppercase;
  opacity: calc(.78 + (var(--hero-progress) * .18));
  transform: translateX(calc(var(--hero-progress) * -2vw));
}

.hero-data .divider {
  width: 100%;
  height: 1px;
  background: var(--line);
  margin: 7px 0;
}

.morph-preview {
  position: absolute;
  right: clamp(18px, 5vw, 78px);
  bottom: clamp(80px, 10vh, 126px);
  z-index: 5;
  width: min(520px, calc(100vw - 36px));
  transform:
    translateY(calc(80px - (var(--hero-progress) * 80px)))
    scale(calc(.94 + (var(--hero-progress) * .06)));
  opacity: clamp(0, calc((var(--hero-progress) - .55) * 2.4), 1);
  pointer-events: none;
}

.morph-preview p {
  color: var(--clip-red);
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 12px;
}

.preview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
  backdrop-filter: blur(12px);
  background: rgba(0,0,0,.36);
}

.preview-grid span {
  min-height: 120px;
  display: flex;
  align-items: flex-end;
  padding: 18px;
  border-right: 1px solid var(--line);
  font-size: 22px;
  letter-spacing: -.06em;
}

.preview-grid span:last-child {
  border-right: 0;
}

.scroll-indicator {
  position: absolute;
  right: clamp(18px, 3vw, 46px);
  bottom: 28px;
  z-index: 4;
  display: grid;
  place-items: center;
  gap: 12px;
  color: rgba(225,225,225,.55);
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 11px;
  opacity: calc(1 - var(--hero-progress));
}

.scroll-indicator span {
  display: block;
  width: 1px;
  height: 72px;
  background: linear-gradient(to bottom, transparent, var(--off-white), transparent);
  animation: scrollPulse 1.45s ease-in-out infinite;
}

.panel {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  border-top: 1px solid rgba(225,225,225,.10);
  background:
    linear-gradient(180deg, rgba(255,255,255,.025), transparent 24%),
    radial-gradient(circle at 88% 12%, rgba(253, 41, 41, .09), transparent 27rem),
    #090909;
}

.panel::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .12;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(225,225,225,.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(225,225,225,.16) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(circle at 50% 50%, black, transparent 70%);
}

.section-shell {
  position: relative;
  z-index: 3;
  width: 100%;
  padding:
    calc(var(--header-h) + clamp(26px, 5vh, 64px))
    clamp(18px, 3vw, 48px)
    clamp(28px, 5vh, 68px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(26px, 5vh, 58px);
}

.section-heading {
  max-width: 1100px;
}

.section-heading h2 {
  margin-bottom: 0;
}

.section-heading--row {
  max-width: none;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
}

.locations-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.4vw, 24px);
}

.location-card,
.artist-card,
.media-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
  transform: translateY(48px);
  opacity: 0;
  transition:
    transform .85s var(--ease-out),
    opacity .85s var(--ease-out),
    border-color .35s var(--ease-out);
  transition-delay: calc(var(--i, 0) * 80ms);
}

.is-visible .reveal-card,
.reveal-card.is-visible {
  transform: translateY(0);
  opacity: 1;
}

.location-card {
  height: min(58vh, 610px);
}

.location-card::before,
.artist-card::before,
.media-card::before {
  content: "";
  position: absolute;
  inset: 14px auto auto 14px;
  width: 13px;
  height: 30px;
  background: var(--clip-red);
  clip-path: polygon(0 0, 100% 0, 50% 45%, 100% 100%, 0 100%, 50% 55%);
  z-index: 3;
}

.location-card img,
.artist-card img,
.media-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.15) brightness(.72);
  transform: scale(1.03);
  transition:
    transform .65s var(--ease-out),
    filter .65s var(--ease-out);
}

.location-card:hover,
.artist-card:hover,
.media-card:hover {
  border-color: rgba(253, 41, 41, .74);
}

.location-card:hover img,
.artist-card:hover img,
.media-card:hover img {
  transform: scale(1.08);
  filter: grayscale(.4) contrast(1.16) brightness(.85);
}

.location-card__content {
  position: absolute;
  inset: auto 0 0 0;
  padding: clamp(16px, 2vw, 28px);
  background: linear-gradient(to top, rgba(0,0,0,.96), rgba(0,0,0,.72), transparent);
}

.card-kicker,
.tiny,
.artist-card p,
.media-card p,
.mono {
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 11px;
  color: rgba(225,225,225,.62);
  letter-spacing: -.04em;
}

.location-card h3,
.artist-card h3,
.media-card h3 {
  margin: 0;
  color: var(--off-white);
  font-size: clamp(30px, 3vw, 46px);
  letter-spacing: -.08em;
  line-height: .92;
  text-transform: uppercase;
}

.location-card .date {
  margin: 10px 0 20px;
  color: var(--clip-red);
  font-weight: 600;
  letter-spacing: -.04em;
}

.countdown {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-family: "Fragment Mono", monospace;
  letter-spacing: -.06em;
  white-space: nowrap;
}

.countdown strong {
  font-weight: 400;
  font-size: clamp(19px, 1.6vw, 31px);
  color: var(--off-white);
}

.carousel-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(250px, 19vw);
  gap: clamp(14px, 1.2vw, 22px);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 10px;
}

.carousel-track::-webkit-scrollbar {
  display: none;
}

.carousel-actions button {
  width: 46px;
  height: 46px;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--off-white);
  cursor: pointer;
  transition:
    background .3s var(--ease-out),
    color .3s var(--ease-out),
    border-color .3s var(--ease-out);
}

.carousel-actions button:hover {
  background: var(--clip-red);
  border-color: var(--clip-red);
}

.artist-card {
  height: min(58vh, 620px);
  scroll-snap-align: start;
}

.artist-card img {
  filter: contrast(1.14) saturate(.82) brightness(.7);
}

.artist-card div,
.media-card div {
  position: absolute;
  inset: auto 0 0 0;
  padding: 20px;
  z-index: 4;
  background: linear-gradient(to top, rgba(0,0,0,.96), transparent);
}

.artist-card p,
.media-card p {
  margin-bottom: 8px;
}

.media-track {
  grid-auto-columns: minmax(310px, 31vw);
}

.media-card {
  height: min(52vh, 480px);
  scroll-snap-align: start;
  display: block;
}

.media-card img {
  filter: grayscale(.9) contrast(1.12) brightness(.64);
}

.play-icon {
  position: absolute;
  z-index: 5;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  display: grid;
  place-items: center;
  width: 74px;
  height: 74px;
  border: 1px solid rgba(225,225,225,.72);
  border-radius: 999px;
  background: rgba(0,0,0,.28);
  backdrop-filter: blur(8px);
  color: var(--off-white);
  padding-left: 4px;
  transition:
    transform .35s var(--ease-out),
    background .35s var(--ease-out);
}

.media-card:hover .play-icon {
  transform: scale(1.08);
  background: var(--clip-red);
}

.about-panel {
  background:
    radial-gradient(circle at 20% 20%, rgba(253,41,41,.18), transparent 26rem),
    linear-gradient(135deg, #141414, #050505 72%);
}

.about-panel::after,
.signup-panel::after,
.contact-panel::after {
  content: "";
  position: absolute;
  right: -10vw;
  bottom: -12vh;
  width: min(760px, 58vw);
  height: min(760px, 58vw);
  background:
    radial-gradient(circle, rgba(225,225,225,.22) 0 1px, transparent 1.8px);
  background-size: 14px 14px;
  opacity: .22;
  transform: rotate(-8deg);
  pointer-events: none;
}

.about-grid {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(330px, .62fr);
  align-items: center;
}

.about-copy {
  display: grid;
  gap: 18px;
  font-size: clamp(22px, 2.2vw, 38px);
  letter-spacing: -.055em;
  line-height: 1.04;
  color: rgba(225,225,225,.9);
}

.about-copy p {
  margin-bottom: 0;
}

.about-copy .mono {
  margin-top: 18px;
  color: var(--clip-red);
  font-size: 12px;
  letter-spacing: -.03em;
  line-height: 1.5;
}

.form-grid {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(330px, 1fr);
  align-items: center;
}

.form-copy p:not(.eyebrow) {
  color: var(--muted);
  font-size: clamp(18px, 1.8vw, 27px);
  line-height: 1.15;
  letter-spacing: -.04em;
  max-width: 450px;
}

.site-form {
  display: grid;
  gap: 14px;
}

.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

label {
  display: grid;
  gap: 8px;
}

label span {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(5,5,5,.46);
  color: var(--off-white);
  min-height: 58px;
  padding: 0 18px;
  outline: 0;
  transition:
    border-color .3s var(--ease-out),
    background .3s var(--ease-out);
}

textarea {
  min-height: 150px;
  padding-top: 18px;
  resize: vertical;
}

input::placeholder,
textarea::placeholder {
  color: rgba(225,225,225,.44);
}

input:focus,
select:focus,
textarea:focus {
  border-color: rgba(253,41,41,.88);
  background: rgba(0,0,0,.64);
}

.site-form .button {
  width: 100%;
  border: 0;
  justify-content: center;
}

.form-status {
  min-height: 18px;
  margin: 0;
  color: var(--clip-red);
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 11px;
}

.site-footer {
  min-height: 96px;
  padding: 24px clamp(18px, 3vw, 48px);
  display: flex;
  align-items: center;
  gap: clamp(18px, 4vw, 60px);
  border-top: 1px solid rgba(225,225,225,.12);
  background: #050505;
  color: var(--muted);
}

.site-footer img {
  width: clamp(140px, 15vw, 220px);
}

.site-footer p {
  margin: 0;
}

.footer-links {
  margin-left: auto;
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 11px;
}

.footer-links a {
  color: rgba(225,225,225,.7);
}

.footer-links a:hover {
  color: var(--clip-red);
}

@keyframes grain {
  0% { transform: translate(0, 0); }
  50% { transform: translate(-2%, 1%); }
  100% { transform: translate(1%, -2%); }
}

@keyframes floatLight {
  from { transform: scale(1) translateX(-1.5%); }
  to { transform: scale(1.05) translateX(1.5%); }
}

@keyframes scrollPulse {
  0%, 100% { transform: scaleY(.55); opacity: .35; }
  50% { transform: scaleY(1); opacity: .95; }
}

@media (max-width: 1100px) {
  .locations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .location-card {
    height: 38vh;
    min-height: 320px;
  }

  .about-grid,
  .form-grid {
    grid-template-columns: 1fr;
  }

  .about-copy {
    max-width: 830px;
  }
}

@media (max-width: 760px) {
  :root {
    --header-h: 70px;
  }

  
.site-header {
    padding-inline: 14px;
  }

  .brand-lockup {
    width: 132px;
  }

  .ticket-button {
    min-height: 38px;
    padding: 0 12px;
    font-size: 10px;
  }

  .ticket-button span:first-child {
    display: none;
  }

  .menu-trigger {
    font-size: 11px;
  }

  .menu-links a {
    font-size: clamp(42px, 14vw, 70px);
  }

  .hero-scroll {
    height: 175svh;
  }

  .hero-wordmark {
    inset: 20vh -40vw auto 16vw;
  }

  .hero-wordmark span {
    font-size: 31vw;
  }

  .hero-copy {
    bottom: 86px;
  }

  h1 {
    font-size: clamp(54px, 17vw, 82px);
  }

  h2 {
    font-size: clamp(46px, 14vw, 74px);
  }

  .hero-subline {
    font-size: 18px;
  }

  .hero-actions {
    align-items: stretch;
    flex-direction: column;
    max-width: 260px;
  }

  .button {
    min-height: 50px;
  }

  .hero-data {
    display: none;
  }

  .morph-preview {
    left: 18px;
    right: 18px;
    bottom: 92px;
    width: auto;
  }

  .preview-grid {
    grid-template-columns: 1fr;
  }

  .preview-grid span {
    min-height: 62px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .preview-grid span:last-child {
    border-bottom: 0;
  }

  .section-shell {
    padding-inline: 16px;
    justify-content: center;
  }

  .section-heading--row {
    align-items: start;
    flex-direction: column;
  }

  .locations-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 12px;
    scrollbar-width: none;
  }

  .locations-grid::-webkit-scrollbar {
    display: none;
  }

  .location-card {
    min-width: 82vw;
    height: 58vh;
    scroll-snap-align: start;
  }

  .carousel-track {
    grid-auto-columns: minmax(74vw, 74vw);
  }

  .media-track {
    grid-auto-columns: minmax(82vw, 82vw);
  }

  .artist-card,
  .media-card {
    height: 55vh;
  }

  .carousel-actions {
    display: none;
  }

  .field-row {
    grid-template-columns: 1fr;
  }

  .site-footer {
    flex-wrap: wrap;
  }

  .footer-links {
    width: 100%;
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }

  .hero-video,
  .hero-wordmark,
  .hero-copy,
  .hero-data,
  .morph-preview {
    transform: none !important;
  }
}

/* === Requested refinement pass: social nav, location-card hero transition, carousel/newsletter/footer updates === */

.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 12px;
}

.header-socials {
  justify-self: start;
}

.social-nav {
  display: flex;
  align-items: center;
  gap: 10px;
}

.social-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--off-white);
  background: rgba(0, 0, 0, .18);
  transition:
    transform .35s var(--ease-out),
    background .35s var(--ease-out),
    border-color .35s var(--ease-out),
    color .35s var(--ease-out);
}

.social-icon svg {
  width: 18px;
  height: 18px;
}

.social-icon:hover {
  transform: translateY(-2px);
  background: var(--clip-red);
  border-color: var(--clip-red);
  color: white;
}

.hero-video {
  transform: scale(var(--hero-video-scale, 1.18)) translateY(var(--hero-video-y, 0vh));
  filter:
    saturate(var(--hero-video-saturate, .72))
    contrast(var(--hero-video-contrast, 1.06))
    brightness(var(--hero-video-brightness, .62));
}

.hero-wordmark {
  transform:
    translateX(var(--hero-word-x, 0vw))
    translateY(var(--hero-word-y, 0vh))
    rotate(var(--hero-word-rot, -7deg))
    skewX(var(--hero-word-skew, -10deg))
    scale(var(--hero-word-scale, 1));
  opacity: var(--hero-word-opacity, .95);
}

.hero-copy {
  transform:
    translateY(var(--hero-copy-y, 0vh))
    scale(var(--hero-copy-scale, 1));
  opacity: var(--hero-copy-opacity, 1);
}

.hero-data {
  transform: translateX(var(--hero-data-x, 0vw));
  opacity: var(--hero-data-opacity, .78);
}

.morph-preview {
  display: none;
}

.hero-location-transition {
  position: absolute;
  z-index: 7;
  left: 50%;
  top: 50%;
  width: min(1180px, calc(100% - 48px));
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1.2vw, 18px);
  transform: translate(-50%, var(--location-cards-y, -84vh)) scale(var(--location-cards-scale, .76));
  opacity: var(--location-cards-opacity, 0);
  pointer-events: none;
  filter: drop-shadow(0 30px 100px rgba(0, 0, 0, .64));
}

.hero-transition-card {
  position: relative;
  overflow: hidden;
  min-height: 310px;
  height: min(40vh, 420px);
  border: 1px solid rgba(225, 225, 225, .24);
  background: rgba(7, 7, 7, .82);
  transform: translateY(calc(var(--i, 0) * 10px));
}

.hero-transition-card::before {
  content: "";
  position: absolute;
  inset: 14px auto auto 14px;
  width: 13px;
  height: 30px;
  background: var(--clip-red);
  clip-path: polygon(0 0, 100% 0, 50% 45%, 100% 100%, 0 100%, 50% 55%);
  z-index: 4;
}

.hero-transition-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.22) brightness(.58);
  transform: scale(1.05);
}

.hero-transition-card div {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 5;
  padding: 20px;
  background: linear-gradient(to top, rgba(0, 0, 0, .96), rgba(0, 0, 0, .48), transparent);
}

.hero-transition-card p,
.hero-transition-card span {
  margin: 0;
  font-family: "Fragment Mono", monospace;
  text-transform: uppercase;
  font-size: 11px;
  color: rgba(225, 225, 225, .72);
}

.hero-transition-card h3 {
  margin: 8px 0 9px;
  font-size: clamp(28px, 3vw, 46px);
  line-height: .88;
  letter-spacing: -.085em;
  text-transform: uppercase;
}

.hero-transition-card span {
  color: var(--clip-red);
}

.newsletter-form .button {
  margin-top: 4px;
}

.consent-field {
  position: relative;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 15px 16px;
  border: 1px solid var(--line);
  background: rgba(5, 5, 5, .46);
}

.consent-field input {
  width: 18px;
  height: 18px;
  min-height: auto;
  margin: 2px 0 0;
  padding: 0;
  accent-color: var(--clip-red);
}

.consent-field span {
  position: static;
  width: auto;
  height: auto;
  opacity: 1;
  overflow: visible;
  color: rgba(225, 225, 225, .72);
  font-family: "Fragment Mono", monospace;
  font-size: 11px;
  line-height: 1.45;
  text-transform: uppercase;
}

.consent-field a {
  color: var(--clip-red);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.footer-socials {
  margin-left: auto;
}

@media (max-width: 860px) {
  .site-header {
    grid-template-columns: auto 1fr auto;
  }

  .header-socials {
    gap: 6px;
  }

  .social-icon {
    width: 34px;
    height: 34px;
  }

  .social-icon svg {
    width: 16px;
    height: 16px;
  }

  .hero-location-transition {
    width: calc(100% - 32px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .hero-transition-card {
    min-height: 150px;
    height: 22vh;
  }

  .hero-transition-card div {
    padding: 14px;
  }

  .hero-transition-card h3 {
    font-size: 24px;
  }

  .hero-transition-card p,
  .hero-transition-card span {
    font-size: 9px;
  }
}

@media (max-width: 760px) {
  .header-actions {
    gap: 8px;
  }

  .header-socials a:nth-child(n+4) {
    display: none;
  }

  .menu-trigger span:last-child {
    display: none;
  }

  .footer-socials {
    width: 100%;
    margin-left: 0;
  }
}

@media (max-width: 430px) {
  .header-socials a:nth-child(n+3) {
    display: none;
  }
}

/* === V5 cleanup: removed location morph animation for performance === */

body {
  background: #050505 !important;
}

.hero-wordmark,
.hero-flight-layer,
.hero-location-transition,
.morph-preview {
  display: none !important;
}

.panel {
  background: #080808 !important;
}

.locations-panel {
  min-height: 100svh !important;
  overflow: hidden !important;
  align-items: stretch !important;
  background: #0a0a0a !important;
}

.lineup-panel {
  background: #282828 !important;
}

.media-panel {
  background: #0d0d0d !important;
}

.about-panel {
  background: #111111 !important;
}

.signup-panel {
  background: #282828 !important;
}

.contact-panel {
  background: #080808 !important;
}

.panel::before,
.about-panel::after,
.signup-panel::after,
.contact-panel::after {
  display: none !important;
}

.locations-panel .section-shell {
  position: relative !important;
  top: auto !important;
  min-height: 100svh;
  justify-content: center !important;
  padding-top: calc(var(--header-h) + clamp(26px, 5vh, 64px)) !important;
}

.locations-grid .location-card {
  opacity: 1 !important;
  transform: none !important;
}

.locations-panel .location-card {
  height: min(58vh, 610px) !important;
}

@media (max-width: 760px) {
  .locations-panel .location-card {
    height: 58vh !important;
    min-height: 360px;
  }
}

/* === V6 updates: location videos, no cursor glow, black media placeholders === */

.location-card .location-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(1) contrast(1.15) brightness(.72);
  transform: scale(1.03);
  transition:
    transform .65s var(--ease-out),
    filter .65s var(--ease-out);
  background: #000;
}

.location-card:hover .location-video {
  transform: scale(1.08);
  filter: grayscale(.4) contrast(1.16) brightness(.85);
}

.media-card {
  background: #000 !important;
}

.media-placeholder {
  position: absolute;
  inset: 0;
  display: block;
  background: #000;
}

.media-card img {
  display: none !important;
}

.media-card:hover .media-placeholder {
  background: #000;
}

/* === Navbar/socials/media update === */
.site-header {
  grid-template-columns: auto 1fr auto !important;
}

.header-socials {
  display: none !important;
}

.brand-lockup.brand-text {
  justify-self: start !important;
  width: auto !important;
  display: inline-flex;
  align-items: center;
  color: var(--clip-red);
  font-family: "Fragment Mono", monospace;
  font-size: clamp(16px, 1.2vw, 22px);
  line-height: 1;
  letter-spacing: -.04em;
  text-transform: uppercase;
  font-weight: 700;
}

.brand-lockup.brand-text:hover {
  color: #ff3d3d;
}

.menu-links .menu-socials {
  border-bottom: 1px solid rgba(225, 225, 225, .10);
}

.menu-links .menu-socials summary {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 14px 0;
  font-size: clamp(44px, 7vw, 92px);
  letter-spacing: -.075em;
  line-height: .86;
  cursor: pointer;
  list-style: none;
  transition:
    color .35s var(--ease-out),
    transform .35s var(--ease-out);
}

.menu-links .menu-socials summary::-webkit-details-marker {
  display: none;
}

.menu-links .menu-socials summary:hover {
  color: var(--clip-red);
  transform: translateX(12px);
}

.menu-social-links {
  display: grid;
  gap: 2px;
  padding: 0 0 18px 32px;
}

.menu-social-links a {
  width: fit-content;
  display: inline-flex !important;
  padding: 8px 0 !important;
  border-bottom: 0 !important;
  color: rgba(225, 225, 225, .72);
  font-family: "Fragment Mono", monospace;
  font-size: 12px !important;
  line-height: 1.3 !important;
  letter-spacing: -.02em !important;
  text-transform: uppercase;
  transform: none !important;
}

.menu-social-links a:hover {
  color: var(--clip-red);
  transform: none !important;
}

.media-video-card {
  background: #000 !important;
}

.media-video-card::before {
  pointer-events: none;
}

.media-video-card iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #000;
}

.media-video-card:focus-within {
  border-color: rgba(253, 41, 41, .74);
}

@media (max-width: 760px) {
  .site-header {
    grid-template-columns: auto 1fr auto !important;
  }

  .brand-lockup.brand-text {
    width: auto !important;
    font-size: 16px;
  }

  .menu-links .menu-socials summary {
    font-size: clamp(42px, 14vw, 70px);
  }

  .menu-social-links {
    padding-left: 28px;
  }
}



/* === V7 fixes: clean hero preload, menu fit/scroll, socials hierarchy, artist emblem === */
.hero-stage,
.hero-video {
  background: #000 !important;
}

.hero-fallback {
  background: #000 !important;
  animation: none !important;
}

.hero-noise {
  display: none !important;
}

.menu-panel__inner {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
}

.menu-links {
  gap: 0 !important;
  margin: clamp(22px, 4vh, 46px) 0 !important;
}

.menu-links a,
.menu-links .menu-socials summary {
  padding: 9px 0 !important;
  font-size: clamp(36px, 5.35vw, 72px) !important;
  line-height: .86 !important;
}

.menu-social-links {
  gap: 4px !important;
  padding: 2px 0 16px clamp(30px, 4vw, 46px) !important;
}

.menu-social-links a {
  padding: 7px 0 !important;
  font-size: clamp(16px, 1.45vw, 22px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.045em !important;
  color: rgba(225, 225, 225, .82) !important;
}

.menu-social-links a:hover {
  color: var(--clip-red) !important;
}

.artist-card::before {
  width: 22px !important;
  height: 40px !important;
  inset: 18px auto auto 18px !important;
  clip-path: none !important;
  background: var(--clip-red) !important;
  -webkit-mask: url("../assets/brand/Union.svg") center / contain no-repeat;
  mask: url("../assets/brand/Union.svg") center / contain no-repeat;
}

@media (max-height: 820px) and (min-width: 761px) {
  .menu-panel__inner {
    padding-block: 28px !important;
  }

  .menu-links a,
  .menu-links .menu-socials summary {
    padding: 7px 0 !important;
    font-size: clamp(32px, 4.65vw, 60px) !important;
  }

  .menu-social-links a {
    font-size: clamp(15px, 1.2vw, 19px) !important;
    padding: 5px 0 !important;
  }
}

@media (max-width: 760px) {
  .menu-panel__inner {
    padding: 22px !important;
  }

  .menu-links {
    margin: 26px 0 !important;
  }

  .menu-links a,
  .menu-links .menu-socials summary {
    padding: 10px 0 !important;
    font-size: clamp(34px, 11.5vw, 56px) !important;
  }

  .menu-social-links {
    padding-left: 28px !important;
  }

  .menu-social-links a {
    font-size: 16px !important;
    padding: 6px 0 !important;
  }
}


/* === V8 refinement: clean card emblems + stronger SANDBOX text === */
.brand-lockup.brand-text {
  justify-self: start !important;
  width: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  color: var(--clip-red) !important;
  font-family:
    "Neue Haas Grotesk Display",
    "Neue Haas Grotesk",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif !important;
  font-size: clamp(20px, 1.45vw, 28px) !important;
  font-weight: 700 !important;
  line-height: .9 !important;
  letter-spacing: -.055em !important;
  text-transform: uppercase !important;
}

.location-card::before,
.artist-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 14px auto auto 14px !important;
  width: 22px !important;
  height: 42px !important;
  z-index: 8 !important;
  background: var(--clip-red) !important;
  clip-path: none !important;
  -webkit-mask: url("../assets/brand/Union.svg") center / contain no-repeat !important;
  mask: url("../assets/brand/Union.svg") center / contain no-repeat !important;
  pointer-events: none !important;
}

.media-card::before,
.media-video-card::before {
  content: none !important;
  display: none !important;
}

@media (max-width: 760px) {
  .brand-lockup.brand-text {
    font-size: 20px !important;
  }

  .location-card::before,
  .artist-card::before {
    inset: 13px auto auto 13px !important;
    width: 20px !important;
    height: 38px !important;
  }
}

/* === V9 refinement: make top-left SANDBOX wordmark match ticket button height === */
.brand-lockup.brand-text {
  min-height: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  font-family:
    "Neue Haas Grotesk Display",
    "Neue Haas Grotesk",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif !important;
  font-size: clamp(34px, 2.15vw, 42px) !important;
  font-weight: 800 !important;
  line-height: .86 !important;
  letter-spacing: -.075em !important;
  text-transform: uppercase !important;
}

.site-header.is-scrolled .brand-lockup.brand-text {
  min-height: 38px !important;
  height: 38px !important;
  font-size: clamp(30px, 1.85vw, 38px) !important;
}

@media (max-width: 760px) {
  .brand-lockup.brand-text {
    min-height: 38px !important;
    height: 38px !important;
    font-size: 34px !important;
    line-height: .86 !important;
  }

  .site-header.is-scrolled .brand-lockup.brand-text {
    min-height: 36px !important;
    height: 36px !important;
    font-size: 31px !important;
  }
}


/* === V10 refinement: section heading roll-in animation === */
.reveal-heading {
  opacity: 0;
  transform: translate3d(-64px, 0, 0);
  transition:
    transform .9s var(--ease-out),
    opacity .9s var(--ease-out),
    filter .9s var(--ease-out);
  transition-delay: 80ms;
  filter: blur(2px);
  will-change: transform, opacity, filter;
}

.reveal-heading .eyebrow,
.reveal-heading h2,
.reveal-heading p:not(.eyebrow),
.reveal-heading .carousel-actions {
  transition:
    transform .9s var(--ease-out),
    opacity .9s var(--ease-out);
}

.reveal-heading .eyebrow {
  opacity: 0;
  transform: translate3d(-22px, 0, 0);
}

.reveal-heading h2 {
  opacity: 0;
  transform: translate3d(-38px, 0, 0);
  transition-delay: 120ms;
}

.reveal-heading p:not(.eyebrow) {
  opacity: 0;
  transform: translate3d(-28px, 0, 0);
  transition-delay: 180ms;
}

.reveal-heading .carousel-actions {
  opacity: 0;
  transform: translate3d(-24px, 0, 0);
  transition-delay: 200ms;
}

.is-visible .reveal-heading,
.reveal-heading.is-visible {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
  filter: blur(0) !important;
}

.is-visible .reveal-heading .eyebrow,
.is-visible .reveal-heading h2,
.is-visible .reveal-heading p:not(.eyebrow),
.is-visible .reveal-heading .carousel-actions,
.reveal-heading.is-visible .eyebrow,
.reveal-heading.is-visible h2,
.reveal-heading.is-visible p:not(.eyebrow),
.reveal-heading.is-visible .carousel-actions {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
}

@media (max-width: 760px) {
  .reveal-heading {
    transform: translate3d(-34px, 0, 0);
  }

  .reveal-heading h2 {
    transform: translate3d(-28px, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal-heading,
  .reveal-heading .eyebrow,
  .reveal-heading h2,
  .reveal-heading p:not(.eyebrow),
  .reveal-heading .carousel-actions {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

/* === V11 refinement: seamless hero video autoplay + black fallback === */
.hero-stage,
.hero-video,
.hero-fallback {
  background: #000 !important;
}

.hero-video {
  opacity: 0;
  transition:
    opacity 700ms var(--ease-out),
    transform .65s var(--ease-out),
    filter .65s var(--ease-out) !important;
  will-change: opacity, transform, filter;
}

.hero-video.is-playing {
  opacity: 1;
}

.hero-video.is-buffering {
  opacity: 0;
}

.hero-fallback {
  background: #000 !important;
  animation: none !important;
}

body.hero-video-ready .hero-fallback {
  background: #000 !important;
}

body.hero-video-blocked .hero-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -6;
  background: #000;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .hero-video {
    transition: opacity .001ms linear !important;
  }
}


/* === V12 NEW LOOK: light-grey mockup system + requested section order === */
:root {
  --blackout: #282828;
  --blackout-deep: #e1e1e1;
  --clip-red: #848484;
  --off-white: #e1e1e1;
  --muted: #848484;
  --line: #848484;
  --glass: rgba(225, 225, 225, 0.74);
  --mockup-bg: #e1e1e1;
  --mockup-ink: #282828;
  --mockup-rule: #848484;
}

html {
  background: var(--mockup-bg) !important;
}

body {
  color: var(--mockup-ink) !important;
  background: var(--mockup-bg) !important;
  font-family:
    "Neue Haas Grotesk Display",
    "Neue Haas Grotesk",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif;
}

::selection {
  background: var(--mockup-ink) !important;
  color: var(--mockup-bg) !important;
}

.site-header {
  height: var(--header-h) !important;
  grid-template-columns: auto 1fr auto !important;
  background: linear-gradient(to bottom, rgba(0, 0, 0, .48), rgba(0, 0, 0, .12), transparent) !important;
  border-bottom: 0 !important;
  color: var(--mockup-bg) !important;
}

.site-header.is-scrolled {
  height: 68px !important;
  background: rgba(225, 225, 225, .92) !important;
  border-bottom: 1px solid rgba(132, 132, 132, .62) !important;
  backdrop-filter: blur(18px) !important;
  color: var(--mockup-ink) !important;
}

.brand-lockup.brand-text {
  color: currentColor !important;
}

.menu-trigger {
  color: currentColor !important;
}

.hamburger span {
  background: currentColor !important;
}

.ticket-button,
.button--solid {
  background: var(--mockup-ink) !important;
  border-color: var(--mockup-ink) !important;
  color: var(--mockup-bg) !important;
}

.ticket-button:hover,
.button--solid:hover {
  background: #111 !important;
  border-color: #111 !important;
}

.button--ghost {
  background: transparent !important;
  border-color: rgba(225, 225, 225, .55) !important;
  color: var(--mockup-bg) !important;
}

.button--ghost:hover {
  background: var(--mockup-bg) !important;
  color: var(--mockup-ink) !important;
}

.menu-panel__backdrop {
  background: rgba(40, 40, 40, .48) !important;
}

.menu-panel__inner {
  background: var(--mockup-bg) !important;
  color: var(--mockup-ink) !important;
  border-left: 1px solid var(--mockup-rule) !important;
}

.menu-close {
  border-color: var(--mockup-rule) !important;
  color: var(--mockup-ink) !important;
  background: transparent !important;
}

.menu-panel__meta,
.menu-links span,
.menu-panel__footer,
.menu-social-links a,
.menu-links .menu-socials summary:hover,
.menu-links a:hover {
  color: var(--mockup-rule) !important;
}

.menu-panel__meta img {
  filter: none !important;
  opacity: .58 !important;
}

.menu-links a,
.menu-links .menu-socials summary,
.menu-links .menu-socials {
  border-color: rgba(132, 132, 132, .48) !important;
}

.hero-stage,
.hero-video,
.hero-fallback {
  background: #000 !important;
}

.hero-copy,
.hero-data,
.scroll-indicator {
  color: var(--mockup-bg) !important;
}

.hero-copy .eyebrow,
.hero-micro {
  color: rgba(225, 225, 225, .78) !important;
}

.hero-copy .eyebrow img {
  filter: none !important;
  opacity: .72 !important;
}

.hero-subline {
  color: rgba(225, 225, 225, .86) !important;
}

.hero-data .divider {
  background: rgba(225, 225, 225, .35) !important;
}

.panel {
  background: var(--mockup-bg) !important;
  color: var(--mockup-ink) !important;
  border-top: 0 !important;
  min-height: 100svh;
}

.panel::before,
.about-panel::after,
.signup-panel::after,
.contact-panel::after {
  display: none !important;
}

.section-shell {
  padding:
    calc(var(--header-h) + clamp(36px, 6vh, 76px))
    clamp(34px, 4.8vw, 84px)
    clamp(56px, 7vh, 92px) !important;
  gap: clamp(48px, 7vh, 88px) !important;
}

.section-heading {
  max-width: 1180px !important;
}

.section-heading h2,
.form-copy h2,
.about-statement h2 {
  color: var(--mockup-ink) !important;
  font-weight: 700 !important;
  letter-spacing: -.085em !important;
  line-height: .88 !important;
}

.eyebrow {
  color: var(--mockup-rule) !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: clamp(12px, .95vw, 16px) !important;
  letter-spacing: -.055em !important;
  margin-bottom: clamp(18px, 2.4vh, 30px) !important;
}

.eyebrow img {
  width: 14px !important;
  filter: none !important;
  opacity: .58 !important;
}

.locations-panel,
.lineup-panel,
.artists-panel,
.media-panel,
.about-panel,
.signup-panel,
.contact-panel {
  background: var(--mockup-bg) !important;
}

.locations-panel .section-shell,
.media-panel .section-shell {
  position: relative !important;
}

.locations-panel .section-shell::after,
.media-panel .section-shell::after {
  content: "SDBX_2633.8688°\A S151.2093° E";
  white-space: pre;
  position: absolute;
  top: calc(var(--header-h) + clamp(42px, 7vh, 86px));
  right: clamp(34px, 4.8vw, 84px);
  color: var(--mockup-rule);
  font-family: "Fragment Mono", monospace;
  font-size: clamp(12px, 1vw, 16px);
  line-height: 1.25;
  text-align: right;
  letter-spacing: -.055em;
  text-transform: uppercase;
  pointer-events: none;
}

.locations-panel h2 {
  font-size: clamp(70px, 7.2vw, 124px) !important;
  text-transform: none !important;
}

.locations-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(18px, 1.5vw, 28px) !important;
}

.location-card,
.artist-card,
.media-card {
  border: 0 !important;
  background: #000 !important;
  box-shadow: none !important;
}

.location-card::before,
.artist-card::before,
.media-card::before,
.media-video-card::before {
  content: none !important;
  display: none !important;
}

.location-card {
  height: min(54vh, 570px) !important;
  min-height: 420px;
}

.location-card .location-video,
.location-card img,
.artist-card img,
.media-card img {
  filter: none !important;
  opacity: .92;
}

.location-card:hover .location-video,
.location-card:hover img,
.artist-card:hover img,
.media-card:hover img {
  filter: none !important;
  opacity: 1;
}

.location-card__content,
.artist-card div,
.media-card__label {
  background: linear-gradient(to top, rgba(0, 0, 0, .88), rgba(0, 0, 0, .32), transparent) !important;
}

.location-card__content {
  padding: clamp(18px, 2vw, 30px) !important;
}

.card-kicker,
.tiny,
.artist-card p,
.media-card p,
.mono {
  color: rgba(225, 225, 225, .72) !important;
  font-family: "Fragment Mono", monospace !important;
  letter-spacing: -.055em !important;
}

.card-kicker {
  color: #ff3b3b !important;
  margin-bottom: 8px !important;
}

.location-card h3,
.artist-card h3,
.media-card h3 {
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: -.075em !important;
  line-height: .88 !important;
}

.location-card .date {
  color: rgba(225, 225, 225, .75) !important;
  margin: 8px 0 14px !important;
}

.countdown {
  border-top: 1px solid rgba(225, 225, 225, .35) !important;
  color: rgba(225, 225, 225, .78) !important;
}

.countdown strong {
  color: #fff !important;
}

.artists-panel .section-shell,
.lineup-panel .section-shell {
  padding-left: clamp(0px, .35vw, 8px) !important;
  padding-right: clamp(0px, .35vw, 8px) !important;
}

.artists-panel .section-heading,
.lineup-panel .section-heading {
  width: min(1180px, calc(100% - 68px)) !important;
  margin: 0 auto !important;
  text-align: center !important;
}

.artists-panel .section-heading--row,
.lineup-panel .section-heading--row {
  display: block !important;
}

.artists-panel h2,
.lineup-panel h2 {
  margin-inline: auto !important;
  max-width: 1160px !important;
  font-size: clamp(46px, 5.35vw, 86px) !important;
  text-transform: uppercase !important;
}

.artists-panel .carousel-actions,
.lineup-panel .carousel-actions {
  display: none !important;
}

.carousel-track {
  gap: clamp(10px, 1vw, 18px) !important;
  padding-inline: 0 !important;
}

.artist-track {
  grid-auto-columns: minmax(230px, 19.35vw) !important;
}

.artist-card {
  height: min(53vh, 570px) !important;
  min-height: 420px;
}

.artist-card img {
  filter: none !important;
  opacity: .94 !important;
}

.artist-card div {
  padding: clamp(18px, 2vw, 30px) !important;
}

.artist-card h3 {
  font-size: clamp(30px, 3vw, 48px) !important;
}

.about-panel {
  min-height: 74svh !important;
}

.about-statement-shell {
  justify-content: center !important;
  text-align: center !important;
}

.about-statement {
  max-width: min(1460px, 94vw) !important;
  margin: 0 auto !important;
}

.about-statement .eyebrow {
  justify-content: center !important;
}

.about-statement h2 {
  margin: 0 auto !important;
  font-size: clamp(38px, 5.15vw, 86px) !important;
  line-height: .98 !important;
  text-transform: uppercase !important;
}

.about-signup-button {
  width: min(520px, 100%) !important;
  min-height: 58px !important;
  margin-top: clamp(34px, 6vh, 72px) !important;
}

.media-panel h2 {
  font-size: clamp(66px, 6.8vw, 116px) !important;
  text-transform: none !important;
}

.media-track {
  grid-auto-columns: minmax(300px, 24vw) !important;
  gap: clamp(16px, 1.5vw, 28px) !important;
}

.media-card {
  height: min(50vh, 520px) !important;
  min-height: 380px;
}

.media-card__label {
  position: absolute !important;
  inset: auto 0 0 0 !important;
  z-index: 5 !important;
  padding: clamp(18px, 2vw, 28px) !important;
  pointer-events: none !important;
}

.media-card__label p {
  margin-bottom: 8px !important;
  color: #ff3b3b !important;
}

.media-card__label h3 {
  margin: 0 !important;
  font-size: clamp(30px, 3vw, 46px) !important;
}

.media-video-card iframe {
  opacity: .72;
  filter: saturate(.92) contrast(1.08) brightness(.86);
  transition: opacity .35s var(--ease-out), filter .35s var(--ease-out);
}

.media-video-card:hover iframe,
.media-video-card:focus-within iframe {
  opacity: 1;
  filter: none;
}

.signup-panel,
.contact-panel {
  min-height: auto !important;
}

.signup-panel .section-shell,
.contact-panel .section-shell {
  border-top: 1px solid var(--mockup-rule) !important;
  padding-top: clamp(70px, 9vh, 116px) !important;
  padding-bottom: clamp(70px, 9vh, 116px) !important;
}

.form-grid {
  grid-template-columns: minmax(280px, .64fr) minmax(420px, 1fr) !important;
  gap: clamp(42px, 8vw, 150px) !important;
  align-items: start !important;
}

.form-copy h2 {
  font-size: clamp(58px, 6vw, 108px) !important;
  line-height: .82 !important;
  margin-bottom: clamp(24px, 3vh, 38px) !important;
}

.form-copy p:not(.eyebrow) {
  color: var(--mockup-ink) !important;
  font-size: clamp(20px, 1.9vw, 30px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.065em !important;
  max-width: 510px !important;
}

.site-form {
  gap: 14px !important;
}

.field-row {
  gap: 14px !important;
}

input,
select,
textarea,
.consent-field {
  border: 1px solid var(--mockup-rule) !important;
  background: transparent !important;
  color: var(--mockup-ink) !important;
  min-height: 64px !important;
  font-weight: 600 !important;
}

input,
select,
textarea {
  padding: 0 28px !important;
}

textarea {
  padding-top: 22px !important;
}

input::placeholder,
textarea::placeholder {
  color: var(--mockup-ink) !important;
  opacity: 1 !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--mockup-ink) !important;
  background: rgba(40, 40, 40, .035) !important;
}

.consent-field {
  min-height: 64px !important;
  align-items: center !important;
}

.consent-field input {
  border-color: var(--mockup-rule) !important;
  accent-color: var(--mockup-ink) !important;
  min-height: auto !important;
}

.consent-field span {
  color: var(--mockup-ink) !important;
  opacity: .9 !important;
  font-size: 12px !important;
}

.consent-field a,
.form-status {
  color: var(--mockup-ink) !important;
}

.site-form .button {
  min-height: 66px !important;
  margin-top: 0 !important;
  font-weight: 700 !important;
}

.site-footer {
  display: grid !important;
  min-height: auto !important;
  padding: 0 clamp(34px, 4.8vw, 84px) clamp(30px, 4vh, 46px) !important;
  gap: clamp(24px, 4vh, 48px) !important;
  background: var(--mockup-bg) !important;
  color: var(--mockup-ink) !important;
  border-top: 0 !important;
}

.footer-topline,
.footer-bottomline {
  height: 1px;
  background: var(--mockup-rule);
  width: 100%;
}

.footer-nav-columns {
  display: grid;
  grid-template-columns: minmax(180px, 220px) minmax(180px, 220px);
  gap: clamp(50px, 10vw, 160px);
  padding: clamp(22px, 4vh, 42px) 0 clamp(22px, 4vh, 42px) clamp(6px, 2vw, 28px);
}

.footer-link-list {
  display: grid;
  align-content: start;
  gap: 0;
}

.footer-link-list a,
.footer-link-list p {
  margin: 0;
  color: var(--mockup-ink);
  font-size: clamp(22px, 1.8vw, 31px);
  font-weight: 700;
  letter-spacing: -.08em;
  line-height: .92;
}

.footer-social-text a,
.footer-social-text p {
  color: var(--mockup-rule);
}

.footer-link-list a:hover {
  color: #111;
}

.footer-brand-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.footer-wordmark {
  color: var(--mockup-ink);
  font-size: clamp(36px, 3vw, 58px);
  font-weight: 800;
  letter-spacing: -.09em;
  line-height: .86;
}

.footer-brand-row p {
  margin: 0;
  color: var(--mockup-ink);
  font-family: "Fragment Mono", monospace;
  font-size: clamp(14px, 1.2vw, 21px);
  letter-spacing: -.055em;
  text-transform: uppercase;
}

.reveal-heading,
.location-card,
.artist-card,
.media-card {
  will-change: transform, opacity;
}

@media (max-width: 1100px) {
  .locations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .location-card {
    height: 48vh !important;
  }

  .form-grid {
    grid-template-columns: 1fr !important;
    gap: 42px !important;
  }

  .artists-panel h2,
  .lineup-panel h2 {
    font-size: clamp(42px, 6.8vw, 76px) !important;
  }
}

@media (max-width: 760px) {
  :root {
    --header-h: 70px;
  }

  .site-header {
    padding-inline: 14px !important;
  }

  .brand-lockup.brand-text {
    color: currentColor !important;
  }

  .ticket-button span:first-child {
    display: inline !important;
  }

  .ticket-button {
    min-height: 38px !important;
    padding: 0 12px !important;
    font-size: 10px !important;
  }

  .section-shell {
    padding:
      calc(var(--header-h) + 42px)
      16px
      64px !important;
    gap: 32px !important;
  }

  .locations-panel .section-shell::after,
  .media-panel .section-shell::after {
    display: none !important;
  }

  .locations-panel h2,
  .media-panel h2 {
    font-size: clamp(54px, 16vw, 76px) !important;
  }

  .locations-grid {
    display: flex !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
  }

  .location-card {
    min-width: 82vw !important;
    height: 56vh !important;
    min-height: 390px !important;
  }

  .artist-track {
    grid-auto-columns: minmax(74vw, 74vw) !important;
  }

  .media-track {
    grid-auto-columns: minmax(82vw, 82vw) !important;
  }

  .artist-card,
  .media-card {
    height: 54vh !important;
    min-height: 360px !important;
  }

  .artists-panel .section-shell,
  .lineup-panel .section-shell {
    padding-inline: 0 !important;
  }

  .artists-panel .section-heading,
  .lineup-panel .section-heading {
    width: calc(100% - 32px) !important;
  }

  .artists-panel h2,
  .lineup-panel h2 {
    font-size: clamp(34px, 11vw, 58px) !important;
  }

  .about-panel {
    min-height: auto !important;
  }

  .about-statement h2 {
    font-size: clamp(32px, 10vw, 54px) !important;
  }

  .about-signup-button {
    min-height: 54px !important;
  }

  .signup-panel .section-shell,
  .contact-panel .section-shell {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  .form-copy h2 {
    font-size: clamp(52px, 16vw, 82px) !important;
  }

  .field-row {
    grid-template-columns: 1fr !important;
  }

  input,
  select,
  textarea,
  .consent-field,
  .site-form .button {
    min-height: 58px !important;
  }

  input,
  select,
  textarea {
    padding-inline: 18px !important;
  }

  .site-footer {
    padding-inline: 16px !important;
  }

  .footer-nav-columns {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding-left: 0;
  }

  .footer-brand-row {
    align-items: start;
    flex-direction: column;
  }

  .footer-brand-row p {
    font-size: 13px;
  }
}

@media (max-width: 430px) {
  .ticket-button span:first-child {
    display: none !important;
  }

  .footer-nav-columns {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}


/* === V13 refinements: hero ticket state, title line locks, media controls, footer blend === */
.site-header .ticket-button {
  background: var(--mockup-ink) !important;
  border-color: var(--mockup-ink) !important;
  color: var(--mockup-bg) !important;
}

body.is-on-hero .site-header .ticket-button {
  background: var(--mockup-bg) !important;
  border-color: var(--mockup-bg) !important;
  color: var(--mockup-ink) !important;
}

body.is-on-hero .site-header .ticket-button:hover {
  background: #f2f2f2 !important;
  border-color: #f2f2f2 !important;
  color: var(--mockup-ink) !important;
}

body.is-past-hero .site-header .ticket-button,
.site-header.is-scrolled .ticket-button {
  background: var(--mockup-ink) !important;
  border-color: var(--mockup-ink) !important;
  color: var(--mockup-bg) !important;
}

body.is-past-hero .site-header .ticket-button:hover,
.site-header.is-scrolled .ticket-button:hover {
  background: #111 !important;
  border-color: #111 !important;
  color: var(--mockup-bg) !important;
}

.artists-title,
.about-title {
  width: 100% !important;
}

.artists-title span,
.about-title span {
  display: block !important;
  white-space: nowrap !important;
}

.artists-panel .artists-title {
  max-width: none !important;
  font-size: clamp(38px, 5.2vw, 82px) !important;
  line-height: .9 !important;
}

.about-statement .about-title {
  max-width: none !important;
  font-size: clamp(34px, 4.15vw, 76px) !important;
  line-height: 1.02 !important;
}

.media-panel .section-heading,
.media-panel .section-heading.section-heading--row {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  text-align: left !important;
}

.media-panel .section-heading--row {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 28px !important;
}

.media-panel .carousel-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin-left: auto !important;
  flex: 0 0 auto !important;
}

.media-panel .carousel-actions button {
  background: var(--mockup-ink) !important;
  border-color: var(--mockup-ink) !important;
  color: var(--mockup-bg) !important;
}

.media-panel .carousel-actions button:hover {
  background: #111 !important;
  border-color: #111 !important;
  color: var(--mockup-bg) !important;
}

.site-footer {
  border-top: 0 !important;
  padding-top: 0 !important;
}

.footer-topline {
  display: none !important;
}

@media (max-width: 1100px) {
  .artists-panel .artists-title {
    font-size: clamp(30px, 5.8vw, 64px) !important;
  }

  .about-statement .about-title {
    font-size: clamp(28px, 4.9vw, 58px) !important;
  }
}

@media (max-width: 760px) {
  .media-panel .section-heading--row {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .media-panel .carousel-actions {
    align-self: flex-end !important;
  }

  .artists-title span,
  .about-title span {
    white-space: normal !important;
  }
}

/* Hero state takes priority over the generic scrolled header state. */
body.is-on-hero .site-header.is-scrolled .ticket-button {
  background: var(--mockup-bg) !important;
  border-color: var(--mockup-bg) !important;
  color: var(--mockup-ink) !important;
}

body.is-on-hero .site-header.is-scrolled .ticket-button:hover {
  background: #f2f2f2 !important;
  border-color: #f2f2f2 !important;
  color: var(--mockup-ink) !important;
}

/* === V14 refinements: transparent hero header + full-screen info sections === */
.site-header {
  background: transparent !important;
  border-bottom: 0 !important;
  backdrop-filter: none !important;
  color: var(--mockup-bg) !important;
}

body.is-on-hero .site-header,
body.is-on-hero .site-header.is-scrolled {
  height: var(--header-h) !important;
  background: transparent !important;
  border-bottom: 0 !important;
  backdrop-filter: none !important;
  color: var(--mockup-bg) !important;
}

body.is-past-hero .site-header,
body.is-past-hero .site-header.is-scrolled {
  height: 68px !important;
  background: rgba(225, 225, 225, .92) !important;
  border-bottom: 1px solid rgba(132, 132, 132, .62) !important;
  backdrop-filter: blur(18px) !important;
  color: var(--mockup-ink) !important;
}

body.is-on-hero .brand-lockup.brand-text,
body.is-on-hero .menu-trigger,
body.is-on-hero .hamburger span {
  color: var(--mockup-bg) !important;
}

body.is-past-hero .brand-lockup.brand-text,
body.is-past-hero .menu-trigger,
body.is-past-hero .hamburger span {
  color: var(--mockup-ink) !important;
}

body.is-on-hero .hamburger span {
  background: var(--mockup-bg) !important;
}

body.is-past-hero .hamburger span {
  background: var(--mockup-ink) !important;
}

.about-panel,
.signup-panel,
.contact-panel {
  min-height: 100svh !important;
  display: flex !important;
  align-items: stretch !important;
}

.about-panel .section-shell,
.signup-panel .section-shell,
.contact-panel .section-shell {
  min-height: 100svh !important;
  width: 100% !important;
  justify-content: center !important;
}

.signup-panel .section-shell,
.contact-panel .section-shell {
  padding-top: calc(var(--header-h) + clamp(36px, 6vh, 76px)) !important;
  padding-bottom: clamp(56px, 7vh, 92px) !important;
}

.about-statement-shell {
  min-height: 100svh !important;
}

@media (max-width: 760px) {
  body.is-on-hero .site-header,
  body.is-on-hero .site-header.is-scrolled {
    height: var(--header-h) !important;
  }

  body.is-past-hero .site-header,
  body.is-past-hero .site-header.is-scrolled {
    height: 64px !important;
  }

  .about-panel,
  .signup-panel,
  .contact-panel,
  .about-panel .section-shell,
  .signup-panel .section-shell,
  .contact-panel .section-shell {
    min-height: 100svh !important;
  }

  .signup-panel .section-shell,
  .contact-panel .section-shell {
    padding-top: calc(var(--header-h) + 42px) !important;
    padding-bottom: 64px !important;
  }
}

/* === V15 refinements: centred forms, updated tagline, faster hero exit === */
.hero-scroll {
  height: 100svh !important;
  min-height: 100svh !important;
}

.hero-stage {
  position: relative !important;
  min-height: 100svh !important;
}

.signup-panel .form-grid,
.contact-panel .form-grid {
  align-content: center !important;
  align-items: center !important;
}

.signup-panel .section-shell,
.contact-panel .section-shell {
  padding-top: clamp(72px, 8vh, 104px) !important;
  padding-bottom: clamp(72px, 8vh, 104px) !important;
}

.footer-brand-row p,
.menu-panel__meta p {
  text-transform: uppercase !important;
}

@media (max-width: 760px) {
  .hero-scroll {
    height: 100svh !important;
    min-height: 100svh !important;
  }

  .signup-panel .form-grid,
  .contact-panel .form-grid {
    align-content: center !important;
    align-items: start !important;
  }

  .signup-panel .section-shell,
  .contact-panel .section-shell {
    padding-top: calc(var(--header-h) + 28px) !important;
    padding-bottom: 56px !important;
  }
}



/* === V16 refinements: red signup eyebrow, fixed artist title, clean media cards, centred hero countdown === */
.hero-copy {
  display: none !important;
}

.hero-center-event {
  position: absolute;
  z-index: 5;
  left: 50%;
  top: 50%;
  width: min(540px, calc(100vw - 44px));
  transform: translate(-50%, -50%);
  display: grid;
  justify-items: center;
  gap: clamp(10px, 1.3vh, 18px);
  color: var(--mockup-bg);
  text-align: center;
  pointer-events: none;
}

.hero-center-event img {
  width: clamp(28px, 3.2vw, 54px);
  height: auto;
  filter: none !important;
  opacity: .92;
}

.hero-center-event__kicker,
.hero-center-event__date {
  margin: 0;
  color: var(--mockup-bg);
  text-transform: uppercase;
}

.hero-center-event__kicker {
  font-size: clamp(44px, 6.6vw, 118px);
  font-weight: 800;
  letter-spacing: -.09em;
  line-height: .82;
}

.hero-center-event__date {
  font-family: "Fragment Mono", monospace;
  font-size: clamp(11px, 1vw, 15px);
  letter-spacing: -.055em;
  color: rgba(225, 225, 225, .82);
}

.hero-countdown {
  width: min(500px, 100%);
  justify-content: center;
  gap: clamp(14px, 2.4vw, 34px);
  padding-top: clamp(14px, 2vh, 24px);
  margin-top: clamp(4px, .8vh, 10px);
  border-top: 1px solid rgba(225, 225, 225, .55) !important;
  color: rgba(225, 225, 225, .82) !important;
}

.hero-countdown strong {
  color: #fff !important;
  font-size: clamp(24px, 3.1vw, 56px) !important;
  font-weight: 500 !important;
}

.signup-panel .eyebrow {
  color: #FD2929 !important;
}

.signup-panel .eyebrow img {
  opacity: 1 !important;
  filter:
    invert(23%)
    sepia(98%)
    saturate(3865%)
    hue-rotate(348deg)
    brightness(104%)
    contrast(101%) !important;
}

.artists-panel .section-heading,
.lineup-panel .section-heading {
  width: min(1680px, calc(100% - 68px)) !important;
  max-width: none !important;
  overflow: visible !important;
}

.artists-panel .artists-title {
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  font-size: clamp(36px, 3.45vw, 88px) !important;
  line-height: .92 !important;
  letter-spacing: -.09em !important;
  overflow: visible !important;
}

.artists-panel .artists-title span {
  display: block !important;
  white-space: nowrap !important;
}

.media-card__label {
  display: none !important;
}

.media-video-card iframe {
  opacity: 1 !important;
  filter: none !important;
}

@media (max-width: 1100px) {
  .artists-panel .section-heading,
  .lineup-panel .section-heading {
    width: calc(100% - 40px) !important;
  }

  .artists-panel .artists-title {
    font-size: clamp(32px, 4.6vw, 58px) !important;
  }
}

@media (max-width: 760px) {
  .hero-center-event {
    width: min(360px, calc(100vw - 32px));
  }

  .hero-center-event__kicker {
    font-size: clamp(42px, 15vw, 74px);
  }

  .hero-countdown {
    gap: 12px;
  }

  .hero-countdown strong {
    font-size: clamp(20px, 7vw, 30px) !important;
  }

  .artists-panel .artists-title span {
    white-space: normal !important;
  }
}

/* === V17 refinement: equal-size hero countdown city cycle === */
.hero-center-event {
  --hero-cycle-size: clamp(11px, 1vw, 15px);
  width: min(520px, calc(100vw - 44px)) !important;
  min-height: clamp(168px, 19vh, 224px) !important;
  color: #E1E1E1 !important;
  font-family: "Fragment Mono", monospace !important;
  text-transform: uppercase !important;
  letter-spacing: -.055em !important;
}

.hero-countdown-slide {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  align-content: center;
  justify-items: center;
  gap: clamp(10px, 1.3vh, 16px);
  opacity: 0;
  transform: translateY(8px);
  animation: heroCountdownCycle 12s var(--ease-out) infinite;
  animation-delay: calc(var(--cycle-index, 0) * 3s);
  pointer-events: none;
}

.hero-center-event__emblem {
  display: block;
  width: var(--hero-cycle-size);
  height: var(--hero-cycle-size);
  background: #E1E1E1;
  -webkit-mask: url("../assets/brand/Union.svg") center / contain no-repeat;
  mask: url("../assets/brand/Union.svg") center / contain no-repeat;
}

.hero-center-event__city,
.hero-center-event__date {
  margin: 0 !important;
  color: #E1E1E1 !important;
  font-size: var(--hero-cycle-size) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -.055em !important;
}

.hero-countdown {
  width: auto !important;
  justify-content: center !important;
  gap: clamp(12px, 1.5vw, 22px) !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  border-top: 0 !important;
  color: #E1E1E1 !important;
  font-size: var(--hero-cycle-size) !important;
  letter-spacing: -.055em !important;
}

.hero-countdown span,
.hero-countdown strong {
  color: #E1E1E1 !important;
  font-size: var(--hero-cycle-size) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

@keyframes heroCountdownCycle {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  6% {
    opacity: 1;
    transform: translateY(0);
  }
  21% {
    opacity: 1;
    transform: translateY(0);
  }
  27% {
    opacity: 0;
    transform: translateY(-8px);
  }
  100% {
    opacity: 0;
    transform: translateY(-8px);
  }
}

@media (max-width: 760px) {
  .hero-center-event {
    --hero-cycle-size: clamp(11px, 3.4vw, 15px);
    width: min(340px, calc(100vw - 32px)) !important;
    min-height: 178px !important;
  }

  .hero-countdown {
    gap: 12px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-countdown-slide {
    animation: none !important;
    opacity: 0 !important;
    transform: none !important;
  }

  .hero-countdown-slide:first-child {
    opacity: 1 !important;
  }
}

/* === V18 refinement: keep SANDBOX navbar wordmark size consistent after hero === */
.site-header.is-scrolled .brand-lockup.brand-text,
body.is-past-hero .site-header .brand-lockup.brand-text,
body.is-past-hero .site-header.is-scrolled .brand-lockup.brand-text {
  min-height: 42px !important;
  height: 42px !important;
  font-size: clamp(34px, 2.15vw, 42px) !important;
  line-height: .86 !important;
}

@media (max-width: 760px) {
  .site-header.is-scrolled .brand-lockup.brand-text,
  body.is-past-hero .site-header .brand-lockup.brand-text,
  body.is-past-hero .site-header.is-scrolled .brand-lockup.brand-text {
    min-height: 38px !important;
    height: 38px !important;
    font-size: 34px !important;
    line-height: .86 !important;
  }
}

/* === V19 refinement: stop artist names clipping inside cards === */
.artist-card div {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding: clamp(16px, 1.45vw, 24px) !important;
  overflow: visible !important;
}

.artist-card h3 {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  font-size: clamp(24px, 2.35vw, 40px) !important;
  line-height: .88 !important;
  letter-spacing: -.075em !important;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance;
}

@media (max-width: 760px) {
  .artist-card div {
    padding: 18px !important;
  }

  .artist-card h3 {
    font-size: clamp(28px, 10vw, 38px) !important;
  }
}

/* === V20 refinement: section-title tracking + location GMT grey === */
.eyebrow,
.section-heading .eyebrow,
.form-copy .eyebrow,
.about-statement .eyebrow,
.menu-panel__meta,
.card-kicker,
.tiny {
  letter-spacing: .035em !important;
}

.card-kicker,
.location-card .card-kicker {
  color: var(--mockup-rule) !important;
}

.signup-panel .eyebrow {
  letter-spacing: .035em !important;
}

/* === V21 refinement: hero cleanup + emblem sizing + GMT date-grey match === */
.hero-data {
  display: none !important;
}

.hero-center-event__emblem {
  width: 75px !important;
  height: 88px !important;
}

.card-kicker,
.location-card .card-kicker {
  color: rgba(225, 225, 225, .75) !important;
}

@media (max-width: 760px) {
  .hero-center-event__emblem {
    width: 75px !important;
    height: 88px !important;
  }
}

/* === V22 refinement: mobile-only vertical spacing optimisation === */
@media (max-width: 760px) {
  /* Stop non-hero sections from forcing a full viewport height on mobile. */
  .locations-panel,
  .artists-panel,
  .lineup-panel,
  .about-panel,
  .media-panel,
  .signup-panel,
  .contact-panel {
    min-height: auto !important;
    display: block !important;
  }

  .locations-panel .section-shell,
  .artists-panel .section-shell,
  .lineup-panel .section-shell,
  .about-panel .section-shell,
  .media-panel .section-shell,
  .signup-panel .section-shell,
  .contact-panel .section-shell,
  .about-statement-shell {
    min-height: auto !important;
    justify-content: flex-start !important;
    align-content: start !important;
  }

  /* Tighter section rhythm on mobile only. */
  .locations-panel .section-shell {
    padding: 28px 14px 34px !important;
    gap: 22px !important;
  }

  .artists-panel .section-shell,
  .lineup-panel .section-shell {
    padding: 40px 0 34px !important;
    gap: 24px !important;
  }

  .about-panel .section-shell,
  .about-statement-shell {
    padding: 42px 16px 34px !important;
    gap: 26px !important;
  }

  .media-panel .section-shell {
    padding: 38px 16px 44px !important;
    gap: 28px !important;
  }

  .signup-panel .section-shell,
  .contact-panel .section-shell {
    padding: 42px 16px 48px !important;
    gap: 28px !important;
  }

  /* Remove the extra breathing room created by carousel/card defaults. */
  .locations-grid,
  .carousel-track,
  .artist-track,
  .media-track {
    padding-bottom: 0 !important;
  }

  .location-card {
    height: 50vh !important;
    min-height: 335px !important;
  }

  .artist-card {
    height: 42vh !important;
    min-height: 290px !important;
  }

  .media-card {
    height: 34vh !important;
    min-height: 245px !important;
  }

  .about-signup-button {
    margin-top: 28px !important;
  }

  .about-statement h2,
  .about-statement .about-title {
    margin-bottom: 0 !important;
  }

  .form-grid {
    gap: 28px !important;
  }

  .form-copy h2 {
    margin-bottom: 18px !important;
  }

  .form-copy p:not(.eyebrow) {
    margin-bottom: 0 !important;
  }
}

@media (max-width: 430px) {
  .artists-panel .section-shell,
  .lineup-panel .section-shell {
    padding-top: 34px !important;
    padding-bottom: 30px !important;
  }

  .about-panel .section-shell,
  .about-statement-shell {
    padding-top: 36px !important;
    padding-bottom: 30px !important;
  }

  .media-panel .section-shell {
    padding-top: 34px !important;
    padding-bottom: 38px !important;
  }

  .location-card {
    height: 48vh !important;
    min-height: 315px !important;
  }

  .artist-card {
    height: 38vh !important;
    min-height: 270px !important;
  }
}

/* === V23 refinement: mobile hero full-screen + safer anchor jumps === */
@media (max-width: 760px) {
  html {
    scroll-padding-top: calc(var(--header-h) + 28px) !important;
  }

  #hero {
    scroll-margin-top: 0 !important;
  }

  main > section[id]:not(#hero),
  .panel[id]:not(#hero) {
    scroll-margin-top: calc(var(--header-h) + 28px) !important;
  }

  .hero-scroll {
    height: 100vh !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
  }

  .hero-stage {
    position: relative !important;
    height: 100vh !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
  }

  .hero-video,
  .hero-fallback,
  .hero-vignette,
  .hero-noise {
    height: 100% !important;
  }
}

/* === V24 refinement: remove media carousel buttons on mobile only === */
@media (max-width: 760px) {
  .media-panel .carousel-actions {
    display: none !important;
  }
}

/* === V24 refinement: static hero emblem with cycling city/date/timer only === */
.hero-center-event {
  display: grid !important;
  justify-items: center !important;
  align-content: center !important;
  gap: clamp(10px, 1.3vh, 16px) !important;
}

.hero-center-event__emblem--static {
  display: block !important;
  width: 75px !important;
  height: 88px !important;
  flex: 0 0 auto !important;
  background: #E1E1E1 !important;
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  -webkit-mask: url("../assets/brand/Union.svg") center / contain no-repeat !important;
  mask: url("../assets/brand/Union.svg") center / contain no-repeat !important;
}

.hero-countdown-cycle {
  position: relative !important;
  width: 100% !important;
  min-height: calc((var(--hero-cycle-size) * 3) + 34px) !important;
}

.hero-countdown-slide {
  inset: 0 !important;
}

.hero-countdown-slide > .hero-center-event__emblem:not(.hero-center-event__emblem--static) {
  display: none !important;
}

@media (max-width: 760px) {
  .hero-center-event {
    gap: 12px !important;
  }

  .hero-countdown-cycle {
    min-height: calc((var(--hero-cycle-size) * 3) + 32px) !important;
  }
}

/* === V25 cleanup: SVG wordmark, medium Neue Haas, centred about, clean co-ords === */
@font-face {
  font-family: "Neue Haas Grotesk Display";
  src: url("../assets/fonts/NHaasGroteskDSPro-65Md.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

html,
body,
body *,
button,
input,
select,
textarea {
  font-family:
    "Neue Haas Grotesk Display",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
.brand-lockup,
.footer-wordmark,
.footer-link-list a,
.footer-link-list p,
.section-heading h2,
.form-copy h2,
.about-statement h2,
.location-card h3,
.artist-card h3,
.media-card h3,
.button,
.ticket-button,
.menu-trigger,
.menu-links a,
.menu-links .menu-socials summary,
.menu-social-links a,
.eyebrow,
.card-kicker,
.tiny,
.countdown,
.countdown strong,
.hero-center-event__city,
.hero-center-event__date,
.hero-countdown,
.hero-countdown span,
.hero-countdown strong,
input,
select,
textarea,
.consent-field span {
  font-weight: 500 !important;
}

/* Navbar SVG wordmark: same visual footprint as the old typed SANDBOX. */
.brand-lockup.brand-logo {
  justify-self: start !important;
  width: auto !important;
  min-height: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
}

.brand-lockup.brand-logo img {
  display: block !important;
  width: auto !important;
  height: clamp(30px, 2.15vw, 42px) !important;
  max-width: clamp(170px, 14vw, 240px) !important;
  filter: none !important;
  opacity: 1 !important;
}

body.is-on-hero .site-header .brand-lockup.brand-logo img,
body:not(.is-past-hero) .site-header .brand-lockup.brand-logo img {
  filter: brightness(0) invert(1) !important;
}

body.is-past-hero .site-header .brand-lockup.brand-logo img,
.site-header.is-scrolled .brand-lockup.brand-logo img {
  filter: none !important;
}

.site-header.is-scrolled .brand-lockup.brand-logo,
body.is-past-hero .site-header .brand-lockup.brand-logo,
body.is-past-hero .site-header.is-scrolled .brand-lockup.brand-logo {
  min-height: 42px !important;
  height: 42px !important;
}

.header-actions {
  gap: clamp(20px, 2.2vw, 36px) !important;
}

/* Remove the SDBX coordinate text from locations/media. */
.locations-panel .section-shell::after,
.media-panel .section-shell::after {
  content: none !important;
  display: none !important;
}

/* Keep about copy perfectly centred and contained inside viewport. */
.about-statement-shell {
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  overflow: hidden !important;
}

.about-statement {
  width: 100% !important;
  max-width: min(1380px, calc(100vw - 120px)) !important;
  margin-inline: auto !important;
  text-align: center !important;
}

.about-statement .about-title {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  text-align: center !important;
  font-size: clamp(32px, 3.55vw, 62px) !important;
  line-height: 1.04 !important;
  letter-spacing: -.082em !important;
  overflow: visible !important;
}

.about-statement .about-title span {
  display: block !important;
  white-space: nowrap !important;
  text-align: center !important;
}

/* Contact has been removed from the HTML; keep this as a defensive cleanup. */
.contact-panel,
.menu-links a[href="#contact"] {
  display: none !important;
}

@media (max-width: 760px) {
  .brand-lockup.brand-logo {
    min-height: 38px !important;
    height: 38px !important;
  }

  .brand-lockup.brand-logo img {
    height: 34px !important;
    max-width: 220px !important;
  }

  .site-header.is-scrolled .brand-lockup.brand-logo,
  body.is-past-hero .site-header .brand-lockup.brand-logo,
  body.is-past-hero .site-header.is-scrolled .brand-lockup.brand-logo {
    min-height: 38px !important;
    height: 38px !important;
  }

  .header-actions {
    gap: 16px !important;
  }

  .about-statement {
    max-width: calc(100vw - 32px) !important;
  }

  .about-statement .about-title {
    font-size: clamp(30px, 9.2vw, 42px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.08em !important;
  }

  .about-statement .about-title span {
    white-space: normal !important;
  }
}


/* === V26 fix: relative logo/font assets + carousel timing support === */
.brand-lockup.brand-logo img {
  display: block !important;
}

.carousel-track.is-autoscroll-ready {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  .carousel-track.is-autoscroll-ready {
    scroll-behavior: auto;
  }
}


/* === V28 refinement: footer SVG wordmark matches navbar colour === */
.footer-brand-logo {
  filter: brightness(0) saturate(100%) invert(14%) sepia(0%) saturate(0%) hue-rotate(180deg) brightness(95%) contrast(90%) !important;
}


/* === V30 Formspree newsletter integration === */
.newsletter-form .field-error,
.newsletter-form .form-status {
  display: block;
  margin: 0;
  color: var(--mockup-ink) !important;
  font-family:
    "Neue Haas Grotesk Display",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .02em !important;
  line-height: 1.35 !important;
  text-transform: uppercase;
}

.newsletter-form .field-error {
  margin-top: -2px;
  color: #fd2929 !important;
}

.newsletter-form .field-error:empty,
.newsletter-form .form-status:empty {
  display: none;
}

.newsletter-form [data-fs-field][aria-invalid="true"] {
  border-color: #fd2929 !important;
}

.newsletter-form .form-status--success:not(:empty) {
  color: var(--mockup-ink) !important;
}

.newsletter-form .form-status--error:not(:empty) {
  color: #fd2929 !important;
}

.newsletter-form .form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.newsletter-form button[disabled],
.newsletter-form [data-fs-submit-btn][disabled] {
  cursor: wait !important;
  opacity: .68 !important;
}


/* === V31 refinement: restore readable font spacing + clean Formspree success message === */
/* The Medium Neue Haas file has tighter side-bearings than the previous fallback;
   this pass opens up display and utility text without changing the layout system. */
.section-heading h2,
.form-copy h2,
.about-statement h2,
.locations-panel h2,
.media-panel h2,
.artists-panel .artists-title,
.lineup-panel h2,
.about-statement .about-title {
  letter-spacing: -0.045em !important;
  word-spacing: 0.055em !important;
  line-height: 1.02 !important;
}

.locations-panel h2,
.media-panel h2 {
  letter-spacing: -0.04em !important;
  word-spacing: 0.075em !important;
}

.artists-panel .artists-title {
  letter-spacing: -0.045em !important;
  word-spacing: 0.045em !important;
  line-height: 0.98 !important;
}

.about-statement .about-title {
  letter-spacing: -0.04em !important;
  word-spacing: 0.055em !important;
  line-height: 1.09 !important;
}

.location-card h3,
.artist-card h3,
.media-card h3,
.footer-link-list a,
.footer-link-list p,
.menu-links a,
.menu-links .menu-socials summary {
  letter-spacing: -0.04em !important;
  word-spacing: 0.055em !important;
}

.ticket-button,
.button,
.menu-trigger,
.menu-close,
.eyebrow,
.card-kicker,
.tiny,
.menu-panel__meta,
.menu-panel__footer,
.footer-brand-row p,
.consent-field span,
.form-status,
.field-error {
  letter-spacing: 0.045em !important;
  word-spacing: 0.11em !important;
}

.countdown,
.countdown span,
.countdown strong,
.hero-countdown,
.hero-countdown span,
.hero-countdown strong,
.hero-center-event__city,
.hero-center-event__date {
  letter-spacing: 0.015em !important;
  word-spacing: 0.08em !important;
}

/* Keep the newsletter response minimal: no green success box, no filled background. */
.newsletter-form .form-status,
.newsletter-form [data-fs-success],
.newsletter-form [data-fs-error] {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.newsletter-form .form-status--success:not(:empty),
.newsletter-form [data-fs-success]:not(:empty) {
  color: var(--mockup-ink) !important;
  margin-top: 2px !important;
  text-transform: uppercase !important;
}

.newsletter-form .form-status--error:not(:empty),
.newsletter-form [data-fs-error]:not(:empty) {
  background: transparent !important;
  color: #fd2929 !important;
}

@media (max-width: 760px) {
  .section-heading h2,
  .form-copy h2,
  .about-statement h2,
  .locations-panel h2,
  .media-panel h2,
  .artists-panel .artists-title,
  .lineup-panel h2,
  .about-statement .about-title {
    letter-spacing: -0.04em !important;
    word-spacing: 0.05em !important;
  }

  .location-card h3,
  .artist-card h3,
  .media-card h3 {
    letter-spacing: -0.035em !important;
    word-spacing: 0.045em !important;
  }
}


/* === V35 hero-only font fix: Fragment Mono, no layout changes === */
.hero-center-event,
.hero-center-event *,
.hero-countdown-cycle,
.hero-countdown-cycle *,
.hero-countdown-slide,
.hero-countdown-slide *,
.hero-countdown,
.hero-countdown *,
.hero-center-event__city,
.hero-center-event__date,
.hero-data,
.hero-data *,
.scroll-indicator,
.scroll-indicator * {
  font-family: "Fragment Mono", monospace !important;
}

.hero-center-event__city,
.hero-center-event__date,
.hero-countdown,
.hero-countdown span,
.hero-countdown strong {
  letter-spacing: -0.035em !important;
  word-spacing: 0.035em !important;
  font-weight: 400 !important;
}

.scroll-indicator,
.scroll-indicator * {
  letter-spacing: -0.025em !important;
  word-spacing: 0.035em !important;
  font-weight: 400 !important;
}

/* === V36 artist timed reveal locks === */
.artist-reveal-card {
  isolation: isolate;
}

.artist-reveal-card.is-locked img {
  filter: blur(18px) grayscale(1) contrast(1.55) brightness(.34) saturate(0) !important;
  opacity: .78 !important;
  transform: scale(1.14) !important;
  image-rendering: pixelated;
}

.artist-reveal-card.is-locked:hover img {
  filter: blur(18px) grayscale(1) contrast(1.55) brightness(.34) saturate(0) !important;
  opacity: .78 !important;
  transform: scale(1.14) !important;
}

.artist-reveal-card.is-locked::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(rgba(0, 0, 0, .22), rgba(0, 0, 0, .22)),
    linear-gradient(90deg, rgba(225, 225, 225, .22) 1px, transparent 1px),
    linear-gradient(0deg, rgba(225, 225, 225, .18) 1px, transparent 1px);
  background-size: auto, 22px 22px, 22px 22px;
  mix-blend-mode: normal;
}

.artist-reveal-card.is-locked::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: .55;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,.24) 0 25%,
      rgba(255,255,255,.04) 25% 50%,
      rgba(0,0,0,.18) 50% 75%,
      rgba(255,255,255,.02) 75% 100%),
    linear-gradient(0deg,
      rgba(0,0,0,.24) 0 25%,
      rgba(255,255,255,.04) 25% 50%,
      rgba(0,0,0,.18) 50% 75%,
      rgba(255,255,255,.02) 75% 100%);
  background-size: 22px 22px, 22px 22px;
  mix-blend-mode: overlay;
}

.artist-reveal-card.is-locked div {
  z-index: 4;
}

.artist-role {
  display: block !important;
  margin-bottom: 8px !important;
}

.artist-role-label {
  display: inline;
}

.artist-reveal-countdown {
  display: none !important;
}

.artist-reveal-card.is-locked .artist-role-label {
  display: none !important;
}

.artist-reveal-card.is-locked .artist-reveal-countdown {
  display: flex !important;
  align-items: baseline !important;
  gap: clamp(5px, .55vw, 8px) !important;
  width: auto !important;
  max-width: 100% !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  border-top: 0 !important;
  color: rgba(225, 225, 225, .82) !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: clamp(8px, .7vw, 11px) !important;
  line-height: 1 !important;
  letter-spacing: .015em !important;
  word-spacing: 0 !important;
  white-space: nowrap !important;
}

.artist-reveal-card.is-locked .artist-reveal-countdown span,
.artist-reveal-card.is-locked .artist-reveal-countdown strong {
  color: rgba(225, 225, 225, .82) !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: clamp(8px, .7vw, 11px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: .015em !important;
}

.artist-reveal-card.is-locked h3 {
  font-family: "Fragment Mono", monospace !important;
  letter-spacing: .065em !important;
  word-spacing: 0 !important;
}

.artist-reveal-card.is-revealed img,
.artist-reveal-card.is-revealed:hover img {
  filter: none !important;
  opacity: .94 !important;
  transform: scale(1.03) !important;
  image-rendering: auto;
}

.artist-reveal-card.is-revealed .artist-role-label {
  display: inline !important;
}

.artist-reveal-card.is-revealed .artist-reveal-countdown {
  display: none !important;
}

@media (max-width: 760px) {
  .artist-reveal-card.is-locked .artist-reveal-countdown,
  .artist-reveal-card.is-locked .artist-reveal-countdown span,
  .artist-reveal-card.is-locked .artist-reveal-countdown strong {
    font-size: 10px !important;
  }
}

/* === V37 refinement: much heavier unrevealed artist pixelation === */
.artist-reveal-card.is-locked img,
.artist-reveal-card.is-locked:hover img {
  filter: grayscale(1) contrast(1.7) brightness(.36) saturate(0) !important;
  opacity: .76 !important;
  transform: scale(1.12) !important;
  image-rendering: pixelated !important;
}

.artist-reveal-card.is-locked::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(rgba(0, 0, 0, .14), rgba(0, 0, 0, .14)),
    repeating-linear-gradient(0deg,
      rgba(255, 255, 255, .18) 0 16px,
      rgba(255, 255, 255, 0) 16px 32px),
    repeating-linear-gradient(90deg,
      rgba(255, 255, 255, .18) 0 16px,
      rgba(255, 255, 255, 0) 16px 32px),
    repeating-linear-gradient(0deg,
      rgba(0, 0, 0, .22) 0 8px,
      rgba(0, 0, 0, 0) 8px 16px),
    repeating-linear-gradient(90deg,
      rgba(0, 0, 0, .22) 0 8px,
      rgba(0, 0, 0, 0) 8px 16px);
  background-size: 100% 100%, 32px 32px, 32px 32px, 16px 16px, 16px 16px;
  mix-blend-mode: hard-light;
  opacity: .96;
}

.artist-reveal-card.is-locked::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: .82;
  background-image:
    linear-gradient(90deg, rgba(0, 0, 0, .28) 0 50%, rgba(255, 255, 255, .09) 50% 100%),
    linear-gradient(0deg, rgba(0, 0, 0, .28) 0 50%, rgba(255, 255, 255, .09) 50% 100%);
  background-size: 24px 24px, 24px 24px;
  mix-blend-mode: multiply;
}

/* === V38 refinement: unrevealed artists use full placeholder, no visible photo === */
.artist-reveal-card.is-locked {
  background: #050505 !important;
}

.artist-reveal-card.is-locked img,
.artist-reveal-card.is-locked:hover img {
  opacity: 0 !important;
  visibility: hidden !important;
  filter: none !important;
  transform: none !important;
}

.artist-reveal-card.is-locked::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 1;
  background:
    linear-gradient(135deg, rgba(225, 225, 225, .08), transparent 34%, rgba(225, 225, 225, .045)),
    repeating-linear-gradient(0deg,
      rgba(225, 225, 225, .18) 0 18px,
      rgba(40, 40, 40, .88) 18px 36px,
      rgba(132, 132, 132, .28) 36px 54px,
      rgba(5, 5, 5, .92) 54px 72px),
    repeating-linear-gradient(90deg,
      rgba(5, 5, 5, .82) 0 22px,
      rgba(132, 132, 132, .28) 22px 44px,
      rgba(225, 225, 225, .12) 44px 66px,
      rgba(40, 40, 40, .94) 66px 88px);
  background-size: 100% 100%, 72px 72px, 88px 88px;
  image-rendering: pixelated;
}

.artist-reveal-card.is-locked::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: .92;
  background:
    repeating-linear-gradient(0deg,
      rgba(0, 0, 0, .58) 0 1px,
      transparent 1px 12px),
    repeating-linear-gradient(90deg,
      rgba(0, 0, 0, .58) 0 1px,
      transparent 1px 12px),
    linear-gradient(to top, rgba(0, 0, 0, .96), rgba(0, 0, 0, .34), rgba(0, 0, 0, .1));
  background-size: 24px 24px, 24px 24px, 100% 100%;
}

.artist-reveal-card.is-locked div {
  z-index: 4 !important;
}

.artist-reveal-card.is-revealed img,
.artist-reveal-card.is-revealed:hover img {
  opacity: .94 !important;
  visibility: visible !important;
}


/* === V39 refinement: 35px block pixelate for unrevealed artist cards === */
.artist-reveal-card.is-locked {
  background: #070707 !important;
}

.artist-reveal-card.is-locked img,
.artist-reveal-card.is-locked:hover img {
  opacity: 0 !important;
  visibility: hidden !important;
  filter: none !important;
  transform: none !important;
}

.artist-reveal-card.is-locked.has-locked-pixel-image::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  background-image: var(--locked-pixel-image) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  image-rendering: pixelated !important;
  filter: grayscale(1) contrast(1.45) brightness(.58) saturate(.2) !important;
}

.artist-reveal-card.is-locked:not(.has-locked-pixel-image)::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  background:
    repeating-linear-gradient(0deg,
      rgba(225, 225, 225, .20) 0 35px,
      rgba(132, 132, 132, .34) 35px 70px,
      rgba(40, 40, 40, .88) 70px 105px),
    repeating-linear-gradient(90deg,
      rgba(5, 5, 5, .74) 0 35px,
      rgba(132, 132, 132, .26) 35px 70px,
      rgba(225, 225, 225, .10) 70px 105px) !important;
  background-size: 105px 105px !important;
}

.artist-reveal-card.is-locked::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  opacity: .9 !important;
  background:
    linear-gradient(to top, rgba(0, 0, 0, .92), rgba(0, 0, 0, .28), rgba(0, 0, 0, .08)),
    linear-gradient(90deg, rgba(0, 0, 0, .24) 1px, transparent 1px),
    linear-gradient(0deg, rgba(0, 0, 0, .24) 1px, transparent 1px) !important;
  background-size: 100% 100%, 35px 35px, 35px 35px !important;
  mix-blend-mode: normal !important;
}

.artist-reveal-card.is-locked div {
  z-index: 4 !important;
}

.artist-reveal-card.is-revealed::before,
.artist-reveal-card.is-revealed::after {
  display: none !important;
}


/* === V40 refinement: visible 35px block pixelate, no black locked cards === */
.artist-reveal-card.is-locked {
  background: #848484 !important;
}

.artist-reveal-card.is-locked img,
.artist-reveal-card.is-locked:hover img {
  opacity: 0 !important;
  visibility: hidden !important;
  filter: none !important;
  transform: none !important;
}

/* Real 35px pixelated image generated by JS. */
.artist-reveal-card.is-locked.has-locked-pixel-image::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  background-image: var(--locked-pixel-image) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  image-rendering: pixelated !important;
  filter: grayscale(1) contrast(1.18) brightness(.78) saturate(.25) !important;
}

/* Non-black fallback while the JS pixel preview is loading. */
.artist-reveal-card.is-locked:not(.has-locked-pixel-image)::before,
.artist-reveal-card.is-locked.pixel-generation-failed::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  background:
    linear-gradient(135deg, rgba(225, 225, 225, .26), transparent 42%, rgba(40, 40, 40, .22)),
    repeating-linear-gradient(0deg,
      #b8b8b8 0 35px,
      #8f8f8f 35px 70px,
      #5f5f5f 70px 105px,
      #a3a3a3 105px 140px),
    repeating-linear-gradient(90deg,
      rgba(225, 225, 225, .22) 0 35px,
      rgba(40, 40, 40, .18) 35px 70px,
      rgba(132, 132, 132, .28) 70px 105px) !important;
  background-size: 100% 100%, 140px 140px, 105px 105px !important;
}

/* Keep the countdown/name readable without crushing the whole card into black. */
.artist-reveal-card.is-locked::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  background:
    linear-gradient(to top, rgba(0, 0, 0, .86), rgba(0, 0, 0, .22) 42%, rgba(0, 0, 0, .06)),
    linear-gradient(90deg, rgba(0, 0, 0, .16) 1px, transparent 1px),
    linear-gradient(0deg, rgba(0, 0, 0, .16) 1px, transparent 1px) !important;
  background-size: 100% 100%, 35px 35px, 35px 35px !important;
  mix-blend-mode: normal !important;
}

.artist-reveal-card.is-revealed::before,
.artist-reveal-card.is-revealed::after {
  display: none !important;
}


/* === V42 refinement: hero fallback poster image while video loads === */
.hero-fallback {
  background:
    linear-gradient(to right, rgba(0, 0, 0, .58), rgba(0, 0, 0, .18), rgba(0, 0, 0, .52)),
    linear-gradient(to top, rgba(0, 0, 0, .72), rgba(0, 0, 0, .08), rgba(0, 0, 0, .34)),
    url("../assets/img/media/hero-fallback.jpg") center / cover no-repeat,
    #000 !important;
  animation: none !important;
}

body.hero-video-ready .hero-fallback {
  background:
    linear-gradient(to right, rgba(0, 0, 0, .58), rgba(0, 0, 0, .18), rgba(0, 0, 0, .52)),
    linear-gradient(to top, rgba(0, 0, 0, .72), rgba(0, 0, 0, .08), rgba(0, 0, 0, .34)),
    url("../assets/img/media/hero-fallback.jpg") center / cover no-repeat,
    #000 !important;
}

/* === V43 refinement: SVG north-east arrow icons to avoid mobile emoji rendering === */
.north-east-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  background: currentColor;
  vertical-align: -0.08em;
  -webkit-mask: url("../assets/icons/north-east.svg") center / contain no-repeat;
  mask: url("../assets/icons/north-east.svg") center / contain no-repeat;
}

.ticket-button .north-east-icon,
.menu-close .north-east-icon {
  width: 0.95em;
  height: 0.95em;
}

.menu-close {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.noun-project-attribution {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* === V44 refinement: clean north-east SVG icon spacing === */
.ticket-button {
  gap: 7px !important;
}

.menu-close {
  gap: 7px !important;
}

.north-east-icon {
  width: 0.82em !important;
  height: 0.82em !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  background: currentColor !important;
  vertical-align: -0.02em !important;
  margin-left: 1px !important;
  -webkit-mask: url("../assets/icons/north-east.svg") center / contain no-repeat !important;
  mask: url("../assets/icons/north-east.svg") center / contain no-repeat !important;
}

.ticket-button .north-east-icon,
.menu-close .north-east-icon {
  width: 0.82em !important;
  height: 0.82em !important;
}

/* === V45 refinement: crop Noun Project attribution text out of the icon mask === */
/* The Noun Project SVG source has attribution text below the arrow in a 100x125 viewBox.
   This crops the mask to the arrow area, so no text/line can render below the icon. */
.north-east-icon {
  width: 0.82em !important;
  height: 0.82em !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin-left: 1px !important;
  vertical-align: -0.02em !important;
  background: currentColor !important;
  -webkit-mask-image: url("../assets/icons/north-east.svg") !important;
  mask-image: url("../assets/icons/north-east.svg") !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center top !important;
  mask-position: center top !important;
  -webkit-mask-size: 100% 125% !important;
  mask-size: 100% 125% !important;
}

.ticket-button,
.menu-close {
  gap: 7px !important;
  align-items: center !important;
}


/* === V46 Audience Republic signup embed === */
.arep-signup-embed {
  width: 100%;
  max-width: 720px;
  justify-self: stretch;
}

#arep-iframe-container-15332 {
  display: none !important;
}

#arep-form-container-15332,
#arep-form-container-15332 .arep-form {
  width: 100% !important;
  max-width: 720px !important;
}

#arep-form-15332-header {
  display: none !important;
}

#arep-form-container-15332 .arep-form-field-wrapper {
  margin-bottom: 14px !important;
}

#arep-form-container-15332 .arep-input,
#arep-form-container-15332 input,
#arep-form-container-15332 select,
#arep-form-container-15332 textarea {
  display: block !important;
  width: 100% !important;
  min-height: 64px !important;
  border: 1px solid var(--mockup-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--mockup-ink) !important;
  padding: 0 28px !important;
  font-family:
    "Neue Haas Grotesk Display",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  outline: 0 !important;
  box-shadow: none !important;
}

#arep-form-container-15332 textarea {
  min-height: 150px !important;
  padding-top: 22px !important;
}

#arep-form-container-15332 input::placeholder,
#arep-form-container-15332 textarea::placeholder {
  color: var(--mockup-ink) !important;
  opacity: 1 !important;
}

#arep-form-container-15332 input:focus,
#arep-form-container-15332 select:focus,
#arep-form-container-15332 textarea:focus {
  border-color: var(--mockup-ink) !important;
  background: rgba(40, 40, 40, .035) !important;
}

#arep-form-container-15332 .arep-mobileNumber-input-wrap {
  display: flex !important;
  gap: 6px !important;
  width: 100% !important;
}

#arep-form-container-15332 .arep-mobileNumber-input-wrap .arep-mobileNumber-code-input {
  display: inline-block !important;
  width: 100px !important;
  margin-right: 0 !important;
  flex: 0 0 100px !important;
}

#arep-form-container-15332 .arep-mobileNumber-input-wrap .arep-mobileNumber-number-input {
  display: inline-block !important;
  width: calc(100% - 106px) !important;
  flex: 1 1 auto !important;
}

#arep-form-container-15332 button,
#arep-form-container-15332 input[type="submit"],
#arep-form-container-15332 .arep-submit,
#arep-form-container-15332 .arep-button {
  width: 100% !important;
  min-height: 66px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--mockup-ink) !important;
  color: var(--mockup-bg) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-transform: uppercase !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.045em !important;
  cursor: pointer !important;
  box-shadow: none !important;
}

#arep-form-container-15332 button:hover,
#arep-form-container-15332 input[type="submit"]:hover,
#arep-form-container-15332 .arep-submit:hover,
#arep-form-container-15332 .arep-button:hover {
  background: #111 !important;
}

#arep-form-container-15332 label,
#arep-form-container-15332 .arep-label,
#arep-form-container-15332 .arep-form-field-label {
  color: var(--mockup-ink) !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.045em !important;
}

#arep-form-container-15332 .arep-error,
#arep-form-container-15332 .arep-form-error,
#arep-form-container-15332 .arep-error-message {
  color: #fd2929 !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
}

#arep-form-container-15332 .arep-success,
#arep-form-container-15332 .arep-form-success,
#arep-form-container-15332 .arep-success-message {
  color: var(--mockup-ink) !important;
  background: transparent !important;
  border: 0 !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
}

@media (max-width: 760px) {
  .arep-signup-embed {
    max-width: 100%;
  }

  #arep-form-container-15332,
  #arep-form-container-15332 .arep-form {
    max-width: 100% !important;
  }

  #arep-form-container-15332 .arep-input,
  #arep-form-container-15332 input,
  #arep-form-container-15332 select,
  #arep-form-container-15332 textarea,
  #arep-form-container-15332 button,
  #arep-form-container-15332 input[type="submit"],
  #arep-form-container-15332 .arep-submit,
  #arep-form-container-15332 .arep-button {
    min-height: 58px !important;
  }

  #arep-form-container-15332 .arep-input,
  #arep-form-container-15332 input,
  #arep-form-container-15332 select,
  #arep-form-container-15332 textarea {
    padding-inline: 18px !important;
  }
}

/* === V47 refinement: compact / flush Audience Republic form layout === */
.signup-panel .section-shell.form-grid {
  align-items: center !important;
  align-content: center !important;
  grid-template-columns: minmax(280px, .72fr) minmax(420px, .98fr) !important;
  gap: clamp(38px, 6.5vw, 112px) !important;
  padding-top: calc(var(--header-h) + clamp(30px, 4.5vh, 56px)) !important;
  padding-bottom: clamp(42px, 5.5vh, 68px) !important;
}

.signup-panel .form-copy {
  align-self: center !important;
}

.signup-panel .form-copy h2 {
  margin-bottom: clamp(18px, 2.4vh, 26px) !important;
}

.signup-panel .form-copy p:not(.eyebrow) {
  letter-spacing: -0.035em !important;
  word-spacing: 0.06em !important;
  line-height: 1.04 !important;
}

.arep-signup-embed {
  align-self: center !important;
  width: 100% !important;
  max-width: 660px !important;
}

#arep-form-container-15332,
#arep-form-container-15332 .arep-form {
  max-width: 660px !important;
}

#arep-form-container-15332 .arep-form-field-wrapper {
  margin-bottom: 9px !important;
}

#arep-form-container-15332 .arep-input,
#arep-form-container-15332 input,
#arep-form-container-15332 select,
#arep-form-container-15332 textarea {
  min-height: 52px !important;
  padding: 0 22px !important;
  font-size: 15px !important;
  line-height: 1 !important;
}

#arep-form-container-15332 textarea {
  min-height: 112px !important;
  padding-top: 16px !important;
}

#arep-form-container-15332 label,
#arep-form-container-15332 .arep-label,
#arep-form-container-15332 .arep-form-field-label {
  margin-bottom: 4px !important;
  font-size: 10px !important;
  line-height: 1.05 !important;
  letter-spacing: 0.055em !important;
}

#arep-form-container-15332 button,
#arep-form-container-15332 input[type="submit"],
#arep-form-container-15332 .arep-submit,
#arep-form-container-15332 .arep-button {
  min-height: 58px !important;
  margin-top: 6px !important;
}

#arep-form-container-15332 .arep-mobileNumber-input-wrap {
  gap: 8px !important;
}

#arep-form-container-15332 .arep-mobileNumber-input-wrap .arep-mobileNumber-code-input {
  width: 92px !important;
  flex-basis: 92px !important;
}

#arep-form-container-15332 .arep-mobileNumber-input-wrap .arep-mobileNumber-number-input {
  width: calc(100% - 100px) !important;
}

@media (max-width: 1100px) {
  .signup-panel .section-shell.form-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  .arep-signup-embed,
  #arep-form-container-15332,
  #arep-form-container-15332 .arep-form {
    max-width: 760px !important;
  }
}

@media (max-width: 760px) {
  .signup-panel .section-shell.form-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    padding: calc(var(--header-h) + 22px) 16px 34px !important;
    align-items: start !important;
    align-content: start !important;
  }

  .signup-panel .form-copy h2 {
    font-size: clamp(48px, 14.5vw, 76px) !important;
    line-height: .92 !important;
    margin-bottom: 14px !important;
  }

  .signup-panel .form-copy p:not(.eyebrow) {
    font-size: clamp(18px, 5vw, 24px) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.025em !important;
    word-spacing: 0.055em !important;
  }

  .arep-signup-embed {
    max-width: 100% !important;
  }

  #arep-form-container-15332 .arep-form-field-wrapper {
    margin-bottom: 8px !important;
  }

  #arep-form-container-15332 label,
  #arep-form-container-15332 .arep-label,
  #arep-form-container-15332 .arep-form-field-label {
    font-size: 10px !important;
    margin-bottom: 3px !important;
  }

  #arep-form-container-15332 .arep-input,
  #arep-form-container-15332 input,
  #arep-form-container-15332 select,
  #arep-form-container-15332 textarea,
  #arep-form-container-15332 button,
  #arep-form-container-15332 input[type="submit"],
  #arep-form-container-15332 .arep-submit,
  #arep-form-container-15332 .arep-button {
    min-height: 48px !important;
  }

  #arep-form-container-15332 .arep-input,
  #arep-form-container-15332 input,
  #arep-form-container-15332 select,
  #arep-form-container-15332 textarea {
    padding-inline: 16px !important;
    font-size: 15px !important;
  }

  #arep-form-container-15332 .arep-mobileNumber-input-wrap {
    gap: 6px !important;
  }

  #arep-form-container-15332 .arep-mobileNumber-input-wrap .arep-mobileNumber-code-input {
    width: 86px !important;
    flex-basis: 86px !important;
  }

  #arep-form-container-15332 .arep-mobileNumber-input-wrap .arep-mobileNumber-number-input {
    width: calc(100% - 92px) !important;
  }
}

@media (max-width: 430px) {
  .signup-panel .section-shell.form-grid {
    padding-top: calc(var(--header-h) + 18px) !important;
  }

  #arep-form-container-15332 .arep-input,
  #arep-form-container-15332 input,
  #arep-form-container-15332 select,
  #arep-form-container-15332 textarea,
  #arep-form-container-15332 button,
  #arep-form-container-15332 input[type="submit"],
  #arep-form-container-15332 .arep-submit,
  #arep-form-container-15332 .arep-button {
    min-height: 46px !important;
  }
}


/* === V49 refinement: GET TICKETS city dropdown + muted pixel rollout === */
.ticket-menu {
  position: relative;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  z-index: 70;
}

.ticket-menu > summary,
.ticket-menu__trigger {
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.ticket-menu > summary::-webkit-details-marker {
  display: none;
}

.ticket-menu__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: max-content;
  min-width: 176px;
  display: grid;
  padding: 8px;
  background: var(--mockup-bg);
  color: var(--mockup-ink);
  border: 1px solid rgba(132, 132, 132, .72);
  box-shadow: 0 18px 44px rgba(40, 40, 40, .16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  pointer-events: none;
  transition:
    opacity .24s var(--ease-out),
    visibility .24s var(--ease-out),
    transform .24s var(--ease-out);
}

.ticket-menu[open] .ticket-menu__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.ticket-menu__panel a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 36px;
  padding: 0 10px;
  color: var(--mockup-ink);
  font-family: "Fragment Mono", monospace !important;
  font-size: 11px;
  font-weight: 400 !important;
  letter-spacing: .045em;
  text-transform: uppercase;
  white-space: nowrap;
  transition:
    background .22s var(--ease-out),
    color .22s var(--ease-out),
    transform .22s var(--ease-out);
}

.ticket-menu__panel a:hover,
.ticket-menu__panel a:focus-visible {
  background: var(--mockup-ink);
  color: var(--mockup-bg);
  transform: translateX(2px);
  outline: 0;
}

body.is-on-hero .ticket-menu__panel {
  background: var(--mockup-bg);
  color: var(--mockup-ink);
  border-color: rgba(225, 225, 225, .78);
}

@media (max-width: 760px) {
  .ticket-menu__panel {
    top: calc(100% + 8px);
    min-width: 158px;
    padding: 7px;
  }

  .ticket-menu__panel a {
    min-height: 34px;
    padding-inline: 9px;
    font-size: 10px;
  }
}

/* === V50 refinement: clean GET TICKETS links on location cards === */
.location-card__meta-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-top: 8px !important;
}

.location-card__meta-row .tiny {
  margin: 0 !important;
  flex: 1 1 auto !important;
}

.location-ticket-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 5px !important;
  flex: 0 0 auto !important;
  color: rgba(225, 225, 225, .78) !important;
  font-family: "Fragment Mono", monospace !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  opacity: .92 !important;
  transition:
    color .22s var(--ease-out),
    opacity .22s var(--ease-out),
    transform .22s var(--ease-out);
}

.location-ticket-link .north-east-icon {
  width: .72em !important;
  height: .72em !important;
  margin-left: 1px !important;
}

.location-ticket-link:hover,
.location-ticket-link:focus-visible {
  color: #fff !important;
  opacity: 1 !important;
  transform: translateX(2px) !important;
  outline: 0 !important;
}

@media (max-width: 760px) {
  .location-card__meta-row {
    margin-top: 7px !important;
    gap: 10px !important;
  }

  .location-ticket-link {
    font-size: 9px !important;
  }
}
