/* Locale changes presentation only; keyboard bindings and gameplay geometry are preserved. */
html[lang="zh-TW"] .iw-ui *, html[lang="zh-TW"] .pr-touch *, html[lang="zh-TW"] .pr-recovery {
  font-family: 'PingFang TC', 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif;
}
html[lang="ja"] .iw-ui *, html[lang="ja"] .pr-touch *, html[lang="ja"] .pr-recovery {
  font-family: 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', 'Yu Gothic', system-ui, sans-serif;
}
html:not([lang="en"]) .iw-display, html:not([lang="en"]) .iw-logo__word,
html:not([lang="en"]) .iw-head__title .iw-display { letter-spacing: 0; font-weight: 900; }
html:not([lang="en"]) .iw-logo__sub { letter-spacing: .06em; line-height: 1.45; }
html:not([lang="en"]) .iw-btn { letter-spacing: 0; }
html:not([lang="en"]) .pr-hero-card__element { letter-spacing: .025em; }
/* Locale menu uses ordinary 44px buttons in browsers and native WebViews. */
.pr-locale-picker { position: fixed; z-index: 70; right: max(16px,env(safe-area-inset-right)); top: max(16px,env(safe-area-inset-top)); color: #f7f4ea; font: 600 13px/1.4 system-ui,sans-serif; }
.pr-locale-picker[hidden], .pr-locale-picker__menu[hidden] { display: none; }
.pr-locale-picker button { box-sizing: border-box; min-height: 44px; border: 1px solid #f7f4ea55; border-radius: 5px; color: #f7f4ea; background: #17263bf5; font: inherit; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.pr-locale-picker button:focus-visible { outline: 2px solid #65d9e9; outline-offset: 2px; }
.pr-locale-picker__trigger { display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 165px; padding: 8px 30px 8px 12px; }
.pr-locale-picker__trigger::after { content: "⌄"; position: absolute; right: 11px; pointer-events: none; }
.pr-locale-picker__trigger[aria-expanded="true"]::after { content: "⌃"; }
.pr-locale-picker__menu { position: absolute; right: 0; top: calc(100% + 7px); display: grid; gap: 4px; min-width: 100%; padding: 6px; border: 1px solid #f7f4ea55; border-radius: 7px; background: #111e30; box-shadow: 0 8px 28px #07111db3; }
.pr-locale-picker__menu button { position: relative; min-width: 152px; padding: 8px 30px 8px 12px; text-align: left; border-color: transparent; }
.pr-locale-picker__menu button:hover, .pr-locale-picker__menu button:focus-visible { background: #29445d; }
.pr-locale-picker__menu button[aria-checked="true"] { color: #b5f4ff; border-color: #65d9e955; }
.pr-locale-picker__menu button[aria-checked="true"]::after { content: "✓"; position: absolute; right: 10px; }
.pr-logo-icon { object-fit: contain; border-radius: 24%; width: .8em; height: .8em; aspect-ratio: 1; }

/* Main menu keeps the profile at upper right; its popup opens upward. */
.pr-locale-picker[data-screen="main"] { left: 50%; right: auto; top: auto; bottom: max(10px,env(safe-area-inset-bottom)); transform: translateX(-50%); }
.pr-locale-picker[data-screen="main"] .pr-locale-picker__menu { top: auto; bottom: calc(100% + 7px); }
@media (min-height: 481px) {
  .pr-locale-picker[data-screen="title"] { left: 50%; right: auto; top: auto; bottom: max(16px,env(safe-area-inset-bottom)); transform: translateX(-50%); }
  .pr-locale-picker[data-screen="title"] .pr-locale-picker__menu { top: auto; bottom: calc(100% + 7px); }
}
@media (max-height: 480px) {
  .pr-locale-picker { right: max(10px,env(safe-area-inset-right)); top: max(7px,env(safe-area-inset-top)); font-size: 11px; }
  .pr-locale-picker__trigger { min-width: 150px; gap: 5px; padding-left: 9px; }
}
