.language-menu { position: relative; }
.language-menu > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center;
  gap: 7px; font-size: 10px; min-height: 44px; white-space: nowrap;
}
.language-menu > summary::-webkit-details-marker { display: none; }
.language-menu > summary svg { width: 17px; height: 17px; fill: none; stroke: var(--gold); stroke-width: 1.2; }
.language-menu > summary i { width: 5px; height: 5px; border-right: 1px solid; border-bottom: 1px solid; transform: rotate(45deg); margin: -3px 2px 0; }
.language-menu[open] > summary i { transform: rotate(225deg); margin-top: 3px; }
.site-header .language-options {
  position: absolute; z-index: 50; top: 50px; right: 0; left: auto;
  width: 250px; max-height: min(70svh, 520px); overflow-y: auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 3px;
  padding: 12px; margin: 0; background: #101426fa;
  border: 1px solid #d0b08750; border-radius: 8px;
  box-shadow: 0 15px 60px #0008; backdrop-filter: blur(15px);
}
.language-menu:not([open]) .language-options { display: none; }
.site-header .language-options a {
  font: 12px/1.5 var(--sans); color: #e0d8e6; padding: 11px 9px;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  border-radius: 3px; min-width: 0;
}
.site-header .language-options a:after { display: none; }
.site-header .language-options a:hover { background: #edd5a410; color: var(--gold); }
.site-header .language-options a[aria-current] { background: #edd5a416; color: var(--gold); }
.site-header .language-options a[lang=ko],.site-header .language-options a[lang=ja],.site-header .language-options a[lang=zh-CN] { font-family: system-ui, sans-serif; }
html:lang(de) .hero h2,html:lang(nl) .hero h2,html:lang(pl) .hero h2 { font-size: clamp(40px,3.7vw,54px); }
/* CJK font subsets are self-hosted and contain the exact published characters. */
@font-face { font-family: ChainJP; src: url('fonts/noto-ja.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: ChainKR; src: url('fonts/noto-ko.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: ChainSC; src: url('fonts/noto-zh-CN.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
html:lang(ja) { --sans: Manrope,ChainJP,'Yu Gothic',sans-serif; --serif: ChainJP,'Yu Mincho',serif; }
html:lang(ko) { --sans: Manrope,ChainKR,'Malgun Gothic',sans-serif; --serif: ChainKR,serif; }
html:lang(zh-CN) { --sans: Manrope,ChainSC,'Microsoft YaHei',sans-serif; --serif: ChainSC,serif; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) h2 { font-size: clamp(32px,3.3vw,48px); line-height: 1.6; letter-spacing: -.035em; font-weight: 500; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) h2 em { font-style: normal; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .hero h2 { font-size: clamp(34px,3.25vw,48px); line-height: 1.5; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .eyebrow { letter-spacing: .13em; line-height: 1.9; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .hero-message { max-width: 580px; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .section-copy { line-height: 2; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .world-tabs button>span:nth-child(2),:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .world-caption h3 { font-family: Cormorant,Georgia,serif; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .legal-heading h1 { font-size: clamp(36px,4.5vw,61px); line-height: 1.6; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .legal-copy h2 { font-size: 25px; line-height: 1.6; }
:is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .contact-dialog h2 { font-size: 34px; }
html:lang(ko) p,html:lang(ko) h2 { word-break: keep-all; overflow-wrap: anywhere; }
.hero-actions { flex-wrap: wrap; }
.footer-top p { flex-shrink: 0; }
@media(max-width:900px) {
  html:lang(de) .hero h2,html:lang(nl) .hero h2,html:lang(pl) .hero h2 { font-size: clamp(33px,8vw,46px); }
  :is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .hero h2 { font-size: clamp(28px,7vw,39px); }
  :is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) .hero .game-logo { width: 225px; }
  .hero-actions { gap: 10px 18px; }
}
@media(max-width:480px) {
  .header-actions { gap: 7px; }
  .language-menu > summary { gap: 5px; }
  .language-menu > summary svg { width: 15px; }
  .site-header .language-options { right: -40px; width: 245px; }
  .hero .cinematic-button { font-size: 9px; }
  .hero-actions .button { padding-inline: 14px; }
  .hero h2 { overflow-wrap: normal; }
  html:lang(nl) .hero h2,html:lang(pl) .hero h2 { font-size: clamp(31px,8vw,38px); }
  :is(html:lang(ja),html:lang(ko),html:lang(zh-CN)) h2 { font-size: 30px; }
  .contact-actions { flex-wrap: wrap; gap: 8px 18px; }
}
