:root {
  --black: #050505;
  --ink: #101010;
  --white: #fff;
  --paper: #f7f7f5;
  --pink: #ff3aa7;
  --pink-deep: #ff007f;
  --blue: #55d8ff;
  --lime: #b9ff35;
  --yellow: #fff200;
  --orange: #ff6b35;
  --line: rgba(255,255,255,.24);
  --max: 1240px;
  --header-h: 104px;
  --lang-h: 44px;
  --ease: cubic-bezier(.2,.78,.2,1);
}

.language-switcher {
  position: fixed; z-index: 160; inset: 0 0 auto 0; height: var(--lang-h);
  display: flex; align-items: center; justify-content: flex-end; gap: 4px;
  padding: 0 34px; color: #111; background: #fff; border-bottom: 1px solid #ddd;
}
.language-switcher button {
  min-width: 62px; height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 0 9px; border: 0; border-bottom: 3px solid transparent; color: #111; background: transparent;
  font-size: 14px; font-weight: 900; cursor: pointer; transition: color .2s, background .2s, border-color .2s;
}
.language-switcher button span { font-size: 20px; line-height: 1; }
.language-switcher button:hover,
.language-switcher button:focus-visible { background: #f1f1f1; outline: none; }
.language-switcher button.is-active { color: var(--pink-deep); border-bottom-color: var(--pink-deep); }
.site-header { top: var(--lang-h); }
.mobile-menu { top: var(--lang-h); }
.hero-content { padding-top: calc(var(--header-h) + var(--lang-h) + 80px); }
.button span[data-i18n],
.text-link span[data-i18n] { font-size: inherit; }
.button:hover span[data-i18n],
.text-link:hover span[data-i18n] { transform: none; }
html:lang(zh) body { font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
html:lang(ko) body { font-family: "Apple SD Gothic Neo", "Noto Sans KR", sans-serif; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: calc(var(--header-h) + var(--lang-h) + 12px); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--black);
  font-family: "Helvetica Neue", "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.8;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 1000;
  padding: 10px 18px; color: #000; background: var(--lime);
  font-weight: 800; transition: top .2s;
}
.skip-link:focus { top: 12px; }

.loader {
  position: fixed; inset: 0; z-index: 999;
  display: grid; place-items: center; background: #000;
  transition: opacity .55s var(--ease), visibility .55s;
}
.loader.is-hidden { opacity: 0; visibility: hidden; }
.loader-mark { display: flex; align-items: center; gap: 9px; height: 74px; }
.loader-mark span {
  display: grid; place-items: center; height: 58px; width: 22px;
  overflow: hidden; color: transparent; font-weight: 900;
  transform: skewY(-10deg); animation: loaderPulse .8s ease-in-out infinite alternate;
}
.loader-mark span:first-child { background: var(--pink); }
.loader-mark span:last-child { width: 56px; background: linear-gradient(var(--blue) 0 42%, transparent 42% 58%, #aaa 58%); animation-delay: .15s; }
@keyframes loaderPulse { from { opacity: .35; transform: scaleY(.65) skewY(-10deg); } to { opacity: 1; transform: scaleY(1) skewY(-10deg); } }

.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: var(--header-h); padding: 0 34px;
  display: grid; grid-template-columns: minmax(180px,1fr) auto auto; align-items: center; gap: 28px;
  color: #fff; background: rgba(5,5,5,.92); border-bottom: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(12px); transition: height .3s var(--ease), background .3s;
}
.site-header.is-scrolled { height: 88px; background: rgba(5,5,5,.97); }
.brand-lockup { display: flex; align-items: flex-end; gap: clamp(8px, 1.2vw, 16px); width: min(510px, 42vw); min-width: 0; }
.brand { display: inline-flex; align-items: center; flex: 0 1 58%; min-width: 0; }
.brand img { display: block; width: 100%; max-height: 81px; object-fit: contain; object-position: left center; }
.brand-show-lounge { display: flex; flex: 0 1 39%; width: 39%; min-width: 0; flex-wrap: wrap; align-items: baseline; column-gap: .22em; color: #fff; font-family: Impact,"Arial Black",sans-serif; font-size: clamp(15px,1.25vw,23px); line-height: .9; letter-spacing: .025em; text-transform: uppercase; }
.brand-show-lounge b { color: var(--pink); }
.brand-show-lounge i { color: #fff; font-style: normal; }
.brand-show-lounge em { width: 100%; color: var(--blue); font-size: .82em; font-style: normal; letter-spacing: .17em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 32px); }
.desktop-nav a { position: relative; font-size: 13px; line-height: 1; letter-spacing: .12em; font-weight: 800; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; bottom: -10px; width: 100%; height: 2px; background: var(--pink); transform: scaleX(0); transform-origin: right; transition: transform .25s var(--ease); }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.header-cta { align-self: stretch; display: flex; flex-direction: column; justify-content: center; min-width: 180px; padding: 0 24px; margin-right: -34px; color: #000; background: var(--pink); line-height: 1.1; transition: background .2s; }
.header-cta:hover { background: var(--lime); }
.header-cta span { font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.header-cta strong { margin-top: 5px; font-size: 16px; letter-spacing: .04em; }
.menu-button { display: none; width: 48px; height: 48px; border: 0; padding: 13px 10px; background: transparent; cursor: pointer; }
.menu-button span { display: block; width: 100%; height: 2px; margin: 6px 0; background: #fff; transition: transform .25s, opacity .2s; }
.menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

.mobile-menu { position: fixed; inset: 0; z-index: 90; padding: calc(var(--header-h) + 44px) 7vw 36px; color: #fff; background: #050505; opacity: 0; visibility: hidden; transform: translateY(-18px); transition: .35s var(--ease); }
.mobile-menu.is-open { opacity: 1; visibility: visible; transform: none; }
.mobile-menu__label { margin-bottom: 22px; color: var(--pink); font-size: 13px; font-weight: 900; letter-spacing: .18em; }
.mobile-menu nav { border-top: 1px solid var(--line); }
.mobile-menu nav a { display: flex; align-items: baseline; gap: 18px; padding: 15px 0; border-bottom: 1px solid var(--line); font-size: clamp(25px, 7vw, 44px); line-height: 1.15; font-weight: 900; }
.mobile-menu nav a span { color: var(--pink); font-size: 12px; letter-spacing: .1em; }
.mobile-call { display: block; margin-top: 24px; padding: 16px 20px; color: #000; background: var(--pink); font-size: 13px; }
.mobile-call strong { font-size: 20px; }

.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: #070707; }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(1.12) contrast(1.06); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.48) 52%, rgba(0,0,0,.17) 100%), linear-gradient(0deg, rgba(0,0,0,.75), transparent 50%); }
.hero-grid { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.11) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.11) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg,#000,transparent 72%); }
.hero-content { position: relative; z-index: 2; width: min(var(--max), calc(100% - 9vw)); margin: 0 auto; padding: calc(var(--header-h) + 80px) 0 120px; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 22px; font-size: 13px; font-weight: 800; letter-spacing: .18em; }
.eyebrow::before { content: ""; width: 48px; height: 4px; background: linear-gradient(90deg,var(--pink),var(--blue)); }
.hero-title { margin: 0; font-size: clamp(58px, 9.8vw, 154px); line-height: .78; letter-spacing: -.072em; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 900; text-transform: uppercase; }
.hero-title span { display: block; }
.hero-title span:first-child { font-size: .58em; letter-spacing: -.035em; }
.hero-title .outline { margin-left: 6.5vw; color: transparent; -webkit-text-stroke: 2px #fff; text-stroke: 2px #fff; }
.hero-copy { margin: 40px 0 0 7vw; color: var(--lime); font-size: clamp(22px, 2.7vw, 42px); line-height: 1.4; font-weight: 800; letter-spacing: .04em; }
.hero-actions { display: flex; gap: 12px; margin: 34px 0 0 7vw; }
.button { min-height: 56px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; border: 2px solid currentColor; font-size: 14px; font-weight: 900; letter-spacing: .04em; transition: .22s var(--ease); }
.button:hover { transform: translateY(-3px); }
.button span { font-size: 20px; line-height: 1; }
.button--pink { color: #000; border-color: var(--pink); background: var(--pink); }
.button--pink:hover { border-color: var(--lime); background: var(--lime); }
.button--ghost { color: #fff; background: rgba(0,0,0,.25); }
.button--ghost:hover { color: #000; background: #fff; }
.button--dark { color: #fff; border-color: #000; background: #000; }
.button--dark:hover { color: #000; background: var(--lime); }
.button--line { color: #000; border-color: #000; background: transparent; }
.button--line:hover { color: #fff; background: #000; }
.hero-side { position: absolute; z-index: 2; right: 24px; top: 50%; display: flex; align-items: center; gap: 10px; writing-mode: vertical-rl; color: rgba(255,255,255,.75); font-size: 11px; font-weight: 800; letter-spacing: .2em; }
.hero-side::before { content: ""; width: 1px; height: 88px; background: rgba(255,255,255,.55); }
.scroll-cue { position: absolute; z-index: 2; right: 6vw; bottom: 48px; display: flex; align-items: center; gap: 16px; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .2em; }
.scroll-cue i { position: relative; width: 54px; height: 54px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; }
.scroll-cue i::before { content: "↓"; position: absolute; inset: 0; display: grid; place-items: center; font-style: normal; font-size: 18px; animation: scrollBounce 1.5s infinite; }
@keyframes scrollBounce { 0%,100% { transform: translateY(-3px); } 50% { transform: translateY(4px); } }

.news-ticker { min-height: 78px; display: grid; grid-template-columns: 168px 1fr; color: #000; background: #fff; }
.news-ticker__label { display: grid; place-items: center; color: #fff; background: var(--pink); font-size: 13px; font-weight: 900; letter-spacing: .16em; }
.news-ticker a { display: grid; grid-template-columns: 130px 1fr auto; align-items: center; gap: 22px; padding: 0 5vw 0 34px; }
.news-ticker time { font-size: 13px; font-weight: 700; }
.news-ticker strong { font-size: 15px; }
.news-ticker__arrow { font-size: 24px; transition: transform .2s; }
.news-ticker a:hover .news-ticker__arrow { transform: translate(4px,-4px); }

.hero-renewal { display: inline-flex; margin: 0 0 18px; padding: 7px 14px; color: #000; background: var(--lime); box-shadow: 5px 5px 0 var(--pink); font-size: 12px; line-height: 1.2; font-weight: 900; letter-spacing: .12em; transform: rotate(-1deg); }

.lounge { padding: 145px 0 130px; color: #fff; background: #0b0612; overflow: hidden; }
.lounge::before { content: ""; position: absolute; inset: 0; opacity: .28; background: radial-gradient(circle at 85% 18%,var(--pink),transparent 28%), radial-gradient(circle at 4% 86%,#4d19bb,transparent 30%); }
.lounge-marquee { position: absolute; left: 0; right: 0; top: 28px; overflow: hidden; color: rgba(255,255,255,.055); white-space: nowrap; font-family: Impact,sans-serif; font-size: clamp(68px,9vw,140px); line-height: 1; }
.lounge-marquee span { display: block; width: max-content; animation: marquee 28s linear infinite; }
.lounge-inner { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(50px,7vw,105px); align-items: center; }
.lounge-visual { position: relative; margin-top: 30px; padding: 10px; border: 2px solid #fff; background: #fff; box-shadow: 18px 18px 0 var(--pink); transform: rotate(-1.3deg); }
.lounge-visual img { width: 100%; min-height: 520px; aspect-ratio: .95; object-fit: cover; object-position: 60% center; filter: saturate(1.12) contrast(1.04); }
.lounge-visual::after { content: ""; position: absolute; inset: 10px; background: linear-gradient(0deg,rgba(0,0,0,.58),transparent 50%); pointer-events: none; }
.lounge-date { position: absolute; z-index: 2; left: -24px; top: 36px; display: flex; align-items: center; gap: 12px; margin: 0; padding: 10px 16px; color: #000; background: var(--lime); border: 2px solid #000; box-shadow: 6px 6px 0 #000; transform: rotate(-3deg); }
.lounge-date b { font-family: Impact,sans-serif; font-size: 40px; line-height: 1; }
.lounge-date span { font-size: 10px; line-height: 1.2; font-weight: 900; letter-spacing: .12em; }
.lounge-visual__caption { position: absolute; z-index: 2; left: 28px; right: 28px; bottom: 24px; margin: 0; color: #fff; font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.lounge-copy { position: relative; z-index: 2; }
.lounge-overline { margin: 0 0 14px; color: var(--lime); font-size: 18px; font-weight: 900; }
.lounge h2 { margin: 0; font-size: clamp(52px,7vw,100px); line-height: .88; letter-spacing: -.055em; }
.lounge h2 em { display: block; margin-top: 20px; color: var(--pink); font-family: "Helvetica Neue","Noto Sans JP",sans-serif; font-size: .55em; line-height: 1.2; font-style: normal; letter-spacing: -.04em; }
.lounge-lead { margin: 38px 0 0; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.8); font-size: 17px; line-height: 2; }
.lounge-experience { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 90px; }
.lounge-card { position: relative; min-height: 330px; padding: 38px 34px; color: #000; background: var(--lime); border: 2px solid #000; box-shadow: 9px 9px 0 #000; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.lounge-card:hover { transform: translateY(-10px); box-shadow: 15px 15px 0 #000; }
.lounge-card--pink { background: var(--pink); }
.lounge-card--vip { background: var(--blue); }
.lounge-card__num { position: absolute; right: 28px; top: 22px; font-family: Impact,sans-serif; font-size: 58px; line-height: 1; opacity: .2; }
.lounge-card__en { margin: 0 0 54px; font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.lounge-card h3 { margin: 0 0 16px; font-size: clamp(23px,2.2vw,31px); line-height: 1.35; }
.lounge-card>p:last-child { margin: 0; font-size: 15px; line-height: 1.85; }
.lounge-actions { display: grid; grid-template-columns: .72fr 1.28fr; align-items: stretch; gap: 34px; margin-top: 64px; padding-top: 34px; border-top: 1px solid rgba(255,255,255,.28); }
.lounge-actions>p { align-self: center; max-width: 720px; margin: 0; color: rgba(255,255,255,.78); font-size: 16px; }
.lounge-vip-banner { position: relative; min-height: 180px; display: flex; flex-direction: column; justify-content: center; padding: 32px 92px 30px 34px; color: #000; background: linear-gradient(115deg,var(--pink) 0 61%,var(--lime) 61% 100%); border: 3px solid #000; box-shadow: 10px 10px 0 #fff; overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.lounge-vip-banner::before { content: "VIP"; position: absolute; right: 52px; top: -34px; color: rgba(0,0,0,.1); font-family: Impact,sans-serif; font-size: 150px; line-height: 1; transform: rotate(-8deg); }
.lounge-vip-banner::after { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(0,0,0,.32); pointer-events: none; }
.lounge-vip-banner:hover { transform: translate(-5px,-5px); box-shadow: 16px 16px 0 #fff; }
.lounge-vip-banner__label { position: relative; z-index: 2; align-self: flex-start; margin-bottom: 9px; padding: 3px 9px; color: #fff; background: #000; font-size: 11px; line-height: 1.4; font-weight: 900; letter-spacing: .14em; }
.lounge-vip-banner strong { position: relative; z-index: 2; font-size: clamp(25px,2.4vw,38px); line-height: 1.15; letter-spacing: -.035em; }
.lounge-vip-banner strong em { color: #fff; font-style: normal; text-shadow: 2px 2px 0 #000; }
.lounge-vip-banner__enter { position: relative; z-index: 2; margin-top: 11px; font-size: 14px; font-weight: 900; }
.lounge-vip-banner i { position: absolute; z-index: 2; right: 27px; bottom: 27px; display: grid; place-items: center; width: 54px; height: 54px; color: #fff; background: #000; border-radius: 50%; font-size: 24px; font-style: normal; transition: transform .3s var(--ease); }
.lounge-vip-banner:hover i { transform: rotate(45deg) scale(1.08); }

.special-event {
  position: relative; padding: 120px 0 110px; color: #160716; overflow: hidden;
  background: radial-gradient(circle at 78% 20%,rgba(85,216,255,.6),transparent 28%), linear-gradient(135deg,#fff 0%,#ffe7f7 45%,#f5d7ff 100%);
}
.special-event::before {
  content: ""; position: absolute; inset: 0; opacity: .17; pointer-events: none;
  background-image: linear-gradient(45deg,#ff3aa7 25%,transparent 25%),linear-gradient(-45deg,#55d8ff 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ff3aa7 75%),linear-gradient(-45deg,transparent 75%,#55d8ff 75%);
  background-size: 34px 34px; background-position: 0 0,0 17px,17px -17px,-17px 0;
  mask-image: linear-gradient(90deg,#000,transparent 34%,transparent 72%,#000);
}
.special-event__marquee { position: absolute; left: 0; right: 0; top: 22px; overflow: hidden; white-space: nowrap; color: rgba(255,0,127,.1); font-family: Impact,sans-serif; font-size: clamp(66px,9vw,138px); line-height: 1; }
.special-event__marquee span { display: block; width: max-content; animation: marquee 22s linear infinite; }
.special-event__inner { display: block; }
.special-event__poster { position: relative; z-index: 2; width: 100%; max-width: 760px; margin: 0 auto 38px; }
.special-event__poster a { display: block; }
.special-event__poster img { display: block; width: 100%; height: auto; }
.special-event__copy { position: relative; z-index: 2; max-width: 1000px; margin: 0 auto; padding-top: 40px; }
.special-event__label { display: inline-flex; margin: 0 0 22px; padding: 5px 13px; color: #fff; background: #000; font-size: 13px; font-weight: 900; letter-spacing: .14em; transform: rotate(-1deg); }
.special-event__date { display: table; margin: 0 0 25px; padding: 7px 16px; color: #000; background: var(--yellow); border: 2px solid #000; box-shadow: 6px 6px 0 var(--pink-deep); font-size: clamp(19px,2vw,28px); line-height: 1.3; font-weight: 900; letter-spacing: .04em; transform: rotate(1deg); }
.special-event h2 { margin: 0; font-size: clamp(35px,4.3vw,66px); line-height: .95; letter-spacing: -.045em; }
.special-event h2 em { display: block; margin-top: 10px; color: var(--pink-deep); font-family: Impact,"Arial Narrow Bold",sans-serif; font-size: 1.14em; font-style: normal; letter-spacing: -.02em; }
.special-event__debut { display: inline-block; margin: 30px 0 22px; padding: 5px 18px; color: #fff; background: var(--pink-deep); box-shadow: 6px 6px 0 #000; font-size: clamp(22px,2.2vw,34px); font-weight: 900; transform: rotate(-1.5deg); }
.special-event__unit { margin: 18px 0 0; font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.special-event h3 { margin: 2px 0 22px; font-family: Impact,"Arial Narrow Bold",sans-serif; font-size: clamp(54px,6.5vw,98px); line-height: .82; letter-spacing: -.04em; text-transform: uppercase; }
.special-event h3 span { display: block; color: transparent; -webkit-text-stroke: 2px #000; text-stroke: 2px #000; }
.special-event__credit { display: inline-flex; margin: 0; padding: 9px 13px; border: 2px solid #000; background: rgba(255,255,255,.72); font-size: 14px; line-height: 1.5; font-weight: 900; }
.special-event__visual { position: relative; z-index: 2; margin: 34px 0 0; padding: 12px; border: 3px solid #000; background: #fff; box-shadow: 18px 18px 0 var(--pink-deep); transform: rotate(1.2deg); }
.special-event__visual::before { content: "DEBUT LIVE"; position: absolute; z-index: 2; left: -22px; top: -22px; padding: 7px 18px; color: #000; background: var(--lime); border: 2px solid #000; font-size: 13px; font-weight: 900; letter-spacing: .12em; transform: rotate(-4deg); }
.special-event__visual img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.special-event__visual figcaption { padding: 10px 5px 0; font-size: 13px; font-weight: 900; text-align: right; }

.section { position: relative; }
.section-inner { position: relative; z-index: 2; width: min(var(--max), calc(100% - 10vw)); margin: 0 auto; }
.section--dark { color: #fff; background: var(--black); }
.section--light { color: #000; background: var(--paper); }
.about { padding: 150px 0 210px; overflow: hidden; }
.section-kicker { display: flex; align-items: center; gap: 15px; margin-bottom: 42px; font-size: 15px; line-height: 1; font-weight: 900; letter-spacing: .2em; }
.section-kicker span { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; }
.section-kicker--dark { color: #000; }
.display-heading { margin: 0; font-size: clamp(50px, 7.4vw, 105px); line-height: .92; letter-spacing: -.055em; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 900; }
.display-heading em { color: var(--lime); font-family: "Helvetica Neue", "Noto Sans JP", sans-serif; font-style: normal; letter-spacing: -.04em; }
.display-heading--dark { color: #000; }
.display-heading--dark em { color: var(--pink-deep); }
.about-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; }
.about-copy { padding: 28px 0 8px; border-top: 1px solid var(--line); }
.about-copy p { margin: 0 0 18px; color: rgba(255,255,255,.78); font-size: clamp(16px, 1.45vw, 19px); line-height: 2; }
.experience-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; margin-top: 94px; }
.experience-card { position: relative; min-height: 360px; padding: 42px; border: 1px solid rgba(255,255,255,.3); border-radius: 50% 50% 45% 55% / 48% 45% 55% 52%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: radial-gradient(circle at 50% 30%, rgba(255,58,167,.22), transparent 58%); transition: .3s var(--ease); }
.experience-card:nth-child(2) { background: radial-gradient(circle at 50% 30%, rgba(185,255,53,.19), transparent 58%); }
.experience-card:nth-child(3) { background: radial-gradient(circle at 50% 30%, rgba(85,216,255,.2), transparent 58%); }
.experience-card:hover { transform: translateY(-10px) rotate(-1deg); border-color: var(--pink); }
.experience-card__num { position: absolute; left: 14%; top: 14%; color: rgba(255,255,255,.55); font-size: 12px; letter-spacing: .18em; }
.experience-icon { display: grid; place-items: center; width: 86px; height: 86px; margin-bottom: 15px; border: 2px solid var(--pink); border-radius: 50%; color: var(--pink); font-size: 13px; font-weight: 900; letter-spacing: .1em; }
.experience-card:nth-child(2) .experience-icon { border-color: var(--lime); color: var(--lime); }
.experience-card:nth-child(3) .experience-icon { border-color: var(--blue); color: var(--blue); }
.experience-card h3 { margin: 0 0 7px; font-size: 25px; }
.experience-card p { max-width: 245px; margin: 0; color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.75; }
.shape { position: absolute; z-index: 1; pointer-events: none; }
.shape--one { width: 90px; height: 90px; right: 5%; top: 10%; background: linear-gradient(135deg,var(--pink),var(--orange)); transform: rotate(12deg); box-shadow: -30px 34px 0 -22px var(--lime); }
.shape--two { width: 120px; height: 120px; left: -38px; top: 54%; border: 25px solid var(--blue); border-radius: 50%; transform: rotate(20deg); opacity: .7; }
.diagonal-edge { position: absolute; z-index: 1; left: -2%; right: -2%; bottom: -55px; height: 120px; background: var(--black); transform: rotate(-3.4deg); transform-origin: center; border-bottom: 16px solid var(--pink); }

.stage-moment { position: relative; height: min(72vw, 820px); min-height: 560px; color: #fff; background: #090909; overflow: hidden; }
.stage-moment > img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.stage-moment__shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.83),rgba(0,0,0,.12) 70%), linear-gradient(0deg,rgba(0,0,0,.65),transparent 55%); }
.stage-moment__eyebrow { position: absolute; left: 6vw; top: 14%; margin: 0; color: var(--lime); font-size: 13px; font-weight: 900; letter-spacing: .22em; }
.stage-moment__title { position: absolute; left: 5.6vw; bottom: 14%; margin: 0; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(62px, 10vw, 150px); line-height: .79; letter-spacing: -.055em; }
.stage-moment__title span { color: transparent; -webkit-text-stroke: 2px #fff; text-stroke: 2px #fff; }
.stage-moment__note { position: absolute; right: 5vw; bottom: 9%; margin: 0; padding: 12px 18px; color: #000; background: var(--lime); font-size: 14px; font-weight: 900; transform: rotate(-2deg); }

.cast { padding: 150px 0 145px; overflow: hidden; }
.marquee { position: absolute; left: 0; right: 0; top: 54px; overflow: hidden; white-space: nowrap; color: rgba(0,0,0,.055); font-family: Impact, sans-serif; font-size: clamp(100px, 15vw, 220px); line-height: 1; letter-spacing: -.02em; }
.marquee div { width: max-content; animation: marquee 24s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }
.section-heading-row { position: relative; display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
.section-lead { max-width: 430px; margin: 0 0 12px; padding-top: 24px; border-top: 2px solid #000; font-weight: 700; line-height: 1.8; }
.cast-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 24px; margin-top: 80px; }
.cast-card { position: relative; grid-column: span 6; min-height: 520px; color: #fff; background: #111; overflow: hidden; isolation: isolate; }
.cast-card:nth-child(even) { transform: translateY(50px); }
.cast-card__image { position: absolute; inset: 0; }
.cast-card__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.92) 0%, rgba(0,0,0,.08) 64%); }
.cast-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease), filter .45s; }
.cast-card:hover .cast-card__image img { transform: scale(1.055); filter: saturate(1.18); }
.cast-card::before { content: ""; position: absolute; z-index: 1; inset: 14px; border: 1px solid rgba(255,255,255,.45); pointer-events: none; }
.cast-card::after { content: ""; position: absolute; z-index: 0; inset: auto -10% -45% -10%; height: 70%; background: var(--card-color); filter: blur(54px); opacity: .42; }
.cast-card--pink { --card-color: var(--pink); }
.cast-card--lime { --card-color: var(--lime); }
.cast-card--blue { --card-color: var(--blue); }
.cast-card--orange { --card-color: var(--orange); }
.cast-card--himeka { --card-color: var(--orange); background: #c3989f; }
.cast-card--himeka .cast-card__image img { object-fit: cover; object-position: 52% 50%; }
.cast-card--himeka::before { inset: 14px; border-color: rgba(255,255,255,.45); box-shadow: none; }
.cast-card--trainee { background: #17131d; }
.cast-card--trainee .cast-card__image img { object-fit: cover; object-position: center top; filter: saturate(.9) contrast(1.04); }
.cast-card--trainee .cast-card__image::after { background: linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.12) 62%); }
.cast-card__meta { position: absolute; z-index: 2; left: 42px; right: 70px; bottom: 34px; }
.cast-card__meta span { color: var(--card-color); font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.cast-card__meta h3 { margin: 2px 0 2px; font-size: clamp(38px, 4vw, 62px); line-height: 1.05; letter-spacing: -.03em; }
.cast-card__meta p { margin: 0; color: rgba(255,255,255,.72); font-size: 14px; }
.cast-card i { position: absolute; z-index: 2; right: 36px; bottom: 36px; display: grid; place-items: center; width: 42px; height: 42px; color: #000; background: var(--card-color); border-radius: 50%; font-style: normal; font-size: 19px; transition: transform .25s; }
.cast-card:hover i { transform: rotate(45deg); }

.lounge-cast-section {
  padding: 150px 0 145px; color: #fff; overflow: hidden;
  background:
    radial-gradient(circle at 12% 20%,rgba(45,220,255,.2),transparent 29%),
    radial-gradient(circle at 88% 82%,rgba(145,74,255,.25),transparent 31%),
    linear-gradient(135deg,#020817 0%,#071b3b 52%,#16062d 100%);
}
.lounge-cast-section::before {
  content: ""; position: absolute; inset: 0; opacity: .13; pointer-events: none;
  background-image: linear-gradient(rgba(117,222,255,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(117,222,255,.32) 1px,transparent 1px);
  background-size: 66px 66px; mask-image: linear-gradient(90deg,#000,transparent 48%,#000);
}
.lounge-cast-section .marquee { color: rgba(105,223,255,.075); }
.lounge-cast-heading,
.lounge-cast-grid { position: relative; z-index: 2; }
.lounge-cast-section .section-lead { color: rgba(255,255,255,.9); border-top-color: rgba(255,255,255,.55); }
.cast-card--lounge { background: #051126; box-shadow: 0 28px 75px rgba(0,0,0,.3); }
.cast-card--lounge-cyan { --card-color: #31e6ff; }
.cast-card--lounge-violet { --card-color: #bd75ff; }
.cast-card--lounge-rose { --card-color: #ff4fa3; }
.lounge-cast-grid .cast-card { grid-column: span 4; }
.cast-card--lounge .cast-card__image img { object-fit: cover; object-position: center top; filter: saturate(.96) contrast(1.06); }
.cast-card--lounge .cast-card__image::after { background: linear-gradient(0deg,rgba(0,4,17,.96) 0%,rgba(0,8,26,.14) 65%); }
.cast-card--lounge::before { border-color: rgba(157,230,255,.52); box-shadow: inset 0 0 32px rgba(49,230,255,.08); }

.price { padding: 140px 0 150px; background: var(--yellow); overflow: hidden; }
.price-pattern { position: absolute; inset: 0; opacity: .13; background: repeating-linear-gradient(135deg,transparent 0 16px,#000 16px 31px,transparent 31px 48px); }
.price-top { display: grid; grid-template-columns: 1.25fr .75fr; gap: 60px; align-items: end; }
.price .display-heading { max-width: 900px; font-size: clamp(52px, 7.5vw, 108px); }
.showtimes { display: grid; gap: 10px; background: transparent; }
.show-period { border: 3px solid #000; background: #fff; }
.show-period > p { margin: 0; padding: 7px 14px; border-bottom: 2px solid #000; font-size: 12px; font-weight: 900; letter-spacing: .05em; }
.show-period > p span { display: inline-block; margin-right: 7px; padding: 1px 8px; color: #fff; background: #000; }
.show-period--new > p { color: #fff; background: var(--pink); }
.showtime-pair { display: grid; grid-template-columns: 1fr 1fr; }
.showtime-pair > div { padding: 14px 18px 17px; }
.showtime-pair > div + div { border-left: 2px solid #000; }
.showtimes small { display: block; font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.showtimes strong { display: inline-block; font-family: Impact, sans-serif; font-size: clamp(34px, 3.4vw, 50px); line-height: 1.15; }
.showtimes em { display: inline-block; margin-left: 4px; font-size: 13px; font-style: normal; font-weight: 900; }
.price-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 18px; margin-top: 70px; }
.price-card { grid-column: span 4; min-height: 350px; display: flex; flex-direction: column; justify-content: space-between; padding: 34px; border: 3px solid #000; background: #fff; box-shadow: 10px 10px 0 #000; }
.price-card--featured { color: #fff; background: var(--pink); transform: translateY(-18px); }
.price-card div > span { font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.price-card h3 { margin: 2px 0 0; font-size: 26px; }
.price-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 24px 0 16px; }
.price-options p { min-width: 0; margin: 0; padding: 14px 12px 12px; border: 2px solid currentColor; }
.price-options p > span { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 800; }
.price-options strong { font-family: Impact, sans-serif; font-size: clamp(32px, 3.3vw, 46px); line-height: .95; letter-spacing: -.02em; }
.price-options small { margin-left: 4px; font-size: 12px; font-weight: 900; }
.price-card > p:last-child { margin: 0; padding-top: 16px; border-top: 1px solid #000; font-size: 14px; }
.schedule-card { grid-column: span 4; min-height: 350px; padding: 34px; border: 3px solid #000; background: var(--blue); box-shadow: 10px 10px 0 #000; }
.schedule-card__label { font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.schedule-card dl { margin: 28px 0 30px; }
.schedule-card dl div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid rgba(0,0,0,.4); }
.schedule-card dt { font-size: 14px; }
.schedule-card dd { margin: 0; font-weight: 900; text-align: right; }
.schedule-card .button { width: 100%; }
.champagne-menu { margin: 64px 10px 0 0; border: 3px solid #000; background: #fff; box-shadow: 10px 10px 0 #000; }
.champagne-menu__heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 28px 34px 24px; color: #fff; background: #050505; }
.champagne-menu__heading > span { color: var(--lime); font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.champagne-menu__heading h3 { margin: 0; font-size: clamp(28px,3.5vw,48px); line-height: 1; }
.champagne-menu__list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; padding: 10px 34px 24px; }
.champagne-menu__item { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 18px; min-width: 0; padding: 17px 0; border-bottom: 1px solid rgba(0,0,0,.24); }
.champagne-menu__item:nth-child(odd) { padding-right: 28px; }
.champagne-menu__item:nth-child(even) { padding-left: 28px; border-left: 1px solid rgba(0,0,0,.24); }
.champagne-menu__item dt { min-width: 0; font-size: 16px; font-weight: 900; line-height: 1.45; overflow-wrap: anywhere; }
.champagne-menu__item dd { margin: 0; font-family: Impact, sans-serif; font-size: 24px; line-height: 1; letter-spacing: .01em; white-space: nowrap; }
.price-note { margin: 28px 0 0; font-size: 13px; font-weight: 700; }

.news { padding: 150px 0; }
.section-heading-row--white .text-link { color: #fff; }
.text-link { display: inline-flex; align-items: center; gap: 28px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid currentColor; font-size: 14px; font-weight: 800; }
.text-link span { font-size: 20px; transition: transform .2s; }
.text-link:hover span { transform: translate(4px,-4px); }
.news-list { margin-top: 75px; border-top: 1px solid var(--line); }
.news-item { display: grid; grid-template-columns: 55px 120px 170px 1fr 40px; align-items: center; gap: 26px; min-height: 118px; border-bottom: 1px solid var(--line); transition: padding .25s, background .25s; }
.news-item:hover { padding: 0 20px; background: rgba(255,255,255,.07); }
.news-item__index { color: var(--pink); font-size: 12px; font-weight: 900; }
.news-item time { color: rgba(255,255,255,.55); font-size: 13px; }
.news-item__category { display: inline-flex; justify-content: center; padding: 5px 10px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; font-size: 12px; text-align: center; }
.news-item h3 { margin: 0; font-size: clamp(16px, 1.6vw, 21px); }
.news-item i { font-style: normal; font-size: 22px; transition: transform .2s; }
.news-item:hover i { transform: translate(4px,-4px); }

.access { min-height: 760px; display: grid; align-items: center; background: var(--pink); overflow: hidden; }
.access::before { content: ""; position: absolute; inset: 0 0 0 43%; opacity: .82; background: linear-gradient(90deg,var(--pink),transparent 38%), url("./assets/venue.webp") center/cover no-repeat; mix-blend-mode: multiply; }
.access-visual { position: absolute; inset: 0 0 0 47%; display: flex; flex-direction: column; justify-content: center; color: rgba(0,0,0,.92); font-family: Impact, sans-serif; font-size: clamp(100px, 13vw, 210px); line-height: .72; letter-spacing: -.04em; transform: rotate(-5deg); }
.access-visual span:last-child { color: transparent; -webkit-text-stroke: 2px #000; text-stroke: 2px #000; margin-left: -10vw; }
.access-inner { padding: 110px 0; }
.access-card { width: min(580px, 52%); padding: 54px; color: #000; background: rgba(255,255,255,.96); border: 3px solid #000; box-shadow: 14px 14px 0 #000; }
.access-card h2 { margin: 0 0 30px; font-size: clamp(38px, 4.4vw, 62px); line-height: 1.2; letter-spacing: -.045em; }
.access-address { padding: 24px 0; border-top: 1px solid #000; border-bottom: 1px solid #000; }
.access-address strong { font-size: clamp(18px, 1.8vw, 23px); line-height: 1.6; }
.access-card > p:not(.access-address) { font-size: 14px; line-height: 1.8; }
.access-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }

.recruit { padding: 150px 0; color: #fff; background: linear-gradient(135deg,#6417e8 0%,#2c096b 45%,#0b0615 100%); overflow: hidden; }
.recruit::before { content: ""; position: absolute; inset: 0; opacity: .22; background-image: linear-gradient(90deg,transparent 49.5%,#fff 50%,transparent 50.5%), linear-gradient(transparent 49.5%,#fff 50%,transparent 50.5%); background-size: 60px 60px; transform: perspective(600px) rotateX(60deg) scale(1.4); transform-origin: center bottom; mask-image: linear-gradient(transparent,#000); }
.recruit-orb { position: absolute; right: -9vw; top: -20%; width: 52vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 32%,#fff 0 4%,#ff7bd1 15%,#ff1d96 38%,#4013a0 62%,transparent 70%); filter: saturate(1.2); opacity: .95; }
.recruit-inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: 9vw; align-items: end; }
.recruit-copy { position: relative; }
.recruit-overline { margin: 0 0 12px; color: var(--lime); font-weight: 900; }
.recruit h2 { margin: 0; font-size: clamp(48px, 7vw, 100px); line-height: .98; letter-spacing: -.055em; }
.recruit h2 em { color: var(--pink); font-style: normal; }
.recruit-copy > p:not(.recruit-overline) { max-width: 650px; margin: 34px 0 0; color: rgba(255,255,255,.8); font-size: 17px; }
.recruit-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.recruit-tags span { padding: 6px 12px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; font-size: 12px; font-weight: 700; }
.recruit-actions { position: relative; display: grid; gap: 12px; }
.recruit-button { min-height: 90px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; color: #000; background: #fff; border: 2px solid #fff; font-size: 18px; font-weight: 900; transition: .22s; }
.recruit-button--line { background: var(--lime); border-color: var(--lime); }
.recruit-button:hover { transform: translateX(8px); background: var(--pink); border-color: var(--pink); }
.recruit-button i { font-style: normal; font-size: 26px; }
.recruit-more { justify-self: start; margin-top: 8px; padding: 5px 0 7px; border-bottom: 1px solid #fff; font-size: 22px; font-weight: 800; }

.site-footer { padding: 90px 5vw 28px; color: #fff; background: #050505; }
.footer-logo { max-width: 630px; margin-bottom: 65px; }
.footer-logo img { width: 100%; }
.footer-main { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding: 40px 0 60px; border-top: 1px solid var(--line); }
.footer-main > div > p:first-child { margin: 0 0 24px; color: var(--pink); font-size: clamp(22px,2.7vw,36px); font-weight: 900; }
.footer-address { color: rgba(255,255,255,.6); font-size: 14px; }
.footer-main nav { display: grid; grid-template-columns: repeat(2,1fr); gap: 0 40px; }
.footer-main nav a { padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 14px; font-weight: 800; }
.footer-main nav a:hover { color: var(--pink); }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 24px; border-top: 1px solid var(--line); color: rgba(255,255,255,.5); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.footer-bottom a { color: #fff; }

.reveal { opacity: 1; transform: none; }
.reveal.is-visible { opacity: 1; transform: none; }

/* Desktop layout: keep the primary message visible and use the available width. */
@media (min-width: 1060px) {
  .hero-content { width: min(1240px, calc(100% - 96px)); }
  .hero-copy { max-width: 980px; }
  .hero-actions .button { min-width: 280px; }
  .section-inner { width: min(1240px, calc(100% - 96px)); }

  /* The first view must remain usable even if reveal animation is delayed. */
  body.is-ready .hero-content .reveal {
    clip-path: none;
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 1050px) {
  :root { --header-h: 92px; }
  .site-header { grid-template-columns: 1fr auto; padding: 0 20px; }
  .desktop-nav, .header-cta { display: none; }
  .menu-button { display: block; }
  .brand-lockup { width: min(620px, calc(100vw - 116px)); }
  .brand-show-lounge { max-height: 50px; font-size: clamp(14px,2.8vw,22px); }
  .hero-content { width: calc(100% - 10vw); padding-bottom: 110px; }
  .hero-title { font-size: clamp(62px, 12vw, 118px); }
  .about-layout { grid-template-columns: 1fr; gap: 50px; }
  .lounge-cast-grid .cast-card { grid-column: span 6; }
  .lounge-inner { grid-template-columns: .9fr 1.1fr; gap: 48px; }
  .lounge-visual img { min-height: 480px; }
  .about-copy { max-width: 700px; }
  .experience-card { min-height: 300px; padding: 34px 26px; }
  .price-top { grid-template-columns: 1fr; }
  .showtimes { max-width: 620px; }
  .price-card { grid-column: span 6; }
  .schedule-card { grid-column: span 12; min-height: auto; }
  .schedule-card dl { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
  .schedule-card dl div { display: block; }
  .schedule-card dd { text-align: left; }
  .schedule-card .button { width: auto; }
  .champagne-menu__list { grid-template-columns: 1fr; }
  .champagne-menu__item:nth-child(odd),
  .champagne-menu__item:nth-child(even) { padding-right: 0; padding-left: 0; border-left: 0; }
  .access-visual { left: 45%; opacity: .72; }
  .access-card { width: min(620px, 62%); }
  .recruit-inner { gap: 5vw; }
}

@media (max-width: 760px) {
  :root { --header-h: 86px; --lang-h: 42px; }
  .language-switcher { justify-content: flex-start; gap: 0; padding: 0 10px; overflow-x: auto; }
  .language-switcher button { min-width: 72px; padding: 0 7px; font-size: 14px; }
  .language-switcher button span { font-size: 19px; }
  body { font-size: 16px; }
  .site-header, .site-header.is-scrolled { height: var(--header-h); }
  .brand-lockup { width: min(620px, calc(100vw - 116px)); gap: 8px; }
  .brand img { max-height: 60px; }
  .brand-show-lounge { max-height: 43px; font-size: clamp(11px,3.3vw,16px); }
  .hero { min-height: 780px; }
  .hero-video { object-position: 62% center; }
  .hero-shade { background: linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.2) 84%), linear-gradient(90deg,rgba(0,0,0,.6),transparent); }
  .hero-grid { background-size: 48px 48px; opacity: .12; }
  .hero-content { width: calc(100% - 40px); padding: calc(130px + var(--lang-h)) 0 150px; }
  .eyebrow { margin-bottom: 18px; font-size: 11px; letter-spacing: .1em; }
  .eyebrow::before { width: 30px; }
  .hero-title { font-size: clamp(56px, 19vw, 82px); line-height: .83; letter-spacing: -.06em; }
  .hero-title .outline { margin: 8px 0 0; -webkit-text-stroke-width: 1.2px; }
  .hero-copy { margin: 28px 0 0; font-size: 22px; }
  .hero-actions { flex-direction: column; align-items: stretch; width: min(360px,100%); margin: 26px 0 0; }
  .button { min-height: 54px; padding: 0 18px; }
  .hero-side { display: none; }
  .scroll-cue { right: 20px; bottom: 28px; }
  .scroll-cue span { display: none; }
  .scroll-cue i { width: 46px; height: 46px; }
  .news-ticker { grid-template-columns: 94px 1fr; min-height: 84px; }
  .news-ticker a { grid-template-columns: 1fr auto; gap: 2px 12px; padding: 10px 18px; }
  .news-ticker time { grid-column: 1; }
  .news-ticker strong { grid-column: 1; font-size: 13px; }
  .news-ticker__arrow { grid-column: 2; grid-row: 1 / 3; }
  .hero-renewal { margin-bottom: 16px; font-size: 10px; }
  .lounge { padding: 98px 0 92px; }
  .lounge-marquee { top: 20px; font-size: 78px; }
  .lounge-inner { grid-template-columns: 1fr; gap: 60px; }
  .lounge-visual { margin: 10px 6px 0 0; padding: 7px; box-shadow: 10px 10px 0 var(--pink); transform: rotate(-.6deg); }
  .lounge-visual img { min-height: 390px; aspect-ratio: 1 / .92; }
  .lounge-visual::after { inset: 7px; }
  .lounge-date { left: -8px; top: 22px; padding: 8px 12px; box-shadow: 4px 4px 0 #000; }
  .lounge-date b { font-size: 34px; }
  .lounge h2 { font-size: clamp(50px,15vw,72px); }
  .lounge h2 em { margin-top: 14px; font-size: .52em; }
  .lounge-lead { margin-top: 28px; padding-top: 22px; font-size: 16px; }
  .lounge-experience { grid-template-columns: 1fr; gap: 14px; margin-top: 55px; }
  .lounge-card { min-height: 270px; padding: 32px 26px; box-shadow: 7px 7px 0 #000; }
  .lounge-card__en { margin-bottom: 40px; }
  .lounge-card h3 { font-size: 25px; }
  .lounge-actions { grid-template-columns: 1fr; gap: 28px; margin-top: 50px; }
  .lounge-vip-banner { min-height: 205px; padding: 31px 76px 29px 24px; box-shadow: 7px 7px 0 #fff; background: linear-gradient(122deg,var(--pink) 0 70%,var(--lime) 70% 100%); }
  .lounge-vip-banner::before { right: 12px; top: -10px; font-size: 110px; }
  .lounge-vip-banner strong { font-size: clamp(25px,7.5vw,34px); }
  .lounge-vip-banner i { right: 19px; bottom: 20px; width: 48px; height: 48px; }
  .special-event { padding: 88px 0 82px; }
  .special-event__marquee { top: 18px; font-size: 72px; }
  .special-event__inner { grid-template-columns: 1fr; gap: 34px; }
  .special-event__copy { padding-top: 25px; }
  .special-event h2 { font-size: clamp(32px,9vw,46px); line-height: 1; }
  .special-event__date { margin-bottom: 23px; padding: 6px 13px; box-shadow: 4px 4px 0 var(--pink-deep); font-size: 20px; }
  .special-event__debut { margin-top: 25px; font-size: 24px; }
  .special-event h3 { font-size: clamp(58px,17vw,80px); }
  .special-event__visual { order: -1; margin: 20px 5px 0 0; padding: 7px; box-shadow: 10px 10px 0 var(--pink-deep); transform: rotate(.6deg); }
  .special-event__visual::before { left: -9px; top: -16px; font-size: 11px; }
  .special-event__visual figcaption { font-size: 12px; text-align: left; }
  .section-inner { width: calc(100% - 40px); }
  .about { padding: 100px 0 160px; }
  .section-kicker { margin-bottom: 28px; font-size: 13px; }
  .section-kicker span { width: 32px; height: 32px; }
  .display-heading { font-size: clamp(46px, 14.4vw, 72px); }
  .about-layout { gap: 35px; }
  .about-copy p { font-size: 16px; line-height: 1.9; }
  .experience-grid { grid-template-columns: 1fr; gap: 18px; margin-top: 60px; }
  .experience-card { min-height: 300px; max-width: 420px; margin: 0 auto; }
  .shape--one { width: 54px; height: 54px; }
  .shape--two { opacity: .3; }
  .diagonal-edge { bottom: -30px; height: 70px; border-bottom-width: 9px; }
  .stage-moment { height: 680px; min-height: 0; }
  .stage-moment > img { object-position: 64% center; }
  .stage-moment__shade { background: linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.05) 72%); }
  .stage-moment__eyebrow { left: 20px; top: 11%; }
  .stage-moment__title { left: 20px; right: 20px; bottom: 16%; font-size: clamp(56px, 18vw, 82px); line-height: .82; }
  .stage-moment__title span { -webkit-text-stroke-width: 1px; }
  .stage-moment__note { left: 20px; right: auto; bottom: 6%; font-size: 12px; }
  .cast,
  .lounge-cast-section { padding: 105px 0 120px; }
  .marquee { top: 38px; font-size: 100px; }
  .section-heading-row { display: block; }
  .section-lead { margin-top: 34px; }
  .cast-grid { display: flex; gap: 16px; margin: 52px -20px 0; padding: 0 20px 30px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .cast-card { flex: 0 0 82vw; min-height: 500px; scroll-snap-align: center; }
  .cast-card:nth-child(even) { transform: none; }
  .cast-card__meta { left: 30px; right: 58px; bottom: 28px; }
  .cast-card__meta h3 { font-size: 44px; }
  .cast-card i { right: 26px; bottom: 28px; }
  .price { padding: 100px 0 110px; }
  .price .display-heading { font-size: clamp(48px, 13vw, 66px); }
  .showtimes { width: 100%; }
  .showtime-pair > div { padding: 13px; }
  .showtimes strong { font-size: 38px; }
  .showtimes em { display: block; margin: -3px 0 0; }
  .price-grid { display: block; margin-top: 48px; }
  .price-card, .schedule-card { min-height: 320px; margin: 0 8px 28px 0; padding: 28px; box-shadow: 8px 8px 0 #000; }
  .price-card--featured { transform: none; }
  .price-options { gap: 8px; }
  .price-options p { padding: 12px 8px 10px; }
  .price-options p > span { font-size: 12px; }
  .price-options strong { font-size: clamp(30px, 9vw, 42px); }
  .schedule-card { min-height: auto; }
  .schedule-card dl { display: block; }
  .schedule-card dl div { display: flex; }
  .schedule-card dd { text-align: right; }
  .schedule-card .button { width: 100%; }
  .champagne-menu { margin: 48px 8px 0 0; box-shadow: 8px 8px 0 #000; }
  .champagne-menu__heading { display: block; padding: 24px 20px 22px; }
  .champagne-menu__heading > span { display: block; margin-bottom: 8px; }
  .champagne-menu__list { grid-template-columns: 1fr; padding: 8px 20px 20px; }
  .champagne-menu__item:nth-child(odd),
  .champagne-menu__item:nth-child(even) { padding: 15px 0; border-left: 0; }
  .champagne-menu__item { gap: 12px; }
  .champagne-menu__item dt { font-size: 15px; }
  .champagne-menu__item dd { font-size: 22px; }
  .news { padding: 105px 0; }
  .section-heading-row--white .text-link { margin-top: 30px; }
  .news-list { margin-top: 50px; }
  .news-item { position: relative; grid-template-columns: 48px 1fr; gap: 4px 12px; min-height: 140px; padding: 22px 46px 22px 0; }
  .news-item:hover { padding: 22px 46px 22px 10px; }
  .news-item__index { grid-row: 1 / 4; }
  .news-item time { grid-column: 2; }
  .news-item__category { grid-column: 2; justify-self: start; margin: 5px 0; }
  .news-item h3 { grid-column: 2; }
  .news-item i { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); }
  .access { min-height: auto; padding: 96px 0; }
  .access::before { inset: 0; opacity: .32; background: linear-gradient(0deg,var(--pink),transparent 70%), url("./assets/venue.webp") center/cover no-repeat; }
  .access-visual { inset: auto -12% 10% 12%; opacity: .18; font-size: 110px; }
  .access-inner { padding: 0; }
  .access-card { width: 100%; padding: 34px 26px; box-shadow: 9px 9px 0 #000; }
  .access-card h2 { font-size: 40px; }
  .access-actions { display: grid; }
  .recruit { padding: 105px 0; }
  .recruit-orb { right: -30vw; top: -5%; width: 100vw; opacity: .5; }
  .recruit-inner { grid-template-columns: 1fr; gap: 50px; }
  .recruit h2 { font-size: clamp(48px, 14vw, 70px); }
  .recruit-copy > p:not(.recruit-overline) { font-size: 16px; }
  .recruit-button { min-height: 76px; font-size: 16px; }
  .site-footer { padding: 70px 20px 24px; }
  .footer-logo { margin-bottom: 44px; }
  .footer-main { grid-template-columns: 1fr; gap: 38px; padding: 34px 0 44px; }
  .footer-bottom { flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .hero-video { display: none; }
  .hero { background: #0b0810 url("https://idol-ikusei-gekijou.com/wp/wp-content/uploads/2025/11/Firefly_a-dynamic-glossy-stage-background-with-intense-spotlights-metallic-reflections-on-th-353985-700x480.png") center/cover no-repeat; }
  .reveal { opacity: 1; transform: none; }
}

/* Motion system — independently built for the IKUSEI experience */
.loader { overflow: hidden; transition: opacity .65s var(--ease), visibility .65s; }
.loader::before,
.loader::after { content: ""; position: absolute; inset: 0; transform: translateX(-105%); }
.loader::before { background: var(--pink); animation: loaderSweep .72s .38s var(--ease) both; }
.loader::after { background: var(--lime); animation: loaderSweep .72s .52s var(--ease) both; }
.loader-stage { position: relative; z-index: 2; display: grid; justify-items: center; gap: 20px; }
.loader-stage p { margin: 0; color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .34em; }
.loader-line { width: 160px; height: 2px; overflow: hidden; background: rgba(255,255,255,.18); }
.loader-line i { display: block; height: 100%; background: linear-gradient(90deg,var(--pink),var(--blue),var(--lime)); transform-origin: left; animation: loaderLine 1.05s var(--ease) both; }
@keyframes loaderSweep { 0% { transform: translateX(-105%); } 48% { transform: translateX(0); } 100% { transform: translateX(105%); } }
@keyframes loaderLine { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.scroll-progress { position: fixed; z-index: 120; left: 0; right: 0; top: 0; height: 3px; pointer-events: none; }
.scroll-progress i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg,var(--pink),var(--blue),var(--lime)); transform: scaleX(0); transform-origin: left; will-change: transform; }
.cursor-orb { position: fixed; z-index: 140; left: 0; top: 0; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; color: #000; background: var(--lime); opacity: 0; pointer-events: none; mix-blend-mode: difference; transition: width .25s var(--ease), height .25s var(--ease), opacity .25s; will-change: transform; }
.cursor-orb span { opacity: 0; font-size: 10px; font-weight: 900; letter-spacing: .08em; transition: opacity .2s; }
.has-pointer .cursor-orb { opacity: 1; }
.cursor-orb.is-active { width: 68px; height: 68px; mix-blend-mode: normal; }
.cursor-orb.is-active span { opacity: 1; }

.mobile-menu { clip-path: inset(0 0 100% 0); opacity: 1; visibility: hidden; transform: none; transition: clip-path .58s var(--ease), visibility .58s; }
.mobile-menu::before { content: "IKUSEI"; position: absolute; right: -4vw; bottom: -4vw; color: rgba(255,255,255,.045); font-family: Impact, sans-serif; font-size: min(28vw,360px); line-height: .8; pointer-events: none; }
.mobile-menu.is-open { clip-path: inset(0); visibility: visible; }
.mobile-menu nav a,
.mobile-call { opacity: 0; transform: translateY(30px); transition: opacity .45s var(--ease), transform .45s var(--ease); }
.mobile-menu.is-open nav a,
.mobile-menu.is-open .mobile-call { opacity: 1; transform: none; }
.mobile-menu nav a:nth-child(1) { transition-delay: .10s; }
.mobile-menu nav a:nth-child(2) { transition-delay: .14s; }
.mobile-menu nav a:nth-child(3) { transition-delay: .18s; }
.mobile-menu nav a:nth-child(4) { transition-delay: .22s; }
.mobile-menu nav a:nth-child(5) { transition-delay: .26s; }
.mobile-menu nav a:nth-child(6) { transition-delay: .30s; }
.mobile-menu .mobile-call { transition-delay: .35s; }

.hero-video { transform: scale(1.08); transition: transform 1.8s var(--ease), filter .45s; }
.is-ready .hero-video { transform: scale(1); }
.hero-grid { animation: gridDrift 16s linear infinite; }
@keyframes gridDrift { to { background-position: 72px 72px; } }
/* Content is visible before scrolling and when scripts or observers are unavailable. */
.reveal { clip-path: none; opacity: 1; transform: none; }
.reveal.is-visible { clip-path: none; opacity: 1; transform: none; animation: revealSettle .55s var(--ease) var(--reveal-delay,0ms) both; }
@keyframes revealSettle {
  from { translate: 0 12px; }
  to { translate: 0 0; }
}

.shape { transform: translate3d(0,var(--parallax-y,0),0) rotate(12deg); will-change: transform; }
.shape--one { animation: shapeDriftA 5.5s ease-in-out infinite alternate; }
.shape--two { transform: translate3d(0,var(--parallax-y,0),0) rotate(20deg); animation: shapeDriftB 7s ease-in-out infinite alternate; }
@keyframes shapeDriftA { to { margin-top: 22px; margin-right: 15px; } }
@keyframes shapeDriftB { to { margin-top: -28px; margin-left: 14px; } }

.experience-grid { position: relative; align-items: center; }
.experience-grid::before { content: "GROW WITH US"; position: absolute; left: 50%; top: 50%; color: rgba(255,255,255,.035); font-family: Impact, sans-serif; font-size: clamp(100px,16vw,250px); white-space: nowrap; transform: translate(-50%,-50%) rotate(-5deg); pointer-events: none; }
.experience-card { min-height: 390px; color: #000; border: 3px solid #000; background: #fff !important; box-shadow: 9px 11px 0 rgba(255,58,167,.9); transform: translateY(var(--parallax-y,0)); will-change: transform; }
.experience-card:nth-child(1) { border-radius: 48% 52% 45% 55% / 56% 42% 58% 44%; }
.experience-card:nth-child(2) { border-radius: 59% 41% 53% 47% / 43% 55% 45% 57%; box-shadow: 9px 11px 0 rgba(185,255,53,.9); }
.experience-card:nth-child(3) { border-radius: 4% 50% 5% 44% / 46% 5% 48% 7%; box-shadow: 9px 11px 0 rgba(85,216,255,.9); }
.experience-card.is-visible { animation: cardFloat 5.8s var(--float-delay,0s) ease-in-out infinite alternate; }
.experience-card:hover { border-color: #000; box-shadow: 14px 17px 0 var(--pink); animation-play-state: paused; }
.experience-card__num { color: rgba(0,0,0,.5); }
.experience-card p { color: rgba(0,0,0,.68); }
@keyframes cardFloat {
  0% { transform: translate3d(0,var(--parallax-y,0),0) rotate(-.6deg); }
  100% { transform: translate3d(0,calc(var(--parallax-y,0px) - 17px),0) rotate(.8deg); }
}

.stage-moment > img { height: calc(100% + 90px); margin-top: -45px; transform: translate3d(0,var(--stage-y,0),0) scale(1.035); will-change: transform; }
.stage-moment__title.is-visible { animation: titleBreath 5s ease-in-out infinite alternate; }
@keyframes titleBreath { to { letter-spacing: -.035em; } }
.cast-card { transition: transform .65s var(--ease); }
.cast-card:nth-child(odd).reveal { transform: translateY(0) rotate(-.4deg); }
.cast-card:nth-child(even).reveal { transform: translateY(50px) rotate(.4deg); }
.cast-card.reveal.is-visible:nth-child(odd) { transform: translateY(0) rotate(-.4deg); }
.cast-card.reveal.is-visible:nth-child(even) { transform: translateY(50px) rotate(.4deg); }
.cast-card:hover { transform: translateY(-8px) rotate(0deg) !important; }

.button span,
.text-link span,
.news-item i,
.cast-card i { transform-origin: center; }
.button:hover span,
.text-link:hover span,
.news-item:hover i { transform: translate(4px,-4px) rotate(45deg); }

@media (max-width: 760px) {
  .loader-stage { transform: scale(.86); }
  .cursor-orb { display: none; }
  .about { background: #fff200; color: #000; }
  .about::before { content: ""; position: absolute; inset: 0; opacity: .1; background: repeating-linear-gradient(135deg,transparent 0 12px,#000 12px 25px,transparent 25px 38px); }
  .about .display-heading em { color: var(--pink-deep); }
  .about-copy { border-color: rgba(0,0,0,.4); }
  .about-copy p { color: rgba(0,0,0,.82); }
  .experience-grid { gap: 30px; }
  .experience-card { min-height: 310px; width: 88%; margin: 0; padding: 36px 30px; }
  .experience-card:nth-child(1) { justify-self: start; }
  .experience-card:nth-child(2) { justify-self: end; }
  .experience-card:nth-child(3) { justify-self: start; margin-left: 3%; }
  .experience-card:hover { transform: none; }
  .cast-card:nth-child(even).reveal,
  .cast-card.reveal.is-visible:nth-child(even),
  .cast-card:nth-child(odd).reveal,
  .cast-card.reveal.is-visible:nth-child(odd) { transform: none; }
  .stage-moment > img { height: calc(100% + 70px); margin-top: -35px; }
}

@media (prefers-reduced-motion: reduce) {
  .loader::before, .loader::after, .loader-line i, .reveal.is-visible, .experience-card.is-visible, .hero-grid, .stage-moment__title.is-visible { animation: none !important; }
  .reveal, .reveal.is-visible { clip-path: none; opacity: 1; transform: none; }
  .experience-card, .shape, .stage-moment > img { transform: none !important; }
  .stage-moment > img { height: 100%; margin-top: 0; }
  .cursor-orb, .scroll-progress { display: none; }
}

/* Keep the language rail above the fixed navigation at every breakpoint. */
.site-header { top: var(--lang-h); }
.mobile-menu { top: var(--lang-h); }
.hero-content { padding-top: calc(var(--header-h) + var(--lang-h) + 80px); }
@media (max-width: 760px) {
  .hero-content { padding-top: calc(130px + var(--lang-h)); }
}

/* Polished desktop layout: centered, orderly and readable on notebook/PC screens. */
@media (min-width: 1200px) {
  :root { --max: 1180px; }

  .language-switcher {
    padding-right: max(32px, calc((100vw - 1180px) / 2));
  }

  .site-header,
  .site-header.is-scrolled {
    height: 96px;
    grid-template-columns: minmax(330px, 390px) minmax(0, 1fr) 176px;
    gap: 22px;
    padding-right: max(32px, calc((100vw - 1320px) / 2));
    padding-left: max(32px, calc((100vw - 1320px) / 2));
  }

  .brand-lockup {
    width: 100%;
    max-width: 390px;
    gap: 12px;
    align-items: center;
  }
  .brand { flex-basis: 58%; }
  .brand img { max-height: 68px; }
  .brand-show-lounge {
    flex-basis: 38%;
    width: 38%;
    font-size: clamp(15px, 1.18vw, 19px);
  }

  .desktop-nav {
    justify-content: center;
    gap: clamp(14px, 1.35vw, 22px);
    min-width: 0;
  }
  .desktop-nav a {
    font-size: 12px;
    letter-spacing: .09em;
    white-space: nowrap;
  }
  .header-cta {
    width: 176px;
    min-width: 176px;
    margin-right: 0;
    padding: 0 20px;
  }

  .hero-content,
  .section-inner {
    width: min(1180px, calc(100% - 96px));
  }
  .hero-content { padding-bottom: 92px; }
  .hero-title { font-size: clamp(72px, 8.4vw, 126px); }
  .hero-title .outline { margin-left: 54px; }
  .hero-copy {
    max-width: 900px;
    margin-left: 64px;
    font-size: clamp(24px, 2.25vw, 34px);
  }
  .hero-actions { margin-left: 64px; }

  .lounge-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 72px;
  }
  .lounge-visual img { min-height: 0; aspect-ratio: 1 / 1; }
  .lounge-experience { gap: 22px; }
  .lounge-card { min-height: 340px; padding: 38px 30px; }
  .lounge-actions { grid-template-columns: .8fr 1.2fr; gap: 48px; }

  .about-layout { gap: 72px; }
  .experience-grid { gap: 26px; }
  .experience-card {
    min-height: 370px;
    animation: none !important;
  }

  .section-heading-row { gap: 72px; }
  .section-lead { max-width: 480px; }

  .cast-grid { gap: 26px; }
  .cast-grid .cast-card {
    grid-column: span 4;
    min-height: 500px;
  }
  .cast-card:nth-child(odd).reveal,
  .cast-card:nth-child(even).reveal,
  .cast-card.reveal.is-visible:nth-child(odd),
  .cast-card.reveal.is-visible:nth-child(even) {
    transform: none;
  }
  .cast-card__meta { left: 32px; right: 62px; bottom: 30px; }
  .cast-card__meta h3 { font-size: clamp(34px, 3vw, 48px); }

  .price-top { grid-template-columns: minmax(0, 1.2fr) minmax(380px, .8fr); gap: 72px; }
  .price-grid { gap: 24px; }
  .price-card,
  .schedule-card { min-height: 370px; }

  .news-item { grid-template-columns: 55px 112px 150px minmax(0, 1fr) 40px; }
  .recruit-inner { gap: 88px; }
}

/* At smaller PC widths, keep the full content but use the uncluttered menu header. */
@media (min-width: 1060px) and (max-width: 1199px) {
  .site-header,
  .site-header.is-scrolled {
    height: 92px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0 28px;
  }
  .desktop-nav,
  .header-cta { display: none; }
  .menu-button { display: block; }
  .brand-lockup { width: min(540px, calc(100vw - 130px)); }
  .brand img { max-height: 68px; }
}
