@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/onest-cyrillic-variable.woff2') format('woff2-variations');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/onest-latin-variable.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root,
:root[data-theme='light'] {
  color-scheme: light;
  --ink: #101722;
  --ink-2: #132033;
  --muted: #465d72;
  --paper: #eaf3fa;
  --paper-2: #dbeaf5;
  --white: #eaf3fa;
  --acid: #9ccbf1;
  --violet: #70a9d8;
  --coral: #7694b3;
  --line: rgba(33, 62, 91, .12);
  --line-dark: rgba(221, 241, 255, .14);
  --serif: 'Onest Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --sans: 'Onest Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --header-bg: rgba(225, 235, 243, .86);
  --header-nav: #263447;
  --surface-elevated: #f7fbfe;
  --surface-solid: #e6f0f7;
  --ticket-stage: #eaf3fa;
  --ticket-card: #f7fbfe;
  --ticket-soft: #dbeaf5;
  --section-blue: #cfe3f1;
  --on-dark: #dfebf4;
  --on-dark-muted: #afbdcc;
  --accent-ink: #0b1725;
  --shadow: 0 28px 80px rgba(42, 76, 109, .12);
  --soft-shadow: 0 14px 42px rgba(42, 76, 109, .09);
  --radius: 28px;
  --mobile-section-space: 60px;
}

:root[data-theme='dark'] {
  color-scheme: dark;
  --ink: #f2f7fb;
  --ink-2: #dce9f4;
  --muted: #9daec0;
  --paper: #0d1520;
  --paper-2: #14202e;
  --white: #070b11;
  --acid: #9ccbf1;
  --violet: #83b9e4;
  --coral: #86a7c7;
  --line: rgba(215, 235, 250, .12);
  --line-dark: rgba(221, 241, 255, .14);
  --header-bg: rgba(7, 11, 17, .74);
  --header-nav: #e4edf5;
  --surface-elevated: rgba(17, 27, 39, .8);
  --surface-solid: #111b27;
  --ticket-stage: #101c28;
  --ticket-card: #182838;
  --ticket-soft: #213648;
  --section-blue: #20384b;
  --on-dark: #edf5fb;
  --on-dark-muted: #afbdcc;
  --accent-ink: #09131f;
  --shadow: 0 32px 90px rgba(0, 0, 0, .34);
  --soft-shadow: 0 18px 46px rgba(0, 0, 0, .2);
}

html { width: 100%; max-width: 100%; overflow-x: clip; overscroll-behavior-x: none; background: var(--white); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  color: var(--ink);
  background:
    radial-gradient(circle at 88% 18%, rgba(156, 203, 241, .13), transparent 25rem),
    var(--white);
  font-family: var(--sans);
  font-weight: 400;
  letter-spacing: -.015em;
  transition: color .22s ease, background-color .22s ease;
}
html.menu-open,
body.menu-open { overflow: hidden; overscroll-behavior: none; }
body.menu-open {
  position: fixed;
  top: var(--menu-scroll-offset, 0);
  right: 0;
  left: 0;
  width: 100%;
  touch-action: none;
}
main, .album-photo-grid, .photo-card, .photo-card button { min-width: 0; max-width: 100%; }
.ui-icon {
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ui-icon .ui-icon-fill { fill: currentColor; stroke: none; }
h1, h2, h3,
.event-date strong,
.ticket-card strong,
.contact-action,
.contact-note strong,
.bio-facts strong,
.music-quote blockquote,
.track-row strong,
.video-concert-date > strong,
.mobile-ticket-bar span strong {
  font-family: var(--sans);
}
h1, h2, h3 { font-weight: 560; letter-spacing: -.055em; }
h1 { font-size: clamp(46px, 5vw, 72px); line-height: 1; }
h2 { font-size: clamp(32px, 3.8vw, 52px); line-height: 1.04; }
h3 { letter-spacing: -.035em; }
.large-copy, .lead { letter-spacing: -.025em; }
.eyebrow {
  color: #315f84;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.45;
}
.eyebrow.light { color: #b8dcf8; }
:root[data-theme='dark'] .eyebrow:not(.light) { color: #9fc8e6; }
:focus-visible { outline-color: #8fc3ec; }
.back-to-top {
  position: fixed;
  z-index: 18;
  right: max(22px, calc((100vw - 1440px) / 2));
  bottom: 24px;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(68, 126, 170, .25);
  border-radius: 50%;
  color: #102f47;
  background: rgba(185, 221, 247, .94);
  background-clip: padding-box;
  background-image: none;
  box-shadow: none;
  -webkit-filter: none;
  filter: none;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .2s ease, transform .2s ease, background-color .2s ease;
  -webkit-appearance: none;
  appearance: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  overflow: hidden;
  isolation: auto;
}
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.back-to-top:hover { color: #07131f; background: #d5ebfa; }
.back-to-top .ui-icon { width: 20px; height: 20px; }
body:has(.mobile-ticket-bar.is-visible) .back-to-top { bottom: 94px; }
.section { padding: clamp(56px, 6vw, 84px) 0; }
.section-soft { background: color-mix(in srgb, var(--paper) 88%, transparent); }

.button {
  min-height: 52px;
  padding-inline: 25px;
  border: 1px solid transparent;
  color: #0b1725;
  background: #a8d2f3;
  box-shadow: 0 10px 28px rgba(91, 145, 188, .18);
  font-size: 14px;
  font-weight: 570;
  letter-spacing: -.01em;
  text-transform: none;
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.button:hover,
.button-bright,
.button-dark,
.header-cta {
  color: #09131f;
  background: #c5e3f9;
  border-color: transparent;
  box-shadow: 0 14px 36px rgba(91, 145, 188, .24);
}
.button:hover { transform: translateY(-1px); }
.button-dark:hover { color: #08121e; background: #9ccbf1; }
.button-muted, .button-muted:hover {
  color: var(--muted);
  background: transparent;
  border-color: var(--line);
  box-shadow: none;
}
.ticket-widget-wrap,
.ticket-widget-shell {
  display: inline-flex;
  min-width: 0;
  align-items: center;
}
.ticket-widget-wrap {
  position: relative;
  width: 100%;
  max-width: 100%;
}
.ticket-widget-wrap:not([data-widget-ready='true']) > .ticket-widget-shell {
  visibility: hidden;
  pointer-events: none;
}
.ticket-widget-wrap[data-widget-ready='true'] > .ticket-widget-shell {
  visibility: visible;
}
.ticket-widget-shell:empty { display: none; }
.ticket-widget-shell[hidden],
.ticket-widget-fallback[hidden] {
  display: none !important;
}
.ticket-widget-button,
.ticket-widget-fallback,
.ticket-link {
  border-color: #16324a;
  color: #edf6fc;
  background: #16324a;
  box-shadow: 0 12px 28px rgba(16, 44, 68, .22);
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.ticket-widget-button:hover,
.ticket-widget-fallback:hover,
.ticket-link:hover {
  border-color: #285f86;
  color: #fff;
  background: #285f86;
  box-shadow: 0 15px 34px rgba(16, 44, 68, .3);
  transform: translateY(-2px);
}
.ticket-widget-button:focus-visible,
.ticket-widget-fallback:focus-visible,
.ticket-link:focus-visible { outline: 3px solid rgba(112, 169, 216, .55); outline-offset: 3px; }
.ticket-widget-button:active,
.ticket-widget-fallback:active,
.ticket-link:active { transform: translateY(0); }
.ticket-widget-button { font-style: normal; }
.text-link { font-size: 13px; font-weight: 590; letter-spacing: -.005em; }
.text-link::after {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  border-top: 1.7px solid currentColor;
  border-right: 1.7px solid currentColor;
  background: linear-gradient(45deg, transparent 43%, currentColor 44%, currentColor 55%, transparent 56%);
  content: '';
}
.text-link.light { color: #dcebf6; }

.site-header {
  color: var(--ink);
  background: var(--header-bg);
  border-color: var(--line);
  box-shadow: 0 1px 0 rgba(226, 239, 248, .1);
  backdrop-filter: saturate(150%) blur(28px);
  -webkit-backdrop-filter: saturate(150%) blur(28px);
}
.header-inner {
  min-height: 80px;
  grid-template-columns: 222px minmax(0, 1fr) auto 44px 138px;
  grid-template-areas: 'logo nav language theme cta';
  gap: 14px;
}
.logo { grid-area: logo; gap: 12px; }
.logo-mark { width: 44px; height: 44px; flex-basis: 44px; filter: drop-shadow(0 8px 18px rgba(48, 95, 137, .16)); }
.logo-mark img { display: block; }
.logo-mark-inverse { display: none !important; }
:root[data-theme='dark'] .logo-mark-default,
.site-footer .logo-mark-default { display: none !important; }
:root[data-theme='dark'] .logo-mark-inverse,
.site-footer .logo-mark-inverse { display: block !important; }
.logo-type strong {
  font-family: var(--sans);
  font-size: 21px;
  font-weight: 600;
  letter-spacing: -.04em;
}
.logo-type small { margin-top: 5px; color: var(--muted); font-size: 7.5px; font-weight: 560; letter-spacing: .135em; }
#main-nav { grid-area: nav; gap: clamp(11px, 1.3vw, 22px); }
#main-nav a {
  padding: 12px 0;
  color: var(--header-nav);
  font-size: 16px;
  font-weight: 550;
  letter-spacing: -.022em;
}
#main-nav a::after { bottom: 3px; height: 2px; background: #84bde9; }
.nav-social-icons { display: none; }
.social-icon { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.social-icon .ui-icon-fill { fill: currentColor; stroke: none; }
.language-switcher {
  grid-area: language;
  display: inline-flex;
  height: 44px;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--header-nav);
  background: rgba(226, 239, 248, .1);
  font-size: 12px;
  font-weight: 650;
}
.language-switcher a, .language-switcher span { display: grid; min-width: 32px; height: 36px; place-items: center; border-radius: 10px; text-decoration: none; }
.language-switcher [aria-current='true'] { color: #08131f; background: #b9dcf6; }
.language-switcher a:hover { background: rgba(156, 203, 241, .2); }
.language-switcher .is-disabled { cursor: default; opacity: .42; }
.theme-toggle {
  grid-area: theme;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 14px;
  border-color: var(--line);
  color: var(--header-nav);
  background: rgba(226, 239, 248, .1);
  backdrop-filter: blur(14px);
}
.theme-toggle:hover { color: var(--ink); border-color: rgba(112, 169, 216, .35); background: rgba(156, 203, 241, .2); }
.header-cta { grid-area: cta; min-height: 46px; font-size: 13px; }
.menu-button { grid-area: menu; color: var(--header-nav); }
.menu-button-icon { display: grid; width: 22px; gap: 6px; }
.menu-button-icon i { display: block; width: 22px; height: 1.5px; background: currentColor; transition: transform .2s ease; }
.menu-button-label { font-size: 14px; font-weight: 650; line-height: 1; }
.nav-menu-title { display: none; }

.hero {
  min-height: max(720px, calc(100svh - 80px));
  color: #f5f9fd;
  background: #05080d;
}
.hero::before {
  width: 48vw;
  height: 48vw;
  right: 6vw;
  top: 10%;
  bottom: auto;
  background: #76b5e7;
  filter: blur(130px);
  opacity: .12;
}
.hero::after {
  background:
    linear-gradient(90deg, rgba(5, 8, 13, .03) 0, rgba(5, 8, 13, .1) 37%, rgba(5, 8, 13, .68) 59%, rgba(5, 8, 13, .96) 100%),
    linear-gradient(0deg, rgba(5, 8, 13, .78), transparent 32%);
}
.hero-lines { display: none; }
.hero-stage { background: #05080d; }
.hero-stage img { object-fit: contain; object-position: left center; filter: saturate(.9) contrast(1.035) brightness(.95); }
.hero-stage figcaption { top: auto; right: 24px; bottom: 102px; color: rgba(218, 232, 244, .48); }
.hero-grid {
  min-height: max(650px, calc(100svh - 158px));
  grid-template-columns: .92fr 1.08fr;
  gap: 4vw;
  padding-block: 34px 112px;
}
.hero-copy {
  grid-column: 2;
  max-width: 620px;
  margin-left: auto;
  padding: 42px clamp(30px, 3.4vw, 46px);
  border: 1px solid rgba(208, 232, 250, .14);
  border-radius: 34px;
  background: rgba(12, 20, 31, .55);
  box-shadow: 0 32px 90px rgba(0, 0, 0, .26);
  text-shadow: none;
  backdrop-filter: blur(28px) saturate(120%);
  -webkit-backdrop-filter: blur(28px) saturate(120%);
}
.hero h1 { max-width: 600px; margin-bottom: 24px; font-size: clamp(46px, 4.2vw, 64px); line-height: 1; }
.hero h1 em,
.concert-hero h1 em,
.bio-hero h1 em,
.contact-hero h1 em { color: #abd4f4; font-style: normal; font-weight: inherit; }
.hero-lead { max-width: 560px; color: #bac8d6; font-size: 17px; line-height: 1.55; }
.hero-actions .button,
.hero-actions .text-link { flex: 0 0 auto; white-space: nowrap; }
.hero-mobile-concerts {
  position: absolute;
  z-index: 3;
  right: clamp(28px, calc((100vw - 1240px) / 2), 8vw);
  bottom: 36px;
  display: grid;
  width: min(760px, 58vw);
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 31.5%);
  gap: 10px;
  padding: 2px 2px 9px;
  overflow-x: auto;
  scroll-padding-inline: 2px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.hero-mobile-concerts::-webkit-scrollbar { display: none; }
.hero-mobile-concerts a {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 17px;
  border: 1px solid rgba(196, 225, 247, .16);
  border-radius: 20px;
  color: #eef7fd;
  background: rgba(19, 35, 54, .88);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .22);
  text-decoration: none;
  backdrop-filter: blur(20px);
  scroll-snap-align: start;
}
.hero-mobile-concerts span { display: grid; gap: 2px; }
.hero-mobile-concerts strong { font-size: 16px; font-weight: 600; letter-spacing: -.025em; }
.hero-mobile-concerts small { color: #a8c0d4; font-size: 12px; }
.hero-mobile-concerts .ui-icon { flex: 0 0 auto; color: #9ccbf1; font-size: 20px; }
.next-concert {
  right: clamp(28px, calc((100vw - 1240px) / 2), 8vw);
  bottom: 24px;
  width: min(620px, 52vw);
  min-height: 70px;
  padding: 12px 25px;
  border: 1px solid rgba(221, 241, 255, .14);
  border-radius: 22px;
  color: #eef7fd;
  background: rgba(21, 34, 49, .72);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .26);
  backdrop-filter: blur(24px);
}
.next-concert strong { font-family: var(--sans); font-size: 18px; font-weight: 560; }
.next-concert span { color: #9ccbf1; font-weight: 620; }
.next-concert i { display: flex; font-size: 24px; }

.events-list { display: grid; gap: 12px; border: 0; }
.event-card {
  padding: 25px 27px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--surface-elevated);
  box-shadow: var(--soft-shadow);
  backdrop-filter: blur(20px);
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.event-card:hover { border-color: rgba(112, 169, 216, .3); box-shadow: var(--shadow); transform: translateY(-2px); }
.home-concerts-cta { display: flex; margin-top: 32px; }
.home-all-concerts {
  width: min(100%, 520px);
  min-height: 62px;
  justify-content: center;
  gap: 13px;
  margin-inline: auto;
  font-size: 16px;
}
.home-all-concerts .ui-icon { font-size: 21px; }
.event-date strong { font-size: 44px; font-weight: 570; }
.event-date span { color: #2b465f; font-size: 14px; line-height: 1.2; }
.event-date small { color: #506981; font-size: 13px; font-weight: 570; line-height: 1.35; }
.event-main h2 { font-size: clamp(28px, 3.2vw, 42px); }
.event-main .eyebrow { color: #426583; font-size: 12px; letter-spacing: .09em; }
.event-main p:not(.eyebrow) { color: #52677b; font-size: 14px; }
.event-main .event-duration { margin-top: 7px; color: var(--violet); font-weight: 560; }
.event-actions { min-width: 178px; gap: 10px; }
.event-actions .button:not(.button-muted) {
  min-width: 178px;
  border-color: #17344c;
  color: #edf6fc;
  background: #17344c;
  box-shadow: 0 12px 28px rgba(16, 44, 68, .24);
}
.event-actions .button:not(.button-muted):hover {
  border-color: #285f86;
  color: #fff;
  background: #285f86;
  box-shadow: 0 15px 34px rgba(16, 44, 68, .3);
  transform: translateY(-2px);
}
.event-actions .text-link {
  min-height: 42px;
  justify-content: center;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: #203d56;
  background: rgba(163, 204, 235, .18);
  text-decoration: none;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}
.event-actions .text-link::after { content: none; }
.event-actions .text-link:hover { color: var(--ink); border-color: rgba(112, 169, 216, .38); background: rgba(156, 203, 241, .12); }
.section-count { border-color: var(--line); background: var(--surface-elevated); font-weight: 560; letter-spacing: .04em; }

.manifesto,
.release-callout,
.media-callout,
.page-hero,
.concert-hero,
.contact-hero,
.video-catalog-hero,
.video-detail-head,
.video-concerts,
.site-footer { color: var(--on-dark); background-color: #08101a; }
.manifesto { background: linear-gradient(135deg, #0b1724, #13283a 58%, #0b1420); }
.manifesto::after { border-color: rgba(156, 203, 241, .22); opacity: 1; }
.manifesto h2 { font-size: clamp(38px, 4.2vw, 50px); }
.manifesto-grid > div:last-child > p { color: #bdcad7; }
.manifesto blockquote { border-color: #8fc3ec; font-family: var(--sans); font-size: 24px; font-weight: 470; letter-spacing: -.025em; }
.proof-grid { gap: 14px; border: 0; overflow: visible; }
.proof-grid div,
.bio-facts div,
.video-concert-card,
.video-catalog-card,
.photo-card { border: 1px solid var(--line); border-radius: 26px; background: var(--surface-elevated); box-shadow: var(--soft-shadow); }
.proof-grid div + div { border-left: 1px solid var(--line); }
.proof-grid strong { font-family: var(--sans); font-weight: 580; }
.proof-grid div { min-height: 164px; padding: 26px; }
.proof-grid span { color: var(--muted); font-size: 13px; line-height: 1.45; }
.home-proof-section { background: var(--paper-2); }
.release-callout { padding-block: clamp(72px, 8vw, 112px); background: linear-gradient(135deg, #10283d 0%, #1a4260 58%, #0d2234 100%); }
.home-release-grid { display: grid; grid-template-columns: minmax(270px, .72fr) minmax(0, 1.28fr); align-items: center; gap: clamp(38px, 7vw, 96px); }
.home-release-grid > img { width: 100%; border-radius: 32px; box-shadow: 24px 24px 0 rgba(112, 169, 216, .18); }
.home-release-copy h3 { margin: 0 0 18px; color: var(--on-dark); font-size: clamp(38px, 4.3vw, 52px); line-height: 1; overflow-wrap: anywhere; }
.home-release-copy > p:not(.eyebrow) { max-width: 650px; margin: 0 0 26px; color: #bed0de; font-size: 17px; line-height: 1.6; }
.home-release-tracks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 30px; padding: 0; list-style: none; }
.home-release-tracks li { display: grid; min-width: 0; grid-template-columns: 30px minmax(0, 1fr) 44px; align-items: center; gap: 11px; min-height: 66px; padding: 10px 12px 10px 15px; border: 1px solid rgba(205, 231, 249, .14); border-radius: 14px; background: rgba(4, 14, 24, .18); }
.home-release-tracks > li > span:first-child { color: #a8c4d8; font-size: 12px; font-weight: 680; }
.home-release-tracks strong { overflow: hidden; color: #e8f2f8; font-size: 18px; font-weight: 590; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.home-release-title { display: grid; min-width: 0; gap: 2px; }
.home-release-title small { overflow: hidden; color: #b6cad9; font-size: 14px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.home-release-listen {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid rgba(185, 221, 247, .3);
  border-radius: 50%;
  color: #0b2030;
  background: #b9ddf7;
  text-decoration: none;
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.home-release-listen .ui-icon { width: 21px; height: 21px; }
.home-release-listen:hover { border-color: #e9f6ff; background: #dceefa; transform: translateY(-2px); }
.home-release-listen:focus-visible { outline: 3px solid rgba(185, 221, 247, .5); outline-offset: 3px; }
.home-release-copy .button { min-width: 230px; }
.track-row { border-color: var(--line); border-radius: 14px; }
.track-row strong { font-weight: 520; }
.track-row i { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(45, 102, 146, .18); border-radius: 50%; color: #0a1724; background: #b9ddf7; box-shadow: 0 4px 14px rgba(61, 121, 169, .12); transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.track-row i .ui-icon { width: 17px; height: 17px; margin-left: 2px; }
.track-row:hover, .score-card:hover { color: #0a1623; background: #b5daf6; border-color: #b5daf6; }
.track-title { display: grid; min-width: 0; gap: 3px; }
.track-title small { color: var(--muted); font-size: 12px; line-height: 1.35; }
.track-row:hover .track-title small { color: #38536a; }
.track-row:hover i, .track-row:active i, .track-row:focus-visible i { border-color: rgba(45, 102, 146, .3); background: #dceaf4; box-shadow: 0 5px 18px rgba(34, 82, 120, .2); }
.media-callout { background: #101c29; }
.sound-wave i { background: linear-gradient(#c8e5fa, #6da8d7); }

.home-video-section { color: var(--on-dark); background: linear-gradient(135deg, #050a11 0%, #101827 58%, #0b202d 100%); }
.home-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 38px;
}
.home-section-heading h2 { margin: 0; font-size: clamp(38px, 4.2vw, 52px); }
.home-section-heading .eyebrow { margin-bottom: 10px; }
.home-section-heading-dark h2 { color: #dfebf4; }
.home-section-link {
  display: inline-flex;
  min-height: 48px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 19px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: inherit;
  font-size: 14px;
  font-weight: 590;
  text-decoration: none;
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.home-section-heading-dark .home-section-link { border-color: rgba(205, 231, 249, .22); color: #eaf5fc; background: rgba(207, 233, 251, .06); }
.home-section-link:hover { border-color: rgba(112, 169, 216, .5); background: rgba(156, 203, 241, .12); transform: translateY(-2px); }
.home-section-link .ui-icon { font-size: 17px; }
.home-video-grid { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); align-items: center; gap: clamp(34px, 6vw, 82px); }
.home-video-copy { min-width: 0; }
.home-video-copy h3 { max-width: 520px; margin: 0 0 20px; color: #dfebf4; font-size: clamp(32px, 3.5vw, 46px); line-height: 1.03; overflow-wrap: anywhere; }
.home-video-copy > p:not(.eyebrow) { max-width: 540px; margin: 0 0 28px; color: #afbdcc; font-size: 17px; line-height: 1.6; }
.home-video-copy .button { min-width: 142px; }
.home-video-grid .video-player { border: 1px solid rgba(203, 230, 248, .18); border-radius: 28px; box-shadow: 0 26px 70px rgba(0, 0, 0, .3); }
.home-video-grid .video-source-note { color: #9fb1c1; }
.home-video-grid .video-source-note a { color: #dcecf8; }

.home-albums-section { overflow: hidden; }
.home-albums-scroller {
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(290px, 31.5%);
  gap: 18px;
  padding: 2px 2px 18px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-color: rgba(112, 169, 216, .38) transparent;
  scrollbar-width: thin;
}
.home-albums-scroller::-webkit-scrollbar,
.home-journal-grid::-webkit-scrollbar { height: 5px; }
.home-albums-scroller::-webkit-scrollbar-thumb,
.home-journal-grid::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(112, 169, 216, .38); }
.home-album-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  color: inherit;
  background: var(--surface-elevated);
  box-shadow: var(--soft-shadow);
  text-decoration: none;
  scroll-snap-align: start;
  transition: transform .25s ease, box-shadow .25s ease;
}
.home-albums-scroller .home-album-card { box-shadow: none; }
.home-album-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.home-album-card figure { position: relative; margin: 0; overflow: hidden; aspect-ratio: 4 / 3; background: #07101a; }
.home-album-card figure::after { position: absolute; inset: auto 0 0; height: 42%; background: linear-gradient(transparent, rgba(4, 10, 17, .5)); content: ''; pointer-events: none; }
.home-album-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home-album-card:hover img { transform: scale(1.025); }
.home-album-card figure span { position: absolute; z-index: 2; right: 14px; bottom: 13px; padding: 6px 10px; border: 1px solid rgba(225, 240, 250, .22); border-radius: 999px; color: #edf5fb; background: rgba(6, 13, 21, .62); backdrop-filter: blur(10px); font-size: 10px; font-weight: 620; }
.home-album-card > div { display: flex; min-height: 190px; flex: 1; flex-direction: column; align-items: flex-start; padding: 23px; }
.home-album-card p { margin: 0 0 9px; color: var(--violet); font-size: 11px; font-weight: 650; letter-spacing: .08em; line-height: 1.5; text-transform: uppercase; }
.home-album-card h3 { margin: 0; font-size: clamp(25px, 2.2vw, 32px); line-height: 1.05; overflow-wrap: anywhere; }
.home-album-card i { display: inline-flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 22px; font-size: 12px; font-style: normal; font-weight: 590; }
.home-album-card i .ui-icon { font-size: 15px; }
.home-journal-section { overflow: hidden; }
.home-journal-grid .journal-card { grid-column: span 4; }

.page-hero,
.video-catalog-hero,
.video-detail-head { background: linear-gradient(125deg, #08101a 0, #102235 64%, #203f5a 100%); }
.video-detail-head h1 { font-size: clamp(46px, 5vw, 64px); line-height: .98; }
.page-hero::after { border-color: rgba(156, 203, 241, .24); opacity: 1; }
.page-hero h1 { font-size: clamp(46px, 4.9vw, 64px); }
.page-hero p:not(.eyebrow) { color: #b8c6d4; }
.concert-hero { background: linear-gradient(135deg, #070d15, #102237); }
.concert-hero::before { background: radial-gradient(circle at 72% 28%, rgba(132, 189, 233, .22), transparent 34%); }
.concert-hero.has-image::before { background: linear-gradient(90deg, rgba(7, 13, 21, .98), rgba(7, 13, 21, .6)), var(--hero-image) center/cover; }
.ticket-card {
  color: #eef7fd;
  background: rgba(31, 54, 76, .78);
  border: 1px solid rgba(205, 231, 249, .16);
  box-shadow: 0 28px 76px rgba(0, 0, 0, .28);
  backdrop-filter: blur(24px);
}
.ticket-card small { color: #afbdcc; }
.ticket-card .button:not(.button-muted) { color: #eef7fd; background: #285f86; border-color: #4d86ae; }
.ticket-card .button:not(.button-muted):hover { color: #fff; background: #3979a6; border-color: #6ba3ca; }
.checks li::before {
  display: inline-block;
  width: 9px;
  height: 5px;
  margin: 0 12px 3px 2px;
  border-bottom: 2px solid #87bfe9;
  border-left: 2px solid #87bfe9;
  content: '';
  transform: rotate(-45deg);
}
details { border-color: var(--line); }
summary { font-weight: 570; }
.back-link, .video-back { align-items: center; gap: 8px; }
.back-link .ui-icon, .video-back .ui-icon { font-size: 16px; }

.bio-hero { color: #f5f9fd; background: #07101a; }
.bio-hero figure { clip-path: inset(28px 0 28px 0 round 34px); }
.editorial aside { border: 1px solid var(--line); border-radius: 24px; background: var(--surface-elevated); box-shadow: var(--soft-shadow); }
.editorial aside strong { font-family: var(--sans); font-weight: 560; }
.bio-copy .lead p:first-child::first-letter { color: var(--violet); font-family: var(--sans); font-weight: 600; }
.bio-facts { gap: 12px; border: 0; background: transparent; }
.bio-facts div { min-height: 150px; }
.bio-facts strong { font-size: 38px; }

.music-hero { background: linear-gradient(125deg, #102237, #1d3d58); }
.music-hero h1 { font-size: clamp(48px, 4.9vw, 64px); }
.music-hero::after { border-color: rgba(184, 220, 248, .23); }
.album-art span { color: #0a1623; background: #b8dcf8; }
.album-art img { border-radius: 32px; box-shadow: 26px 26px 0 rgba(7, 16, 26, .42); }
.music-quote { padding: clamp(34px, 5vw, 64px); border: 1px solid rgba(164, 211, 243, .2); border-radius: 30px; color: #f3f8fc; background: linear-gradient(130deg, #183b54 0%, #285f82 54%, #477fa2 100%); box-shadow: var(--shadow); }
.music-quote > span { color: #c8e7fb; font-size: 72px; }
.music-quote blockquote { max-width: 930px; margin-block: 6px 24px; color: #fff; font-size: clamp(28px, 3vw, 42px); font-weight: 510; }
.music-quote .text-link { color: #eef8ff; }
.music-quote-section { padding-block: clamp(50px, 5vw, 72px); }
.music-services-section { padding-bottom: 64px; }
.music-services-panel { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.music-services-panel .section-heading { margin-bottom: 24px; }
.music-services-intro { max-width: 570px; margin: 10px 0 0; color: var(--muted); font-size: 16px; line-height: 1.55; }
.music-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.music-service {
  display: flex;
  min-height: 72px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--surface-elevated);
  box-shadow: var(--soft-shadow);
  font-weight: 600;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.music-service:hover { border-color: rgba(112, 169, 216, .5); background: var(--paper); transform: translateY(-2px); }
.music-service .ui-icon { width: 18px; flex: 0 0 18px; color: var(--violet); }
.music-albums-section { padding-top: 72px; }
.music-album-accordion { display: grid; gap: 12px; }
.music-album-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 26px; background: var(--surface-elevated); box-shadow: var(--soft-shadow); scroll-margin-top: 100px; transition: border-color .2s ease, box-shadow .2s ease; }
.music-album-panel:last-child { border-bottom: 1px solid var(--line); }
.music-album-panel[open] { border-color: rgba(112, 169, 216, .45); box-shadow: 0 22px 55px rgba(29, 60, 86, .11); }
.music-album-panel > summary { display: grid; min-height: 138px; grid-template-columns: 108px minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 14px 18px; list-style: none; cursor: pointer; }
.music-album-panel > summary::-webkit-details-marker { display: none; }
.music-album-panel > summary:hover { background: color-mix(in srgb, #b8dcf8 13%, transparent); }
.music-album-summary-cover img { width: 108px; aspect-ratio: 1; border-radius: 18px; object-fit: cover; box-shadow: 0 10px 28px rgba(31, 64, 91, .16); }
.music-album-summary-copy { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.music-album-summary-copy .eyebrow { margin-bottom: 8px; }
.music-album-summary-copy > strong { font-size: clamp(28px, 3vw, 42px); font-weight: 570; letter-spacing: -.045em; line-height: 1.04; overflow-wrap: anywhere; }
.music-album-summary-copy > small { margin-top: 8px; color: var(--muted); font-size: 12px; }
.music-album-toggle { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 0 18px; border: 1px solid rgba(112, 169, 216, .34); border-radius: 999px; color: #0b1725; background: #b9ddf7; font-size: 13px; font-weight: 620; white-space: nowrap; }
.music-album-toggle::after { content: '+'; font-size: 20px; font-weight: 430; line-height: 1; }
.music-album-panel[open] .music-album-toggle::after { content: '−'; }
.music-album-panel-body { padding: 30px 34px 34px; border-top: 1px solid var(--line); }
.music-album-intro > p { max-width: 760px; margin-bottom: 0; color: var(--muted); font-size: 17px; }
.music-album-meta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 24px 0 18px; color: var(--muted); font-size: 13px; }
.music-album-meta a { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); font-weight: 600; text-decoration: none; }
.music-album-meta .ui-icon { width: 16px; color: var(--violet); }
.yandex-music-player { margin-bottom: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--surface-solid); box-shadow: var(--soft-shadow); }
.yandex-music-player-frame { position: relative; height: min(var(--player-collapsed-height, 560px), 68vh); min-height: 380px; overflow: hidden; transition: height .3s ease; }
.yandex-music-player[data-player-expanded='true'] .yandex-music-player-frame { height: var(--player-expanded-height, 950px); max-height: none; }
.yandex-music-player iframe { position: relative; z-index: 1; display: block; width: 100%; height: 100%; border: 0; color-scheme: light dark; }
.music-player-placeholder { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; place-items: center; gap: 8px; padding: 30px; color: var(--muted); background: var(--surface-solid); text-align: center; transition: opacity .2s ease, visibility .2s ease; }
.yandex-music-player[data-player-state='ready'] .music-player-placeholder { visibility: hidden; opacity: 0; pointer-events: none; }
.yandex-music-player[data-player-state='delayed'] .music-player-placeholder small,
.yandex-music-player[data-player-state='error'] .music-player-placeholder small { max-width: 420px; color: var(--ink); }
.music-player-placeholder > span { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 7px; border-radius: 50%; color: #0b1725; background: #b9ddf7; }
.music-player-placeholder .ui-icon { width: 21px; margin-left: 3px; }
.music-player-placeholder strong { color: var(--ink); font-size: 18px; }
.music-player-placeholder small { font-size: 12px; }
.music-player-controls { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 16px; border-top: 1px solid var(--line); background: var(--surface-elevated); }
.music-player-controls button { min-height: 42px; padding: 0 16px; border: 1px solid rgba(112, 169, 216, .42); border-radius: 999px; color: #0b1725; background: #b9ddf7; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; }
.music-player-controls button:hover { border-color: #315c7d; background: #a9d2f1; }
.music-player-controls span { color: var(--muted); font-size: 12px; text-align: right; }
.music-album-panel .track-list { border-top-color: var(--line); }
.music-track-fallback { margin-top: 18px; border: 0; }
.music-track-fallback:last-child { border-bottom: 0; }
.music-track-fallback summary { display: flex; min-height: 48px; align-items: center; justify-content: space-between; padding: 0 4px; color: var(--muted); font-size: 13px; font-weight: 600; list-style: none; }
.music-track-fallback summary::-webkit-details-marker { display: none; }
.music-track-fallback summary::after { content: '+'; display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); font-size: 19px; font-weight: 400; }
.music-track-fallback[open] summary::after { content: '−'; }
.music-track-fallback .track-list { margin-top: 8px; }

.contact-hero { background: linear-gradient(125deg, #08101a, #12283b); }
.contact-hero h1 { font-size: clamp(48px, 5vw, 64px); }
.contact-hero::after { background: #76aedd; opacity: .16; }
.contact-action { font-size: clamp(23px, 3vw, 38px); font-weight: 540; }
.contact-action i { color: #0a1623; background: #afd7f5; }
.contact-action i .ui-icon { font-size: 21px; }
.contact-note { border: 1px solid var(--line) !important; border-radius: 24px; background: var(--surface-elevated); box-shadow: var(--soft-shadow); }
.contact-note strong { font-weight: 550; }
.contact-aside .contact-note-cta {
  display: inline-flex;
  width: auto;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin: 12px 0 0;
  padding: 0 18px;
  border: 1px solid rgba(112, 169, 216, .32);
  border-radius: 999px;
  color: #0a1724;
  background: #b9ddf7;
  font-size: 14px;
  font-weight: 620;
  text-decoration: none;
  transition: background-color .2s ease, transform .2s ease;
}
.contact-aside .contact-note-cta:hover { background: #cee9fb; transform: translateY(-2px); }
.contact-note-cta .ui-icon { font-size: 17px; }

.video-concerts { background: linear-gradient(135deg, #0b1724, #12283a); }
.video-concerts::after { border-color: rgba(156, 203, 241, .16); }
.video-concerts-head { align-items: flex-end; margin-bottom: 32px; }
.video-concerts-head > div { min-width: 0; }
.video-concerts-head h2 { max-width: 760px; line-height: .98; }
.video-concerts-hint { margin: 12px 0 0; color: #9fb4c7; font-size: 13px; }
.video-concerts-grid {
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(290px, 31.5%);
  gap: 16px;
  margin-right: calc((100vw - min(1240px, calc(100vw - 56px))) / -2);
  padding: 2px max(28px, calc((100vw - min(1240px, calc(100vw - 56px))) / 2)) 18px 2px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: 2px;
  scroll-snap-type: inline mandatory;
  scrollbar-color: rgba(174, 211, 239, .38) transparent;
  scrollbar-width: thin;
}
.video-concerts-grid::-webkit-scrollbar { height: 5px; }
.video-concerts-grid::-webkit-scrollbar-thumb { border-radius: 100px; background: rgba(174, 211, 239, .38); }
.video-concerts-tools { display: flex; align-items: center; gap: 10px; }
.scrollbox-controls { display: flex; align-items: center; gap: 7px; }
.scrollbox-controls button {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--ink);
  background: var(--ticket-card);
  box-shadow: var(--soft-shadow);
  cursor: pointer;
}
.scrollbox-controls button:disabled { opacity: .38; cursor: default; }
.scrollbox-controls .ui-icon { width: 19px; height: 19px; }
.video-all-concerts { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px; padding: 0 22px; border: 1px solid rgba(210, 235, 252, .3); border-radius: 100px; color: #edf7fd; background: rgba(214, 237, 252, .08); backdrop-filter: blur(14px); font-size: 15px; font-weight: 590; text-decoration: none; transition: .2s ease; }
.video-all-concerts:hover { border-color: rgba(210, 235, 252, .55); background: rgba(214, 237, 252, .15); transform: translateY(-2px); }
.video-all-concerts .ui-icon { font-size: 18px; }
.video-concert-card {
  display: flex;
  min-width: 0;
  min-height: 290px;
  flex-direction: column;
  padding: 24px;
  border: 1px solid rgba(132, 174, 207, .28);
  border-radius: 28px;
  color: #102033;
  background: rgba(242, 247, 251, .94);
  box-shadow: 0 18px 50px rgba(2, 10, 18, .18);
  scroll-snap-align: start;
}
.video-concert-main { display: flex; min-width: 0; flex: 1; flex-direction: column; color: inherit; text-decoration: none; }
.video-concert-date { display: flex; align-items: flex-start; gap: 13px; }
.video-concert-date > strong { font-size: clamp(50px, 4.5vw, 64px); font-weight: 570; line-height: .82; }
.video-concert-date > span { padding-top: 2px; font-size: 12px; font-weight: 620; line-height: 1.3; }
.video-concert-date small { margin-top: 6px; color: #506981; font-size: 12px; font-weight: 560; }
.video-concert-copy { display: flex; min-width: 0; flex-direction: column; margin-top: 28px; }
.video-concert-copy small { color: #4b647c; font-size: 12px; font-weight: 650; letter-spacing: .06em; line-height: 1.45; text-transform: uppercase; overflow-wrap: anywhere; }
.video-concert-copy strong { margin-top: 8px; font-size: clamp(26px, 2.7vw, 36px); font-weight: 610; line-height: 1.06; letter-spacing: -.04em; overflow-wrap: anywhere; }
.video-concert-actions { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; margin-top: 24px; }
.video-concert-card .video-concert-actions > .button { grid-column: auto; width: auto; min-width: 0; min-height: 48px; margin: 0; padding: 0 18px; font-size: 12px; white-space: nowrap; }
.video-concert-actions > a:not(.button) { display: inline-flex; min-height: 44px; align-items: center; gap: 5px; color: #344b62; font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.video-concert-actions .ui-icon { width: 15px; }
.video-catalog-card { overflow: hidden; }
.video-catalog-card:hover { box-shadow: var(--shadow); }
.video-card-copy p, .video-search i, .score-card .score-icon, .empty-state span { color: var(--violet); }
.video-card-copy p { font-size: 11px; line-height: 1.45; }
.video-search input { color: var(--ink); background: var(--surface-elevated); backdrop-filter: blur(18px); }
.video-search input:focus { border-color: #82b8e2; box-shadow: 0 0 0 4px rgba(130, 184, 226, .15); }
.video-search i { display: flex; }
.video-search i .ui-icon { font-size: 23px; }
.video-filters button { font-weight: 570; }
.video-filters button:hover, .video-filters button.is-active { color: #08131f; background: #b7dcf7; border-color: #b7dcf7; }
.video-placeholder { background: radial-gradient(circle, #325a7a, #07101a 70%); }
.video-placeholder span { color: #b8dcf8; border-color: #b8dcf8; }
.video-card-play .ui-icon { font-size: 24px; }
.video-player button span .ui-icon { font-size: 34px; }
.video-source-note a { display: inline-flex; align-items: center; gap: 5px; }
.video-source-note a .ui-icon { font-size: 13px; }
.score-card, .empty-state { border-color: var(--line); border-radius: 26px; background: var(--surface-elevated); box-shadow: var(--soft-shadow); }
.score-icon .ui-icon, .empty-state > span .ui-icon { font-size: 52px; }
.score-card > i { display: inline-flex; align-items: center; gap: 7px; }
.score-card > i .ui-icon { font-size: 15px; }
.photo-card { overflow: hidden; }

.organizer-legal { display: grid !important; gap: 5px; margin: 0 !important; }
.organizer-legal span { display: block; min-width: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.contact-aside .organizer-legal { max-width: 37rem; font-size: 14px; line-height: 1.6; }
.footer-grid .organizer-legal { gap: 3px; }

.album-heading > p { max-width: 420px; margin: 0; color: var(--muted); }
.photo-category-section + .photo-category-section { border-top: 1px solid var(--line); }
.photo-category-links { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 10px; margin: -20px 0 30px; padding: 4px 1px 10px; }
.photo-category-links a { display: grid; min-width: 0; align-items: center; grid-template-columns: minmax(0,1fr) auto 16px; gap: 12px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 18px; color: inherit; background: var(--surface-elevated); box-shadow: var(--soft-shadow); text-decoration: none; }
.photo-category-links a span { min-width: 0; font-weight: 620; overflow-wrap: anywhere; }
.photo-category-links a small { color: var(--muted); white-space: nowrap; }
.photo-category-links .ui-icon { width: 16px; flex: 0 0 16px; color: var(--violet); }
.media-category-section .section-heading { margin-bottom: 28px; }
.media-category-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.media-category-card { display: grid; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; color: inherit; background: var(--surface-elevated); box-shadow: var(--soft-shadow); text-decoration: none; transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.media-category-card:hover { transform: translateY(-3px); border-color: var(--blue); box-shadow: var(--shadow); }
.media-category-card figure { aspect-ratio: 16/9; margin: 0; overflow: hidden; background: linear-gradient(145deg,var(--navy),var(--violet)); }
.media-category-card figure.is-empty::after { content: ''; display: block; width: 100%; height: 100%; background: radial-gradient(circle at 70% 30%,rgba(255,255,255,.16),transparent 42%); }
.media-category-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.media-category-card:hover img { transform: scale(1.025); }
.media-category-card > div { display: grid; gap: 8px; padding: 24px; }
.media-category-card p { margin: 0; color: var(--eyebrow); font-size: 12px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.media-category-card h2 { margin: 0; font-size: clamp(25px,2.4vw,38px); }
.media-category-card span { color: var(--muted); line-height: 1.55; }
.media-category-card i { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; color: var(--violet); font-size: 14px; font-style: normal; font-weight: 700; }
.media-category-card i .ui-icon { width: 16px; }
.media-breadcrumbs { display: flex; max-width: 100%; align-items: center; flex-wrap: wrap; gap: 7px; margin: 0 0 18px; color: rgba(232,241,249,.78); font-size: 13px; line-height: 1.4; }
.media-breadcrumbs a { color: inherit; text-decoration: underline; text-decoration-color: rgba(232,241,249,.34); text-underline-offset: 4px; }
.media-breadcrumbs a:hover { color: var(--blue-pale); text-decoration-color: currentColor; }
.media-breadcrumbs i { opacity: .5; font-style: normal; }
.media-breadcrumbs span { min-width: 0; overflow-wrap: anywhere; }
.album-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.album-card {
  display: grid;
  grid-column: span 6;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 30px;
  color: inherit;
  background: var(--surface-elevated);
  box-shadow: var(--soft-shadow);
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease;
}
.album-card:first-child { grid-column: span 12; grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr); }
.album-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.album-card figure { position: relative; min-height: 360px; margin: 0; overflow: hidden; background: #07101a; }
.album-card:first-child figure { min-height: 510px; }
.album-card figure::after { position: absolute; inset: auto 0 0; height: 42%; background: linear-gradient(transparent, rgba(4, 10, 17, .5)); content: ''; pointer-events: none; }
.album-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.album-card:hover img { transform: scale(1.025); }
.album-card figure span { position: absolute; z-index: 2; right: 18px; bottom: 16px; padding: 7px 11px; border: 1px solid rgba(225, 240, 250, .24); border-radius: 100px; color: #edf5fb; background: rgba(6, 13, 21, .58); backdrop-filter: blur(12px); font-size: 11px; font-weight: 600; }
.album-card > div { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: 30px; }
.album-card > div > p { margin: 0 0 12px; color: var(--violet); font-size: 12px; font-weight: 650; letter-spacing: .08em; line-height: 1.45; text-transform: uppercase; }
.album-card h2 { margin: 0 0 14px; font-size: clamp(28px, 3vw, 44px); overflow-wrap: anywhere; }
.album-card > div > span { color: var(--muted); line-height: 1.55; }
.album-card i { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 26px; font-size: 13px; font-style: normal; font-weight: 590; }
.album-card i .ui-icon { font-size: 16px; }
.album-hero { padding: clamp(80px, 10vw, 145px) 0 clamp(70px, 8vw, 115px); color: var(--on-dark); background: radial-gradient(circle at 85% 15%, rgba(132, 188, 230, .24), transparent 31rem), linear-gradient(130deg, #07101a, #13283b); }
.album-hero .back-link, .journal-post-head .back-link { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 64px; color: #b9c9d8; text-decoration: none; }
.album-hero .back-link .ui-icon, .journal-post-head .back-link .ui-icon { font-size: 16px; }
.album-hero h1 { max-width: 960px; margin: 0 0 24px; }
.album-hero p:not(.eyebrow) { max-width: 720px; margin: 0 0 22px; color: var(--on-dark-muted); font-size: 18px; line-height: 1.6; }
.album-hero > .shell > span { color: #91bfe3; font-size: 12px; font-weight: 620; }
.album-photo-grid .photo-card { background: var(--surface-elevated); }
.album-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; margin-top: 36px; }
.album-pagination > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; }
.album-pagination a { display: inline-grid; min-width: 42px; min-height: 42px; place-items: center; border: 1px solid var(--line); border-radius: 999px; color: inherit; background: var(--surface-elevated); text-decoration: none; }
.album-pagination a[aria-current="page"] { color: #081523; background: #b9ddf7; border-color: #b9ddf7; font-weight: 700; }
.album-pagination .pagination-direction { display: inline-flex; width: max-content; align-items: center; gap: 7px; padding: 0 16px; }
.album-pagination > .pagination-direction:last-child { justify-self: end; }
.album-pagination .ui-icon { width: 15px; }

.journal-hero { background: radial-gradient(circle at 78% 16%, rgba(144, 199, 239, .2), transparent 30rem), linear-gradient(130deg, #07101a, #102439); }
.journal-intro { align-items: start; }
.journal-intro h2, .journal-intro > p { margin-bottom: 0; }
.journal-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.journal-card { display: flex; grid-column: span 4; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: var(--surface-elevated); box-shadow: var(--soft-shadow); }
.journal-card-cover { display: block; height: 270px; overflow: hidden; background: #07101a; }
.journal-card-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.journal-card:hover .journal-card-cover img { transform: scale(1.025); }
.journal-card > div { display: flex; min-height: 290px; flex: 1; flex-direction: column; align-items: flex-start; padding: 27px; }
.journal-card p { margin: 0 0 12px; color: var(--violet); font-size: 12px; font-weight: 650; letter-spacing: .08em; line-height: 1.45; text-transform: uppercase; }
.journal-card h2 { margin: 0 0 11px; font-size: 29px; line-height: 1.06; }
.journal-card h2 a { color: inherit; text-decoration: none; }
.journal-card small { margin-bottom: 15px; color: var(--muted); }
.journal-card-author { display: flex; align-items: baseline; gap: 7px; margin-bottom: 10px !important; font-size: 13px; line-height: 1.4; }
.journal-card-author span { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.journal-card-author strong { color: var(--ink); font-weight: 650; }
.journal-card-location { margin-bottom: 15px; }
.journal-card > div > span { color: var(--muted); line-height: 1.55; }
.journal-card-link { display: inline-flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 24px; color: inherit; font-size: 13px; font-weight: 590; text-decoration: none; }
.journal-card-link .ui-icon { font-size: 15px; }
.journal-empty { grid-column: 1 / -1; }
@media (min-width: 1100px) {
  .journal-grid > .journal-card:only-child { display: grid; grid-column: span 8; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
  .journal-grid > .journal-card:only-child .journal-card-cover { height: 100%; min-height: 340px; }
  .journal-grid > .journal-card:only-child > div { min-height: 340px; }
}
.journal-post-head { padding: clamp(80px, 10vw, 140px) 0 clamp(100px, 12vw, 175px); color: var(--on-dark); background: radial-gradient(circle at 82% 12%, rgba(137, 190, 231, .22), transparent 30rem), linear-gradient(130deg, #07101a, #11263a); }
.journal-post-head h1 { max-width: 1000px; margin: 0 0 25px; }
.journal-post-head p:not(.eyebrow):not(.journal-post-author) { max-width: 780px; color: var(--on-dark-muted); font-size: 20px; line-height: 1.55; }
.journal-post-head .journal-post-author { display: flex; align-items: baseline; gap: 9px; margin: 28px 0 0; color: var(--on-dark-muted); font-size: 14px; line-height: 1.4; }
.journal-post-author span { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.journal-post-author strong { color: var(--on-dark); font-weight: 650; }
.journal-post-cover { position: relative; z-index: 2; margin-top: -88px; }
.journal-post-cover img { width: 100%; max-height: 760px; border-radius: 32px; box-shadow: var(--shadow); object-fit: cover; }
.journal-post-body { display: grid; grid-template-columns: minmax(0, 720px); justify-content: center; padding-top: clamp(65px, 8vw, 110px); padding-bottom: clamp(85px, 10vw, 140px); }
.journal-post-body .prose p { color: var(--ink); font-size: 19px; line-height: 1.75; }
.journal-post-body .button { gap: 8px; }
.journal-related .journal-card { grid-column: span 4; }

.ticket-dialog { color: var(--ink); background: var(--white); }
.ticket-dialog-head, .ticket-dialog-foot { background: var(--surface-solid); }
.ticket-dialog-head span { color: var(--violet); }
.ticket-dialog-close .ui-icon, .photo-viewer-close .ui-icon { font-size: 24px; }

.site-footer { background: #060b12; }
.site-footer .logo-type strong { color: #eef6fc; }
.site-footer .logo-type small,
.footer-grid a:not(.logo),
.footer-grid p { color: #9babb9; }
.footer-grid h2 { color: #6f8294; }

.social-follow-section { padding-block: clamp(52px, 5.5vw, 76px); background: color-mix(in srgb, var(--paper) 72%, #a9cce6); }
.social-follow-card {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: clamp(32px, 6vw, 88px);
  padding: clamp(32px, 4vw, 54px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(135deg, color-mix(in srgb, var(--paper-2) 70%, #9fc7e4), var(--surface-solid));
  box-shadow: var(--soft-shadow);
}
.social-follow-card h2 { margin: 8px 0 12px; font-size: clamp(32px, 3.6vw, 48px); }
.social-follow-card p:last-child { max-width: 540px; margin: 0; color: var(--muted); }
.social-follow-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.social-follow-links a,
.nav-social-icons a { color: var(--ink); text-decoration: none; }
.social-follow-links a { display: flex; min-height: 68px; align-items: center; gap: 14px; padding: 0 19px; border: 1px solid var(--line); border-radius: 19px; background: var(--surface-solid); font-size: 15px; font-weight: 650; transition: transform .2s ease, border-color .2s ease, background-color .2s ease; }
.social-follow-links .social-icon { width: 29px; height: 29px; flex: 0 0 29px; }
.social-follow-links a:hover { transform: translateY(-2px); border-color: rgba(112, 169, 216, .42); background: color-mix(in srgb, var(--surface-solid) 76%, #b8dcf8); }

:root[data-theme='dark'] .button:not(.button-muted) { color: #08131f; background: #a8d2f3; border-color: transparent; }
:root[data-theme='dark'] .button:not(.button-muted):hover { color: #07111c; background: #c5e3f9; border-color: transparent; }
:root[data-theme='dark'] .button.ticket-widget-button,
:root[data-theme='dark'] .button.ticket-widget-fallback,
:root[data-theme='dark'] .button.ticket-link { color: #edf6fc; border-color: #285f86; background: #17344c; }
:root[data-theme='dark'] .button.ticket-widget-button:hover,
:root[data-theme='dark'] .button.ticket-widget-fallback:hover,
:root[data-theme='dark'] .button.ticket-link:hover { color: #fff; border-color: #5a98c3; background: #285f86; }
:root[data-theme='dark'] .event-actions .button:not(.button-muted) { color: #edf6fc; border-color: #285f86; background: #17344c; }
:root[data-theme='dark'] .event-actions .button:not(.button-muted):hover { color: #fff; border-color: #5a98c3; background: #285f86; }
:root[data-theme='dark'] .ticket-card .button:not(.button-muted) { color: #eef7fd; border-color: #4d86ae; background: #285f86; }
:root[data-theme='dark'] .ticket-card .button:not(.button-muted):hover { color: #fff; border-color: #6ba3ca; background: #3979a6; }
:root[data-theme='dark'] .event-date span { color: #c7d9e7; }
:root[data-theme='dark'] .event-date small { color: #9eb4c6; }
:root[data-theme='dark'] .mobile-ticket-bar { color: var(--ink); background: rgba(9, 14, 21, .86); }
:root[data-theme='dark'] .event-main .eyebrow { color: #9fc8e6; }
:root[data-theme='dark'] .event-main p:not(.eyebrow) { color: #aec0d0; }

@media (max-width: 1240px) {
  .music-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .header-inner { grid-template-columns: 1fr auto auto 42px auto; grid-template-areas: 'logo cta language theme menu'; }
  .menu-button { display: inline-flex; width: 44px; min-width: 44px; height: 44px; align-items: center; justify-content: center; gap: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: rgba(226, 239, 248, .1); cursor: pointer; }
  .menu-button:hover { border-color: rgba(112, 169, 216, .45); background: rgba(156, 203, 241, .2); }
  .menu-button .menu-button-icon { display: grid; width: 22px; height: 9px; flex: 0 0 auto; align-content: center; gap: 6px; background: transparent; }
  .menu-button .menu-button-icon i { display: block; width: 22px; height: 1.5px; background: currentColor; transition: transform .2s ease; }
  .menu-button .menu-button-label { display: none; }
  .menu-button[aria-expanded='true'] .menu-button-icon i:first-child { transform: translateY(3.75px) rotate(45deg); }
  .menu-button[aria-expanded='true'] .menu-button-icon i:last-child { transform: translateY(-3.75px) rotate(-45deg); }
  #main-nav {
    position: absolute;
    top: 80px;
    right: 0;
    left: 0;
    display: none;
    align-items: stretch;
    gap: 0;
    padding: 16px 28px 26px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--surface-solid);
    box-shadow: 0 28px 70px rgba(8, 23, 38, .2);
  }
  #main-nav.is-open { display: flex; flex-direction: column; }
  #main-nav a {
    padding: 15px 8px;
    border-bottom: 0;
    color: var(--ink);
    font-size: 17px;
    font-weight: 570;
    line-height: 1.25;
    letter-spacing: -.025em;
  }
  #main-nav a::after { display: none; }
  #main-nav a[aria-current='page'] { padding-inline: 15px; border-radius: 14px; color: #0a1724; background: #c3e2f8; }
  .nav-social-icons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; padding: 18px 8px 0; border-top: 1px solid var(--line); }
  #main-nav .nav-social-icons a { display: grid; width: 48px; height: 48px; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); }
  .hero-copy { max-width: 590px; }
  .journal-card { grid-column: span 6; }
}

@media (min-width: 761px) and (max-width: 1020px) {
  .editorial { grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }
  .editorial article { min-width: 0; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 16px; }
  .hero-actions .button,
  .hero-actions .text-link { width: max-content; max-width: 100%; }
  .next-concert {
    right: 18px;
    width: min(520px, calc(100% - 36px));
    grid-template-columns: 1fr auto;
  }
  .next-concert span { display: none; }
  .next-concert strong { min-width: 0; }
}

@media (max-width: 760px) {
  .shell { width: min(100% - 30px, 1240px); }
  .site-header { background: var(--surface-solid); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .header-inner { min-height: 72px; grid-template-columns: 1fr auto 42px auto; grid-template-areas: 'logo language theme menu'; gap: 9px; }
  #main-nav {
    position: fixed;
    top: 72px;
    height: calc(100dvh - 72px);
    justify-content: flex-start;
    padding: 15px 20px calc(28px + env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--surface-solid);
  }
  #main-nav a { padding: 17px 14px; font-size: 18px; }
  .header-cta { display: none; }
  .logo-mark { width: 40px; height: 40px; flex-basis: 40px; }
  .logo-type strong { font-size: 19px; }
  .logo-type small { display: none; }
  .hero { display: flex; min-height: 0; padding-bottom: 0; flex-direction: column; }
  .hero::after { display: none; }
  .hero-stage {
    position: relative;
    z-index: 1;
    inset: auto;
    order: 1;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .hero-stage img { object-fit: cover; object-position: 20% center; }
  .hero-mobile-concerts {
    position: relative;
    z-index: 3;
    display: grid;
    order: 2;
    grid-auto-flow: column;
    grid-auto-columns: min(72vw, 286px);
    gap: 10px;
    padding: 14px 15px 18px;
    overflow-x: auto;
    background: #07101a;
    scroll-padding-inline: 15px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .hero-mobile-concerts::-webkit-scrollbar { display: none; }
  .hero-mobile-concerts a {
    display: flex;
    min-height: 78px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 17px;
    border: 1px solid rgba(196, 225, 247, .16);
    border-radius: 20px;
    color: #eef7fd;
    background: #132336;
    text-decoration: none;
    scroll-snap-align: start;
  }
  .hero-mobile-concerts span { display: grid; gap: 2px; }
  .hero-mobile-concerts strong { font-size: 17px; font-weight: 600; letter-spacing: -.025em; }
  .hero-mobile-concerts small { color: #a8c0d4; font-size: 12px; }
  .hero-mobile-concerts .ui-icon { color: #9ccbf1; font-size: 21px; }
  .hero-grid { display: block; order: 3; min-height: 0; padding-block: 0 var(--mobile-section-space); }
  .hero-copy {
    max-width: none;
    margin: 0;
    padding: 32px 24px 50px;
    border-radius: 0 0 28px 28px;
    background: #08111c;
  }
  .hero h1 { font-size: clamp(38px, 9.8vw, 48px); }
  .hero-lead { font-size: 15px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .hero-stage figcaption { display: none; }
  .next-concert { display: none; }
  .section { padding: var(--mobile-section-space) 0; }
  .event-card, .announced-events .event-card { display: block; padding: 24px 20px; }
  .event-date {
    width: max-content;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
  }
  .event-date strong { font-size: 42px; }
  .event-date span { font-size: 14px; }
  .event-date small { font-size: 13px; }
  .event-main { min-width: 0; }
  .event-main .eyebrow { margin-bottom: 10px; line-height: 1.45; }
  .event-main h2 { margin-bottom: 8px; font-size: clamp(31px, 8.8vw, 40px); line-height: 1.06; }
  .event-main p:not(.eyebrow) { font-size: 14px; line-height: 1.5; }
  .event-actions { display: grid; grid-template-columns: 1fr; align-items: stretch; min-width: 0; margin-top: 24px; text-align: left; }
  .event-actions .button, .event-actions .text-link { width: 100%; min-width: 0; }
  .event-actions .text-link { min-height: 48px; }
  .home-concerts-cta { margin-top: 24px; }
  .home-all-concerts { width: 100%; min-height: 58px; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-grid div + div { border-left: 1px solid var(--line); }
  .manifesto-grid, .media-callout-inner, .content-intro, .concert-copy, .editorial, .video-card, .contact-grid { grid-template-columns: 1fr; }
  .home-section-heading { align-items: flex-start; flex-direction: column; gap: 20px; margin-bottom: 28px; }
  .home-section-heading h2 { font-size: 36px; }
  .home-section-link { width: 100%; min-height: 50px; }
  .home-video-grid { grid-template-columns: 1fr; gap: 28px; }
  .home-video-grid > div:last-child { order: -1; }
  .home-video-copy h3 { font-size: 34px; }
  .home-video-copy > p:not(.eyebrow) { font-size: 15px; }
  .home-video-copy .button { width: 100%; }
  .home-video-grid .video-player { border-radius: 22px; }
  .home-albums-scroller,
  .home-journal-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(82vw, 340px);
    gap: 13px;
    margin-inline: -15px;
    padding: 2px 15px 17px;
    overflow-x: auto;
    scroll-padding-inline: 15px;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }
  .home-albums-scroller::-webkit-scrollbar,
  .home-journal-grid::-webkit-scrollbar { display: none; }
  .home-album-card,
  .home-journal-grid .journal-card { grid-column: auto; scroll-snap-align: start; }
  .home-album-card > div { min-height: 180px; padding: 21px; }
  .home-album-card h3 { font-size: 29px; }
  .home-journal-grid .journal-card-cover { height: auto; aspect-ratio: 4 / 3; }
  .home-journal-grid .journal-card > div { min-height: 250px; }
  .home-release-grid { grid-template-columns: 1fr; gap: 46px; }
  .home-release-grid > img { width: calc(100% - 20px); box-shadow: 18px 18px 0 rgba(112, 169, 216, .18); }
  .home-release-copy h3 { font-size: 40px; }
  .home-release-tracks { grid-template-columns: 1fr; }
  .home-release-copy .button { width: 100%; }
  .social-follow-card { grid-template-columns: 1fr; gap: 26px; padding: 28px 20px; }
  .social-follow-card h2 { font-size: 34px; }
  .social-follow-links { grid-template-columns: 1fr; }
  .page-hero { padding: 72px 0 62px; }
  .page-hero h1 { font-size: 44px; }
  .album-heading > p { max-width: none; }
  .album-grid { grid-template-columns: 1fr; gap: 18px; }
  .media-category-grid { grid-template-columns: 1fr; gap: 18px; }
  .album-card, .album-card:first-child { display: flex; grid-column: auto; flex-direction: column; }
  .album-card figure, .album-card:first-child figure { width: 100%; min-height: 0; aspect-ratio: 4 / 3; }
  .album-card > div { min-height: 250px; padding: 24px; }
  .album-card h2 { font-size: 34px; }
  .photo-category-links { margin-top: -10px; }
  .album-pagination { grid-template-columns: 1fr 1fr; }
  .album-pagination > div { grid-column: 1 / -1; grid-row: 1; }
  .album-pagination > .pagination-direction { grid-row: 2; }
  .album-hero, .journal-post-head { padding: 66px 0 76px; }
  .album-hero .back-link, .journal-post-head .back-link { margin-bottom: 46px; }
  .album-hero h1, .journal-post-head h1 { font-size: clamp(36px, 9.3vw, 48px); overflow-wrap: anywhere; }
  .album-hero p:not(.eyebrow), .journal-post-head p:not(.eyebrow):not(.journal-post-author) { font-size: 16px; }
  .journal-grid { grid-template-columns: 1fr; gap: 18px; }
  .journal-intro { gap: 18px; }
  .journal-intro > p { font-size: 16px; line-height: 1.6; }
  .journal-empty { padding: 38px 20px; }
  .journal-card, .journal-related .journal-card { grid-column: auto; }
  .journal-card-cover { height: auto; aspect-ratio: 4 / 3; }
  .journal-card > div { min-height: 255px; padding: 24px; }
  .journal-post-cover { margin-top: -38px; }
  .journal-post-cover img { border-radius: 24px; }
  .journal-post-body { padding-top: 58px; }
  .journal-post-body .prose p { font-size: 17px; }
  .contact-aside { gap: 34px; }
  .contact-aside .organizer-legal { font-size: 14px; line-height: 1.55; }
  .contact-note { padding: 24px !important; }
  .contact-aside .contact-note-cta { width: 100%; min-height: 52px; margin-top: 14px; }
  .video-detail-head { padding: 52px 0 42px; }
  .video-detail-head .video-back { margin-bottom: 30px; }
  .video-detail-head h1 { margin-top: 14px; font-size: clamp(34px, 9.4vw, 46px); line-height: 1.02; overflow-wrap: anywhere; }
  .video-composer { font-size: 18px; }
  .video-detail-layout.section { padding-top: 24px; padding-bottom: 68px; }
  .video-player { margin-inline: 0; border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--soft-shadow); }
  .video-source-note { margin: 14px 4px 0; font-size: 12px; line-height: 1.5; }
  .video-concerts { padding: 52px 0 58px; }
  .video-concerts-head { align-items: stretch; flex-direction: column; gap: 22px; margin-bottom: 28px; }
  .video-concerts-head h2 { font-size: clamp(34px, 9.4vw, 46px); overflow-wrap: anywhere; }
  .video-concerts-hint { font-size: 12px; }
  .video-concerts-head .video-all-concerts { width: 100%; min-height: 54px; }
  .video-concerts-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(82vw, 340px);
    gap: 13px;
    margin-inline: -15px;
    padding: 2px 15px 17px;
    scroll-padding-inline: 15px;
  }
  .video-concert-card { min-height: 300px; padding: 22px; border-radius: 25px; }
  .video-concert-date > strong { font-size: 54px; }
  .video-concert-copy { margin-top: 30px; }
  .video-concert-copy strong { font-size: 34px; }
  .video-concert-actions { grid-template-columns: 1fr; gap: 8px; }
  .video-concert-card .video-concert-actions > .button { width: 100%; }
  .video-concert-actions > a:not(.button) { justify-content: center; }
  .concert-hero { padding: 42px 0 28px; }
  .concert-hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .concert-hero .back-link { margin-bottom: 28px; }
  .concert-hero h1 { margin: 15px 0 20px; font-size: clamp(38px, 10.5vw, 48px); }
  .concert-date { margin: 0; font-size: 17px; line-height: 1.45; }
  .ticket-card { margin: 0; padding: 25px 22px; border-radius: 26px; }
  .ticket-card p { margin-bottom: 18px; }
  .ticket-card strong { font-size: 32px; line-height: 1.08; }
  .ticket-card span { margin: 7px 0 12px; }
  .ticket-card small { margin-bottom: 10px; }
  .ticket-card .ticket-widget-wrap,
  .ticket-card .ticket-widget-shell,
  .ticket-card .ticket-widget-button,
  .ticket-card .ticket-widget-fallback,
  .ticket-card .ticket-link { width: 100%; }
  .ticket-card .ticket-widget-wrap { display: flex; }
  .ticket-card .button { min-height: 52px; justify-content: center; margin-top: 9px; }
  .concert-copy.section { gap: 36px; padding-top: 50px; padding-bottom: 58px; }
  .concert-copy h2 { margin-bottom: 18px; font-size: clamp(31px, 8.5vw, 40px); }
  .concert-copy h3 { margin-bottom: 14px; font-size: 28px; }
  .concert-copy .large-copy { font-size: 20px; line-height: 1.55; }
  .concert-copy .checks { margin-top: 18px; }
  .concert-copy .checks li { padding: 11px 0; }
  .mobile-ticket-bar { background: rgba(237, 243, 248, .9); backdrop-filter: blur(22px); }
  .bio-hero h1 { font-size: 56px; }
  .bio-hero figure { clip-path: inset(0 round 28px); }
  .bio-facts { grid-template-columns: 1fr; }
  .music-hero-grid { grid-template-columns: 1fr; }
  .music-hero h1 { font-size: 44px; }
  .album-art img { box-shadow: 20px 20px 0 rgba(7, 16, 26, .32); }
  .music-services-section { padding-bottom: 40px; }
  .music-services-panel { padding: 0; border-radius: 0; }
  .music-services-panel .section-heading { margin-bottom: 18px; }
  .music-services-intro { font-size: 15px; }
  .music-quote { padding: 31px 21px; border-radius: 24px; }
  .music-services { grid-template-columns: 1fr 1fr; gap: 10px; }
  .music-service { min-height: 62px; padding: 14px 15px; border-radius: 17px; font-size: 14px; }
  .music-albums-section { padding-top: 54px; }
  .music-album-panel { border-radius: 22px; }
  .music-album-panel > summary { min-height: 0; grid-template-columns: 76px minmax(0, 1fr); gap: 15px; padding: 13px; }
  .music-album-summary-cover img { width: 76px; border-radius: 14px; }
  .music-album-summary-copy .eyebrow { margin-bottom: 5px; font-size: 11px; }
  .music-album-summary-copy > strong { font-size: clamp(24px, 7.5vw, 31px); }
  .music-album-summary-copy > small { margin-top: 5px; font-size: 11px; }
  .music-album-toggle { grid-column: 1 / -1; width: 100%; min-height: 46px; }
  .music-album-panel-body { padding: 22px 15px 25px; }
  .music-album-intro > p { font-size: 15px; }
  .music-album-meta { align-items: flex-start; flex-direction: column; gap: 9px; margin: 20px 0 15px; }
  .music-player-placeholder { min-height: 210px; padding: 24px 15px; }
  .yandex-music-player { margin-inline: 0; border-radius: 20px; }
  .yandex-music-player-frame { height: min(var(--player-collapsed-height, 480px), 62vh); min-height: 330px; }
  .music-player-controls { align-items: stretch; flex-direction: column; gap: 8px; padding: 12px; }
  .music-player-controls button { width: 100%; }
  .music-player-controls span { text-align: center; }
  .track-row { grid-template-columns: 34px minmax(0, 1fr) 42px; gap: 10px; padding: 14px 4px; }
  .track-row strong { font-size: 18px; line-height: 1.25; }
  .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .shell { width: min(100% - 24px, 1240px); }
  .header-inner { grid-template-columns: minmax(0, 1fr) auto 44px 44px; gap: 5px; }
  .theme-toggle,
  .menu-button { width: 44px; min-width: 44px; height: 44px; border-radius: 14px; }
  .menu-button-icon, .menu-button-icon i { width: 20px; }
  .menu-button-label { display: none; }
  .menu-button[aria-expanded='true'] .menu-button-icon { display: grid; }
  .language-switcher { height: 44px; min-height: 44px; border-radius: 14px; }
  .language-switcher a, .language-switcher span { min-width: 30px; height: 36px; }
  .logo { gap: 8px; }
  .logo-mark { width: 38px; height: 38px; flex-basis: 38px; }
  .logo-type strong { font-size: 18px; }
  .page-hero h1 { font-size: 40px; }
  .photo-category-links { grid-template-columns: 1fr; margin-top: -8px; }
  .media-category-card { border-radius: 22px; }
  .media-category-card > div { padding: 19px; }
  .media-category-card h2 { font-size: 27px; }
  .photo-category-links a { grid-template-columns: minmax(0,1fr) 16px; min-height: 76px; }
  .photo-category-links a small { grid-column: 1; grid-row: 2; }
  .photo-category-links .ui-icon { grid-column: 2; grid-row: 1 / span 2; }
  .contact-hero h1 { font-size: 36px; }
  .contact-action { font-size: 22px; }
  .album-card > div, .journal-card > div { padding: 21px; }
  .album-card h2 { font-size: 31px; }
  .journal-card h2 { font-size: 27px; }
  .photo-grid { grid-template-columns: 1fr; gap: 13px; }
  .photo-card, .photo-card:nth-child(n) { grid-column: auto; }
  .photo-card img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .video-player { border-radius: 18px; }
  .video-filters { margin-inline: -12px; padding-inline: 12px; }
  .video-concerts-grid { grid-auto-columns: min(84vw, 326px); margin-inline: -12px; padding-inline: 12px; scroll-padding-inline: 12px; }
  .music-services { grid-template-columns: 1fr; }
  .music-service { min-height: 58px; }
  .music-album-panel-body { padding-inline: 12px; }
}

@media (max-width: 360px) {
  .logo-type { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  body { transition: none; }
  .back-to-top { transition: none; }
}

.hero-concerts-carousel {
  position: absolute;
  z-index: 4;
  right: clamp(28px, calc((100vw - 1240px) / 2), 8vw);
  bottom: 25px;
  width: min(760px, 58vw);
  padding: 10px 12px 7px;
  border: 1px solid rgba(196, 225, 247, .14);
  border-radius: 25px;
  background: rgba(6, 15, 25, .74);
  box-shadow: 0 20px 54px rgba(0, 0, 0, .24);
  backdrop-filter: blur(18px);
}
.hero-concerts-guide { display: flex; min-height: 42px; align-items: center; gap: 14px; padding: 0 4px 8px; color: #dcecf8; font-size: 12px; }
.hero-concerts-guide > span { font-weight: 650; letter-spacing: .05em; text-transform: uppercase; }
.hero-concerts-guide > strong { margin-left: auto; color: #9ccbf1; font-weight: 600; }
.hero-concerts-guide > div { display: flex; gap: 7px; }
.hero-concerts-guide button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(196,225,247,.24); border-radius: 50%; color: #eef7fd; background: rgba(19,35,54,.9); cursor: pointer; }
.hero-concerts-guide button:disabled { cursor: default; opacity: .35; }
.hero-concerts-guide button .ui-icon { font-size: 19px; }
.hero-concerts-carousel .hero-mobile-concerts { position: static; width: 100%; }

.first-listen-section { color: var(--ink); background: var(--paper-2); }
.first-listen-section .home-video-copy h3 { color: var(--ink); }
.first-listen-section .home-video-copy > p:not(.eyebrow) { color: var(--muted); }
.first-listen-section .home-section-link { color: var(--ink); background: rgba(231, 239, 245, .55); }
.first-listen-section .text-link { color: #274a67; }
:root[data-theme='dark'] .first-listen-section .text-link { color: #b8dcf5; }
:root[data-theme='dark'] .first-listen-section .text-link:hover { color: #f0f8fd; }
.first-listen-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.city-interest-section { background: color-mix(in srgb, var(--paper) 88%, transparent); }
.city-interest-grid { display: grid; grid-template-columns: minmax(260px,.75fr) minmax(0,1.25fr); align-items: start; gap: clamp(38px,7vw,100px); }
.city-interest-grid > div > p:not(.eyebrow) { max-width: 520px; color: var(--muted); font-size: 18px; }
.city-interest-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: clamp(22px,3vw,36px); border: 1px solid var(--line); border-radius: 28px; background: var(--surface-elevated); box-shadow: var(--soft-shadow); }
.city-interest-form label { display: grid; gap: 8px; }
.city-interest-form label > span { color: var(--ink); font-size: 14px; font-weight: 620; line-height: 1.4; }
.city-interest-form label > span small { color: var(--muted); font-size: 12px; font-weight: 520; }
.city-interest-form input:not([type='checkbox']) { width: 100%; min-height: 56px; padding: 0 16px; border: 1px solid #a9bdcc; border-radius: 14px; color: var(--ink); background: var(--surface-solid); transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.city-interest-form input:not([type='checkbox']):hover { border-color: #789bb5; }
.city-interest-form input:not([type='checkbox']):focus { border-color: #4c8bb8; outline: 0; box-shadow: 0 0 0 4px rgba(76, 139, 184, .18); }
.city-interest-form .field-wide { grid-column: 1 / -1; }
.interest-consent { display: flex!important; align-items: flex-start; grid-template-columns: none!important; }
.interest-consent input { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 1px; accent-color: #17344c; }
.interest-consent span { font-size: 13px!important; font-weight: 520!important; line-height: 1.5!important; }
.interest-consent a { color: #214f70; text-underline-offset: 3px; }
.city-interest-form .button { min-height: 56px; border-color: #17344c; color: #edf6fc; background: #17344c; box-shadow: 0 12px 28px rgba(16, 44, 68, .22); }
.city-interest-form .button:hover { border-color: #285f86; color: #fff; background: #285f86; box-shadow: 0 15px 34px rgba(16, 44, 68, .28); }
.interest-honeypot { position: absolute!important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.interest-feedback { min-height: 22px; margin: 0; color: var(--violet); font-weight: 600; }
.concerts-list-section { padding-bottom: clamp(58px, 6vw, 82px); }
.concerts-about-section { padding-block: clamp(52px, 5vw, 72px); }
.concerts-about-section .narrow { max-width: 920px; }
.concerts-about-section .large-copy { max-width: 840px; margin-bottom: 18px; font-size: clamp(20px, 2vw, 25px); line-height: 1.48; }
.concert-copy.section { gap: clamp(38px, 6vw, 80px); padding-block: clamp(58px, 6vw, 82px); }
.concert-copy .large-copy { font-size: clamp(18px, 1.65vw, 23px); line-height: 1.55; }
.status { font-size: 11px; letter-spacing: .08em; }

@media (max-width: 760px) {
  .hero-concerts-carousel { position: relative; right: auto; bottom: auto; order: 2; width: 100%; padding: 5px 0 8px; border: 0; border-radius: 0; background: #07101a; box-shadow: none; }
  .hero-concerts-guide { padding: 12px 15px 0; }
  .hero-concerts-guide button { width: 44px; height: 44px; }
  .hero-concerts-carousel .hero-mobile-concerts { padding-top: 10px; }
  .city-interest-grid { grid-template-columns: 1fr; }
  .city-interest-form { grid-template-columns: 1fr; }
  .city-interest-form .field-wide { grid-column: auto; }
  .proof-grid div { min-height: 138px; padding: 23px; }
  .music-quote blockquote { font-size: clamp(27px, 8vw, 36px); }
}

@media (min-width: 1440px) {
  .section { padding-block: 76px; }
  .page-hero { padding-block: 78px 66px; }
  .concert-hero { padding-block: 76px 64px; }
  .journal-post-head { padding-block: 84px 116px; }
}

@media (max-width: 760px) {
  .back-to-top { right: 14px; bottom: calc(16px + env(safe-area-inset-bottom)); width: 46px; height: 46px; min-height: 46px; padding: 0; }
  body:has(.mobile-ticket-bar.is-visible) .back-to-top { bottom: calc(88px + env(safe-area-inset-bottom)); }
  .concert-hero .back-link,
  .album-hero .back-link,
  .journal-post-head .back-link,
  .score-hero .back-link,
  .video-back { min-height: 42px; padding: 0 13px; border: 1px solid rgba(201,225,243,.22); border-radius: 999px; background: rgba(13,29,44,.54); }
}

/* Ticket card system — compact responsive cards and matching section surfaces. */
body {
  background:
    radial-gradient(circle at 88% 18%, rgba(156, 203, 241, .12), transparent 25rem),
    var(--ticket-stage);
}
.site-header { z-index: 120; }
.event-card,
.media-category-card,
.album-card,
.video-catalog-card,
.photo-card,
.home-album-card,
.city-interest-form { background: var(--ticket-card); }
.home-concerts-section,
.media-category-section,
.media-library-section,
.album-gallery-section { background: var(--ticket-stage); }
.first-listen-section { background: var(--ticket-stage); }
.home-concerts-section { background: var(--section-blue); }
.home-proof-section { background: var(--ticket-stage); }
.city-interest-section { background: var(--section-blue); }
.home-albums-section { background: var(--ticket-stage); }
.home-journal-section { background: var(--section-blue); }
.social-follow-section { background: var(--ticket-stage); }

/* Shared ticket language: one compact rhythm for the main schedule and related concerts. */
.events-list { gap: 14px; }
.event-card {
  grid-template-columns: minmax(118px, 148px) minmax(0, 1fr) 198px;
  gap: 26px;
  padding: 24px;
  overflow: hidden;
  border-radius: 26px;
}
.event-date {
  align-self: stretch;
  align-content: center;
  padding-right: 24px;
  border-right: 1px dashed rgba(63, 99, 128, .22);
}
.event-date strong { font-size: 52px; }
.event-main h2 { font-size: clamp(31px, 3vw, 42px); }
.event-actions {
  min-width: 0;
  align-self: stretch;
  justify-content: center;
  padding-left: 22px;
  border-left: 1px dashed rgba(63, 99, 128, .22);
}
.event-actions > .ticket-widget-wrap,
.event-actions > .button,
.event-actions .ticket-widget-shell,
.event-actions .ticket-widget-button,
.event-actions .ticket-widget-fallback,
.event-actions .ticket-link { width: 100%; }
.event-actions .ticket-widget-shell { flex: 1; }
.event-actions .button { min-height: 50px; justify-content: center; }
.event-actions .text-link { width: 100%; }

.concert-hero-grid { align-items: start; }
.concert-hero .media-breadcrumbs { margin-bottom: 14px; }
.concert-hero .back-link,
.album-hero .back-link,
.video-back {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  min-height: 42px;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border: 1px solid rgba(201, 225, 243, .2);
  border-radius: 999px;
  background: rgba(13, 29, 44, .42);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.2;
  text-transform: none;
}
.concert-hero .back-link .ui-icon,
.album-hero .back-link .ui-icon,
.video-back .ui-icon { width: 17px; height: 17px; }
.ticket-card {
  position: relative;
  padding: 30px;
  overflow: hidden;
  border: 1px solid rgba(112, 169, 216, .34);
  border-radius: 28px;
  color: var(--ink);
  background: linear-gradient(145deg, #f8fcff, #d9ebf7);
  box-shadow: 0 24px 64px rgba(2, 12, 22, .28);
}
.ticket-card::after { position: absolute; right: -42px; bottom: -72px; width: 160px; height: 160px; border: 30px solid rgba(112, 169, 216, .16); border-radius: 50%; content: ''; pointer-events: none; }
.ticket-card > * { position: relative; z-index: 1; }
.ticket-card p { margin-bottom: 20px; color: #315f84; font-size: 12px; }
.ticket-card strong { font-size: clamp(31px, 3vw, 39px); font-weight: 580; letter-spacing: -.045em; }
.ticket-card span { margin: 10px 0 16px; color: #35536b; line-height: 1.45; }
.ticket-card small { margin: 3px 0 12px; color: #526b7f; font-size: 12px; line-height: 1.45; }
.ticket-card .ticket-widget-wrap,
.ticket-card .ticket-widget-wrap *,
.ticket-card .ticket-widget-shell,
.ticket-card .ticket-widget-shell > *,
.ticket-card .ticket-widget-shell *,
.ticket-card .ticket-widget-button,
.ticket-card .ticket-widget-fallback,
.ticket-card .ticket-link {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box;
}
.ticket-card .ticket-widget-shell,
.ticket-card .ticket-widget-shell > * { display: block; }
.ticket-card .button { width: 100%; min-height: 54px; justify-content: center; font-size: 16px; font-weight: 600; }
:root[data-theme='dark'] .ticket-card { color: var(--ink); background: linear-gradient(145deg, #1a2c3d, #122131); }
:root[data-theme='dark'] .ticket-card span,
:root[data-theme='dark'] .ticket-card small { color: #afc2d2; }

.concert-copy > div {
  padding: clamp(24px, 3.2vw, 40px);
  border: 1px solid var(--line);
  border-radius: 26px;
  background: var(--ticket-card);
  box-shadow: var(--soft-shadow);
}
.concert-copy h2,
.concert-copy h3 { margin-top: 0; }
.concert-faq-section { background: var(--section-blue); }
.concert-faq-section h2 { margin-bottom: 28px; }
.concert-faq-list { overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--ticket-card); box-shadow: var(--soft-shadow); }
.concert-faq-list details { padding-inline: 24px; border-top: 0; }
.concert-faq-list details + details { border-top: 1px solid var(--line); }
.concert-faq-list details:last-child { border-bottom: 0; }
.concert-faq-list summary { padding-block: 20px; font-size: 16px; }
.concert-faq-list details p { margin-top: -4px; padding-bottom: 20px; }
.concert-related-section { background: var(--ticket-stage); }

.concerts-about-section { background: var(--section-blue); }
.concerts-about-card {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  gap: clamp(34px, 6vw, 86px);
  padding: clamp(30px, 5vw, 60px);
  border: 1px solid rgba(163, 207, 239, .22);
  border-radius: 32px;
  color: #eef7fd;
  background: linear-gradient(135deg, #0b1724 0%, #15364e 58%, #235d80 100%);
  box-shadow: 0 26px 70px rgba(18, 50, 74, .2);
}
.concerts-about-card .eyebrow { color: #acd6f3; }
.concerts-about-card h2 { color: #f4f9fc; }
.concerts-about-card .concerts-about-intro,
.concerts-about-card .large-copy { color: #c8d9e5; }
.concerts-about-card .concert-program-points li { border-color: rgba(206, 231, 248, .2); color: #d8e6ef; background: rgba(221, 239, 251, .08); }
.concerts-about-card h2 { margin: 8px 0 18px; }
.concerts-about-intro { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.6; }
.concerts-about-card .large-copy { margin: 0 0 24px; }
.concert-program-points { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; padding: 0; list-style: none; }
.concert-program-points li { padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--ticket-soft); font-size: 13px; line-height: 1.35; }

/* Biography: explain the facts and the concert programme instead of leaving isolated labels. */
.editorial { gap: clamp(40px, 6vw, 84px); }
.editorial article { max-width: none; }
.editorial aside span { font-size: 11px; }
.editorial aside i { font-size: 13px; line-height: 1.5; }
.bio-copy .lead { max-width: 820px; }
.bio-copy .lead p { font-size: 18px; line-height: 1.65; }
.bio-facts-block { margin-top: 46px; }
.bio-facts-block > header { display: grid; max-width: 760px; gap: 9px; margin-bottom: 24px; }
.bio-facts-block h2,
.bio-program-card h2 { margin: 0; }
.bio-facts-block > header > p:last-child { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.55; }
.bio-facts {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  border: 0;
  background: transparent;
}
.bio-facts div {
  min-height: 132px;
  justify-content: flex-start;
  gap: 14px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--ticket-card);
  box-shadow: var(--soft-shadow);
}
.bio-facts strong { font-size: clamp(34px, 3.2vw, 46px); font-weight: 590; }
.bio-facts span { color: var(--muted); font-size: 14px; line-height: 1.45; }
.bio-program-card {
  display: grid;
  grid-template-columns: minmax(250px, .75fr) minmax(0, 1.25fr);
  gap: clamp(30px, 5vw, 64px);
  margin-top: 44px;
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid rgba(144, 199, 239, .22);
  border-radius: 28px;
  color: var(--on-dark);
  background: linear-gradient(135deg, #0b1724, #17344a);
  box-shadow: var(--shadow);
}
.bio-program-card .eyebrow { color: #a9d3f2; }
.editorial article .bio-program-card h2 { margin: 0; color: #eef6fc; }
.bio-program-card p { color: #bfd0dd; font-size: 16px; line-height: 1.62; }
.bio-program-intro { margin-top: 18px; }
.bio-program-card .concert-program-points { margin: 22px 0 26px; }
.bio-program-card .concert-program-points li { border-color: rgba(197, 225, 246, .18); color: #cbdbe7; background: rgba(191, 220, 241, .07); }

/* Music: reduce the oversized opening block and keep a steady vertical rhythm. */
.music-hero { padding-block: 54px; }
.music-hero-grid { grid-template-columns: minmax(260px, 380px) minmax(0, 1fr); gap: clamp(44px, 7vw, 88px); }
.music-hero h1 { margin-bottom: 20px; font-size: clamp(54px, 7vw, 92px); }
.music-hero p:not(.eyebrow) { margin-bottom: 0; font-size: 17px; line-height: 1.6; }
.album-art { max-width: 380px; }
.music-albums-section { padding-block: 52px 58px; }
.music-services-section { padding-block: 50px 56px; }
.music-quote-section { padding-block: 54px 60px; }
.music-services-section,
.music-quote-section { background: var(--ticket-stage); }

.page-hero { padding-block: 56px 48px; }
.page-hero h1 { margin-bottom: 20px; }
.concert-hero { padding-block: 54px 48px; }
.concert-hero .back-link { margin-bottom: 24px; }
.video-detail-head { padding-block: 48px 44px; }
.video-detail-head .video-back { margin-bottom: 24px; }
.video-detail-head h1 { font-size: clamp(44px, 5.8vw, 76px); }
.album-hero,
.category-hero { padding-block: 48px 54px; }
.album-hero .back-link,
.journal-post-head .back-link { margin-bottom: 24px; }
.album-hero h1 { margin-bottom: 18px; font-size: clamp(44px, 5.5vw, 74px); }
.media-category-section,
.media-library-section,
.album-gallery-section,
.video-catalog-section,
.concerts-list-section { padding-block: 52px 60px; }

.media-library-grid { display: grid; gap: 18px; }
.media-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.media-library-section .media-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; }
.media-library-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--ticket-card); box-shadow: var(--soft-shadow); }
.media-category-card { border-radius: 22px; }
.media-category-card:hover,
.album-card:hover,
.video-catalog-card:hover { border-color: rgba(112, 169, 216, .5); box-shadow: 0 18px 44px rgba(42, 76, 109, .13); transform: translateY(-2px); }
.media-category-card figure,
.album-card figure,
.album-card:first-child figure { width: 100%; min-height: 0; aspect-ratio: 16 / 9; }
.media-category-card img,
.album-card img { width: 100%; height: 100%; object-fit: cover; }
.media-category-card-video figure { background: #07101a; }
.media-category-card-video img { object-fit: contain; }
.media-category-card > div { align-content: start; gap: 7px; padding: 21px; }
.media-category-card p { font-size: 12px; }
.media-category-card h2 { font-size: clamp(25px, 2.2vw, 34px); line-height: 1.08; }
.media-category-card span { font-size: 14px; }
.media-category-card i { margin-top: 8px; font-size: 13px; }
.media-library-grid > .media-library-card:only-child {
  grid-column: 1 / -1;
  width: min(100%, 430px);
  justify-self: center;
}
.media-category-grid > .media-category-card:only-child {
  grid-column: auto;
  width: auto;
  justify-self: stretch;
}

.photo-category-links { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 28px; }
.photo-category-links a { min-height: 68px; padding: 14px 16px; border-radius: 17px; background: var(--ticket-card); }

.album-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.album-grid > .album-card:only-child {
  grid-column: auto;
  width: auto;
  justify-self: stretch;
}
.album-card,
.album-card:first-child {
  display: flex;
  grid-column: auto;
  grid-template-columns: none;
  min-width: 0;
  flex-direction: column;
  border-radius: 22px;
}
.album-card figure,
.album-card:first-child figure { width: 100%; min-height: 0; aspect-ratio: 16 / 9; }
.album-card > div { min-height: 0; flex: 1; padding: 21px; }
.album-card > div > p { margin-bottom: 8px; font-size: 13px; }
.album-card h2 { margin-bottom: 10px; font-size: clamp(24px, 2vw, 31px); line-height: 1.08; }
.album-card > div > span { font-size: 16px; line-height: 1.55; }
.album-card i { margin-top: 16px; padding-top: 0; }

.video-catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.video-catalog-card { border-color: rgba(56, 91, 121, .14); border-radius: 22px; outline: 0; background: var(--ticket-card); }
.video-catalog-card:hover { border-color: rgba(112, 169, 216, .48); box-shadow: 0 18px 44px rgba(42, 76, 109, .14); transform: translateY(-2px); }
.video-catalog-card:focus-within { border-color: rgba(112, 169, 216, .58); }
.video-card-cover { outline: 0; }
.video-card-cover img { object-fit: contain; background: #07101a; }
.video-card-copy { min-height: 0; padding: 18px; }
.video-card-copy h2 { font-size: clamp(23px, 2vw, 29px); }
.video-player > img { object-fit: contain; background: #07101a; }
.video-player::after { background: radial-gradient(circle at center, rgba(4, 12, 20, .08), rgba(4, 12, 20, .28)); }
.video-player button { display: grid; place-items: center; }
.video-player button span {
  width: 78px;
  height: 78px;
  padding-left: 5px;
  border: 2px solid rgba(255, 255, 255, .86);
  color: #fff;
  background: rgba(21, 57, 83, .78);
  box-shadow: 0 14px 38px rgba(0, 0, 0, .3);
}
.video-player button:hover span { background: #285f86; transform: scale(1.05); }
.video-card-play { width: 52px; height: 52px; border-width: 2px; background: rgba(21, 57, 83, .78); box-shadow: 0 10px 28px rgba(0, 0, 0, .26); }

.album-photo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.album-photo-grid .photo-card,
.album-photo-grid .photo-card:nth-child(n) { grid-column: auto; border-radius: 16px; }
.album-photo-grid .photo-card button { background: #07101a; }
.album-photo-grid .photo-card img { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; }
.album-photo-grid .photo-card figcaption { min-height: 42px; overflow: hidden; padding: 10px 12px; text-overflow: ellipsis; white-space: nowrap; }

.photo-viewer { overflow: hidden; overscroll-behavior: none; }
.photo-viewer figure { width: min(1180px, calc(100vw - 180px)); max-width: calc(100vw - 180px); max-height: calc(100dvh - 56px); touch-action: none; }
.photo-viewer img { max-width: calc(100vw - 180px); max-height: calc(100dvh - 108px); }
.photo-viewer figcaption { display: flex; width: 100%; justify-content: center; gap: 16px; }
.photo-viewer figcaption small { color: #90a9bc; font-size: 11px; white-space: nowrap; }
.photo-viewer-nav {
  position: fixed;
  z-index: 3;
  top: 50%;
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(221, 241, 255, .3);
  border-radius: 50%;
  color: #edf6fc;
  background: rgba(19, 40, 58, .78);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .28);
  transform: translateY(-50%);
  cursor: pointer;
  backdrop-filter: blur(16px);
}
.photo-viewer-nav:hover { background: #285f86; }
.photo-viewer-nav .ui-icon { width: 22px; height: 22px; }
.photo-viewer-prev { left: 22px; }
.photo-viewer-next { right: 22px; }

.video-concerts { padding-block: 54px 60px; }
.video-concert-card { min-height: 0; padding: 20px; border-color: rgba(132, 174, 207, .28); border-radius: 22px; color: #102033; background: #f7fbfe; }
.video-concert-main { flex: 0 1 auto; }
.video-concert-copy { margin-top: 20px; }
.video-concert-copy > span { margin-top: 5px; color: #536b80; font-size: 14px; line-height: 1.45; }
.video-concert-copy > i { margin-top: 5px; color: #416985; font-size: 12px; font-style: normal; font-weight: 570; }
.video-concert-actions { margin-top: 18px; }
.video-concert-card .video-concert-actions > .ticket-widget-wrap { min-width: 0; }
:root[data-theme='dark'] .video-concert-card { color: var(--ink); background: var(--ticket-card); }
:root[data-theme='dark'] .video-concert-copy small,
:root[data-theme='dark'] .video-concert-copy > span { color: #aec0d0; }
:root[data-theme='dark'] .video-concert-copy > i { color: #9fc8e6; }
:root[data-theme='dark'] .video-concert-actions > a:not(.button) { color: #d6e7f2; }

.home-album-card { border-radius: 22px; }
.home-album-card > div { min-height: 0; padding: 19px; }
.home-album-card i { margin-top: 16px; padding-top: 0; }

@media (max-width: 1240px) {
  .menu-button { width: 44px; min-width: 44px; height: 44px; padding: 0; border-radius: 14px; }
  .menu-button .menu-button-label { display: none !important; }
  .menu-button[aria-expanded='true'] .menu-button-icon { display: grid; }
  #main-nav { z-index: 121; }
  .media-category-grid,
  .album-grid,
  .photo-category-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .media-library-section .media-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .album-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .video-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .site-header { position: fixed; top: 0; right: 0; left: 0; width: 100%; }
  body > main { padding-top: 72px; }
  .header-inner { grid-template-columns: minmax(0, 1fr) auto 44px 44px; gap: 7px; }
  .menu-button { width: 44px; min-width: 44px; height: 44px; }
  #main-nav { z-index: 119; top: 72px; }
  .page-hero { padding-block: 42px 38px; }
  .page-hero h1 { margin-bottom: 15px; }
  .album-hero,
  .category-hero { padding-block: 36px 42px; }
  .concert-hero { padding-block: 38px 30px; }
  .video-detail-head { padding-block: 38px 34px; }
  .album-hero .back-link,
  .journal-post-head .back-link { margin-bottom: 20px; }
  .album-hero h1 { margin-bottom: 14px; font-size: clamp(36px, 10vw, 46px); }
  .media-category-section,
  .media-library-section,
  .album-gallery-section,
  .video-catalog-section,
  .concerts-list-section { padding-block: 38px 46px; }
  .event-card,
  .announced-events .event-card { display: block; padding: 18px; border-radius: 22px; }
  .event-date { display: flex; width: 100%; align-items: center; gap: 10px; margin-bottom: 16px; padding-bottom: 16px; }
  .event-date strong { font-size: 54px; line-height: .9; }
  .event-date span { align-self: center; font-size: 15px; letter-spacing: .08em; }
  .event-date small { align-self: center; margin-left: -4px; font-size: 13px; }
  .event-main .eyebrow { margin-bottom: 7px; }
  .event-main h2 { margin-bottom: 5px; }
  .event-main .event-duration { margin-top: 5px; }
  .event-date { padding-right: 0; border-right: 0; border-bottom: 1px dashed rgba(63, 99, 128, .24); }
  .event-actions { gap: 7px; margin-top: 17px; padding-left: 0; border-left: 0; }
  .event-actions > .ticket-widget-wrap,
  .event-actions > .button,
  .event-actions .ticket-widget-shell,
  .event-actions .ticket-widget-button,
  .event-actions .ticket-widget-fallback,
  .event-actions .ticket-link { width: 100%; }
  .event-actions .ticket-widget-wrap { display: flex; }
  .event-actions .ticket-widget-shell { flex: 1; }
  .event-actions .button { min-height: 52px; justify-content: center; }
  .event-actions .text-link { min-height: 46px; justify-content: center; border: 1px solid var(--line); border-radius: 15px; background: var(--ticket-soft); }
  .media-category-grid,
  .media-library-section .media-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .album-grid,
  .photo-category-links { grid-template-columns: 1fr; gap: 13px; }
  .media-category-card,
  .catalog-index-section .media-category-grid > .media-category-card:only-child { display: flex; flex-direction: column; align-items: stretch; border-radius: 18px; }
  .media-category-card { grid-column: auto; }
  .catalog-index-section .media-library-grid > .media-library-card:only-child,
  .media-library-section .media-library-grid > .media-library-card:only-child { grid-column: 1 / -1; width: 100%; }
  .media-category-card figure,
  .catalog-index-section .media-category-grid > .media-category-card:only-child figure { width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .media-category-card > div { align-content: start; padding: 14px; }
  .media-category-card h2 { font-size: clamp(18px, 5.2vw, 23px); }
  .media-category-card span { display: -webkit-box; overflow: hidden; font-size: 12px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .media-category-card i { margin-top: 4px; font-size: 11px; }
  .album-card > div { min-height: 0; padding: 18px; }
  .album-card > div > span { font-size: 16px; line-height: 1.55; }
  .album-card h2 { font-size: 28px; }
  .photo-category-links a { min-height: 64px; }
  .album-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .album-photo-grid .photo-card figcaption { min-height: 36px; padding: 8px 9px; font-size: 10px; }
  .video-catalog-grid { grid-template-columns: 1fr; gap: 14px; }
  .video-card-copy { padding: 16px; }
  .video-concert-card { min-height: 0; padding: 18px; border-radius: 22px; }
  .video-concert-copy { margin-top: 18px; }
  .video-concert-card .video-concert-actions { width: 100%; align-self: stretch; grid-template-columns: 1fr; gap: 7px; }
  .video-concert-card .video-concert-actions > .ticket-widget-wrap,
  .video-concert-card .video-concert-actions > .button,
  .video-concert-card .video-concert-actions .ticket-widget-shell,
  .video-concert-card .video-concert-actions .ticket-widget-button,
  .video-concert-card .video-concert-actions .ticket-widget-fallback,
  .video-concert-card .video-concert-actions .ticket-link { width: 100%; }
  .video-concert-card .video-concert-actions > .ticket-widget-wrap { display: flex; }
  .video-concert-card .video-concert-actions > .button { min-height: 52px; justify-content: center; }
  .video-concert-actions > a:not(.button) { justify-content: center; min-height: 46px; border: 1px solid #c5d6e2; border-radius: 15px; background: #dbeaf5; }
  .photo-viewer figure,
  .photo-viewer img { width: calc(100vw - 24px); max-width: calc(100vw - 24px); }
  .photo-viewer figure { max-height: calc(100dvh - 92px); }
  .photo-viewer img { max-height: calc(100dvh - 154px); }
  .photo-viewer figcaption { padding-inline: 52px; flex-wrap: wrap; gap: 5px 12px; text-align: center; }
  .photo-viewer-nav { top: auto; bottom: calc(18px + env(safe-area-inset-bottom)); width: 50px; height: 50px; transform: none; }
  .photo-viewer-prev { left: 18px; }
  .photo-viewer-next { right: 18px; }
  .photo-viewer-close { top: calc(18px + env(safe-area-inset-top)); right: calc(18px + env(safe-area-inset-right)); }
  .home-album-card > div { min-height: 0; }
  .concerts-about-card,
  .bio-program-card { grid-template-columns: 1fr; gap: 28px; padding: 24px 20px; border-radius: 24px; }
  .concert-copy > div { padding: 24px 20px; }
  .concert-faq-list details { padding-inline: 18px; }
  .bio-facts { grid-template-columns: 1fr; gap: 10px; }
  .bio-facts div { min-height: 0; padding: 20px; }
  .bio-copy .lead p { font-size: 17px; }
  .bio-facts-block { margin-top: 18px; }
  .bio-facts-block > header { gap: 7px; margin-bottom: 16px; }
  .music-hero { padding-block: 42px 48px; }
  .music-hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .music-hero h1 { margin-bottom: 16px; font-size: 48px; }
  .album-art { width: calc(100% - 24px); max-width: 380px; }
  .music-albums-section,
  .music-services-section,
  .music-quote-section { padding-block: 42px 48px; }
}

@media (max-width: 430px) {
  .header-inner { grid-template-columns: minmax(0, 1fr) auto 44px 44px; gap: 5px; }
  .menu-button { width: 44px; min-width: 44px; height: 44px; padding: 0; }
  .menu-button .menu-button-label { display: none !important; }
  .menu-button[aria-expanded='true'] .menu-button-icon { display: grid; }
  .menu-button-icon,
  .menu-button-icon i { width: 20px; }
}

@media (min-width: 1440px) {
  .page-hero { padding-block: 56px 48px; }
  .concert-hero { padding-block: 56px 50px; }
  .video-detail-head { padding-block: 50px 46px; }
  .album-hero,
  .category-hero { padding-block: 50px 56px; }
  .media-category-section,
  .media-library-section,
  .album-gallery-section,
  .video-catalog-section,
  .concerts-list-section { padding-block: 54px 62px; }
}

/* 2026-09 ticket cards, biography facts, contacts and media-grid refinement. */
.concert-finder-section { padding: 30px 0; border-bottom: 1px solid var(--line); background: var(--ticket-stage); }
.concerts-list-section { padding-bottom: 38px; }
.concerts-announced-section { padding-top: 38px; }
.concert-finder {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(320px, 1.2fr) auto;
  align-items: center;
  gap: clamp(24px, 4vw, 58px);
  padding: 25px 28px;
  border: 1px solid var(--line);
  border-radius: 25px;
  background: var(--ticket-card);
  box-shadow: var(--soft-shadow);
}
.concert-finder h2 { margin: 3px 0 7px; font-size: clamp(28px, 3vw, 40px); }
.concert-finder > div > p:last-child { max-width: 470px; margin: 0; color: var(--muted); font-size: 14px; }
.concert-finder label { position: relative; display: flex; align-items: center; }
.concert-finder label > i { position: absolute; left: 18px; display: grid; color: var(--muted); pointer-events: none; }
.concert-finder label > i .ui-icon { width: 19px; height: 19px; }
.concert-finder input {
  width: 100%;
  min-height: 58px;
  padding: 0 54px 0 50px;
  border: 1px solid #c8d6e1;
  border-radius: 17px;
  color: var(--ink);
  background: var(--surface-solid);
  font: inherit;
  font-size: 16px;
  outline: 0;
}
.concert-finder input:focus { border-color: #4f88b1; box-shadow: 0 0 0 4px rgba(79, 136, 177, .13); }
.concert-finder label > button { position: absolute; right: 8px; display: grid; width: 42px; height: 42px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: var(--ink); background: var(--ticket-soft); cursor: pointer; }
.concert-finder label > button .ui-icon { width: 17px; height: 17px; }
.concert-finder > strong { color: var(--muted); font-size: 12px; font-weight: 600; white-space: nowrap; }
.concert-search-empty { margin-top: 14px; padding: 24px 28px; border: 1px solid rgba(79, 136, 177, .26); border-radius: 22px; background: var(--ticket-card); text-align: center; }
.concert-search-empty h3 { margin: 0 0 6px; font-size: 25px; }
.concert-search-empty p { margin: 0 0 17px; color: var(--muted); }
.concert-search-empty .button { min-height: 50px; }
.events-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.home-concerts-section .events-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.concert-ticket-card,
.event-card.concert-ticket-card,
.video-concert-card.concert-ticket-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 420px;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #c8d6e1;
  border-radius: 28px;
  color: #0d0d0d;
  background: #f8fbfe;
  box-shadow: 0 16px 42px rgba(39, 73, 102, .08);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  letter-spacing: 0;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.concert-ticket-card:hover {
  border-color: rgba(73, 126, 169, .46);
  box-shadow: 0 22px 52px rgba(39, 73, 102, .16);
  transform: translateY(-3px);
}
.concert-ticket-date {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 112px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin: 0;
  padding: 24px 24px 22px;
  border: 0;
  color: inherit;
  background: #f8fbfe;
  text-decoration: none;
}
.concert-ticket-date::after {
  position: absolute;
  right: 24px;
  bottom: 0;
  left: 24px;
  height: 1px;
  background: #c8d6e1;
  content: '';
}
.concert-ticket-calendar { display: flex; min-width: 0; align-items: flex-start; gap: 16px; }
.concert-ticket-calendar > strong {
  font-family: inherit;
  font-size: 60px;
  font-weight: 500;
  line-height: .82;
  letter-spacing: -.06em;
}
.concert-ticket-calendar > span { display: flex; min-width: 0; flex-direction: column; padding-top: 1px; }
.concert-ticket-calendar b {
  color: #0c1725;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .09em;
  line-height: 1.2;
  text-transform: uppercase;
}
.concert-ticket-calendar small { margin-top: 8px; color: #586b7e; font-size: 14px; line-height: 1.35; }
.concert-ticket-age {
  display: grid;
  min-width: 34px;
  height: 34px;
  flex: 0 0 auto;
  place-items: center;
  padding: 0 8px;
  border: 0;
  border-radius: 11px;
  color: #1f3a54;
  background: #deeaf4;
  font-size: 14px;
  font-weight: 500;
}
.concert-ticket-copy {
  display: flex;
  width: 100%;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  align-items: stretch;
  padding: 23px 24px 20px;
  text-align: left;
}
.concert-ticket-venue {
  display: flex;
  width: 100%;
  min-height: 0;
  align-items: center;
  margin: 0 0 9px;
  color: #1f3a54;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .1em;
  line-height: 1.4;
  text-transform: uppercase;
}
.concert-ticket-copy h2 { width: 100%; margin: 0 0 8px; color: #0d0d0d; font-size: clamp(31px, 3vw, 43px); font-weight: 520; line-height: .98; overflow-wrap: anywhere; }
.concert-ticket-copy h2 a { color: inherit; text-decoration: none; }
.concert-ticket-program { width: 100%; margin: 0; color: #586b7e; font-size: 16px; line-height: 1.45; }
.concert-ticket-duration { width: 100%; margin: 6px 0 0; color: #586b7e; font-size: 14px; line-height: 1.4; }
.concert-ticket-copy .status { width: fit-content; margin-top: 12px; }
.concert-ticket-actions,
.event-card .concert-ticket-actions,
.video-concert-card .concert-ticket-actions {
  display: grid;
  width: 100%;
  align-self: stretch;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 0;
  margin: auto 0 0;
  padding: 0 20px 18px;
  border: 0;
}
.concert-ticket-actions > .ticket-widget-wrap,
.concert-ticket-actions > .button,
.concert-ticket-actions .ticket-widget-shell,
.concert-ticket-actions .ticket-widget-button,
.concert-ticket-actions .ticket-widget-fallback,
.concert-ticket-actions .ticket-link { width: 100%; }
.concert-ticket-actions > .ticket-widget-wrap { display: flex; min-width: 0; }
.concert-ticket-actions .ticket-widget-shell,
.concert-ticket-actions .ticket-widget-shell > * { display: block; width: 100%; max-width: none; min-width: 0; flex: 1; }
.concert-ticket-actions > .button,
.concert-ticket-actions .button {
  min-height: 54px;
  justify-content: center;
  margin: 0;
  border-color: #1f3a54;
  border-radius: 17px;
  color: #f8fbfe;
  background: #1f3a54;
  box-shadow: none;
  font-size: 15px;
  font-weight: 500;
}
.concert-ticket-actions .button:hover { border-color: #294c69; color: #fff; background: #294c69; box-shadow: none; transform: none; }
.concert-ticket-actions .button-muted,
.concert-ticket-actions .button-muted:hover { border-color: #c8d6e1; color: #586b7e; background: transparent; }
.concert-ticket-actions .text-link {
  display: inline-flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 0;
  border: 0;
  border-radius: 0;
  color: #1f3a54;
  background: transparent;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
}
.concert-ticket-actions .text-link:hover { color: #294c69; background: transparent; text-decoration: underline; text-underline-offset: 5px; }
.concert-ticket-actions .text-link .ui-icon { width: 18px; height: 18px; }
:root[data-theme='dark'] .concert-ticket-card,
:root[data-theme='dark'] .event-card.concert-ticket-card,
:root[data-theme='dark'] .video-concert-card.concert-ticket-card,
:root[data-theme='dark'] .concert-ticket-date { color: var(--ink); background: var(--ticket-card); }
:root[data-theme='dark'] .concert-ticket-card,
:root[data-theme='dark'] .event-card.concert-ticket-card,
:root[data-theme='dark'] .video-concert-card.concert-ticket-card {
  border-color: rgba(159, 197, 223, .24);
  box-shadow: 0 18px 46px rgba(0, 0, 0, .22);
}
:root[data-theme='dark'] .concert-ticket-date::after { background: rgba(215, 235, 250, .18); }
:root[data-theme='dark'] .concert-ticket-calendar b { color: var(--ink); }
:root[data-theme='dark'] .concert-ticket-copy h2 { color: var(--ink); }
:root[data-theme='dark'] .concert-ticket-program,
:root[data-theme='dark'] .concert-ticket-duration,
:root[data-theme='dark'] .concert-ticket-calendar small { color: var(--muted); }
:root[data-theme='dark'] .concert-ticket-age { color: #b8dcf5; background: rgba(138, 190, 229, .11); }
:root[data-theme='dark'] .concert-ticket-venue { color: #9fc5df; }
:root[data-theme='dark'] .concert-ticket-actions .text-link { color: #b8dcf5; }
:root[data-theme='dark'] .concert-ticket-actions .text-link:hover { color: #e1f1fc; }
:root[data-theme='dark'] .concert-ticket-actions .button { border-color: #3b759e; color: #f4f9fd; background: #1d4969; }
:root[data-theme='dark'] .concert-ticket-actions .button:hover { border-color: #5796c1; color: #fff; background: #285f86; }

/* Keep the video hero distinctive; the nearby concert strip is deliberately calm. */
.video-concerts {
  padding-block: 48px 60px;
  color: var(--ink);
  background: var(--paper);
}
.video-concerts::after { display: none; content: none; }
.video-concerts-head h2 { color: var(--ink); }
.video-concerts-hint { color: var(--muted); font-size: 14px; }
.video-all-concerts {
  border-color: var(--line);
  color: var(--ink);
  background: var(--ticket-card);
  box-shadow: var(--soft-shadow);
  backdrop-filter: none;
}
.video-all-concerts:hover { border-color: rgba(73, 126, 169, .46); color: var(--ink); background: var(--ticket-soft); }
.video-concerts-grid { grid-auto-columns: minmax(300px, 31.5%); padding-bottom: 10px; scrollbar-color: rgba(73, 126, 169, .4) transparent; }
.video-concert-card.concert-ticket-card { min-height: 0; background: #f8fbfe; scroll-snap-align: start; }
.video-concert-card.concert-ticket-card .concert-ticket-date { background: #f8fbfe; }
:root[data-theme='dark'] .video-concert-card.concert-ticket-card,
:root[data-theme='dark'] .video-concert-card.concert-ticket-card .concert-ticket-date { background: var(--ticket-card); }

/* The main schedule stays a desktop list while retaining the new ticket styling. */
@media (min-width: 1021px) {
  .concerts-page-list,
  .home-concerts-section .events-list { grid-template-columns: 1fr; gap: 14px; }
  .concerts-page-list .concert-ticket-card,
  .home-concerts-section .concert-ticket-card {
    display: grid;
    min-height: 224px;
    grid-template-columns: minmax(238px, .8fr) minmax(0, 1.7fr) minmax(220px, .72fr);
    align-items: stretch;
  }
  .concerts-page-list .concert-ticket-date,
  .home-concerts-section .concert-ticket-date { min-height: 100%; align-items: center; padding: 30px; }
  .concerts-page-list .concert-ticket-date::after,
  .home-concerts-section .concert-ticket-date::after {
    top: 26px;
    right: 0;
    bottom: 26px;
    left: auto;
    width: 1px;
    height: auto;
  }
  .concerts-page-list .concert-ticket-copy,
  .home-concerts-section .concert-ticket-copy { justify-content: center; padding: 30px 34px; }
  .concerts-page-list .concert-ticket-venue,
  .home-concerts-section .concert-ticket-venue { min-height: 0; }
  .concerts-page-list .concert-ticket-copy h2,
  .home-concerts-section .concert-ticket-copy h2 { font-size: clamp(36px, 4vw, 50px); }
  .concerts-page-list .concert-ticket-actions,
  .home-concerts-section .concert-ticket-actions { align-content: center; margin: 0; padding: 30px 30px 30px 0; }
}

/* Supporting labels on the home-page facts must be readable at first glance. */
.proof-grid span {
  color: var(--ink);
  font-size: 15px;
  font-weight: 720;
  letter-spacing: .07em;
  line-height: 1.45;
  text-transform: uppercase;
}

/* Biography: safe image caption and a distinct light facts panel before the dark programme card. */
.bio-hero figcaption { right: clamp(36px, 4vw, 58px); bottom: clamp(42px, 5vw, 68px); padding: 8px 11px; border-radius: 999px; background: rgba(4, 10, 16, .48); backdrop-filter: blur(10px); }
.bio-facts-block {
  margin-top: 30px;
  padding: clamp(24px, 3.5vw, 38px);
  border: 1px solid #cadce8;
  border-radius: 30px;
  background: linear-gradient(145deg, #f8fbfd 0%, #edf5fa 100%);
  box-shadow: 0 18px 52px rgba(30, 67, 94, .1);
}
.bio-facts-block > header { margin-bottom: 20px; }
.bio-facts-block > header .eyebrow { color: #315f84; }
.bio-facts-block > header h2 { color: #0e1b29; }
.bio-facts-block > header > p:last-child { color: #526b7f; }
.bio-facts-showcase {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid #c7dce9;
  border-radius: 23px;
  color: #102536;
  background: #fff;
  box-shadow: 0 10px 30px rgba(35, 74, 102, .08);
}
.bio-fact-spotlight { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(26px, 3vw, 38px); background: linear-gradient(135deg, #dceef9, #eef7fc); }
.bio-fact-spotlight > span {
  color: #315f84;
  font-size: 12px;
  font-weight: 720;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bio-fact-spotlight strong { margin: 13px 0 8px; font-family: var(--serif); font-size: clamp(58px, 7vw, 92px); font-weight: 520; line-height: .85; letter-spacing: -.055em; }
.bio-fact-spotlight p { max-width: 410px; margin: 0; color: #405f75; font-size: 16px; line-height: 1.5; }
.bio-fact-list { display: grid; border-left: 1px solid #d5e4ee; background: rgba(255, 255, 255, .74); }
.bio-fact-list > div { display: grid; grid-template-columns: minmax(86px, auto) 1fr; align-items: center; gap: 20px; padding: 27px 30px; }
.bio-fact-list > div + div { border-top: 1px solid #d5e4ee; }
.bio-fact-list strong { font-family: var(--serif); font-size: clamp(38px, 4vw, 56px); font-weight: 520; line-height: 1; }
.bio-fact-list span { color: #405f75; font-size: 15px; line-height: 1.45; }
:root[data-theme='dark'] .bio-facts-block { border-color: #c4d8e5; background: linear-gradient(145deg, #f4f9fc, #e5f0f7); }

/* Contacts: recognisable channels, platform icons and a clear safety note. */
.contact-actions { display: grid; gap: 12px; margin-top: 36px; }
.contact-actions .contact-action,
.contact-actions .contact-action:first-of-type {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 15px;
  margin: 0;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 22px;
  color: inherit;
  background: var(--ticket-card);
  box-shadow: var(--soft-shadow);
  font-family: var(--sans);
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.contact-actions .contact-action:hover { border-color: rgba(73, 126, 169, .46); box-shadow: 0 18px 44px rgba(42, 76, 109, .14); transform: translateY(-2px); }
.contact-action-icon,
.contact-action-arrow { display: grid; place-items: center; border-radius: 50%; }
.contact-action-icon { width: 54px; height: 54px; color: #0a2030; background: #b9ddf7; }
.contact-action-icon .social-icon,
.contact-action-icon .ui-icon { width: 24px; height: 24px; }
.contact-action-copy { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.contact-action-copy small { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-action-copy strong { overflow-wrap: anywhere; font-family: var(--serif); font-size: clamp(22px, 2.2vw, 30px); font-weight: 540; line-height: 1.05; }
.contact-action-arrow { width: 42px; height: 42px; border: 1px solid var(--line); color: var(--ink); background: var(--ticket-soft); }
.contact-action-arrow .ui-icon { width: 18px; height: 18px; }
.contact-social-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 16px; }
.contact-aside .contact-social-links a {
  display: flex;
  width: auto;
  min-height: 62px;
  align-items: center;
  gap: 13px;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 15px;
  color: var(--ink);
  background: var(--ticket-card);
  font-size: 14px;
  font-weight: 680;
  text-decoration: none;
}
.contact-aside .contact-social-links a:hover { border-color: rgba(73, 126, 169, .46); background: var(--ticket-soft); }
.contact-social-links .social-icon { width: 28px; height: 28px; flex: 0 0 28px; }
.contact-note { padding: 27px !important; border-color: rgba(190, 119, 43, .3) !important; background: linear-gradient(145deg, rgba(255, 235, 202, .72), var(--surface-elevated)); }
.contact-note-head { display: flex; align-items: center; gap: 11px; color: #a35c14; }
.contact-note-head > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: rgba(205, 127, 43, .12); }
.contact-note-head .ui-icon { width: 21px; height: 21px; }
.contact-note-head strong { color: inherit; font-family: var(--serif); font-size: 30px; font-weight: 560; }
.contact-aside .contact-note > p { margin: 16px 0 0; color: var(--ink); font-size: 16px; line-height: 1.55; }
:root[data-theme='dark'] .contact-note { background: linear-gradient(145deg, rgba(91, 59, 25, .42), var(--surface-elevated)); }
:root[data-theme='dark'] .contact-note-head { color: #f0b562; }
:root[data-theme='dark'] .contact-action-icon { color: #0b1c29; }

/* Media libraries share one card geometry and a predictable 4/3/2/1 grid. */
.media-category-grid,
.media-library-section .media-category-grid,
.album-grid,
.video-catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.media-category-card > div,
.album-card > div,
.video-card-copy { padding: 20px; }

@media (max-width: 1020px) {
  .concert-finder { grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr); }
  .concert-finder > strong { grid-column: 2; }
  .events-list,
  .home-concerts-section .events-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .media-category-grid,
  .media-library-section .media-category-grid,
  .album-grid,
  .video-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bio-facts-showcase { grid-template-columns: 1fr; }
  .bio-fact-list { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #d5e4ee; border-left: 0; }
  .bio-fact-list > div + div { border-top: 0; border-left: 1px solid rgba(192, 222, 243, .15); }
}

@media (max-width: 760px) {
  .concerts-list-section { padding-bottom: 30px; }
  .concerts-announced-section { padding-top: 30px; }
  .concert-finder-section { padding: 18px 0; }
  .concert-finder { grid-template-columns: 1fr; gap: 18px; padding: 21px 18px; border-radius: 21px; }
  .concert-finder > strong { grid-column: auto; }
  .concert-finder input { min-height: 54px; }
  .events-list,
  .home-concerts-section .events-list { grid-template-columns: 1fr; gap: 14px; }
  .concert-ticket-card,
  .event-card.concert-ticket-card,
  .video-concert-card.concert-ticket-card { display: flex; min-height: 0; padding: 0; border-radius: 23px; }
  .concert-ticket-date { min-height: 84px; margin: 0; padding: 22px 20px 18px; border: 0; }
  .concert-ticket-date::after { right: 20px; left: 20px; }
  .concert-ticket-calendar > strong { font-size: 54px; }
  .concert-ticket-calendar b { font-size: 16px; white-space: nowrap; }
  .concert-ticket-calendar small { font-size: 15px; white-space: nowrap; }
  .concert-ticket-age { min-width: 42px; height: 42px; padding-inline: 10px; border-radius: 13px; font-size: 15px; }
  .concert-ticket-copy { width: 100%; align-self: stretch; padding: 20px 20px 17px; text-align: left; }
  .concert-ticket-venue { min-height: 0; align-items: flex-start; margin-bottom: 8px; font-size: 14px; line-height: 1.45; }
  .concert-ticket-copy h2 { font-size: 34px; }
  .concert-ticket-program { font-size: 17px; line-height: 1.45; }
  .concert-ticket-duration { margin-top: 6px; font-size: 15px; line-height: 1.45; }
  .concert-ticket-actions,
  .event-card .concert-ticket-actions,
  .video-concert-card .concert-ticket-actions { width: 100%; align-self: stretch; gap: 0; margin-top: 0; padding: 0 20px 18px; }
  .concert-ticket-actions > .ticket-widget-wrap,
  .concert-ticket-actions > .button,
  .concert-ticket-actions .ticket-widget-shell,
  .concert-ticket-actions .ticket-widget-button,
  .concert-ticket-actions .ticket-widget-fallback,
  .concert-ticket-actions .ticket-link { display: flex; width: 100%; max-width: none; }
  .concert-ticket-actions .button,
  .concert-ticket-actions .text-link { font-size: 16px; }
  .video-concerts { padding-block: 38px 28px; }
  .video-concerts-grid { grid-auto-columns: min(88vw, 350px); padding-bottom: 7px; }
  .video-concert-card.concert-ticket-card { min-height: 0; }
  .proof-grid span { font-size: 14px; }
  .bio-hero figcaption { right: 20px; bottom: 20px; max-width: calc(100% - 40px); font-size: 9px; text-align: right; }
  .bio-facts-block { margin-top: 20px; padding: 19px 17px; border-radius: 24px; }
  .bio-facts-block > header { margin-bottom: 16px; }
  .bio-fact-spotlight { padding: 27px 22px; }
  .bio-fact-spotlight strong { font-size: 62px; }
  .bio-fact-list { grid-template-columns: 1fr; }
  .bio-fact-list > div { grid-template-columns: 82px 1fr; gap: 16px; padding: 21px 22px; }
  .bio-fact-list > div + div { border-top: 1px solid #d5e4ee; border-left: 0; }
  .media-category-grid,
  .media-library-section .media-category-grid,
  .album-grid,
  .video-catalog-grid { grid-template-columns: 1fr; gap: 14px; }
  .media-category-card > div { padding: 18px; }
  .media-category-card h2 { font-size: 28px; }
  .contact-actions { margin-top: 28px; }
  .contact-actions .contact-action,
  .contact-actions .contact-action:first-of-type { grid-template-columns: 48px minmax(0, 1fr) 38px; gap: 12px; padding: 14px; border-radius: 19px; }
  .contact-action-icon { width: 48px; height: 48px; }
  .contact-action-copy strong { font-size: 21px; }
  .contact-action-arrow { width: 38px; height: 38px; }
  .contact-social-links { grid-template-columns: 1fr; }
  .contact-note { padding: 22px !important; }
}

@media (min-width: 1440px) {
  .media-category-grid,
  .media-library-section .media-category-grid,
  .album-grid,
  .video-catalog-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
  .video-concerts-head { align-items: stretch; }
  .video-concerts-tools { width: 100%; justify-content: space-between; }
  .scrollbox-controls button { width: 44px; height: 44px; }

/* Keyboard users can bypass the repeated header without adding visual noise. */
.skip-link {
  position: fixed;
  z-index: 300;
  top: 10px;
  left: 12px;
  padding: 11px 16px;
  border-radius: 12px;
  color: #0b1c29;
  background: #eef7fd;
  box-shadow: 0 8px 30px rgba(0, 0, 0, .24);
  font-size: 14px;
  font-weight: 750;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform .18s ease;
}
.skip-link:focus { outline: 3px solid #77b8e6; outline-offset: 2px; transform: translateY(0); }

/* Compact conversion bridge from editorial content to the next ticketed event. */
.music-albums-section:has(+ .next-live-section),
.journal-index-section:has(+ .next-live-section) { padding-bottom: 38px; }
.next-live-section { padding-block: 0 clamp(54px, 6vw, 78px); }
.next-live-card {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) minmax(260px, 340px);
  align-items: center;
  gap: clamp(22px, 4vw, 52px);
  overflow: hidden;
  padding: clamp(24px, 3.2vw, 38px);
  border: 1px solid rgba(175, 215, 243, .18);
  border-radius: 30px;
  color: #f3f8fc;
  background: linear-gradient(125deg, #0b1724 0%, #173a52 58%, #285f82 100%);
  box-shadow: var(--shadow);
}
.next-live-date { display: grid; min-height: 105px; place-content: center; border-right: 1px solid rgba(215, 235, 250, .2); }
.next-live-date strong { font-family: var(--sans); font-size: clamp(54px, 6vw, 76px); font-weight: 520; line-height: .85; letter-spacing: -.06em; }
.next-live-date span { margin-top: 10px; color: #b9d8ec; font-size: 12px; font-weight: 760; letter-spacing: .11em; text-transform: uppercase; }
.next-live-copy .eyebrow { margin-bottom: 8px; color: #a9d3f2; }
.next-live-copy h2 { margin: 0; color: #fff; font-family: var(--sans); font-size: clamp(34px, 4.2vw, 56px); font-weight: 560; line-height: 1; letter-spacing: -.045em; }
.next-live-copy > p:last-child { margin: 10px 0 0; color: #c7dce9; font-size: 15px; }
.next-live-actions { display: grid; gap: 4px; }
.next-live-actions .ticket-widget-wrap,
.next-live-actions .button { width: 100%; }
.next-live-actions .button { min-height: 54px; border-color: #eef7fd; color: #102536; background: #eef7fd; box-shadow: none; }
.next-live-actions .button:hover { border-color: #fff; color: #102536; background: #fff; transform: translateY(-1px); }
.next-live-actions .text-link { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 7px; color: #d8e9f4; font-size: 13px; text-decoration: none; }
.next-live-actions .text-link:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 820px) {
  .next-live-card { grid-template-columns: 88px minmax(0, 1fr); border-radius: 24px; }
  .next-live-date { min-height: 88px; }
  .next-live-date strong { font-size: 54px; }
  .next-live-actions { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .music-albums-section:has(+ .next-live-section),
  .journal-index-section:has(+ .next-live-section) { padding-bottom: 25px; }
  .next-live-section { padding-bottom: 48px; }
  .next-live-card { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; padding: 21px 18px; border-radius: 22px; }
  .next-live-date { min-height: 72px; }
  .next-live-date strong { font-size: 45px; }
  .next-live-date span { font-size: 9px; }
  .next-live-copy h2 { font-size: 31px; }
  .next-live-copy > p:last-child { font-size: 13px; }
}

/* Concert detail: one primary information card; the mobile CTA appears only after it leaves the viewport. */
.ticket-card { gap: 0; }
.ticket-card > p { margin: 0 0 15px; }
.ticket-card > strong { margin: 0; }
.ticket-card .ticket-card-schedule { display: block; margin: 8px 0 0; color: #42627a; font-size: 15px; font-weight: 600; text-transform: capitalize; }
.ticket-card .ticket-card-place { display: block; margin: 19px 0 0; color: #294c65; font-size: 18px; font-weight: 560; line-height: 1.4; }
.ticket-card .ticket-card-price { display: block; margin: 10px 0 2px; color: #405f75; font-size: 15px; line-height: 1.45; }
.ticket-card .ticket-card-note { display: block; margin: 11px 0 0; color: #405f75; font-size: 14px; line-height: 1.45; text-align: center; }
.ticket-card .ticket-card-status {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  margin: 22px 0 0;
  padding: 12px 18px;
  border: 1px solid rgba(49, 95, 132, .22);
  border-radius: 17px;
  color: #315f84;
  background: rgba(255, 255, 255, .42);
  font-size: 16px;
  font-weight: 700;
}
.ticket-card.is-waiting { padding-bottom: 30px; }
:root[data-theme='dark'] .ticket-card .ticket-card-schedule,
:root[data-theme='dark'] .ticket-card .ticket-card-place,
:root[data-theme='dark'] .ticket-card .ticket-card-price,
:root[data-theme='dark'] .ticket-card .ticket-card-note { color: #d0e0eb; }
:root[data-theme='dark'] .ticket-card .ticket-card-status { border-color: rgba(159, 197, 223, .25); color: #c7e3f7; background: rgba(255, 255, 255, .05); }
.mobile-ticket-bar[hidden] { display: none !important; }

@media (max-width: 760px) {
  .ticket-card { padding: 25px 22px 27px; }
  .ticket-card > p { margin-bottom: 13px; font-size: 13px; }
  .ticket-card > strong { font-size: clamp(32px, 10vw, 41px); }
  .ticket-card .ticket-card-schedule { margin-top: 7px; font-size: 15px; }
  .ticket-card .ticket-card-place { margin-top: 17px; font-size: 18px; }
  .ticket-card .ticket-card-price { font-size: 15px; }
  .ticket-card .ticket-card-status { min-height: 52px; margin-top: 20px; font-size: 16px; }
  .mobile-ticket-bar:not([hidden]) {
    position: fixed;
    z-index: 70;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px max(15px, env(safe-area-inset-right)) calc(11px + env(safe-area-inset-bottom)) max(15px, env(safe-area-inset-left));
    border-top: 1px solid var(--line);
    color: var(--ink);
    background: rgba(237, 243, 248, .94);
    box-shadow: 0 -12px 34px rgba(22, 50, 72, .12);
    backdrop-filter: blur(22px);
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(100% + 18px));
    visibility: hidden;
    transition: opacity .24s ease, transform .24s ease, visibility 0s linear .24s;
    will-change: opacity, transform;
  }
  .mobile-ticket-bar.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
    transition-delay: 0s;
  }
  .mobile-ticket-bar > strong { overflow: hidden; font-family: var(--sans); font-size: 18px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-ticket-bar .ticket-widget-wrap,
  .mobile-ticket-bar .ticket-widget-shell,
  .mobile-ticket-bar .ticket-widget-button,
  .mobile-ticket-bar .ticket-widget-fallback,
  .mobile-ticket-bar .ticket-link { width: auto; }
  .mobile-ticket-bar .ticket-widget-shell { display: block; }
  .mobile-ticket-bar .button { min-width: 132px; min-height: 50px; justify-content: center; margin: 0; padding-inline: 20px; border-radius: 17px; }
  body:has(.mobile-ticket-bar.is-visible) .site-footer { padding-bottom: calc(108px + env(safe-area-inset-bottom)); }
  body:has(.mobile-ticket-bar:not(.is-visible)) .back-to-top { bottom: 24px; }
}

/* Section rhythm: independent sections keep a deliberate minimum breathing room at every boundary. */
.concerts-about-section {
  padding-block: clamp(38px, 3.5vw, 50px) 60px;
  background: var(--ticket-stage);
}
.concerts-announced-section:has(+ .concerts-about-section) { padding-bottom: 38px; }
.concerts-announced-section + .concerts-about-section { padding-top: 38px; }
.concerts-about-section + .city-interest-section {
  padding-top: 60px;
  border-top: 1px solid var(--line);
  background: var(--section-blue);
}

.next-live-section:has(+ .music-services-section) { padding-bottom: 38px; }
.next-live-section + .music-services-section { padding-top: 38px; padding-bottom: 38px; }
.music-services-section + .music-quote-section { padding-top: 38px; }
.video-concerts-grid { padding-bottom: 16px; }
.media-category-card span { font-size: 16px; line-height: 1.5; }
.album-card > div > p { font-size: 15px; line-height: 1.5; }

.media-category-section:has(+ .video-concerts) {
  padding-bottom: 38px;
  background: var(--ticket-stage);
}
.media-category-section + .video-concerts {
  padding-top: 38px;
  padding-bottom: 44px;
  border-top: 1px solid var(--line);
  background: var(--paper);
}
.video-concerts-grid { background: transparent; box-shadow: none; }
.video-concerts-grid .video-concert-card.concert-ticket-card { box-shadow: none; }
:root[data-theme='dark'] .video-concerts-grid .video-concert-card.concert-ticket-card { box-shadow: none; }

@media (min-width: 1021px) {
  .video-concerts-grid { grid-auto-columns: minmax(460px, 44%); }
}

/* Biography facts must read as one compact group at every viewport width. */
.bio-facts-block { margin-top: 24px; padding: clamp(22px, 2.6vw, 30px); }
.bio-hero + .editorial { padding-top: 76px; }
.bio-facts-block > header {
  display: flex;
  max-width: 760px;
  flex-direction: column;
  gap: 0;
  margin: 0 0 18px;
}
.bio-facts-block > header .eyebrow { margin: 0 0 8px; }
.bio-facts-block > header h2 { margin: 0 0 8px; }
.bio-facts-block > header > p:last-child { margin: 0; }
.bio-fact-spotlight { padding: clamp(24px, 2.5vw, 32px); }
.bio-fact-list > div { padding: 24px 26px; }

/* Contact messages: a real, trackable form rather than another external link. */
.contact-feedback-section {
  padding-block: clamp(44px, 5vw, 68px);
  border-top: 1px solid var(--line);
  background: var(--section-blue);
}
.contact-feedback-grid { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); align-items: start; gap: clamp(38px, 7vw, 92px); }
.contact-feedback-grid > div > p:not(.eyebrow) { max-width: 510px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.6; }
.contact-feedback-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--ticket-card);
  box-shadow: var(--soft-shadow);
}
.contact-feedback-form label { display: grid; gap: 8px; }
.contact-feedback-form label > span { color: var(--ink); font-size: 14px; font-weight: 620; line-height: 1.4; }
.contact-feedback-form label > span small { color: var(--muted); font-size: 12px; font-weight: 520; }
.contact-feedback-form .field-wide { grid-column: 1 / -1; }
.contact-feedback-form input:not([type='checkbox']),
.contact-feedback-form select,
.contact-feedback-form textarea {
  width: 100%;
  min-height: 56px;
  padding: 14px 16px;
  border: 1px solid #a9bdcc;
  border-radius: 14px;
  color: var(--ink);
  background: var(--surface-solid);
}
.contact-feedback-form textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.contact-feedback-form input:not([type='checkbox']):focus,
.contact-feedback-form select:focus,
.contact-feedback-form textarea:focus { border-color: #4c8bb8; outline: 0; box-shadow: 0 0 0 4px rgba(76, 139, 184, .18); }
.contact-feedback-form .button { width: 100%; min-height: 56px; justify-content: center; }
.contact-feedback-status:empty { display: none; }
.contact-feedback-status:not(:empty) { margin: 18px 0 0; padding: 14px 16px; border: 1px solid rgba(49, 95, 132, .22); border-radius: 15px; color: var(--ink); background: var(--ticket-card); font-size: 15px; font-weight: 650; }
:root[data-theme='dark'] .interest-consent a { color: #b8dcf5; }

@media (max-width: 760px) {
  .first-listen-section .text-link { font-size: 15px; font-weight: 650; }
  .home-concerts-section { padding-bottom: 44px; }
  .home-concerts-section + .manifesto { padding-top: 52px; }
  .home-release-copy > .eyebrow { font-size: 13px; }
  .home-release-tracks { gap: 11px; }
  .home-release-tracks li { min-height: 72px; }
  .home-release-tracks strong { font-size: 18px; }
  .home-release-title small { font-size: 14px; }
  .concerts-announced-section:has(+ .concerts-about-section) { padding-bottom: 30px; }
  .concerts-announced-section + .concerts-about-section { padding-top: 30px; }
  .concerts-about-section { padding-block: 30px calc(var(--mobile-section-space) / 2); }
  .concerts-about-section + .city-interest-section { padding-top: calc(var(--mobile-section-space) / 2); }
  .next-live-section:has(+ .music-services-section) { padding-bottom: 30px; }
  .next-live-section + .music-services-section { padding-top: 30px; padding-bottom: calc(var(--mobile-section-space) / 2); }
  .music-services-section + .music-quote-section { padding-top: calc(var(--mobile-section-space) / 2); }
  .video-concerts-grid { padding-bottom: 18px; }
  .media-category-card span {
    display: block;
    overflow: visible;
    font-size: 16px;
    line-height: 1.5;
    -webkit-line-clamp: unset;
  }
  .media-category-card > div { padding-bottom: 24px; }
  .album-card > div { padding-bottom: 24px; }
  .album-card > div > p { font-size: 15px; letter-spacing: .06em; }
  .media-library-section,
  .media-category-section:not(:has(+ .video-concerts)) { padding-bottom: 56px; }
  .media-category-section:has(+ .video-concerts) { padding-bottom: calc(var(--mobile-section-space) / 2); }
  .media-category-section + .video-concerts { padding-top: calc(var(--mobile-section-space) / 2); padding-bottom: 42px; }
  .bio-facts-block { margin-top: 14px; padding: 18px 16px; }
  .bio-hero + .editorial { padding-top: 60px; }
  .bio-facts-block > header { margin-bottom: 14px; }
  .bio-facts-block > header .eyebrow { margin-bottom: 6px; }
  .bio-facts-block > header h2 { margin-bottom: 7px; }
  .bio-fact-spotlight { padding: 23px 20px; }
  .bio-fact-list > div { padding: 19px 20px; }
  .contact-feedback-section { padding-block: 34px 42px; }
  .contact-feedback-grid { grid-template-columns: 1fr; gap: 26px; }
  .contact-feedback-grid > div > p:not(.eyebrow) { font-size: 16px; }
  .contact-feedback-form { grid-template-columns: 1fr; padding: 20px 16px; border-radius: 23px; }
  .contact-feedback-form .field-wide { grid-column: auto; }
}

/* One predictable page rhythm: every adjacent top-level section shares the same
   balanced boundary instead of accumulating page-specific large or tiny gaps. */
:root { --section-boundary-space: 38px; --hero-follow-space: 76px; --page-end-space: 76px; }
body > main > section:not(.hero):not(:first-child) { padding-top: var(--section-boundary-space); }
body > main > section:not(.hero):not(:last-child) { padding-bottom: var(--section-boundary-space); }
body > main > .hero + section:not(.hero):not(:first-child) { padding-top: var(--hero-follow-space); }
body > main > section:not(.hero):last-child { padding-bottom: var(--page-end-space); }

@media (max-width: 760px) {
  :root { --section-boundary-space: 30px; --hero-follow-space: 60px; --page-end-space: 60px; }
}

/* The dark home music surface needs its own visible breathing room before the color boundary. */
body > main > section.release-callout:not(:first-child) {
  padding-bottom: clamp(56px, 5vw, 76px);
}

/* Wide media libraries become readable horizontal lists while compact screens keep cards. */
@media (min-width: 1100px) {
  .media-category-grid,
  .media-library-section .media-category-grid,
  .album-grid,
  .video-catalog-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .media-library-grid > .media-library-card:only-child,
  .media-category-grid > .media-category-card:only-child,
  .album-grid > .album-card:only-child {
    width: 100%;
    max-width: none;
    justify-self: stretch;
  }

  .media-category-card,
  .album-card,
  .album-card:first-child,
  .video-catalog-card {
    display: grid;
    grid-column: auto;
    grid-template-columns: minmax(330px, 36%) minmax(0, 1fr);
    min-height: 0;
    align-items: center;
    border-radius: 26px;
  }

  .media-category-card figure,
  .album-card figure,
  .album-card:first-child figure,
  .video-card-cover {
    width: 100%;
    min-height: 0;
    align-self: center;
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }

  .media-category-card-video figure,
  .video-card-cover {
    background: #07101a;
  }

  .media-category-card-video img,
  .video-card-cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .media-category-card-photo img,
  .album-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .media-category-card > div {
    min-height: 100%;
    align-content: center;
    padding: clamp(26px, 3vw, 42px);
  }

  .album-card > div,
  .video-card-copy {
    min-height: 100%;
    justify-content: center;
    padding: clamp(26px, 3vw, 42px);
  }

  .video-card-copy {
    display: flex;
    flex-direction: column;
  }

  .media-category-card h2,
  .album-card h2,
  .video-card-copy h2 {
    font-size: clamp(30px, 2.6vw, 44px);
  }

  .media-category-card span,
  .album-card > div > span,
  .video-card-copy > span {
    max-width: 56rem;
    font-size: 17px;
    line-height: 1.55;
  }

  .media-category-card i,
  .album-card i {
    margin-top: 18px;
  }
}

/* Music page: compact album-to-concert bridge and a distinct streaming panel. */
body > main > section.music-albums-section:has(+ section.next-live-section) {
  padding-bottom: var(--section-boundary-space);
}
body > main > section.music-albums-section + section.next-live-section {
  padding-top: var(--section-boundary-space);
}
body > main > section.video-concerts:last-child {
  padding-bottom: 40px;
}
.music-services-panel {
  padding: clamp(30px, 4vw, 50px);
  border: 1px solid rgba(91, 151, 197, .28);
  border-radius: 32px;
  background: linear-gradient(135deg, #f7fcff 0%, #e4f2fb 52%, #cfe7f7 100%);
  box-shadow: 0 24px 70px rgba(35, 77, 111, .14);
}
:root[data-theme='dark'] .music-services-panel {
  border-color: rgba(159, 207, 241, .22);
  background: linear-gradient(135deg, #0c1b28 0%, #17374f 52%, #215d80 100%);
  box-shadow: 0 26px 72px rgba(0, 0, 0, .28);
}
:root[data-theme='dark'] .music-services-panel .eyebrow {
  color: #9fd0f2;
}
:root[data-theme='dark'] .music-services-panel .music-services-intro {
  color: #c1d3e1;
}

@media (max-width: 760px) {
  body > main > section.video-concerts:last-child {
    padding-bottom: 24px;
  }
  .music-services-panel {
    padding: 24px 18px;
    border-radius: 26px;
  }
}
