/* Reference-led menu material and one original aerosol lettering family. */
.morph-nav { width: 138px; height: clamp(65px,4.5vw,80px); top: 4.7dvh; grid-template-columns: 1fr clamp(142px,10.6vw,185px) 1fr; grid-template-rows: 100%; border-radius: 25px; }
.morph-nav:not(.is-open) { grid-template-columns: 0 100% 0; }
.morph-nav__links { height: 100%; }
.morph-nav__links a { min-height: 100%; }
.morph-nav:not(.is-open) { border-color: rgba(246,166,207,.5); background: linear-gradient(135deg,rgba(255,219,238,.1),#10070d 35%,#050304 70%); box-shadow: inset 0 1px 0 #e2bdce66, inset 0 -1px 0 #ee007d55; }
.morph-nav.is-open { width: clamp(710px,47vw,900px); }
.morph-nav__core { width: clamp(142px,10.6vw,185px); height: clamp(142px,10.6vw,185px); outline-offset: -15px; }
.morph-nav__core .nav-mark { width: 100%; height: 100%; }
.nav-mark { position: relative; display: block; aspect-ratio: 1; isolation: isolate; transform: perspective(650px) rotateX(var(--nav-rx,0deg)) rotateY(var(--nav-ry,0deg)); transition: transform 480ms cubic-bezier(.2,.8,.15,1); }
.nav-mark.is-pointed { transition-duration: 220ms; }
.nav-mark::before { content: ""; position: absolute; inset: 23%; border-radius: 50%; background: #020102; box-shadow: 0 3px 12px #000b; z-index: 0; }
.nav-mark::after { content: ""; position: absolute; inset: 24%; border-radius: 50%; background: radial-gradient(ellipse at var(--nav-light-x,32%) var(--nav-light-y,22%),#fff5,transparent 61%); opacity: 0; mix-blend-mode: screen; pointer-events: none; transition: opacity 300ms; }
.nav-mark.is-pointed::after { opacity: .3; }
.nav-mark > svg { position: relative; z-index: 1; display: block; width: 100%; height: 100%; max-width: none; margin: 0; transform: none; filter: none; overflow: visible; }
.side-rail { width: 56px; grid-template-rows: repeat(3,1fr) 113px repeat(3,1fr); padding: 14px 1px; }
.side-rail .nav-mark { width: 137px; height: 137px; margin-left: -42px; align-self: center; }
.side-rail a { font-size: clamp(13px,.8vw,16px); }
.nav-traveller.nav-mark { position: fixed; z-index: 150; pointer-events: none; margin: 0; transition: none; transform-origin: top left; }
.nav-in-flight .morph-nav .nav-mark, .nav-in-flight .side-rail .nav-mark { visibility: hidden; }
.morph-nav__core:focus-visible { outline: 2px solid #ffacd3; border-radius: 50%; }

.brush-copy.spray-copy { --spray-cap: clamp(22px,1.35vw,27px); position: relative; width: calc(var(--spray-cap) * var(--spray-width-factor,24)); max-width: 100%; height: calc(var(--spray-cap) * 1.95); overflow: visible; font-family: var(--display); font-size: 30px; font-style: normal; line-height: 1.15; color: #ff0090; transform: none; isolation: auto; mix-blend-mode: screen; }
.music-heading .brush-copy.spray-copy { margin: 8px 0 18px; }
.downloads-intro .brush-copy.spray-copy, .booking-shell .brush-copy.spray-copy { margin: 14px 0 27px; }
.spray-visual { display: none; position: absolute; left: 0; top: 50%; width: 100%; height: auto; transform: translateY(-50%); overflow: hidden; pointer-events: none; mix-blend-mode: screen; }
.has-spray .spray-visual { display: block; }
.has-spray > .spray-copy__text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .nav-mark, .nav-mark.is-pointed { transform: none; transition: none; }
  .nav-mark::after { display: none; }
}
/* Existing small-screen navigation remains functional; its redesign is deferred. */
@media (max-width: 600px) {
  .morph-nav { width: 90px; height: 65px; grid-template-columns: 1fr 76px 1fr; top: 22px; }
  .morph-nav__core { width: 110px; height: 110px; }
  .morph-nav.is-open { width: calc(100vw - 26px); }
  .brush-copy.spray-copy { height: 48px; }
}

/* One centered label block per link; active markers never participate in layout. */
.morph-nav__links a, .side-rail a { position: relative; display: flex; flex-direction: row; align-items: center; justify-content: center; min-width: 0; gap: 0; }
.morph-nav__links a .nav-label, .side-rail a .nav-label { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .06em; line-height: 1.08; white-space: nowrap; }
.morph-nav__links a .nav-label__main, .morph-nav__links a .nav-label__sub,
.side-rail a .nav-label__main, .side-rail a .nav-label__sub { display: block; font: inherit; line-height: inherit; white-space: nowrap; }
.morph-nav__links a::after, .side-rail a::after { content: ""; position: absolute; bottom: 7px; left: 50%; margin: 0; width: 4px; height: 4px; transform: translateX(-50%); border-radius: 50%; background: var(--pink); box-shadow: 0 0 7px var(--pink); opacity: 0; }
.morph-nav__links a.is-current::after, .side-rail a.is-current::after { position: absolute; bottom: 7px; left: 50%; width: 4px; height: 4px; opacity: 1; }
.morph-nav__links a:focus-visible, .side-rail a:focus-visible { outline: 1px solid #ffacd3; outline-offset: -4px; border-radius: 8px; }
@media (min-width: 1101px) {
  .morph-nav.is-open { width: clamp(800px,54vw,1040px); }
  .morph-nav__links { grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: 100%; }
  .morph-nav__links a { padding: 8px 6px; height: 100%; font-size: clamp(19px,1.25vw,24px); }
  .side-rail { width: 96px; height: min(63dvh,620px); padding: 12px 5px; grid-template-columns: minmax(0,1fr); grid-template-rows: repeat(3,minmax(0,1fr)) 118px repeat(3,minmax(0,1fr)); }
  .side-rail a { width: 100%; min-height: 44px; padding: 5px 0; font-size: clamp(17px,1.05vw,20px); }
  .side-rail .nav-mark { justify-self: center; margin: 0; }
  .about-artists.press-photo { right: 7vw; width: 55vw; height: 92%; bottom: 0; object-fit: cover; object-position: 50% 0; filter: none; mask-image: linear-gradient(0deg,transparent,#000 11%,#000 97%,transparent),linear-gradient(90deg,transparent,#000 11%,#000 94%,transparent); mask-composite: intersect; }
  .about-full__hero > .press-photo { right: 1%; width: 49%; height: 100%; object-fit: cover; object-position: 50% 16%; mask-image: linear-gradient(90deg,transparent,#000 8%),linear-gradient(0deg,transparent,#000 9%); mask-composite: intersect; }
  .crew-form > .press-photo { width: 100%; height: 100%; max-height: 21dvh; min-height: 0; align-self: stretch; border-radius: 9px; object-fit: cover; object-position: 50% 20%; border-color: rgba(255,142,201,.45); box-shadow: inset 0 0 0 1px #ffffff0d; }
}
@media (max-width: 600px) {
  .morph-nav__links a .nav-label { display: block; white-space: normal; }
  .morph-nav__links a .nav-label__main, .morph-nav__links a .nav-label__sub { display: inline; }
}
