/* CJK typography overrides; Latin model numbers and key caps retain the original faces. */
:root {
  --f-display: 'Big Shoulders Display', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', sans-serif;
  --f-label: 'Barlow Condensed', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', sans-serif;
  --f-mono: 'IBM Plex Mono', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', monospace;
}
.boot-mark { font-size: clamp(38px, 8vw, 90px); letter-spacing: .12em; line-height: 1.25; }
.boot-sub { line-height: 1.6; letter-spacing: .08em; }
.m-word { font-size: clamp(48px, 9.5vw, 150px) !important; line-height: 1.12 !important; letter-spacing: .12em !important; margin: 16px 0 24px !important; }
.m-premise { line-height: 1.65; letter-spacing: .04em; max-width: 36em; }
.m-eyebrow, .m-legend > div, .m-pick label, .btn, .btn.primary, .seg button, .tab,
.row label, .keys dt, .keys dd, .m-k, .m-stats dt, .m-rating span, .h-k, .h-cue,
.h-wname, .h-relays, .h-plabel, .h-fl, .comms-who, .panel-b h3 { letter-spacing: .08em; }
.m-eyebrow, .m-note, .m-pick-note, .panel-note, .m-line, .m-callout-body p { line-height: 1.75; }
.m-pick-note, .m-note, .panel-note, .m-callout-body p { font-size: 12px; }
.m-callout { width: min(370px, 26vw); }
.m-callout-tab { letter-spacing: .08em; line-height: 1.4; }
.m-callout-body .btn.small { line-height: 1.6; letter-spacing: .05em; }
.m-h { font-size: clamp(32px, 8vw, 52px) !important; line-height: 1.2 !important; letter-spacing: .05em; }
.m-debrief .m-h { font-size: clamp(26px, 6vw, 40px) !important; }
.m-rating b { font-size: 26px; line-height: 1.4; letter-spacing: .04em; }
.m-stats dt, .m-stats dd { line-height: 1.35; }
.keys > div { padding: 6px 0; }
.keys dt, .keys dd { line-height: 1.55; }
.h-obj-t { line-height: 1.4; font-size: 18px; }
.h-msg { line-height: 1.7; letter-spacing: .02em; }
.h-warn { line-height: 1.4; letter-spacing: .12em; max-width: 90vw; white-space: normal; text-align: center; }
.h-wname { line-height: 1.4; }
.h-cue { height: 20px; line-height: 20px; }
.h-plabel { line-height: 1.4; white-space: normal; }
.comms-t { line-height: 1.65; font-size: 17px; }
.comms-who { line-height: 1.4; }
.loc-card b, .loc-card span { line-height: 1.6; letter-spacing: .06em; }
.t-btn { letter-spacing: .04em; }
.m-legend { max-width: 46%; }
.m-legend > div { flex-wrap: wrap; gap: 10px 14px; line-height: 1.4; }
.m-legend .lg-pad, .m-legend .lg-touch { line-height: 1.5; }
@media (max-width: 1099px), (max-height: 599px) {
  .m-callout { width: min(360px, calc(100vw - var(--gl) - var(--gr) - 24px)); }
}
@media (max-width: 760px) {
  .m-word { font-size: clamp(40px, 12vw, 86px) !important; margin: 12px 0 18px !important; }
  .m-premise { font-size: 15px; }
  .m-note { max-width: 37em; }
  .h-obj-t { font-size: 16px; }
  .h-wname { font-size: 10px; }
  .m-eyebrow { gap: 6px 10px; }
}
@media (max-height: 520px) {
  .m-word { font-size: clamp(32px, 12vh, 62px) !important; margin: 6px 0 10px !important; }
  .m-title { padding-top: 34px; padding-bottom: 32px; }
  .m-eyebrow { font-size: 10px; }
  .m-premise { font-size: 14px; line-height: 1.4; }
  .m-note { font-size: 10px; margin-top: 8px !important; }
  .m-pick { gap: 5px 12px; margin-top: 8px; }
  .m-pick-note { font-size: 10px; line-height: 1.4; }
  .m-actions { margin-top: 10px; }
  .m-pick .seg button { min-height: 28px; }
  .btn.primary { min-height: 38px; }
  .btn { min-height: 36px; }
}
