/* Buoyant Contact mascot: leave room for the entire balloon, feet and sway. */
#contact .contact-fluffy {
  left:clamp(12px,1vw,24px);
  width:calc(16.5vw - clamp(28px,2vw,52px));
  height:auto; max-height:min(55dvh,calc(100dvh - max(20dvh,170px) - 80px));
  bottom:calc(max(20dvh,170px) + 24px);
  object-fit:contain; transform-origin:50% 20%; pointer-events:none;
}
@media (prefers-reduced-motion:no-preference) {
  #contact .contact-fluffy {
    animation:bc-balloon-buoyancy 7.6s ease-in-out infinite,
              bc-balloon-sway 9.8s ease-in-out infinite;
    animation-play-state:paused;
  }
  body[data-scene=contact]:not(.route-open):not(.is-changing) #contact .contact-fluffy {
    animation-play-state:running;
  }
}
@keyframes bc-balloon-buoyancy {
  0%,100% { translate:0 0; }
  25% { translate:4px -10px; }
  50% { translate:0 -18px; }
  75% { translate:-4px -7px; }
}
@keyframes bc-balloon-sway {
  0%,100% { rotate:0deg; }
  25% { rotate:1.25deg; }
  75% { rotate:-1.25deg; }
}

/* The selected record is present in both sizes. Controls keep one corner anchor. */
.mini-player .mini-play { isolation:isolate; overflow:hidden; background:#080507; border:1px solid #ff85c8b8; }
.mini-player .mini-disc { display:block; position:absolute; inset:0; width:100%; height:100%; max-width:none; border:0; border-radius:50%; object-fit:cover; opacity:1; z-index:-2; }
.mini-player .mini-play::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(145deg,#0002,#0008); border-radius:inherit; box-shadow:inset 0 0 9px #000b; }
.mini-player .mini-play svg { color:#fff; filter:drop-shadow(0 1px 3px #000); }
.mini-player .mini-cover { display:block; opacity:1; visibility:visible; object-fit:cover; border:1px solid #ffc2e366; box-shadow:0 3px 12px #000c; }
.mini-player.is-revealed .mini-cover { width:68px; height:68px; left:12px; top:14px; }
.mini-player.is-revealed .mini-title { left:94px; }
.mini-player.is-revealed .mini-seek { left:94px; width:calc(100% - 174px); }
.mini-player.is-revealed .mini-time { left:94px; }
.mini-player.is-playing .mini-play { box-shadow:0 0 12px #ff009038,inset 0 0 1px 1px #fff8; }

/* Keep the photographed paint sharp instead of turning its grain into a glow. */
.brush-copy.spray-copy { filter:none!important; text-shadow:none!important; }
.spray-visual { filter:none!important; }
.paint-strike { filter:none!important; }

/* Optical depth: offset specular highlights and a hot lower rim, clear interiors. */
:is(#about,#contact,#about-full) .glass-card { border-color:#df679d8f; box-shadow:inset 0 1px 1px #fff9,inset 1px 0 1px #fff3,inset 0 -2px 2px #ff009054,0 0 1px 1px #ff009057,0 0 15px #ff00901c; }
:is(#about,#contact,#about-full) .glass-card::after { padding:1.6px; background:linear-gradient(115deg,#fff8 0%,#ffd0e8 8%,#ff009069 19%,transparent 29% 60%,#ff0090bd 78%,#ffcee7 88%,transparent 97%); }
:is(#about,#contact,#about-full) .glass-card::before { background:radial-gradient(ellipse 90% 16% at var(--mx,26%) 0%,#fff3,transparent 72%),radial-gradient(ellipse 74% 5% at 65% 100%,#ff009058,transparent 85%),linear-gradient(125deg,#ffffff05,transparent 45%); }
:is(#about,#contact,#about-full) .glass-card:hover::before { background:radial-gradient(ellipse 90% 20% at var(--mx,26%) 0%,#fff4,transparent 72%),radial-gradient(ellipse 80% 8% at 65% 100%,#ff009077,transparent 85%),linear-gradient(125deg,#ffffff09,transparent 45%); }

/* Booking follows the same display/spray/body hierarchy and glass material. */
#booking-request { background:#020102; }
#booking-request .booking-shell { position:relative; isolation:isolate; padding:32px 0 76px; }
#booking-request .booking-shell::before { content:""; position:absolute; z-index:-1; pointer-events:none; top:190px; right:-3%; width:75%; height:1080px; background:url('assets/images/liquid-star.png') center/contain no-repeat; opacity:.065; filter:grayscale(1); }
#booking-request .booking-shell>h2 em { color:var(--pink); font-style:normal; }
#booking-request .booking-shell>h2 .heading-dot { color:#fff; }
#booking-request .booking-shell>h2 { font-size:clamp(72px,8.5vw,142px); line-height:.96; margin:12px 0 0; }
#booking-request .brush-copy.spray-copy { --spray-cap:clamp(23px,2.3vw,37px); width:min(100%,900px); height:clamp(38px,4.1vw,64px); margin:4px 0 22px; }
#booking-request .booking-shell>p:not(.brush-copy) { font:400 clamp(14px,1.15vw,19px)/1.55 var(--body); font-style:normal; color:#c7bdc3; }
#booking-request .booking-form { margin-top:45px; }
#booking-request fieldset { position:relative; margin:0 0 38px; padding:30px; border:1px solid #ff68b751; border-radius:12px; background:linear-gradient(120deg,#fff1,transparent 35%),linear-gradient(145deg,#17081155,#030103b5); box-shadow:inset 0 1px 1px #ffe7f35c,0 0 16px #ff00900d; }
#booking-request legend { padding:0 14px; margin:0 0 7px -14px; font:400 clamp(26px,2.2vw,36px)/1 var(--display); letter-spacing:.025em; }
#booking-request .form-grid { padding:0; gap:25px 32px; }
#booking-request .form-grid label { font:500 13px/1.5 var(--body); letter-spacing:0; text-transform:none; gap:8px; color:#e3d6de; }
#booking-request .form-grid label::before { display:none; }
#booking-request :is(input:not([type=checkbox]),textarea,select) { margin:0; font:400 15px/1.45 var(--body); border:1px solid #ff009060; border-radius:5px; background:linear-gradient(130deg,#ff009013,#070407a1); color:#fff; box-shadow:inset 0 1px 5px #0006; }
#booking-request :is(input:not([type=checkbox]),textarea,select):hover { border-color:#ff5bb496; }
#booking-request :is(input:not([type=checkbox]),textarea,select):focus { outline:2px solid #ffb5df; outline-offset:3px; border-color:#ff0090; background:#200c19; color:#fff; }
#booking-request select option { background:#170b13; color:#fff; }
#booking-request input[type=date],#booking-request input[type=time] { color-scheme:dark; }
#booking-request .consent-grid { gap:36px; margin:0 0 30px; }
#booking-request .consent-grid label { font-size:13px; color:#c7bdc3; }
#booking-request .consent-grid input { flex-shrink:0; }
#booking-request .form-note { font:400 12px/1.55 var(--body); color:#afa1aa; margin-top:16px; }

@media(min-width:1101px) {
  .about-artists.press-photo { right:4.8vw; bottom:0; width:53vw; height:98dvh; object-fit:contain; object-position:right bottom; mask-image:linear-gradient(0deg,transparent,#000 6%); }
  .about .ghost-mark { left:25vw; top:1dvh; width:37vw; height:66dvh; opacity:.11; }
  .about .brand-atmosphere::after { opacity:.65; mask-image:linear-gradient(180deg,transparent 6%,#000 35%,#000 73%,transparent 100%); }
  .about .atmosphere-drift { left:40%; opacity:.55; }
  .about .kpi strong { font-size:min(5.1vw,8.8dvh); }
  .about .kpi { padding:1.1dvh .5vw; }
  .about .kpi span { font-size:min(1.57vw,2.8dvh); }
  .music-heading h2 { font-size:min(8.2vw,14.5dvh); }
  .music-heading .brush-copy.spray-copy { --spray-cap:min(2.35vw,4.18dvh); height:5.3dvh; }
  .music-heading >p:not(.brush-copy) { font-size:min(1.12vw,2dvh); }
  .music .tracks { padding-top:1.8dvh; }
  .tour { margin-left:.3vw; }
  .contact-icon { stroke-width:3.5; filter:drop-shadow(1px 3px 1px #50002c) drop-shadow(0 0 5px #ff00905c); }
  .contact .contact-card p { font-size:min(.99vw,1.76dvh); }
  .contact .crew-form h3 { font-family:var(--display); font-weight:400; font-size:min(1.72vw,3dvh); line-height:1.15; letter-spacing:.025em; text-transform:uppercase; }
  .contact .paint-strike { height:3.2dvh; width:42vw; }
  .side-rail { background:linear-gradient(135deg,#ffe8f410,#080508b8 55%); }
}
@media(max-width:600px) {
  .mini-player.is-revealed .mini-cover { width:48px; height:48px; left:10px; top:18px; }
  .mini-player.is-revealed .mini-title,.mini-player.is-revealed .mini-time { left:68px; }
  .mini-player.is-revealed .mini-seek { left:68px; width:calc(100% - 145px); }
  #booking-request .booking-shell>h2 { font-size:clamp(54px,13vw,78px); }
  #booking-request fieldset { padding:20px 16px; }
  #booking-request legend { font-size:25px; }
  #booking-request .form-grid { gap:20px; }
  #booking-request .brush-copy.spray-copy { height:45px; }
}

@media(min-width:1101px) {
  .contact .crew-fields input:not([type=checkbox]) { font-size:clamp(13px,.95vw,17px); }
  .site-footer >p { font-size:clamp(11px,.78vw,14px); }
  .legal a,.legal button { font-size:clamp(14px,1vw,18px); }
  .footer-brand span { font-size:clamp(9px,.75vw,13px); }
}

@media(min-width:1101px) { .about-copy>p { font-size:min(1.35vw,2.3dvh); line-height:1.47; } }

/* Center Contact navigation in the content above the footer, open or closed. */
@media(min-width:1101px) {
  body[data-scene=contact] .side-rail { top:var(--rail-center-y,40.5dvh); }
  body[data-scene=contact] .side-rail.is-open { height:min(60dvh,560px); }
}
.contact .crew-form h3 { text-transform:uppercase; }

/* User direction: uppercase artist description, matching section typography. */
.about-copy > p { text-transform:uppercase; }
/* Desktop About: photographic dissolve; the figures themselves never warp or travel. */
#about .about-portrait-alternate, #about .about-living-haze { display:none; }
@media (min-width:1200px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  #about.about-motion-ready .about-portrait-alternate { display:block; opacity:0; pointer-events:none; }
  #about.about-motion-ready .about-artists { pointer-events:none; }
  #about.about-motion-ready .about-portrait-alternate {
    right:0; width:min(53vw,calc(98dvh * 1201 / 1275)); height:98dvh;
    object-fit:cover; object-position:left bottom;
    mask-image:linear-gradient(90deg,transparent 0%,#00000005 3%,#00000020 7%,#00000070 12%,#000000c7 18%,#000 25%),linear-gradient(0deg,transparent 0%,#00000018 3%,#00000075 7%,#000000d9 12%,#000 17%);
    mask-composite:intersect;
  }
  #about.about-motion-ready .about-living-haze {
    display:block; position:absolute; z-index:1; inset:8% -5% -8% 32%; overflow:hidden;
    pointer-events:none; mix-blend-mode:screen;
    mask-image:linear-gradient(90deg,transparent,#000 18%,#000 88%,transparent);
  }
  #about .about-living-haze::before, #about .about-living-haze::after {
    content:''; position:absolute; inset:-8%;
    background:url('assets/reference-detail/about-magenta-haze.png') center/cover no-repeat;
    transform-origin:60% 70%; animation:about-haze-near 24s ease-in-out infinite alternate;
    animation-play-state:paused; opacity:.42;
  }
  #about .about-living-haze::after {
    inset:4% -14% -10% -18%; background-position:65% 55%; opacity:.24;
    animation-name:about-haze-far; animation-duration:31s; animation-delay:-13s;
  }
  #about.about-motion-running .about-living-haze::before,
  #about.about-motion-running .about-living-haze::after { animation-play-state:running; }
  @keyframes about-haze-near {
    0% { transform:translate3d(-4%,4%,0) scale(1.02); opacity:.32; }
    50% { opacity:.52; }
    100% { transform:translate3d(5%,-4%,0) scale(1.1); opacity:.38; }
  }
  @keyframes about-haze-far {
    0% { transform:translate3d(5%,3%,0) scaleX(-1) scale(1.08); opacity:.19; }
    50% { opacity:.31; }
    100% { transform:translate3d(-4%,-3%,0) scaleX(-1) scale(1.02); opacity:.22; }
  }
}
