@font-face {
  font-family: "Shippori Concert";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/shippori-mincho-b1-latin-400.woff2") format("woff2");
  unicode-range: U+0000-024F;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 0;
}

@font-face {
  font-family: "Shippori Concert";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/shippori-mincho-b1-latin-500.woff2") format("woff2");
  unicode-range: U+0000-024F;
}

body.mugen-concert-site {
  --mc-navy-1000: #020b13;
  --mc-navy-950: #06131f;
  --mc-navy-900: #091a28;
  --mc-navy-800: #102d40;
  --mc-ice-50: #f5f8f8;
  --mc-ice-100: #edf4f5;
  --mc-ice-200: #deeaed;
  --mc-ice-300: #bfd4da;
  --mc-silver: #d9e2e5;
  --mc-gold: #c9ad78;
  --mc-ink: #122c3b;
  --mc-muted: #5b727f;
  --mc-line: rgba(18, 44, 59, 0.17);
  --mc-content: min(1220px, calc(100% - 96px));
  --mc-announce-h: 36px;
  --mc-header-h: 88px;
  min-width: 320px;
  margin: 0;
  overflow-x: hidden;
  background: var(--mc-ice-100);
  color: var(--mc-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.mugen-concert-site.mc-menu-open,
body.mugen-concert-site.mc-dialog-open {
  overflow: hidden;
}

.mc-site,
.mc-site *,
.mc-site *::before,
.mc-site *::after {
  box-sizing: border-box;
}

.mc-site {
  width: 100%;
  min-height: 100vh;
  overflow: clip;
  background: var(--mc-ice-100);
  color: var(--mc-ink);
  font-size: 16px;
  line-height: 1.6;
}

.mc-site a {
  color: inherit;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.mc-site button,
.mc-site input,
.mc-site select,
.mc-site textarea {
  color: inherit;
  font: inherit;
}

.mc-site button,
.mc-site a {
  -webkit-tap-highlight-color: transparent;
}

.mc-site img {
  display: block;
  max-width: 100%;
}

.mc-site h1,
.mc-site h2,
.mc-site h3,
.mc-site p,
.mc-site dl,
.mc-site dd,
.mc-site ol,
.mc-site ul {
  margin-top: 0;
}

.mc-site .mc-icon {
  width: 1.25em;
  height: 1.25em;
  flex: 0 0 auto;
}

.mc-container {
  width: var(--mc-content);
  max-width: none;
  margin-inline: auto;
}

.mc-skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 10000;
  padding: 12px 18px;
  background: #fff;
  color: var(--mc-navy-950);
  font-size: 13px;
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}

.mc-skip-link:focus {
  transform: translateY(0);
}

.mc-site :focus-visible {
  outline: 2px solid var(--mc-gold);
  outline-offset: 4px;
}

.mc-announcement {
  position: relative;
  z-index: 40;
  min-height: var(--mc-announce-h);
  display: grid;
  place-items: center;
  background: var(--mc-navy-1000);
  color: #f3f8f9;
  border-bottom: 1px solid rgba(230, 242, 245, 0.18);
}

.mc-announcement a {
  min-height: var(--mc-announce-h);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.15em;
}

.mc-announcement a > span {
  padding: 2px 8px 3px;
  border: 1px solid rgba(230, 242, 245, 0.42);
  color: var(--mc-ice-200);
  font-size: 9px;
  letter-spacing: 0.18em;
}

.mc-announcement .mc-icon {
  width: 15px;
  height: 15px;
  transition: transform 180ms ease;
}

.mc-announcement a:hover .mc-icon,
.mc-announcement a:focus-visible .mc-icon {
  transform: translateX(4px);
}

.mc-header {
  position: relative;
  z-index: 35;
  min-height: var(--mc-header-h);
  padding-inline: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  background: var(--mc-navy-950);
  color: #f5fafb;
  border-bottom: 1px solid rgba(230, 242, 245, 0.23);
}

.mc-wordmark {
  position: relative;
  z-index: 45;
  min-width: 174px;
  display: inline-flex;
  flex-direction: column;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  line-height: 1;
  letter-spacing: 0.04em;
}

.mc-wordmark > span {
  font-size: 19px;
  font-weight: 500;
}

.mc-wordmark > small {
  margin-top: 8px;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.mc-nav {
  margin-left: auto;
}

.mc-nav__inner {
  display: flex;
  align-items: center;
  gap: clamp(17px, 1.8vw, 31px);
}

.mc-nav a {
  position: relative;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.mc-nav a small {
  display: none;
}

.mc-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 7px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 220ms ease;
}

.mc-nav a:hover::after,
.mc-nav a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.mc-menu-button {
  display: none;
  min-width: 54px;
  min-height: 54px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
}

.mc-menu-button__icon {
  display: grid;
  place-items: center;
}

.mc-menu-button__icon--close {
  display: none;
}

.mc-menu-button[aria-expanded="true"] .mc-menu-button__icon--open {
  display: none;
}

.mc-menu-button[aria-expanded="true"] .mc-menu-button__icon--close {
  display: grid;
}

.mc-hero {
  position: relative;
  height: clamp(700px, calc(100svh - var(--mc-announce-h) - var(--mc-header-h)), 940px);
  min-height: 700px;
  max-height: 940px;
  overflow: hidden;
  display: grid;
  place-items: center;
  isolation: isolate;
  background: var(--mc-navy-900);
  color: #fff;
}

.mc-hero__picture,
.mc-hero__picture img,
.mc-hero__veil {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.mc-hero__picture {
  overflow: hidden;
  background: var(--mc-navy-900);
}

.mc-hero__picture img {
  object-fit: cover;
  object-position: center;
  animation: mc-hero-image-in 1450ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.mc-hero__veil {
  z-index: 1;
  background:
    radial-gradient(circle at 50% 44%, rgba(9, 33, 50, 0.04) 0, rgba(3, 15, 25, 0.25) 56%, rgba(2, 11, 19, 0.36) 100%),
    linear-gradient(180deg, rgba(3, 15, 25, 0.12), rgba(3, 15, 25, 0.02) 55%, rgba(3, 15, 25, 0.35));
}

.mc-hero__score {
  position: absolute;
  z-index: 2;
  top: 52%;
  left: 50%;
  width: min(660px, 48vw);
  height: 42px;
  opacity: 0.17;
  transform: translate(-50%, -50%) rotate(-3deg);
  pointer-events: none;
}

.mc-hero__score span {
  display: block;
  height: 1px;
  margin-top: 8px;
  background: linear-gradient(90deg, transparent, rgba(236, 248, 250, 0.92) 22%, rgba(236, 248, 250, 0.92) 78%, transparent);
}

.mc-hero__content {
  position: relative;
  z-index: 3;
  width: min(610px, calc(100% - 48px));
  margin-top: -12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  animation: mc-hero-copy-in 900ms 150ms ease both;
}

.mc-hero__presented {
  margin: 0 0 26px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3em;
}

.mc-hero h1 {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(45px, 4.8vw, 78px);
  font-weight: 500;
  line-height: 0.97;
  letter-spacing: -0.035em;
  text-shadow: 0 3px 30px rgba(1, 8, 14, 0.65);
}

.mc-hero h1 span:nth-child(2) {
  margin-top: 9px;
  font-size: 0.76em;
  letter-spacing: 0.005em;
}

.mc-hero h1 strong {
  margin-top: 18px;
  font-family: -apple-system, BlinkMacSystemFont, "Yu Gothic", sans-serif;
  font-size: 0.33em;
  font-weight: 400;
  letter-spacing: 0.44em;
  text-indent: 0.44em;
}

.mc-hero__subtitle {
  margin: 23px 0 0;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(13px, 1.2vw, 17px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.11em;
  text-shadow: 0 2px 18px rgba(1, 8, 14, 0.78);
}

.mc-hero__meta {
  margin-top: 34px;
  padding-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.mc-hero__meta > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.mc-hero__meta .mc-icon {
  width: 18px;
  height: 18px;
}

.mc-button {
  min-width: 268px;
  min-height: 58px;
  margin-top: 31px;
  padding: 0 20px 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px solid currentColor;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.mc-hero .mc-button {
  margin-top: 38px;
}

.mc-button .mc-icon:last-child {
  margin-left: auto;
}

.mc-site .mc-button--light {
  border-color: rgba(255, 255, 255, 0.66);
  background: rgba(244, 250, 251, 0.93);
  color: var(--mc-navy-950);
  box-shadow: 0 14px 40px rgba(2, 11, 19, 0.25);
}

.mc-site .mc-button--dark {
  border-color: var(--mc-navy-950);
  background: var(--mc-navy-950);
  color: #fff;
}

.mc-button:hover,
.mc-button:focus-visible {
  transform: translateY(-2px);
}

.mc-site .mc-button--light:hover,
.mc-site .mc-button--light:focus-visible {
  background: var(--mc-navy-950);
  color: #fff;
}

.mc-site .mc-button--dark:hover,
.mc-site .mc-button--dark:focus-visible {
  background: #fff;
  color: var(--mc-navy-950);
}

.mc-hero__scroll {
  position: absolute;
  z-index: 3;
  left: 31px;
  bottom: 13px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 8px;
  letter-spacing: 0.2em;
}

.mc-hero__scroll .mc-icon {
  animation: mc-scroll-cue 1400ms ease-in-out infinite;
}

.mc-lineup {
  position: relative;
  z-index: 4;
  background: #e6f0f2;
  border-top: 1px solid rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid var(--mc-line);
}

.mc-lineup__inner {
  min-height: 150px;
  padding-block: 28px;
  display: grid;
  grid-template-columns: 300px 1fr;
  grid-template-rows: auto auto;
  align-content: center;
  gap: 14px 44px;
}

.mc-lineup__title {
  grid-row: 1 / 3;
  align-self: center;
  margin: 0;
  padding-right: 40px;
  border-right: 1px solid rgba(18, 44, 59, 0.21);
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

.mc-lineup__names {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 0;
}

.mc-lineup__names span {
  display: inline-flex;
  align-items: center;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(23px, 2.25vw, 34px);
  font-weight: 500;
  line-height: 1.2;
}

.mc-lineup__names > span:not(:last-child)::after {
  content: "/";
  margin-inline: clamp(12px, 1.4vw, 24px);
  color: #7d939e;
  font-size: 0.52em;
  font-weight: 400;
}

.mc-lineup__note {
  margin: 0;
  color: #536c78;
  font-size: 9px;
  line-height: 1.65;
  letter-spacing: 0.05em;
}

.mc-section-heading {
  max-width: 780px;
}

.mc-eyebrow {
  margin-bottom: 23px;
  color: #5b7581;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.27em;
}

.mc-section-heading h2,
.mc-concept__title h2,
.mc-closing h2 {
  margin-bottom: 25px;
  color: var(--mc-ink);
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(37px, 4.1vw, 62px);
  font-weight: 500;
  line-height: 1.43;
  letter-spacing: 0.02em;
}

.mc-section-heading > p:last-child {
  max-width: 660px;
  margin-bottom: 0;
  color: var(--mc-muted);
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.05em;
}

.mc-section-heading--light .mc-eyebrow,
.mc-section-heading--light > p:last-child {
  color: #a9bdc6;
}

.mc-section-heading--light h2 {
  color: #f3f8f9;
}

.mc-memory {
  position: relative;
  padding: 144px 0 154px;
  overflow: hidden;
  background: var(--mc-navy-950);
  color: #eef7f8;
}

.mc-memory__glow {
  position: absolute;
  top: -220px;
  right: -130px;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(102, 153, 172, 0.16), transparent 68%);
  pointer-events: none;
}

.mc-memory .mc-section-heading {
  max-width: 900px;
}

.mc-memory__works {
  margin-top: 90px;
  border-top: 1px solid rgba(220, 237, 240, 0.21);
}

.mc-memory__work {
  min-height: 118px;
  display: grid;
  grid-template-columns: 96px 1fr;
  align-items: center;
  border-bottom: 1px solid rgba(220, 237, 240, 0.21);
}

.mc-memory__work > span {
  color: var(--mc-gold);
  font-size: 10px;
  letter-spacing: 0.22em;
}

.mc-memory__work > p {
  margin: 0;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(27px, 3.2vw, 47px);
  font-weight: 400;
  letter-spacing: 0.06em;
  transition: color 260ms ease, transform 260ms ease;
}

.mc-memory__work:hover > p {
  color: #c7dce1;
  transform: translateX(12px);
}

.mc-memory__notice {
  max-width: 760px;
  margin: 30px 0 0 auto;
  color: rgba(229, 241, 244, 0.72);
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  text-align: right;
}

.mc-concept {
  position: relative;
  padding: 150px 0 156px;
  overflow: hidden;
  background:
    radial-gradient(circle at 11% 16%, rgba(176, 204, 211, 0.23), transparent 26%),
    var(--mc-ice-50);
}

.mc-concept::after {
  content: "";
  position: absolute;
  top: 0;
  right: -12%;
  width: 54%;
  height: 1px;
  background: var(--mc-gold);
  opacity: 0.45;
  transform: rotate(-4deg);
  transform-origin: right;
}

.mc-concept__intro {
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: clamp(70px, 10vw, 155px);
  align-items: start;
}

.mc-concept__title {
  position: sticky;
  top: 70px;
}

.mc-concept__title h2 {
  margin: 0;
}

.mc-concept__copy {
  padding-top: 69px;
}

.mc-concept__copy > p {
  color: #4e6571;
  font-size: 14px;
  line-height: 2.25;
  letter-spacing: 0.052em;
}

.mc-concept__copy .mc-concept__lead {
  margin-bottom: 25px;
  color: var(--mc-ink);
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 23px;
  font-weight: 500;
  line-height: 1.75;
}

.mc-text-link {
  min-height: 48px;
  margin-top: 24px;
  display: inline-flex;
  align-items: center;
  gap: 18px;
  border-bottom: 1px solid currentColor;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.11em;
}

.mc-text-link .mc-icon {
  transition: transform 180ms ease;
}

.mc-text-link:hover .mc-icon,
.mc-text-link:focus-visible .mc-icon {
  transform: translateX(4px);
}

.mc-site .mc-text-link--light {
  color: #f2f8f9;
}

.mc-eras {
  margin-top: 124px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--mc-line);
  border-bottom: 1px solid var(--mc-line);
}

.mc-eras article {
  min-height: 390px;
  padding: 52px clamp(28px, 3.4vw, 52px) 48px;
}

.mc-eras article + article {
  border-left: 1px solid var(--mc-line);
}

.mc-eras article > span {
  display: block;
  color: var(--mc-gold);
  font-family: "Shippori Concert", serif;
  font-size: 42px;
  line-height: 1;
}

.mc-eras article > small {
  display: block;
  margin-top: 23px;
  color: #607a86;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
}

.mc-eras h3 {
  margin: 49px 0 19px;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 31px;
  font-weight: 500;
  letter-spacing: 0.05em;
}

.mc-eras p {
  margin: 0;
  color: var(--mc-muted);
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.05em;
}

.mc-artists {
  position: relative;
  padding: 146px 0 126px;
  overflow: hidden;
  isolation: isolate;
  background: var(--mc-navy-950);
  color: #f2f8f9;
}

.mc-artists__backdrop,
.mc-artists__backdrop img,
.mc-artists__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.mc-artists__backdrop img {
  object-fit: cover;
}

.mc-artists__shade {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(2, 12, 21, 0.91), rgba(4, 17, 28, 0.69) 61%, rgba(4, 17, 28, 0.78)),
    rgba(4, 17, 28, 0.34);
}

.mc-artists__content {
  position: relative;
  z-index: 2;
}

.mc-artist-list {
  margin: 86px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(224, 238, 241, 0.27);
}

.mc-artist-list li {
  min-height: 158px;
  display: grid;
  grid-template-columns: 92px minmax(240px, 0.7fr) 1.3fr;
  align-items: center;
  gap: 20px;
  border-bottom: 1px solid rgba(224, 238, 241, 0.27);
}

.mc-artist-list li:nth-child(even) .mc-artist-list__name {
  padding-left: clamp(0px, 4vw, 62px);
}

.mc-artist-list__number {
  align-self: start;
  padding-top: 45px;
  color: var(--mc-gold);
  font-size: 10px;
  letter-spacing: 0.22em;
}

.mc-artist-list__name h3 {
  margin: 0;
  color: #f5fafb;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(37px, 4vw, 59px);
  font-weight: 500;
  line-height: 1.15;
}

.mc-artist-list__name small {
  display: block;
  margin-top: 8px;
  color: #9eb4bd;
  font-size: 10px;
  letter-spacing: 0.17em;
}

.mc-artist-list li > p {
  margin: 0;
  color: #b7c8ce;
  font-size: 12px;
  line-height: 2;
  letter-spacing: 0.045em;
}

.mc-artists__notice {
  margin: 25px 0 0;
  color: #8fa6af;
  font-size: 9px;
  line-height: 1.7;
  letter-spacing: 0.06em;
}

.mc-messages {
  padding: 145px 0 154px;
  background: var(--mc-ice-100);
}

.mc-message-grid {
  margin-top: 76px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.mc-message-card {
  position: relative;
  min-height: 330px;
  overflow: hidden;
  padding: 0;
  display: flex;
  align-items: flex-end;
  border: 0;
  background: var(--mc-navy-900);
  color: #fff;
  text-align: left;
  cursor: pointer;
}

.mc-message-card picture,
.mc-message-card picture img,
.mc-message-card__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.mc-message-card picture img {
  object-fit: cover;
  transform: scale(1.02);
  transition: transform 520ms ease, filter 520ms ease;
}

.mc-message-card:nth-child(even) picture img {
  object-position: 72% center;
}

.mc-message-card__shade {
  z-index: 1;
  background: linear-gradient(180deg, rgba(2, 12, 21, 0.12), rgba(2, 12, 21, 0.76));
}

.mc-message-card__number {
  position: absolute;
  z-index: 2;
  top: 20px;
  left: 22px;
  font-size: 10px;
  letter-spacing: 0.22em;
}

.mc-message-card__play {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.73);
  border-radius: 50%;
  background: rgba(2, 12, 21, 0.25);
  transform: translate(-50%, -50%);
  transition: background 180ms ease, transform 180ms ease;
}

.mc-message-card__play .mc-icon {
  width: 19px;
  height: 19px;
  margin-left: 2px;
}

.mc-message-card__copy {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 22px 24px 24px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  background: rgba(2, 12, 21, 0.56);
}

.mc-message-card__copy strong {
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 24px;
  font-weight: 500;
}

.mc-message-card__copy small {
  color: #c0d2d7;
  font-size: 9px;
  letter-spacing: 0.15em;
}

.mc-message-card:hover picture img,
.mc-message-card:focus-visible picture img {
  filter: brightness(1.14);
  transform: scale(1.07);
}

.mc-message-card:hover .mc-message-card__play,
.mc-message-card:focus-visible .mc-message-card__play {
  background: rgba(235, 246, 248, 0.2);
  transform: translate(-50%, -50%) scale(1.08);
}

.mc-event {
  display: grid;
  grid-template-columns: minmax(360px, 0.74fr) 1.26fr;
  background: #f5f7f6;
}

.mc-event__date {
  min-height: 850px;
  padding: 120px clamp(48px, 7vw, 112px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background:
    linear-gradient(145deg, rgba(48, 92, 114, 0.12), transparent 43%),
    var(--mc-navy-950);
  color: #eef7f8;
}

.mc-event__date > p {
  margin-bottom: 27px;
  color: #9db3bc;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.27em;
}

.mc-event__date > strong {
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(76px, 9vw, 142px);
  font-weight: 400;
  line-height: 0.9;
  letter-spacing: -0.07em;
}

.mc-event__date > span {
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid rgba(229, 241, 244, 0.3);
  font-size: 13px;
  letter-spacing: 0.18em;
}

.mc-event__details {
  padding: 130px clamp(50px, 8vw, 135px) 116px;
}

.mc-event-data {
  margin: 61px 0 0;
  border-top: 1px solid var(--mc-line);
}

.mc-event-data > div {
  min-height: 88px;
  display: grid;
  grid-template-columns: 112px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--mc-line);
}

.mc-event-data dt {
  color: #687f8a;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.mc-event-data dd {
  margin: 0;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.7;
}

.mc-event-data dd small {
  margin-left: 15px;
  color: #718690;
  font-family: -apple-system, BlinkMacSystemFont, "Yu Gothic", sans-serif;
  font-size: 10px;
}

.mc-director {
  margin-top: 69px;
  padding: 32px 0 0 112px;
  border-top: 1px solid var(--mc-line);
}

.mc-director > p:first-child {
  margin-bottom: 15px;
  color: #687f8a;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.mc-director h3 {
  margin: 0 0 22px;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 30px;
  font-weight: 500;
}

.mc-director h3 small {
  margin-left: 14px;
  color: #718690;
  font-family: -apple-system, BlinkMacSystemFont, "Yu Gothic", sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.09em;
}

.mc-director > p:last-child {
  margin: 0;
  color: #526a76;
  font-size: 12px;
  line-height: 2;
}

.mc-ticket {
  position: relative;
  padding: 126px 32px 132px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.38), transparent 44%),
    #ccdee3;
  text-align: center;
}

.mc-ticket::before,
.mc-ticket::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 21vw;
  height: 1px;
  background: rgba(18, 44, 59, 0.22);
}

.mc-ticket::before {
  left: 0;
}

.mc-ticket::after {
  right: 0;
}

.mc-ticket__inner {
  position: relative;
  z-index: 1;
  max-width: 730px;
  margin-inline: auto;
}

.mc-ticket__icon {
  width: 58px;
  height: 58px;
  margin: 0 auto 24px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(18, 44, 59, 0.34);
  border-radius: 50%;
}

.mc-ticket__icon .mc-icon {
  width: 27px;
  height: 27px;
}

.mc-ticket__label {
  width: max-content;
  margin: 0 auto 23px;
  padding: 5px 12px;
  border: 1px solid rgba(18, 44, 59, 0.38);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.2em;
}

/* The heading carries its own line breaks, so it must never break again inside
   one of them. The upper bound is set by the 730px inner measure rather than by
   taste: at 64px the longest authored line needed 790px and wrapped mid-phrase. */
.mc-ticket h2 {
  margin-bottom: 20px;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(34px, 4.2vw, 56px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.04em;
  text-wrap: balance;
}

.mc-ticket__title-line {
  display: block;
}

.mc-ticket__inner > p:not(.mc-ticket__label) {
  margin-bottom: 0;
  color: #4e6874;
  font-size: 13px;
  line-height: 1.95;
  letter-spacing: 0.05em;
}

.mc-news {
  padding: 145px 0 151px;
  background: #f5f7f6;
}

.mc-news__grid {
  display: grid;
  grid-template-columns: 0.76fr 1.24fr;
  gap: clamp(60px, 9vw, 140px);
}

.mc-news-list {
  border-top: 1px solid var(--mc-line);
}

.mc-news-list article {
  border-bottom: 1px solid var(--mc-line);
}

/* The row body is a link once its detail page exists and a plain block until
   then, so the layout hangs off the shared class rather than the tag. */
.mc-news-list__body {
  position: relative;
  min-height: 150px;
  padding: 30px 48px 30px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.mc-news-list__body > div {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mc-news-list time {
  color: #657d88;
  font-size: 10px;
  letter-spacing: 0.13em;
}

.mc-news-list article span {
  padding: 3px 8px;
  border: 1px solid rgba(18, 44, 59, 0.26);
  color: #566f7a;
  font-size: 8px;
  letter-spacing: 0.11em;
}

.mc-news-list h3 {
  margin: 15px 0 0;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.04em;
}

.mc-news-list__body > .mc-icon {
  position: absolute;
  top: 50%;
  right: 3px;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  transition: transform 180ms ease;
}

a.mc-news-list__body:hover > .mc-icon,
a.mc-news-list__body:focus-visible > .mc-icon {
  transform: translate(4px, calc(-50% - 4px));
}

.mc-news-list__empty {
  min-height: 150px;
  margin: 0;
  padding: 40px 0;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--mc-line);
  color: var(--mc-muted);
  font-size: 13px;
  line-height: 2;
}

.mc-access {
  padding: 132px 0 142px;
  background:
    radial-gradient(circle at 13% 24%, rgba(100, 149, 168, 0.15), transparent 32%),
    var(--mc-navy-800);
  color: #f2f8f9;
}

.mc-access__grid {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: clamp(70px, 10vw, 160px);
}

.mc-access__content h2 {
  margin-bottom: 24px;
  color: #f3f8f9;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(43px, 5vw, 70px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.02em;
}

.mc-access__content address {
  color: #b5c6cc;
  font-size: 12px;
  font-style: normal;
  line-height: 1.9;
  letter-spacing: 0.05em;
}

.mc-access__content ul {
  margin: 30px 0 0;
  padding: 23px 0 0;
  border-top: 1px solid rgba(221, 237, 240, 0.21);
  list-style: none;
}

.mc-access__content li {
  position: relative;
  margin-top: 10px;
  padding-left: 18px;
  color: #d6e1e4;
  font-size: 12px;
  line-height: 1.85;
}

.mc-access__content li::before {
  content: "";
  position: absolute;
  top: 0.83em;
  left: 0;
  width: 7px;
  height: 1px;
  background: var(--mc-gold);
}

.mc-closing {
  background: #e9f0f1;
}

.mc-closing__grid {
  display: grid;
  grid-template-columns: 0.86fr 1.14fr;
}

.mc-closing article {
  min-width: 0;
  min-height: 590px;
  padding: 103px clamp(44px, 5.5vw, 84px) 108px;
}

.mc-closing article:first-child {
  border-right: 1px solid var(--mc-line);
}

.mc-closing h2 {
  font-size: clamp(33px, 3.45vw, 50px);
  line-height: 1.5;
}

.mc-sponsors h2 {
  font-size: clamp(30px, 3.25vw, 47px);
  white-space: nowrap;
}

.mc-sponsors__title-line {
  display: block;
}

.mc-closing__copy,
.mc-contact-fallback {
  max-width: 410px;
  margin-bottom: 0;
  color: #5d7480;
  font-size: 12px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.mc-sponsor-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.mc-sponsor {
  min-height: 86px;
  padding: 18px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.48);
  border: 1px solid var(--mc-line);
}

.mc-sponsor img {
  max-width: 160px;
  max-height: 52px;
  object-fit: contain;
}

.mc-sponsor span {
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: 14px;
}

.mc-contact-form {
  margin-top: 43px;
}

.mc-contact-form .mugen-contact {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--mc-ink);
}

.mc-contact-form .mugen-contact > h2 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.mc-contact-form .mugen-contact__intro,
.mc-contact-form .mugen-contact__required-note,
.mc-contact-form .mugen-contact__optional {
  color: #5d7480;
}

.mc-contact-form form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 18px;
}

.mc-contact-form form > p,
.mc-contact-form form > div,
.mc-contact-form .mugen-field {
  min-width: 0;
  margin: 0;
}

.mc-contact-form form > p:nth-last-child(-n + 3),
.mc-contact-form .mugen-contact__field:has(textarea),
.mc-contact-form .mugen-field--full,
.mc-contact-form .mugen-field--message,
.mc-contact-form .mugen-field--consent,
.mc-contact-form .mugen-form-actions,
.mc-contact-form .mugen-form-notice {
  grid-column: 1 / -1;
}

.mc-contact-form label,
.mc-contact-form legend {
  display: block;
  margin-bottom: 8px;
  color: #536b77;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.11em;
}

.mc-contact-form input:not([type="checkbox"]):not([type="radio"]),
.mc-contact-form select,
.mc-contact-form textarea {
  width: 100%;
  border: 1px solid rgba(18, 44, 59, 0.23);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.74);
  color: var(--mc-ink);
  box-shadow: none;
}

.mc-contact-form input:not([type="checkbox"]):not([type="radio"]),
.mc-contact-form select {
  min-height: 51px;
  padding: 0 13px;
}

.mc-contact-form textarea {
  min-height: 160px;
  padding: 13px;
  resize: vertical;
}

.mc-contact-form input:focus,
.mc-contact-form select:focus,
.mc-contact-form textarea:focus {
  border-color: var(--mc-navy-800);
  outline: 2px solid rgba(201, 173, 120, 0.45);
  outline-offset: 1px;
}

.mc-contact-form input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 2px 8px 0 0;
  accent-color: var(--mc-navy-900);
}

.mc-contact-form .mugen-contact__privacy a,
.mc-contact-form .mugen-contact__mail-link {
  color: var(--mc-navy-800);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.mc-contact-form button[type="submit"],
.mc-contact-form input[type="submit"] {
  min-width: 220px;
  min-height: 54px;
  padding: 0 24px;
  border: 1px solid var(--mc-navy-950);
  border-radius: 0;
  background: var(--mc-navy-950);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.11em;
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease;
}

.mc-contact-form button[type="submit"]:hover,
.mc-contact-form input[type="submit"]:hover {
  background: #fff;
  color: var(--mc-navy-950);
}

.mc-contact-form .mugen-form-error,
.mc-contact-form [role="alert"] {
  color: #8c2330;
  font-size: 11px;
  line-height: 1.7;
}

.mc-contact-form .mc-button {
  margin-top: 23px;
}

.mc-footer {
  padding: 86px 0 40px;
  background: var(--mc-navy-950);
  color: #e6f0f2;
}

.mc-footer .mc-wordmark.mc-wordmark--footer {
  color: #f7f1e7;
}

.mc-footer__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 50px;
}

.mc-footer .mc-wordmark.mc-wordmark--footer > span {
  font-size: 25px;
  color: #f7f1e7;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.34);
}

.mc-footer .mc-wordmark.mc-wordmark--footer > small {
  color: #d2b77d;
}

.mc-footer__top > div:last-child {
  text-align: right;
}

.mc-footer__top p {
  margin-bottom: 8px;
  color: #7f99a4;
  font-size: 9px;
  letter-spacing: 0.2em;
}

.mc-footer__top strong {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.mc-footer__disclaimer {
  margin: 66px 0 28px;
  padding: 24px 0;
  border-top: 1px solid rgba(221, 237, 240, 0.17);
  border-bottom: 1px solid rgba(221, 237, 240, 0.17);
  color: #8199a3;
  font-size: 9px;
  line-height: 1.95;
  letter-spacing: 0.045em;
}

.mc-footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  color: #9aafb7;
  font-size: 10px;
  letter-spacing: 0.08em;
}

.mc-footer__links a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
}

.mc-footer__bottom {
  margin-top: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  color: #718892;
  font-size: 9px;
  letter-spacing: 0.08em;
}

.mc-footer__bottom a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.mc-video-dialog {
  width: min(1040px, calc(100% - 48px));
  max-width: none;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  color: #fff;
}

.mc-video-dialog::backdrop {
  background: rgba(1, 8, 14, 0.91);
  backdrop-filter: blur(5px);
}

.mc-video-dialog__panel {
  width: 100%;
  background: var(--mc-navy-950);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.5);
}

.mc-video-dialog__header {
  min-height: 62px;
  padding: 0 7px 0 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mc-video-dialog__header h2 {
  margin: 0;
  color: #fff;
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
}

.mc-video-dialog__header button {
  width: 48px;
  height: 48px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
}

.mc-video-dialog__frame {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
}

.mc-video-dialog__frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* 2026 editorial content and public profiles. */
.mc-site .mc-hero__promise {
  max-width: 560px;
  margin: 46px 0 0;
  padding: 0;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(14px, 1.35vw, 18px);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.08em;
  text-shadow: 0 2px 18px rgba(1, 8, 14, 0.78);
}

.mc-hero__promise + .mc-hero__subtitle {
  margin-top: 18px;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.13em;
}

.mc-memory__body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(72px, 8vw, 120px);
  align-items: start;
}

.mc-memory__body .mc-section-heading {
  position: sticky;
  top: 72px;
}

.mc-memory__body .mc-section-heading h2 {
  white-space: nowrap;
}

.mc-memory__title-line {
  display: block;
}

.mc-memory__lead {
  max-width: 440px;
  color: #b8cbd1 !important;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 17px !important;
}

.mc-memory__copy {
  padding-top: 75px;
  border-top: 1px solid rgba(220, 237, 240, 0.22);
}

.mc-memory__copy p {
  margin-bottom: 26px;
  color: #b8cbd1;
  font-size: 13px;
  line-height: 2.25;
  letter-spacing: 0.055em;
}

.mc-memory__copy .mc-memory__coda {
  margin: 48px 0 0;
  padding: 32px 0 0 40px;
  border-top: 1px solid rgba(220, 237, 240, 0.22);
  border-left: 1px solid var(--mc-gold);
  color: #edf6f7;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 20px;
  line-height: 2;
}

.mc-program-heading {
  margin-top: 130px;
}

.mc-program-heading h2 {
  margin: 0;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(34px, 4vw, 57px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.03em;
}

.mc-program-heading + .mc-eras {
  margin-top: 58px;
}

.mc-eras ul {
  min-height: 104px;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}

.mc-eras li {
  position: relative;
  padding-left: 14px;
  color: #294554;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 17px;
  line-height: 1.9;
}

.mc-eras li::before {
  content: "";
  position: absolute;
  top: 0.95em;
  left: 0;
  width: 6px;
  height: 1px;
  background: var(--mc-gold);
}

.mc-artist-cards .mc-artist-card {
  min-height: 158px;
  gap: 28px;
}

.mc-artist-cards .mc-artist-card--photo {
  min-height: 390px;
  padding: 30px 0;
  grid-template-columns: 62px minmax(190px, 238px) minmax(0, 1fr);
  align-items: center;
}

.mc-artist-cards .mc-artist-card--type {
  grid-template-columns: 62px minmax(0, 1fr);
}

.mc-artist-cards li:nth-child(even) .mc-artist-list__name {
  padding-left: 0;
}

.mc-artist-card__media {
  overflow: hidden;
  border: 1px solid rgba(225, 239, 242, 0.25);
  background: #0a2030;
}

.mc-profile-picture,
.mc-profile-picture img {
  display: block;
  width: 100%;
}

.mc-artist-card__media .mc-profile-picture,
.mc-artist-card__media img {
  aspect-ratio: 2 / 3;
}

.mc-artist-card__media img {
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: filter 260ms ease, transform 500ms cubic-bezier(0.2, 0.65, 0.2, 1);
}

.mc-artist-card--photo:hover .mc-artist-card__media img {
  filter: brightness(1.05);
  transform: scale(1.015);
}

.mc-artist-card__body {
  min-width: 0;
}

.mc-artist-card--type .mc-artist-card__body {
  display: grid;
  grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: 30px;
}

.mc-artist-card--photo .mc-artist-list__name h3 {
  font-size: clamp(42px, 5vw, 68px);
}

.mc-artist-card__works {
  margin: 0;
  color: #b7c8ce;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.045em;
}

.mc-artist-card--photo .mc-artist-card__works {
  margin-top: 30px;
}

.mc-artist-card__excerpt {
  max-width: 650px;
  margin: 25px 0 0;
  color: #a9bec5;
  font-size: 12px;
  line-height: 2;
}

.mc-artist-card__link {
  margin-top: 25px;
}

.mc-setlist {
  padding: 148px 0 154px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.54), transparent 42%),
    var(--mc-ice-100);
}

.mc-setlist__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  gap: clamp(64px, 7vw, 105px);
  align-items: start;
}

.mc-setlist__layout > .mc-section-heading {
  position: sticky;
  top: 72px;
}

.mc-setlist .mc-section-heading h2 {
  font-size: clamp(40px, 4.3vw, 63px);
}

.mc-setlist__groups {
  border-top: 1px solid var(--mc-line);
}

.mc-setlist-group {
  border-bottom: 1px solid var(--mc-line);
}

.mc-setlist-group summary {
  min-height: 122px;
  padding: 22px 2px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 18px;
  list-style: none;
  cursor: pointer;
}

.mc-setlist-group summary::-webkit-details-marker {
  display: none;
}

.mc-setlist-group__number {
  color: var(--mc-gold);
  font-size: 14px;
  letter-spacing: 0.18em;
}

.mc-setlist-group__artist {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
}

.mc-setlist-group__artist strong {
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(30px, 3vw, 44px);
  font-weight: 500;
  line-height: 1.35;
}

.mc-setlist-group__artist small {
  color: #6a818c;
  font-size: 11px;
  letter-spacing: 0.17em;
  white-space: nowrap;
}

.mc-setlist-group__toggle {
  position: relative;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(18, 44, 59, 0.25);
  border-radius: 50%;
}

.mc-setlist-group__toggle::before,
.mc-setlist-group__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: transform 180ms ease;
}

.mc-setlist-group__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.mc-setlist-group[open] .mc-setlist-group__toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.mc-setlist-group[open] summary {
  color: var(--mc-navy-800);
}

.mc-setlist-group ol {
  margin: 0 0 34px 63px;
  padding: 5px 0 0;
  counter-reset: mc-song;
  list-style: none;
}

.mc-setlist-group li {
  min-height: 54px;
  padding: 12px 0 12px 48px;
  position: relative;
  border-top: 1px solid rgba(18, 44, 59, 0.1);
  color: #405d6b;
  font-size: 17px;
  line-height: 1.9;
  counter-increment: mc-song;
}

.mc-setlist-group li::before {
  content: counter(mc-song, decimal-leading-zero);
  position: absolute;
  top: 15px;
  left: 4px;
  color: #8297a0;
  font-size: 12px;
  letter-spacing: 0.12em;
}

.mc-setlist__notice {
  margin: 26px 0 0;
  color: #657d88;
  font-size: 10px;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

.mc-event-data__time {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 25px;
}

.mc-director--profile {
  padding: 36px 0 0;
  display: grid;
  grid-template-columns: minmax(130px, 180px) minmax(0, 1fr);
  gap: 34px;
}

.mc-director__media {
  overflow: hidden;
  background: var(--mc-ice-200);
}

.mc-director__media .mc-profile-picture,
.mc-director__media img {
  aspect-ratio: 2 / 3;
}

.mc-director__media img {
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.mc-director__role {
  margin-bottom: 15px;
  color: #687f8a;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.mc-director__body > p:not(.mc-director__role) {
  margin: 0;
  color: #526a76;
  font-size: 12px;
  line-height: 2;
}

.mc-director__body .mc-text-link {
  margin-top: 18px;
}

.mc-ticket__guides {
  width: max-content;
  max-width: 100%;
  margin: 35px auto 0;
  padding-top: 20px;
  border-top: 1px solid rgba(18, 44, 59, 0.22);
}

.mc-ticket__guides > span {
  display: block;
  margin-bottom: 12px;
  color: #607985;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.19em;
}

.mc-ticket__guides ul {
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
}

.mc-ticket__guides li {
  padding: 7px 14px;
  border: 1px solid rgba(18, 44, 59, 0.25);
  background: rgba(255, 255, 255, 0.25);
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: 13px;
}

.mc-message-letter {
  padding: 150px 0 158px;
  overflow: hidden;
  background:
    radial-gradient(circle at 84% 18%, rgba(100, 149, 168, 0.15), transparent 29%),
    var(--mc-navy-950);
  color: #eef7f8;
}

.mc-message-letter__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(64px, 7vw, 105px);
  align-items: start;
}

.mc-message-letter h2 {
  margin: 0;
  color: #f3f8f9;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(32px, 3.85vw, 56px);
  font-weight: 500;
  line-height: 1.55;
  white-space: nowrap;
}

.mc-message-letter__title-line {
  display: block;
}

.mc-message-letter__title-line--responsive > span {
  display: inline;
}

.mc-message-letter .mc-eyebrow {
  color: #9db2bb;
}

.mc-message-letter__copy {
  padding: 68px 0 0 50px;
  border-top: 1px solid rgba(221, 237, 240, 0.23);
  border-left: 1px solid rgba(201, 173, 120, 0.65);
}

.mc-message-letter__copy p {
  margin-bottom: 27px;
  color: #b9cbd1;
  font-size: 13px;
  line-height: 2.2;
  letter-spacing: 0.055em;
}

.mc-message-letter__copy .mc-message-letter__rhythm {
  margin: 47px 0;
  color: #f1f7f8;
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: 24px;
  line-height: 1.9;
  letter-spacing: 0.12em;
}

.mc-access__visual {
  position: relative;
  width: min(100%, 889px);
  max-width: 889px;
  align-self: center;
  overflow: hidden;
  background: var(--mc-navy-950);
}

.mc-venue-picture,
.mc-venue-picture img {
  display: block;
  width: 100%;
  aspect-ratio: 889 / 633;
}

.mc-venue-picture img {
  height: 100%;
  object-fit: cover;
}

/* Artist and director detail pages. */
.mc-profile-hero {
  position: relative;
  padding: 94px 0 110px;
  overflow: hidden;
  background: var(--mc-navy-950);
  color: #eef7f8;
}

.mc-profile-hero__glow {
  position: absolute;
  top: -260px;
  right: -160px;
  width: 740px;
  height: 740px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(111, 166, 186, 0.18), transparent 67%);
  pointer-events: none;
}

.mc-profile-hero__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(330px, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(70px, 10vw, 150px);
  align-items: center;
}

.mc-profile-hero__media {
  position: relative;
  width: min(100%, 560px);
}

.mc-profile-hero__media::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 22px -22px -22px 22px;
  border: 1px solid rgba(218, 235, 239, 0.24);
}

.mc-profile-hero__media .mc-profile-picture,
.mc-profile-hero__media img {
  aspect-ratio: 2 / 3;
}

.mc-profile-hero__media img {
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.mc-profile-back {
  width: max-content;
  min-height: 44px;
  margin-bottom: 67px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #a9bec6;
  font-size: 10px;
  letter-spacing: 0.12em;
}

.mc-profile-back .mc-icon {
  transform: rotate(180deg);
  transition: transform 180ms ease;
}

.mc-profile-back:hover .mc-icon,
.mc-profile-back:focus-visible .mc-icon {
  transform: translateX(-4px) rotate(180deg);
}

.mc-profile-hero__copy .mc-eyebrow {
  color: #9db2bb;
}

.mc-profile-hero__role {
  margin-bottom: 16px;
  color: var(--mc-gold);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.19em;
}

.mc-profile-hero h1 {
  margin: 0;
  color: #f5fafb;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(50px, 6.2vw, 91px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.mc-profile-hero h1 small {
  margin-top: 18px;
  display: block;
  color: #9fb5be;
  font-family: -apple-system, BlinkMacSystemFont, "Yu Gothic", sans-serif;
  font-size: 0.15em;
  font-weight: 600;
  letter-spacing: 0.18em;
}

.mc-profile--director .mc-profile-hero h1,
.mc-profile--director .mc-profile-story__copy h2 {
  word-break: keep-all;
}

.mc-profile--director .mc-profile-hero h1 {
  font-size: clamp(48px, 5vw, 76px);
}

.mc-profile--director .mc-profile-story__copy h2 {
  font-size: clamp(32px, 3.4vw, 50px);
}

.mc-profile-hero__lead {
  max-width: 610px;
  margin: 42px 0 0;
  padding-top: 30px;
  border-top: 1px solid rgba(222, 238, 241, 0.24);
  color: #b9cbd1;
  font-size: 13px;
  line-height: 2.15;
  letter-spacing: 0.05em;
}

.mc-profile-story {
  padding: 148px 0 154px;
  background: var(--mc-ice-50);
}

.mc-profile-story__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.72fr);
  gap: clamp(70px, 10vw, 150px);
  align-items: start;
}

.mc-profile-story__copy h2 {
  margin: 0 0 48px;
  font-family: "Shippori Concert", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(36px, 4vw, 58px);
  font-weight: 500;
  line-height: 1.45;
}

.mc-profile-prose {
  max-width: 720px;
}

.mc-profile-prose p {
  margin-bottom: 26px;
  color: #405c69;
  font-size: 13px;
  line-height: 2.3;
  letter-spacing: 0.045em;
}

.mc-profile-facts {
  position: sticky;
  top: 46px;
}

.mc-profile-facts section {
  padding: 37px 36px 40px;
  border: 1px solid var(--mc-line);
  background: rgba(237, 244, 245, 0.62);
}

.mc-profile-facts section + section {
  margin-top: 18px;
}

.mc-profile-facts .mc-eyebrow {
  margin-bottom: 14px;
  font-size: 8px;
}

.mc-profile-facts h2 {
  margin: 0 0 25px;
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: 21px;
  font-weight: 500;
  line-height: 1.6;
}

.mc-profile-facts ul,
.mc-profile-facts ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.mc-profile-facts li {
  position: relative;
  padding: 13px 0 13px 18px;
  border-top: 1px solid rgba(18, 44, 59, 0.12);
  color: #4d6773;
  font-size: 11px;
  line-height: 1.9;
}

.mc-profile-facts li::before {
  content: "";
  position: absolute;
  top: 1.95em;
  left: 0;
  width: 7px;
  height: 1px;
  background: var(--mc-gold);
}

.mc-profile-facts__note {
  margin: 20px 0 0;
  color: #6e848e;
  font-size: 9px;
  line-height: 1.8;
}

.mc-profile-secondary {
  padding: 130px 0;
  background: var(--mc-ice-200);
}

.mc-profile-secondary .mc-container {
  width: min(720px, calc(100% - 96px));
}

.mc-profile-secondary .mc-profile-picture,
.mc-profile-secondary img {
  aspect-ratio: 2 / 3;
}

.mc-profile-secondary img {
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.mc-profile-return {
  padding: 118px 0 126px;
  background:
    radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.11), transparent 43%),
    var(--mc-navy-800);
  color: #f2f8f9;
  text-align: center;
}

.mc-profile-return .mc-eyebrow {
  color: #a7bbc3;
}

.mc-profile-return h2 {
  margin: 0;
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: clamp(36px, 4.5vw, 64px);
  font-weight: 500;
  line-height: 1.5;
}

.mc-js [data-mc-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 700ms ease, transform 700ms ease;
}

.mc-js [data-mc-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes mc-hero-image-in {
  from {
    opacity: 0;
    transform: scale(1.012);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes mc-hero-copy-in {
  from {
    opacity: 0;
    transform: translateY(15px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes mc-scroll-cue {
  0%, 100% {
    transform: translateY(-2px);
  }
  50% {
    transform: translateY(4px);
  }
}

@media (max-width: 1220px) {
  body.mugen-concert-site {
    --mc-content: min(100% - 64px, 1120px);
  }

  .mc-header {
    padding-inline: 32px;
  }

  .mc-nav__inner {
    gap: 16px;
  }

  .mc-lineup__inner {
    grid-template-columns: 250px 1fr;
    gap-inline: 32px;
  }

  .mc-artist-list li {
    grid-template-columns: 70px minmax(210px, 0.7fr) 1.3fr;
  }
}

@media (max-width: 1100px) {
  .mc-header {
    flex-wrap: wrap;
    padding-block: 12px;
  }

  .mc-nav {
    width: 100%;
    margin: 0;
  }

  .mc-nav__inner {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .mc-nav a {
    justify-content: center;
    white-space: normal;
  }

  .mc-js .mc-header {
    min-height: var(--mc-header-h);
    padding-block: 0;
    flex-wrap: nowrap;
  }

  .mc-js .mc-menu-button {
    position: relative;
    z-index: 45;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
  }

  .mc-menu-button__icon .mc-icon {
    width: 24px;
    height: 24px;
  }

  .mc-menu-button__label {
    font-size: 7px;
    letter-spacing: 0.12em;
  }

  .mc-js .mc-nav {
    position: fixed;
    z-index: 38;
    inset: calc(var(--mc-announce-h) + var(--mc-header-h)) 0 0;
    width: auto;
    margin: 0;
    padding: 18px 32px max(50px, env(safe-area-inset-bottom));
    overflow-y: auto;
    background:
      radial-gradient(circle at 90% 0, rgba(91, 142, 162, 0.16), transparent 31%),
      rgba(5, 18, 29, 0.985);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
  }

  .mc-js .mc-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 0s;
  }

  .mc-js .mc-nav__inner {
    width: min(740px, 100%);
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .mc-js .mc-nav a {
    min-height: 72px;
    padding-inline: 4px;
    display: grid;
    grid-template-columns: 118px 1fr;
    justify-content: stretch;
    border-bottom: 1px solid rgba(232, 244, 247, 0.17);
    font-family: "Shippori Concert", "Yu Mincho", serif;
    font-size: 18px;
    letter-spacing: 0.08em;
  }

  .mc-js .mc-nav a small {
    display: block;
    color: #89a2ac;
    font-family: -apple-system, BlinkMacSystemFont, "Yu Gothic", sans-serif;
    font-size: 8px;
    letter-spacing: 0.18em;
  }

  .mc-js .mc-nav a::after {
    display: none;
  }

  body.admin-bar .mc-js .mc-nav {
    top: calc(var(--mc-announce-h) + var(--mc-header-h) + 32px);
  }

  .mc-lineup__inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .mc-lineup__title {
    grid-row: auto;
    padding: 0 0 17px;
    border-right: 0;
    border-bottom: 1px solid rgba(18, 44, 59, 0.21);
  }

  .mc-concept__intro,
  .mc-news__grid,
  .mc-access__grid {
    grid-template-columns: 1fr;
  }

  .mc-concept__title {
    position: static;
  }

  .mc-concept__copy {
    padding-top: 0;
  }

  .mc-artist-list li {
    grid-template-columns: 60px minmax(180px, 0.65fr) 1.35fr;
  }

  .mc-event {
    grid-template-columns: 0.65fr 1.35fr;
  }

  .mc-event__details {
    padding-inline: 48px;
  }

  .mc-director {
    padding-left: 0;
  }

  .mc-news-list {
    margin-top: 20px;
  }
}

@media (max-width: 782px) {
  body.admin-bar .mc-js .mc-nav {
    top: calc(var(--mc-announce-h) + var(--mc-header-h) + 46px);
  }

  .mc-eras {
    grid-template-columns: 1fr;
  }

  .mc-eras article {
    min-height: 0;
    padding: 43px 34px 46px;
  }

  .mc-eras article + article {
    border-top: 1px solid var(--mc-line);
    border-left: 0;
  }

  .mc-eras h3 {
    margin-top: 29px;
  }

  .mc-event {
    grid-template-columns: 1fr;
  }

  .mc-event__date {
    min-height: 430px;
    text-align: center;
  }

  .mc-event__date > span {
    width: 220px;
    margin-inline: auto;
  }

  .mc-closing__grid {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .mc-closing article {
    min-height: 0;
  }

  .mc-closing article:first-child {
    border-right: 0;
    border-bottom: 1px solid var(--mc-line);
  }
}

@media (max-width: 640px) {
  body.mugen-concert-site {
    --mc-content: calc(100% - 40px);
    --mc-announce-h: 34px;
    --mc-header-h: 70px;
  }

  .mc-announcement a {
    gap: 8px;
    font-size: 9px;
    letter-spacing: 0.11em;
  }

  .mc-announcement a > span {
    font-size: 7px;
  }

  .mc-header {
    min-height: var(--mc-header-h);
    padding-inline: 18px 9px;
  }

  .mc-wordmark {
    min-width: 145px;
  }

  .mc-wordmark > span {
    font-size: 16px;
  }

  .mc-wordmark > small {
    margin-top: 6px;
    font-size: 7px;
  }

  .mc-nav__inner {
    grid-template-columns: 1fr 1fr;
  }

  .mc-js .mc-nav {
    inset: calc(var(--mc-announce-h) + var(--mc-header-h)) 0 0;
    padding: 16px 20px max(38px, env(safe-area-inset-bottom));
  }

  .mc-js .mc-nav a {
    min-height: 66px;
    grid-template-columns: 92px 1fr;
    font-size: 16px;
  }

  .mc-hero {
    width: 100%;
    height: 100svh;
    min-height: 680px;
    max-height: 960px;
  }

  .mc-hero__picture img {
    object-fit: cover;
    object-position: center center;
  }

  .mc-hero__veil {
    background:
      linear-gradient(180deg, rgba(3, 15, 25, 0.18), rgba(3, 15, 25, 0.02) 52%, rgba(3, 15, 25, 0.38)),
      radial-gradient(circle at 50% 42%, rgba(3, 15, 25, 0.03), rgba(3, 15, 25, 0.24) 72%);
  }

  .mc-hero__score {
    width: 88vw;
    opacity: 0.13;
  }

  .mc-hero__content {
    width: calc(100% - 34px);
    margin-top: -18px;
  }

  .mc-hero__presented {
    margin-bottom: 19px;
    font-size: 8px;
  }

  .mc-hero h1 {
    font-size: clamp(38px, 11.2vw, 47px);
    line-height: 1.02;
  }

  .mc-hero h1 span:nth-child(2) {
    margin-top: 7px;
    font-size: 0.68em;
  }

  .mc-hero h1 strong {
    margin-top: 14px;
    font-size: 0.38em;
  }

  .mc-hero__subtitle {
    width: 92%;
    margin-top: 18px;
    font-size: 10px;
    line-height: 1.85;
  }

  .mc-hero__meta {
    width: min(310px, 100%);
    margin-top: 30px;
    padding-top: 0;
    flex-direction: column;
    gap: 7px;
    font-size: 10px;
  }

  .mc-button {
    min-width: min(280px, 100%);
    min-height: 54px;
    margin-top: 23px;
    font-size: 11px;
  }

  .mc-hero .mc-button {
    margin-top: 29px;
  }

  .mc-hero__scroll {
    display: none;
  }

  .mc-lineup__inner {
    padding-block: 28px 31px;
    gap: 15px;
  }

  .mc-lineup__title {
    font-size: 13px;
    line-height: 1.65;
  }

  .mc-lineup__names {
    gap: 7px 0;
  }

  .mc-lineup__names span {
    font-size: 20px;
  }

  .mc-lineup__names > span:not(:last-child)::after {
    margin-inline: 9px;
  }

  .mc-lineup__note {
    font-size: 8px;
  }

  .mc-eyebrow {
    margin-bottom: 18px;
    font-size: 8px;
  }

  .mc-section-heading h2,
  .mc-concept__title h2,
  .mc-closing h2 {
    margin-bottom: 20px;
    font-size: 32px;
    line-height: 1.52;
  }

  .mc-section-heading > p:last-child {
    font-size: 11px;
    line-height: 2;
  }

  .mc-memory,
  .mc-artists,
  .mc-messages,
  .mc-news {
    padding: 92px 0 99px;
  }

  .mc-memory__works {
    margin-top: 55px;
  }

  .mc-memory__work {
    min-height: 90px;
    grid-template-columns: 42px 1fr;
  }

  .mc-memory__work > span {
    font-size: 8px;
  }

  .mc-memory__work > p {
    font-size: clamp(21px, 6.4vw, 25px);
    line-height: 1.4;
  }

  .mc-concept {
    padding: 96px 0 103px;
  }

  .mc-concept__intro {
    gap: 50px;
  }

  .mc-concept__copy .mc-concept__lead {
    font-size: 19px;
  }

  .mc-concept__copy > p {
    font-size: 12px;
    line-height: 2.15;
  }

  .mc-eras {
    margin-top: 76px;
  }

  .mc-eras article {
    padding-inline: 22px;
  }

  .mc-artist-list {
    margin-top: 54px;
  }

  .mc-artist-list li {
    min-height: 154px;
    padding: 25px 0;
    grid-template-columns: 39px 1fr;
    grid-template-rows: auto auto;
    gap: 8px 12px;
  }

  .mc-artist-list li:nth-child(even) .mc-artist-list__name {
    padding-left: 0;
  }

  .mc-artist-list__number {
    grid-row: 1 / 3;
    padding-top: 11px;
    font-size: 8px;
  }

  .mc-artist-list__name h3 {
    font-size: 35px;
  }

  .mc-artist-list li > p {
    font-size: 10px;
    line-height: 1.8;
  }

  .mc-message-grid {
    margin-top: 52px;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .mc-message-card {
    min-height: 245px;
  }

  .mc-message-card__copy {
    padding: 19px 20px 21px;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }

  .mc-event__date {
    min-height: 410px;
    padding: 76px 20px;
  }

  .mc-event__date > strong {
    font-size: 94px;
  }

  .mc-event__details {
    padding: 93px 20px 99px;
  }

  .mc-event-data {
    margin-top: 49px;
  }

  .mc-event-data > div {
    min-height: 96px;
    grid-template-columns: 68px 1fr;
  }

  .mc-event-data dd {
    font-size: 15px;
  }

  .mc-event-data dd small {
    display: block;
    margin: 3px 0 0;
  }

  .mc-director {
    margin-top: 54px;
    padding-top: 28px;
  }

  .mc-director h3 {
    font-size: 25px;
  }

  .mc-director h3 small {
    display: block;
    margin: 7px 0 0;
  }

  .mc-ticket {
    padding: 94px 20px 100px;
  }

  .mc-ticket::before,
  .mc-ticket::after {
    display: none;
  }

  /* The heading carries its own line breaks, so a fixed 33px let the longest
     line break again mid-phrase on narrow phones. Scaling with the viewport
     keeps each authored line on one row down to 320px. */
  .mc-ticket h2 {
    font-size: clamp(21px, 6.9vw, 33px);
  }

  .mc-news__grid {
    gap: 46px;
  }

  .mc-news-list__body {
    min-height: 135px;
    padding-right: 35px;
  }

  .mc-news-list h3 {
    font-size: 15px;
  }

  .mc-access {
    padding: 92px 0 102px;
  }

  .mc-access__grid {
    gap: 49px;
  }

  .mc-access__content h2 {
    font-size: 40px;
  }

  .mc-closing article {
    padding: 82px 20px 88px;
  }

  .mc-contact-form form {
    grid-template-columns: 1fr;
  }

  .mc-contact-form form > * {
    grid-column: 1 / -1;
  }

  .mc-sponsor-list {
    grid-template-columns: 1fr;
  }

  .mc-footer {
    padding-top: 69px;
  }

  .mc-footer__top,
  .mc-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .mc-footer__top > div:last-child {
    margin-top: 15px;
    text-align: left;
  }

  .mc-footer__disclaimer {
    margin-top: 45px;
  }

  .mc-footer__links {
    gap-inline: 19px;
  }

  .mc-footer__bottom {
    margin-top: 21px;
  }

  .mc-video-dialog {
    width: calc(100% - 24px);
  }

  .mc-video-dialog__header {
    min-height: 56px;
    padding-left: 15px;
  }

  .mc-video-dialog__header h2 {
    font-size: 13px;
  }
}

@media (max-width: 1100px) {
  .mc-memory__body,
  .mc-message-letter__inner {
    gap: 64px;
  }

  .mc-artist-cards .mc-artist-card--photo {
    grid-template-columns: 52px minmax(170px, 210px) minmax(0, 1fr);
  }

  .mc-artist-card--type .mc-artist-card__body {
    grid-template-columns: minmax(190px, 0.68fr) minmax(0, 1.32fr);
  }

  .mc-setlist__layout {
    grid-template-columns: 1fr;
    gap: 68px;
  }

  .mc-setlist__layout > .mc-section-heading {
    position: static;
  }

  .mc-access__visual {
    justify-self: center;
  }

  .mc-profile-hero__grid {
    gap: 70px;
  }

  .mc-profile-story__grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.7fr);
    gap: 65px;
  }
}

@media (max-width: 782px) {
  .mc-memory__body,
  .mc-message-letter__inner,
  .mc-profile-hero__grid,
  .mc-profile-story__grid {
    grid-template-columns: 1fr;
  }

  .mc-memory__body .mc-section-heading,
  .mc-profile-facts {
    position: static;
  }

  .mc-memory__copy {
    padding-top: 48px;
  }

  .mc-program-heading {
    margin-top: 96px;
  }

  .mc-artist-cards .mc-artist-card--photo {
    grid-template-columns: 45px minmax(160px, 200px) minmax(0, 1fr);
    gap: 22px;
  }

  .mc-message-letter__copy {
    padding-top: 48px;
  }

  .mc-profile-hero__media {
    width: min(74vw, 520px);
  }

  .mc-profile-hero__copy {
    max-width: 650px;
  }

  .mc-profile-back {
    margin-bottom: 48px;
  }
}

@media (max-width: 640px) {
  .mc-site .mc-hero__promise {
    max-width: 340px;
    margin-top: 30px;
    padding: 0;
    font-size: 12px;
    line-height: 1.7;
    letter-spacing: 0.055em;
  }

  .mc-hero__promise + .mc-hero__subtitle {
    width: 100%;
    margin-top: 14px;
    font-size: 11px;
    line-height: 1.7;
    letter-spacing: 0.08em;
  }

  .mc-memory__body {
    gap: 49px;
  }

  .mc-memory__lead {
    font-size: 14px !important;
  }

  .mc-memory__copy {
    padding-top: 36px;
  }

  .mc-memory__copy p {
    font-size: 13px;
    line-height: 2.15;
  }

  .mc-memory__copy .mc-memory__coda {
    margin-top: 36px;
    padding: 25px 0 0 20px;
    font-size: 16px;
  }

  .mc-program-heading {
    margin-top: 76px;
  }

  .mc-program-heading h2 {
    font-size: 31px;
  }

  .mc-program-heading + .mc-eras {
    margin-top: 42px;
  }

  .mc-eras ul {
    min-height: 0;
  }

  .mc-artist-cards .mc-artist-card--photo {
    min-height: 0;
    padding: 35px 0 42px;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: start;
    gap: 22px 10px;
  }

  .mc-artist-cards .mc-artist-card--photo .mc-artist-list__number {
    grid-row: 1 / 3;
    padding-top: 4px;
  }

  .mc-artist-card__media {
    width: min(100%, 280px);
  }

  .mc-artist-card--photo .mc-artist-card__body {
    grid-column: 2;
  }

  .mc-artist-card--photo .mc-artist-list__name h3 {
    font-size: 37px;
  }

  .mc-artist-card--type .mc-artist-card__body {
    display: block;
  }

  .mc-artist-card__works,
  .mc-artist-card__excerpt {
    margin-top: 15px;
    font-size: 13px;
    line-height: 1.9;
  }

  .mc-artist-card__link {
    margin-top: 17px;
  }

  .mc-setlist {
    padding: 93px 0 100px;
  }

  .mc-setlist__layout {
    gap: 50px;
  }

  .mc-setlist .mc-section-heading h2 {
    font-size: 35px;
  }

  .mc-setlist-group summary {
    min-height: 104px;
    grid-template-columns: 32px minmax(0, 1fr) 38px;
    gap: 10px;
  }

  .mc-setlist-group__artist {
    display: block;
  }

  .mc-setlist-group__artist strong {
    display: block;
    font-size: 28px;
  }

  .mc-setlist-group__artist small {
    display: block;
    margin-top: 5px;
  }

  .mc-setlist-group__toggle {
    width: 34px;
    height: 34px;
  }

  .mc-setlist-group ol {
    margin: 0 0 28px 38px;
  }

  .mc-setlist-group li {
    padding-left: 38px;
    font-size: 16px;
  }

  .mc-setlist-group__number {
    font-size: 12px;
  }

  .mc-setlist-group li::before {
    font-size: 11px;
  }

  .mc-director--profile {
    grid-template-columns: 1fr;
    gap: 27px;
  }

  .mc-director__media {
    width: min(200px, 68vw);
  }

  .mc-ticket__guides {
    width: 100%;
  }

  .mc-message-letter {
    padding: 94px 0 101px;
  }

  .mc-message-letter__inner {
    gap: 50px;
  }

  .mc-message-letter h2 {
    font-size: 32px;
    white-space: normal;
  }

  .mc-memory__title-line,
  .mc-message-letter__title-line,
  .mc-sponsors__title-line,
  .mc-message-letter__title-line--responsive > span {
    display: block;
  }

  .mc-message-letter__copy {
    padding: 36px 0 0 20px;
  }

  .mc-message-letter__copy p {
    font-size: 13px;
    line-height: 2.1;
  }

  .mc-message-letter__copy .mc-message-letter__rhythm {
    margin: 35px 0;
    font-size: 19px;
  }

  .mc-profile-hero {
    padding: 64px 0 91px;
  }

  .mc-profile-hero__grid {
    gap: 67px;
  }

  .mc-profile-hero__media {
    width: calc(100% - 22px);
  }

  .mc-profile-hero__media::after {
    inset: 12px -12px -12px 12px;
  }

  .mc-profile-back {
    margin-bottom: 39px;
  }

  .mc-profile-hero h1 {
    font-size: clamp(43px, 14vw, 59px);
  }

  .mc-profile-hero h1 small {
    font-size: 0.18em;
  }

  .mc-profile-hero__lead {
    margin-top: 32px;
    padding-top: 24px;
    font-size: 13px;
    line-height: 2.05;
  }

  .mc-profile-story {
    padding: 93px 0 99px;
  }

  .mc-profile-story__grid {
    gap: 60px;
  }

  .mc-profile-story__copy h2 {
    margin-bottom: 35px;
    font-size: 32px;
  }

  .mc-profile--director .mc-profile-hero h1 {
    font-size: clamp(34px, 10vw, 44px);
  }

  .mc-profile--director .mc-profile-story__copy h2 {
    font-size: 28px;
  }

  .mc-profile-prose p {
    margin-bottom: 22px;
    font-size: 14px;
    line-height: 2.2;
  }

  .mc-profile-facts section {
    padding: 30px 20px 33px;
  }

  .mc-profile-secondary {
    padding: 90px 0;
  }

  .mc-profile-secondary .mc-container {
    width: calc(100% - 40px);
  }

  .mc-profile-return {
    padding: 89px 0 96px;
  }

  .mc-profile-return h2 {
    font-size: 33px;
  }
}

@media (max-width: 380px) {
  .mc-hero h1 {
    font-size: 37px;
  }

  .mc-hero__subtitle {
    letter-spacing: 0.07em;
  }

  .mc-lineup__names span {
    font-size: 18px;
  }

  .mc-setlist-group__artist strong {
    font-size: 25px;
  }

  .mc-memory__body .mc-section-heading h2 {
    white-space: normal;
  }

  .mc-profile-hero h1 {
    font-size: 40px;
  }

  .mc-profile--director .mc-profile-hero h1 {
    font-size: 33px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .mc-site,
  .mc-site *,
  .mc-site *::before,
  .mc-site *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* -------------------------------------------------------------------------
 * Front-page photographic key visual
 * ---------------------------------------------------------------------- */
body.mugen-front-site {
  --mc-front-ivory: #f7f1e7;
  --mc-front-pearl: #fffdf8;
  --mc-front-champagne: #d2b77d;
  --mc-front-gold: #9a7028;
  --mc-front-ink: #163544;
  --mc-front-muted: #526b75;
  background: var(--mc-front-ivory);
}

body.mugen-front-site .mc-site {
  background: var(--mc-front-ivory);
  color: var(--mc-front-ink);
  font-size: 17px;
}

body.mugen-front-site .mc-announcement {
  background: var(--mc-front-pearl);
  color: var(--mc-front-ink);
  border-bottom-color: rgba(154, 112, 40, 0.32);
}

body.mugen-front-site .mc-announcement a {
  min-height: 38px;
  font-size: 14px;
  letter-spacing: 0.11em;
}

body.mugen-front-site .mc-announcement a > span {
  border-color: rgba(154, 112, 40, 0.6);
  color: var(--mc-front-gold);
  font-size: 10px;
}

body.mugen-front-site .mc-header {
  background: rgba(255, 253, 248, 0.96);
  color: var(--mc-front-ink);
  border-bottom-color: rgba(154, 112, 40, 0.28);
  box-shadow: 0 6px 22px rgba(46, 38, 24, 0.06);
}

body.mugen-front-site .mc-wordmark {
  color: var(--mc-front-ink);
}

body.mugen-front-site .mc-wordmark > small,
body.mugen-front-site .mc-nav a small {
  color: var(--mc-front-gold);
}

body.mugen-front-site .mc-nav a {
  font-size: 14px;
  letter-spacing: 0.06em;
}

body.mugen-front-site .mc-menu-button {
  min-width: 68px;
  color: var(--mc-front-ink);
}

body.mugen-front-site .mc-menu-button__label {
  font-size: 14px;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* The drawer inherits the dark site-wide panel unless the front page overrides
 * it, and the front page's ink-coloured link text is unreadable on that. The
 * previous override was written as `body.mugen-front-site .mc-js .mc-nav`,
 * which can never match: `mc-js` is set on the <html> element, so it is an
 * ancestor of <body>, not a descendant. Scoping it inside the same breakpoint
 * that creates the drawer also keeps it away from the desktop inline nav. */
@media (max-width: 1100px) {
  .mc-js body.mugen-front-site .mc-nav {
    background:
      radial-gradient(circle at 50% 0, rgba(210, 183, 125, 0.22), transparent 46%),
      linear-gradient(180deg, #fffdf8 0%, #faf5ec 42%, #f4ecdd 100%);
    color: var(--mc-front-ink);
    border-top: 1px solid rgba(154, 112, 40, 0.34);
    box-shadow: inset 0 14px 34px rgba(120, 86, 30, 0.06);
  }

  .mc-js body.mugen-front-site .mc-nav a {
    color: var(--mc-front-ink);
    border-bottom-color: rgba(154, 112, 40, 0.26);
    font-size: 19px;
  }

  /* --mc-front-gold reads 4.09:1 on the ivory panel, under the 4.5:1 AA floor
   * for text this small, so the drawer uses a darker gold and a slightly
   * larger label. */
  .mc-js body.mugen-front-site .mc-nav a small {
    color: #7c5a1b;
    font-size: 9px;
  }

  /* Gold wash on press, the same accent the hero and the ticket button use. */
  .mc-js body.mugen-front-site .mc-nav a:hover,
  .mc-js body.mugen-front-site .mc-nav a:focus-visible,
  .mc-js body.mugen-front-site .mc-nav a:active {
    background: linear-gradient(90deg, rgba(210, 183, 125, 0.2), rgba(210, 183, 125, 0.04));
    color: #6f4d14;
  }

  .mc-js body.mugen-front-site .mc-nav a:hover small,
  .mc-js body.mugen-front-site .mc-nav a:focus-visible small,
  .mc-js body.mugen-front-site .mc-nav a:active small {
    color: #6f4d14;
  }
}

/* The five performers fill the hero as one continuous picture: a row of
 * full-height columns whose photos already carry the shared ivory field and
 * feathered edges (see tools/build-hero-cast.py). Only `min-height` is set, so
 * nothing can be clipped if the copy grows; the previous fixed `height` plus a
 * conflicting `min-height` on small screens is what used to break the layout. */
/* Three rows: the title, then the cast, then the details. The cast spans rows
 * two and three so it still bleeds to the bottom edge behind the details, but
 * because it starts in its own row the title can never land on a face — which
 * a full-height overlay could not guarantee once the viewport got short or
 * very wide. */
body.mugen-front-site .mc-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  align-items: stretch;
  min-height: clamp(700px, calc(100svh - var(--mc-announce-h) - var(--mc-header-h)), 940px);
  height: auto;
  max-height: none;
  padding: 0;
  background: var(--mc-front-ivory);
  color: var(--mc-front-ink);
}

/* Capped so a very wide monitor cannot stretch a column past the point where
 * `cover` starts cropping the heads off the top. The margin either side is the
 * same ivory as the photographs, so the cap is invisible. */
body.mugen-front-site .mc-hero__cast {
  position: relative;
  z-index: 0;
  grid-row: 2 / 4;
  grid-column: 1;
  justify-self: center;
  width: min(100%, 2000px);
  min-height: clamp(440px, 46vh, 560px);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  pointer-events: none;
}

body.mugen-front-site .mc-hero__cast-item {
  position: relative;
  margin: 0;
  overflow: hidden;
}

body.mugen-front-site .mc-hero__cast-item picture,
body.mugen-front-site .mc-hero__cast-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* Anchored to the bottom so that when a very wide viewport forces `cover` to
 * crop vertically, it eats the ivory headroom the title sits on rather than
 * the faces. The mask is a second line of defence for the same case. */
body.mugen-front-site .mc-hero__cast-item img {
  max-width: none;
  object-fit: cover;
  object-position: 50% 100%;
  animation: none;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 16%, #000 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 16%, #000 100%);
}

body.mugen-front-site .mc-hero__picture,
body.mugen-front-site .mc-hero__veil,
body.mugen-front-site .mc-hero__score {
  display: none;
}

body.mugen-front-site .mc-hero__content {
  position: relative;
  z-index: 2;
  grid-row: 1;
  grid-column: 1;
  width: min(1080px, calc(100% - 56px));
  margin: 0;
  padding: clamp(18px, 2.6vh, 38px) 0 clamp(6px, 1.2vh, 18px);
  display: flex;
  flex-direction: column;
  align-items: center;
  border: 0;
  background: transparent;
  color: var(--mc-front-ink);
  text-align: center;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  animation: none;
}

/* An ellipse rather than a panel: it lifts the title off the photographs
 * without drawing the rectangular card the client asked us to remove. */
body.mugen-front-site .mc-hero__content::before {
  position: absolute;
  inset: -12% -8% -6%;
  z-index: -1;
  content: "";
  background: radial-gradient(
    ellipse 62% 60% at 50% 42%,
    rgba(247, 241, 231, 0.94) 0%,
    rgba(247, 241, 231, 0.62) 46%,
    rgba(247, 241, 231, 0) 78%
  );
  filter: blur(6px);
  pointer-events: none;
}

body.mugen-front-site .mc-hero__footer {
  position: relative;
  z-index: 3;
  grid-row: 3;
  grid-column: 1;
  width: min(1080px, calc(100% - 40px));
  padding-block: clamp(10px, 1.4vh, 18px) clamp(26px, 3.4vh, 44px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

body.mugen-front-site .mc-hero__footer::before {
  position: absolute;
  inset: -72px -50vw -100px;
  z-index: -1;
  content: "";
  background: linear-gradient(
    to bottom,
    rgba(247, 241, 231, 0) 0%,
    rgba(247, 241, 231, 0.58) 26%,
    rgba(247, 241, 231, 0.88) 52%,
    rgba(247, 241, 231, 0.97) 100%
  );
  pointer-events: none;
}

body.mugen-front-site .mc-hero__footer .mc-hero__lineup {
  margin-top: 0;
}

body.mugen-front-site .mc-hero__footer .mc-hero__meta {
  margin-top: 12px;
}

body.mugen-front-site .mc-hero__footer .mc-button {
  min-height: 54px;
  margin-top: 14px;
}

/* The halo and the bottom scrim already carry the copy, so the old cool-toned
 * glow is dropped and only a hairline highlight remains. */
body.mugen-front-site .mc-hero__presented,
body.mugen-front-site .mc-hero__kicker,
body.mugen-front-site .mc-hero__promise,
body.mugen-front-site .mc-hero__subtitle,
body.mugen-front-site .mc-hero__lineup,
body.mugen-front-site .mc-hero__meta {
  text-shadow: 0 1px 0 rgba(255, 253, 248, 0.92);
}

body.mugen-front-site .mc-hero__presented {
  margin-bottom: 14px;
  color: var(--mc-front-gold);
  font-size: 13px;
  letter-spacing: 0.26em;
  text-shadow:
    0 1px 0 rgba(255, 253, 248, 0.98),
    0 4px 12px rgba(22, 53, 68, 0.34);
}

/* "韓国ドラマOSTコンサート" is what tells a first-time visitor what this site
 * is, so it gets rules on either side and reads as a label rather than a
 * caption under the English title. */
body.mugen-front-site .mc-hero__kicker {
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  color: var(--mc-front-ink);
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: clamp(19px, 2vw, 30px);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-shadow: 0 1px 0 rgba(255, 253, 248, 0.9);
}

body.mugen-front-site .mc-hero__kicker > span {
  white-space: nowrap;
}

body.mugen-front-site .mc-hero__kicker::before,
body.mugen-front-site .mc-hero__kicker::after {
  flex: 0 1 clamp(20px, 7vw, 104px);
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, var(--mc-front-champagne), transparent);
}

/* Gold is painted as a gradient clipped to the glyphs, which rules out
 * `text-shadow` (the fill is transparent, so the shadow shows through it).
 * `filter: drop-shadow()` applies to the rendered result instead, and stacking
 * four of them at increasing distances is what reads as stamped foil. */
body.mugen-front-site .mc-hero h1 {
  margin: 0;
  color: var(--mc-front-gold);
  background: linear-gradient(
    125deg,
    #6b4712 0%,
    #f2dc9e 15%,
    #b3812f 33%,
    #fdf3cb 50%,
    #855c1a 67%,
    #ecce8d 84%,
    #6b4712 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: clamp(54px, 6.4vw, 116px);
  line-height: 0.88;
  letter-spacing: -0.005em;
  text-shadow: none;
  filter:
    drop-shadow(0 1px 0 rgba(255, 253, 248, 0.95))
    drop-shadow(0 3px 7px rgba(120, 86, 30, 0.42))
    drop-shadow(0 14px 30px rgba(60, 40, 14, 0.3))
    drop-shadow(0 28px 54px rgba(40, 26, 8, 0.18));
}

body.mugen-front-site .mc-hero h1 > span {
  background: inherit;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

body.mugen-front-site .mc-hero h1 strong {
  margin-top: 10px;
  color: var(--mc-front-gold);
  background: none;
  -webkit-text-fill-color: currentColor;
  font-size: 0.24em;
  letter-spacing: 0.52em;
  text-indent: 0.52em;
}

/* Without background-clip the gradient would paint the whole box, so fall back
 * to the flat gold. Forced-colours modes drop the effect entirely. */
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  body.mugen-front-site .mc-hero h1,
  body.mugen-front-site .mc-hero h1 > span {
    background: none;
    color: var(--mc-front-gold);
    -webkit-text-fill-color: currentColor;
  }
}

@media (forced-colors: active) {
  body.mugen-front-site .mc-hero h1,
  body.mugen-front-site .mc-hero h1 > span {
    background: none;
    color: CanvasText;
    -webkit-text-fill-color: currentColor;
    filter: none;
  }
}

body.mugen-front-site .mc-hero__promise {
  max-width: 640px;
  margin-top: 18px;
  color: var(--mc-front-ink);
  font-size: 18px;
  line-height: 1.75;
  letter-spacing: 0.08em;
  text-shadow:
    0 1px 0 rgba(255, 253, 248, 0.98),
    0 4px 12px rgba(22, 53, 68, 0.34);
}

body.mugen-front-site .mc-hero__promise + .mc-hero__subtitle {
  margin-top: 10px;
  color: var(--mc-front-muted);
  font-size: 16px;
  letter-spacing: 0.09em;
  text-shadow:
    0 1px 0 rgba(255, 253, 248, 0.98),
    0 4px 12px rgba(22, 53, 68, 0.34);
}

body.mugen-front-site .mc-hero__lineup {
  width: 100%;
  margin-top: 23px;
  padding-top: 0;
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px 0;
  border-top: 0;
  color: var(--mc-front-ink);
  font-family: "Shippori Concert", "Yu Mincho", serif;
  font-size: 15px;
  line-height: 1.7;
  text-shadow:
    0 1px 0 rgba(255, 253, 248, 0.98),
    0 4px 12px rgba(22, 53, 68, 0.34);
}

body.mugen-front-site .mc-hero__lineup-item {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}

body.mugen-front-site .mc-hero__lineup > .mc-hero__lineup-item + .mc-hero__lineup-item::before {
  content: "／";
  margin: 0 9px;
  color: var(--mc-front-champagne);
  font-family: sans-serif;
}

body.mugen-front-site .mc-hero__lineup-item--director {
  color: var(--mc-front-gold);
  font-size: 0.92em;
}

body.mugen-front-site .mc-hero__meta {
  margin-top: 22px;
  color: var(--mc-front-ink);
  font-size: 16px;
  text-shadow:
    0 1px 0 rgba(255, 253, 248, 0.98),
    0 4px 12px rgba(22, 53, 68, 0.34);
}

body.mugen-front-site .mc-hero__meta .mc-icon {
  color: var(--mc-front-gold);
}

body.mugen-front-site .mc-hero .mc-button {
  min-width: 290px;
  min-height: 62px;
  margin-top: 25px;
  border-color: var(--mc-front-gold);
  background: linear-gradient(110deg, #8b601e, #c6a15b 52%, #8d6424);
  color: #fffdf7;
  font-size: 17px;
  letter-spacing: 0.08em;
  box-shadow: 0 12px 26px rgba(91, 61, 19, 0.24);
}

body.mugen-front-site .mc-hero .mc-button:hover,
body.mugen-front-site .mc-hero .mc-button:focus-visible {
  background: var(--mc-front-ink);
  color: #fff;
}

body.mugen-front-site .mc-hero__scroll {
  color: var(--mc-front-gold);
  font-size: 11px;
}

body.mugen-front-site .mc-lineup {
  background: var(--mc-front-pearl);
  border-top-color: rgba(154, 112, 40, 0.26);
  border-bottom-color: rgba(154, 112, 40, 0.28);
}

body.mugen-front-site .mc-lineup__title {
  font-size: 18px;
}

body.mugen-front-site .mc-lineup__names span {
  color: var(--mc-front-ink);
  font-size: clamp(24px, 2.4vw, 36px);
}

body.mugen-front-site .mc-lineup__note {
  color: var(--mc-front-muted);
  font-size: 14px;
}

body.mugen-front-site .mc-artists {
  background-color: #102d40;
}

body.mugen-front-site .mc-artist-cards .mc-artist-card--photo {
  min-height: 400px;
  padding: 38px 26px;
  grid-template-columns: 54px minmax(205px, 278px) minmax(0, 1fr);
  border: 1px solid rgba(210, 183, 125, 0.3);
  background: linear-gradient(100deg, rgba(3, 17, 28, 0.56), rgba(22, 55, 68, 0.5));
}

body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) {
  grid-template-columns: minmax(0, 1fr) 54px minmax(205px, 278px);
}

body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-list__number {
  grid-column: 2;
  grid-row: 1;
}

body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-card__media {
  grid-column: 3;
  grid-row: 1;
}

body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-card__body {
  grid-column: 1;
  grid-row: 1;
  text-align: right;
}

body.mugen-front-site .mc-artist-card__media {
  border-color: rgba(210, 183, 125, 0.58);
  border-radius: 8px;
  background: var(--mc-front-ivory);
  box-shadow: 0 16px 35px rgba(1, 10, 17, 0.26);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 92%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 92%, transparent 100%);
}

body.mugen-front-site .mc-artist-card__media img {
  object-position: center top;
}

body.mugen-front-site .mc-artist-card--lyn .mc-artist-card__media img {
  object-position: 40% center;
}

body.mugen-front-site .mc-artist-card--kwill .mc-artist-card__media img,
body.mugen-front-site .mc-artist-card--ryu .mc-artist-card__media img {
  object-position: center 15%;
}

body.mugen-front-site .mc-artist-card--punch .mc-artist-card__media img {
  object-position: 58% 20%;
}

body.mugen-front-site .mc-artist-card--hong-isaac .mc-artist-card__media img {
  object-position: center 12%;
}

body.mugen-front-site .mc-artist-card__media img,
body.mugen-front-site .mc-director__media img {
  object-position: var(--mc-image-focal, center top);
}

body.mugen-front-site .mc-artist-card--photo .mc-artist-list__name h3 {
  color: #fffaf0;
  font-size: clamp(42px, 4.8vw, 68px);
}

body.mugen-front-site .mc-artist-card__works {
  color: #d5e0df;
  font-size: 16px;
}

body.mugen-front-site .mc-artist-card__excerpt {
  color: #c5d5d6;
  font-size: 15px;
  line-height: 2.05;
}

body.mugen-front-site .mc-artists__notice {
  color: #d0dedf;
  font-size: 14px;
}

body.mugen-front-site .mc-director--profile {
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 34px;
  padding: 35px 0 0;
}

body.mugen-front-site .mc-director__media {
  width: 180px;
  aspect-ratio: 264 / 448;
  border: 1px solid rgba(154, 112, 40, 0.38);
  border-radius: 8px;
  background: var(--mc-front-ivory);
}

body.mugen-front-site .mc-director__media .mc-profile-picture,
body.mugen-front-site .mc-director__media img {
  aspect-ratio: 264 / 448;
}

body.mugen-front-site .mc-director__media img {
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

body.mugen-front-site .mc-director__role {
  color: var(--mc-front-gold);
  font-size: 14px;
}

body.mugen-front-site .mc-director__body > p:not(.mc-director__role) {
  color: var(--mc-front-muted);
  font-size: 17px;
}

body.mugen-front-site .mc-memory__copy p,
body.mugen-front-site .mc-concept__copy > p,
body.mugen-front-site .mc-section-heading > p:last-child,
body.mugen-front-site .mc-message-letter__copy p,
body.mugen-front-site .mc-access__content address,
body.mugen-front-site .mc-access__content li {
  font-size: 17px;
}

body.mugen-front-site .mc-event-data dd {
  font-size: 18px;
}

body.mugen-front-site .mc-ticket__inner > p {
  font-size: 17px;
}

body.mugen-front-site .mc-footer__disclaimer,
body.mugen-front-site .mc-footer__links,
body.mugen-front-site .mc-footer__bottom {
  font-size: 14px;
}

body.mugen-front-site .mc-footer .mc-wordmark--footer,
body.mugen-front-site .mc-footer .mc-wordmark--footer > span {
  color: #f7f1e7;
}

body.mugen-front-site .mc-footer .mc-wordmark--footer > small {
  color: #d2b77d;
}

/* The wordmark and its visual copy stay plain inline text. Sections that style
 * their descendant spans as flex boxes — `.mc-lineup__names span` is
 * `inline-flex; align-items: center` — would otherwise turn "LY" and the
 * enlarged "n" into flex items and centre them against each other, dropping the
 * n below the baseline of the letters beside it. */
span.mc-name-wordmark,
.mc-name-wordmark > [aria-hidden] {
  display: inline;
}

/* LYn sets its lowercase n at the cap height of the L and the Y, as on the
 * "LOVE FICTION" sleeve. Scaling the type rather than the rendered pixels keeps
 * the letterform intact — the previous transform: scale(1.1, 1.42) stretched it
 * vertically. 1.487 is Shippori Mincho B1's cap height over its n height
 * (yMax 730 / 491, both sitting on the baseline), so no vertical-align nudge is
 * needed, and the lighter weight cancels the stroke thickening that comes with
 * the larger size. The @font-face unicode-range keeps Latin on this face
 * everywhere, so the ratio holds.
 *
 * The selector is specific enough to beat the descendant-span sizing those same
 * sections apply, which would otherwise reset the n to the surrounding size. */
.mc-name-wordmark [aria-hidden] .mc-name-wordmark__n {
  display: inline;
  font-size: 1.487em;
  font-weight: 400;
  line-height: 1;
}

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

/* A wide but short window — a 1280x800 laptop is the common case — has to fit
 * the same four blocks into far less height, so the whole hero steps down a
 * size rather than pushing the ticket button below the fold. */
@media (min-width: 1101px) and (max-height: 900px) {
  /* Drop the 700px floor: on a short window it is the floor, not the content,
   * that pushes the ticket button past the bottom of the screen. */
  body.mugen-front-site .mc-hero {
    min-height: calc(100svh - var(--mc-announce-h) - var(--mc-header-h));
  }

  body.mugen-front-site .mc-hero__presented {
    margin-bottom: 8px;
  }

  body.mugen-front-site .mc-hero__kicker {
    margin-bottom: 10px;
    font-size: clamp(17px, 1.6vw, 22px);
  }

  body.mugen-front-site .mc-hero h1 {
    font-size: clamp(48px, 5.4vw, 92px);
  }

  body.mugen-front-site .mc-hero__promise {
    margin-top: 14px;
  }

  body.mugen-front-site .mc-hero__cast {
    min-height: clamp(340px, 44vh, 460px);
  }

  body.mugen-front-site .mc-hero__footer {
    padding-block: 6px clamp(12px, 1.8vh, 24px);
  }

  body.mugen-front-site .mc-hero__footer .mc-button {
    min-height: 54px;
    margin-top: 14px;
  }
}

@media (max-width: 1100px) {
  /* Below the desktop breakpoint the columns are too narrow to hold a face and
   * a headline at once, so the hero stops overlaying and simply stacks: title,
   * then the cast grid, then the details. Nothing is absolutely positioned any
   * more, which is what stops it from breaking on a phone. */
  body.mugen-front-site .mc-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100svh - var(--mc-announce-h) - var(--mc-header-h));
    padding-block: clamp(24px, 5vw, 44px) clamp(28px, 5vw, 44px);
  }

  body.mugen-front-site .mc-hero__cast {
    min-height: 0;
  }

  body.mugen-front-site .mc-hero__content {
    width: min(720px, calc(100% - 48px));
    margin-inline: auto;
    padding-top: 0;
  }

  body.mugen-front-site .mc-hero__content::before,
  body.mugen-front-site .mc-hero__footer::before {
    display: none;
  }

  body.mugen-front-site .mc-hero__cast {
    position: static;
    width: min(880px, calc(100% - 32px));
    margin: clamp(22px, 4vw, 34px) auto 0;
    gap: 3px;
    border-radius: 20px;
    overflow: hidden;
  }

  body.mugen-front-site .mc-hero__cast-item {
    aspect-ratio: 3 / 4;
  }

  /* The stacked cells are framed on purpose, so the column masking that keeps
   * the desktop row seamless would only wash out their tops. */
  body.mugen-front-site .mc-hero__cast-item img {
    object-position: 50% 50%;
    -webkit-mask-image: none;
    mask-image: none;
  }

  body.mugen-front-site .mc-hero__footer {
    width: min(720px, calc(100% - 40px));
    margin: clamp(20px, 4vw, 30px) auto 0;
    padding-bottom: 0;
  }

  body.mugen-front-site .mc-hero__scroll {
    position: static;
    margin: 16px auto 0;
    display: flex;
    justify-content: center;
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo,
  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) {
    grid-template-columns: 46px minmax(180px, 230px) minmax(0, 1fr);
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-list__number {
    grid-column: 1;
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-card__media {
    grid-column: 2;
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-card__body {
    grid-column: 3;
    text-align: left;
  }
}

@media (max-width: 640px) {
  body.mugen-front-site .mc-site {
    font-size: 16px;
  }

  body.mugen-front-site .mc-announcement a {
    min-height: 34px;
    font-size: 14px;
  }

  body.mugen-front-site .mc-header {
    background: var(--mc-front-pearl);
  }

  body.mugen-front-site .mc-hero__content {
    width: calc(100% - 28px);
    max-height: none;
    padding: 0;
    overflow: visible;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  /* Five cells do not divide into two columns, so the grid is six units wide
   * and every cell spans two: three across the top, and the remaining pair
   * offset by one unit so it sits centred underneath. */
  body.mugen-front-site .mc-hero__cast {
    width: calc(100% - 24px);
    grid-template-columns: repeat(6, 1fr);
    gap: 2px;
    border-radius: 16px;
  }

  body.mugen-front-site .mc-hero__cast-item {
    grid-column: span 2;
  }

  body.mugen-front-site .mc-hero__cast-item:nth-child(4) {
    grid-column: 2 / span 2;
  }

  body.mugen-front-site .mc-hero__cast-item:nth-child(5) {
    grid-column: 4 / span 2;
  }

  body.mugen-front-site .mc-hero__footer {
    width: calc(100% - 28px);
  }

  body.mugen-front-site .mc-hero__presented {
    margin-bottom: 9px;
    font-size: 10px;
  }

  body.mugen-front-site .mc-hero__kicker {
    margin-bottom: 9px;
    font-size: 17px;
    letter-spacing: 0.12em;
  }

  body.mugen-front-site .mc-hero h1 {
    font-size: clamp(48px, 13.6vw, 56px);
    line-height: 0.96;
  }

  body.mugen-front-site .mc-hero h1 span:nth-child(2) {
    margin-top: 6px;
    font-size: 0.72em;
  }

  body.mugen-front-site .mc-hero h1 strong {
    margin-top: 9px;
    font-size: 0.32em;
  }

  body.mugen-front-site .mc-hero__promise {
    margin-top: 17px;
    font-size: 16px;
    line-height: 1.65;
  }

  body.mugen-front-site .mc-hero__promise + .mc-hero__subtitle {
    margin-top: 7px;
    font-size: 14px;
    line-height: 1.6;
  }

  body.mugen-front-site .mc-hero__lineup {
    margin-top: 14px;
    padding-top: 0;
    font-size: 14px;
    line-height: 1.55;
  }

  body.mugen-front-site .mc-hero__lineup > .mc-hero__lineup-item + .mc-hero__lineup-item::before {
    margin-inline: 5px;
  }

  body.mugen-front-site .mc-hero__meta {
    margin-top: 14px;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 5px 15px;
    font-size: 14px;
  }

  body.mugen-front-site .mc-hero .mc-button {
    width: min(100%, 290px);
    min-height: 56px;
    margin-top: 15px;
    font-size: 16px;
  }

  body.mugen-front-site .mc-lineup__inner {
    padding-block: 25px 28px;
  }

  body.mugen-front-site .mc-lineup__title {
    font-size: 16px;
  }

  body.mugen-front-site .mc-lineup__names span {
    font-size: 22px;
  }

  body.mugen-front-site .mc-lineup__note {
    font-size: 13px;
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo,
  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) {
    min-height: 0;
    padding: 30px 0 38px;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 17px 10px;
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo .mc-artist-list__number,
  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-list__number {
    grid-column: 1;
    grid-row: 1 / 3;
    padding-top: 7px;
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo .mc-artist-card__media,
  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-card__media {
    width: min(100%, 280px);
    grid-column: 2;
    grid-row: 1;
  }

  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo .mc-artist-card__body,
  body.mugen-front-site .mc-artist-cards .mc-artist-card--photo:nth-child(even) .mc-artist-card__body {
    grid-column: 2;
    grid-row: 2;
    text-align: left;
  }

  body.mugen-front-site .mc-artist-card--photo .mc-artist-list__name h3 {
    font-size: 38px;
  }

  body.mugen-front-site .mc-artist-card__works {
    font-size: 15px;
  }

  body.mugen-front-site .mc-artist-card__excerpt {
    font-size: 15px;
  }

  body.mugen-front-site .mc-artists__notice {
    font-size: 13px;
  }

  body.mugen-front-site .mc-director--profile {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.mugen-front-site .mc-director__media {
    width: 180px;
  }

  body.mugen-front-site .mc-director__body > p:not(.mc-director__role) {
    font-size: 16px;
  }

  body.mugen-front-site .mc-memory__copy p,
  body.mugen-front-site .mc-concept__copy > p,
  body.mugen-front-site .mc-section-heading > p:last-child,
  body.mugen-front-site .mc-message-letter__copy p,
  body.mugen-front-site .mc-access__content address,
  body.mugen-front-site .mc-access__content li {
    font-size: 16px;
  }
}

@media (max-width: 380px) {
  body.mugen-front-site .mc-hero__content {
    padding-inline: 0;
  }

  body.mugen-front-site .mc-hero h1 {
    font-size: 48px;
  }

  body.mugen-front-site .mc-hero__promise {
    font-size: 15px;
  }

  body.mugen-front-site .mc-hero__subtitle {
    font-size: 13px !important;
  }

  body.mugen-front-site .mc-hero__lineup {
    font-size: 13px;
  }

  body.mugen-front-site .mc-lineup__names span {
    font-size: 20px;
  }
}

@media print {
  .mc-announcement,
  .mc-header,
  .mc-hero__scroll,
  .mc-button,
  .mc-video-dialog {
    display: none !important;
  }

  .mc-site {
    color: #000;
    background: #fff;
  }

  .mc-memory,
  .mc-artists,
  .mc-access,
  .mc-footer {
    color: #000;
    background: #fff;
  }
}
