/* City labels belong inside their controls, in both gallery locations. */
.gallery-recent,.gallery-city-picker{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.gallery-recent>.gallery-city-button,.gallery-city-picker>.gallery-city-button{background:#fbd35d;color:#111;border:1px solid #fbd35d;border-radius:14px;padding:12px 24px;font-size:16px;font-weight:650;line-height:1.35;min-height:48px;box-shadow:none;transition:background-color .2s ease,color .2s ease}
.gallery-recent>.gallery-city-button:hover,.gallery-city-picker>.gallery-city-button:hover,.gallery-recent>.gallery-city-button:focus-visible,.gallery-city-picker>.gallery-city-button:focus-visible{background:#111;color:#fbd35d;border-color:#fbd35d}
.gallery-city-button[aria-pressed=true]{box-shadow:inset 0 0 0 2px #111}
@media(max-width:650px){
 .gallery-recent,.gallery-city-picker{gap:10px}
 .gallery-recent>.gallery-city-button,.gallery-city-picker>.gallery-city-button{font-size:14px;padding:11px 17px;min-height:44px}
 .hero .hero-footer{display:flex;flex-direction:column;align-items:stretch;gap:12px;min-height:0}
 .hero .hero-footer .hero-radio{position:static;transform:none;align-self:flex-start}
 .hero .hero-footer .hero-radio .radio-art{width:clamp(72px,21vw,94px);margin:0}
 .hero .hero-footer h1{font-size:clamp(29px,10.2vw,65px);line-height:.94;letter-spacing:-.04em;margin:0;transform:none}
}
@media(prefers-reduced-motion:reduce){.gallery-city-button{transition:none}}
/* Floating glass submenu: keep the main bar's shape and position intact. */
@media(max-width:1000px){
 .site-header,.site-header:has(.main-nav.open){height:58px;border-radius:60px;overflow:visible}
 .site-header .brand{height:90px;overflow:visible}
 .site-header .brand img{width:88px;height:110px;object-fit:contain;transform:none}
 .site-header .menu-toggle{top:17px}
 .site-header .main-nav,.site-header .main-nav.open{
  display:flex;top:calc(100% - 1px);left:7%;right:7%;width:auto;
  padding:18px 20px 22px;border:1px solid #fbd35d;border-top:0;border-radius:0 0 19px 19px;
  background:rgba(14,14,10,.78);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  box-shadow:0 12px 30px #0003;clip-path:inset(0 0 100% 0);
  transform:translateY(-3px);opacity:0;visibility:hidden;pointer-events:none;
  transition:clip-path .42s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.22,1,.36,1),opacity .25s ease,visibility 0s linear .42s;
 }
 .site-header .main-nav.open{clip-path:inset(0);transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
}
@media(max-width:650px){
 .site-header,.site-header:has(.main-nav.open){height:49px}
 .site-header .brand{height:81px}
 .site-header .brand img{width:76px;height:98px;transform:none}
 .site-header .menu-toggle{top:13px}
}
@media(prefers-reduced-motion:reduce){.site-header .main-nav,.site-header .main-nav.open{transition:none;transform:none}}

/* Desktop: reduce the entire bar and logo proportionally by 6%. */
@media(min-width:1001px){
 .site-header{transform:translateX(-50%) scale(.94)}
 .site-header.is-scrolled{transform:translateX(-50%) scale(.8178)}
}
/* Slower mobile menu reveal, retaining the current panel dimensions. */
@media(max-width:1000px){
 .site-header .main-nav,.site-header .main-nav.open{transition:clip-path 1.6s cubic-bezier(.4,0,.35,1),transform 1.6s cubic-bezier(.4,0,.35,1),opacity .35s ease,visibility 0s linear 1.6s}
 .site-header .main-nav.open{transition-delay:0s}
}
@media(max-width:650px){
 .hero .hero-footer{display:grid;grid-template-columns:minmax(0,1fr) clamp(62px,18vw,82px);align-items:end;gap:8px}
 .hero .hero-footer h1{grid-column:1;grid-row:1;font-size:clamp(23px,8.1vw,52px);min-width:0}
 .hero .hero-footer .hero-radio{grid-column:2;grid-row:1;align-self:end;justify-self:end;position:static;transform:none;margin:0 0 -3px}
 .hero .hero-footer .hero-radio .radio-art{width:clamp(62px,18vw,82px);margin:0}
}
@media(prefers-reduced-motion:reduce){.site-header .main-nav,.site-header .main-nav.open{transition:none;transform:none}}

/* Translucent first-song control on the golden radio. */
.hero .radio-art{position:relative}
.radio-play-icon{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);display:grid;place-items:center;width:clamp(24px,3vw,42px);aspect-ratio:1;border:1px solid #ffdf9c88;border-radius:50%;background:rgba(20,14,4,.28);color:#fff1cc;font-size:clamp(10px,1.2vw,16px);padding-left:2px;box-shadow:0 2px 10px #0003;transition:background .25s ease}
.radio-art:hover .radio-play-icon,.radio-art:focus-visible .radio-play-icon{background:rgba(20,14,4,.5)}
.radio-art:disabled{cursor:wait}

/* Fine line navigation and a play mark integrated into the speaker grille. */
.nav-line{display:inline-block;position:relative;width:20px;height:1px;background:currentColor;vertical-align:middle}
.nav-line:after{content:'';position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.nav-line-back{transform:rotate(180deg)}
.hero .radio-art{padding:0;touch-action:manipulation;min-height:44px}
.radio-play-icon{left:44%;top:34%;width:24%;aspect-ratio:1;border:0;border-radius:50%;padding:0;background:rgba(24,16,4,.15);box-shadow:none;color:rgba(255,239,194,.85)}
.radio-play-icon:before{content:'';width:31%;height:38%;background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%);margin-left:6%}
.radio-art:hover .radio-play-icon,.radio-art:focus-visible .radio-play-icon{background:rgba(24,16,4,.25)}

.gallery-date-picker{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.gallery-date-picker[hidden]{display:none}
.gallery-date-button{border:1px solid #ad8b32;border-radius:12px;color:#fbd35d;background:transparent;padding:10px 18px;min-height:44px;font-size:15px;transition:background-color .2s,color .2s}
.gallery-date-button:hover,.gallery-date-button[aria-pressed=true]{background:#fbd35d;color:#111}

@media(prefers-reduced-motion:no-preference){.event-row.event-reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .9s cubic-bezier(.22,.61,.36,1)}.event-row.event-reveal.event-visible{opacity:1;transform:translateY(0)}}
