@font-face{font-family:"Guanhua Zimu";src:url("assets/fonts/GuanhuaZimu-Regular.ttf?v=sc2h-08ed953f0e79") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Charis IPA";src:url("assets/fonts/Charis-Regular.woff2?v=sc2h-08ed953f0e79") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"canIPA Mandarin Subset";src:url("assets/fonts/canIPA-Mandarin-Subset.ttf?v=sc2h-08ed953f0e79") format("truetype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Mandarin Chapter 9 Bold Italic Subset";src:url("assets/fonts/canIPA-Mandarin-Chapter9-BoldItalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Mandarin 2024 Acina Bold Italic Subset";src:url("assets/fonts/canIPA-Mandarin-2024-Acina-BoldItalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Mandarin 2024 Alibi Bold Italic Subset";src:url("assets/fonts/canIPA-Mandarin-2024-Alibi-BoldItalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AbileBold";src:url("assets/fonts/canIPA-Ordinary-Core-B-002-abilebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AbileBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Core-B-003-abilebolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaAcina";src:url("assets/fonts/canIPA-Ordinary-Core-B-004-acinaacina-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaBold";src:url("assets/fonts/canIPA-Ordinary-Core-B-006-acinabold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Core-B-007-acinabolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaItalic";src:url("assets/fonts/canIPA-Ordinary-Core-B-008-acinaitalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AgensBold";src:url("assets/fonts/canIPA-Ordinary-Core-B-011-agensbold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AbileBold";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-002-abilebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AbileBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-003-abilebolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaAcina";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-004-acinaacina-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaBold";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-006-acinabold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AgensBold";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-011-agensbold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AgensBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-012-agensbolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AiutoBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-014-aiutobolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AiutoItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-015-aiutoitalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AlibiBold";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-016-alibibold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AngloItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-020-angloitalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion ApizzApizz";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-021-apizzapizz-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AtedBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-025-atedbolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AxyzBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-027-axyzbolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AxyzItalic";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-028-axyzitalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion GiobarbyBold";src:url("assets/fonts/canIPA-Ordinary-Mediatic-C-029-giobarbybold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AbileBold";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-002-abilebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaAcina";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-004-acinaacina-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaAddeBold";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-005-acinaaddebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AcinaBold";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-006-acinabold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AddeBold";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-009-addebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AiutoBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-014-aiutobolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AngloBold";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-018-anglobold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AngloBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-019-anglobolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AngloItalic";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-020-angloitalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion AsupplAsuppl";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-023-asupplasuppl-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion GiobarbyBold";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-029-giobarbybold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Expansion GiobarbyBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Taiwan-D-030-giobarbybolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AbileBold";src:url("assets/fonts/canIPA-Ordinary-Regional-E-002-abilebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AcinaAcina";src:url("assets/fonts/canIPA-Ordinary-Regional-E-004-acinaacina-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AcinaAddeBold";src:url("assets/fonts/canIPA-Ordinary-Regional-E-005-acinaaddebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AcinaBold";src:url("assets/fonts/canIPA-Ordinary-Regional-E-006-acinabold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AcinaBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Regional-E-007-acinabolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AgensBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Regional-E-012-agensbolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AiutoBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Regional-E-014-aiutobolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AngloAnglo";src:url("assets/fonts/canIPA-Ordinary-Regional-E-017-angloanglo-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E AngloItalic";src:url("assets/fonts/canIPA-Ordinary-Regional-E-020-angloitalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Regional E ApizzApizz";src:url("assets/fonts/canIPA-Ordinary-Regional-E-021-apizzapizz-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AbileAbile";src:url("assets/fonts/canIPA-Ordinary-Final-F-001-abileabile-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AbileBold";src:url("assets/fonts/canIPA-Ordinary-Final-F-002-abilebold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AbileBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Final-F-003-abilebolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AcinaBold";src:url("assets/fonts/canIPA-Ordinary-Final-F-006-acinabold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AcinaBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Final-F-007-acinabolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AiutoBold";src:url("assets/fonts/canIPA-Ordinary-Final-F-013-aiutobold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AiutoBoldItalic";src:url("assets/fonts/canIPA-Ordinary-Final-F-014-aiutobolditalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AngloAnglo";src:url("assets/fonts/canIPA-Ordinary-Final-F-017-angloanglo-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AngloItalic";src:url("assets/fonts/canIPA-Ordinary-Final-F-020-angloitalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AromenBold";src:url("assets/fonts/canIPA-Ordinary-Final-F-022-aromenbold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Ordinary Final F AsupplBold";src:url("assets/fonts/canIPA-Ordinary-Final-F-024-asupplbold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Neutral Taxotone Bold Italic Subset";src:url("assets/fonts/canIPA-Neutral-Taxotone-BoldItalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Neutral Slow Tune Bold Subset";src:url("assets/fonts/canIPA-Neutral-Slow-Tune-Bold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Neutral Context Bold Subset";src:url("assets/fonts/canIPA-Neutral-Context-Bold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Neutral Context Bold Italic Subset";src:url("assets/fonts/canIPA-Neutral-Context-BoldItalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Neutral Consonant Bold Subset";src:url("assets/fonts/canIPA-Neutral-Consonant-Bold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Simplified Bold Subset";src:url("assets/fonts/canIPA-Erhua-Simplified-Bold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Nasal Subset";src:url("assets/fonts/canIPA-Erhua-Nasal-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Chapter 7 Bold Subset";src:url("assets/fonts/canIPA-Erhua-Chapter7-Bold-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Chapter 7 Bold Italic Subset";src:url("assets/fonts/canIPA-Erhua-Chapter7-BoldItalic-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Emphatic E14 Subset";src:url("assets/fonts/canIPA-Erhua-Emphatic-E14-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Emphatic E15 Subset";src:url("assets/fonts/canIPA-Erhua-Emphatic-E15-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Emphatic E16 Subset";src:url("assets/fonts/canIPA-Erhua-Emphatic-E16-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M9 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M9-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M10 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M10-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M15 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M15-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M24 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M24-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M25 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M25-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M33 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M33-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M37 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M37-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"canIPA Erhua Mediatic M38 Subset";src:url("assets/fonts/canIPA-Erhua-Mediatic-M38-Subset.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Zhouhei Musa Fangzi";src:url("assets/fonts/ZhouheiMusaFangzi-Bold.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Kunming Musa Fangzi";src:url("assets/fonts/KunmingMusaFangzi-Bold.otf?v=sc2h-08ed953f0e79") format("opentype");font-style:normal;font-weight:700;font-display:swap}
:root{
  font-family:system-ui,-apple-system,"Segoe UI","Noto Sans TC","PingFang TC",sans-serif;
  color:#17202a;
  background:#f5f2eb;
  font-synthesis:none;
  --ink:#17202a;
  --muted:#625c54;
  --accent:#8b3a2b;
  --line:#b8c1c9;
  --paper:#fff;
  --axis:#244a68;
  --axis-alt:#315f7d;
  --attested:#fffdf7;
  --special:#ffd166;
  --erhua:#8fd3ad;
  --nonexistent:#b9dcef;
  --cell-width:1.65rem;
  --group-height:1.7rem;
  --initial-group-width:3rem;
  --initial-width:4rem;
}

.supplementalMaterials {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.55rem;
  background: var(--paper);
}

.supplementalMaterials h2 { margin: 0 0 0.7rem; }
.supplementalLinks { display: grid; width: fit-content; max-width: 100%; grid-auto-flow: column; grid-template-rows: repeat(6, minmax(0, auto)); grid-template-columns: repeat(2, minmax(13rem, max-content)); gap: 0.55rem clamp(1.5rem, 4vw, 3.5rem); margin: 0; padding-left: 1.8rem; }
.supplementalLinks li { min-width: 0; }
.supplementalLinks a { color: var(--accent); text-decoration-thickness: 0.08em; text-underline-offset: 0.15em; }
.supplementalLinks small { display: block; color: var(--muted); font-size: 0.75rem; }
.audioCredit{margin:.65rem .2rem 0;color:var(--muted);font-size:.7rem;line-height:1.45}
.audioCredit a{color:var(--accent);text-underline-offset:.12em}

*{box-sizing:border-box}

html,body{margin:0;min-height:100%}

body{
  min-height:100vh;
  overflow-x:hidden;
  background:radial-gradient(circle at 15% 3%,#fff 0,transparent 35rem),#f5f2eb;
}

button,input{font:inherit}

.chartShell{
  width:calc(100% - 16px);
  max-width:none;
  margin:0 auto;
  padding:14px 0 26px;
}

.compactTop{display:block}
.pageHeader{max-width:760px;position:relative;padding:22px 4px 0}

.homeLink{
  position:absolute;
  top:0;
  left:0;
  color:var(--accent);
  font-size:.88rem;
  font-weight:800;
  text-decoration:none;
}

.homeLink:hover{text-decoration:underline}

.homeLink:focus-visible,.chartViewport:focus-visible,input:focus-visible+span{
  outline:3px solid rgba(139,58,43,.3);
  outline-offset:3px;
}

h1{
  margin:0;
  font-size:clamp(2.1rem,4vw,3.1rem);
  line-height:1;
  letter-spacing:-.045em;
}

.controls{
  margin:12px 4px 6px;
  display:block;
}

.segmentedControl{margin:0;padding:0;border:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}

.segmentedControl legend{
  grid-column:1/-1;
  width:100%;
  margin-bottom:2px;
  color:var(--muted);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.segmentedControl input{position:absolute;opacity:0;pointer-events:none}

.segmentedControl span{
  display:flex;
  min-height:2.35rem;
  align-items:center;
  justify-content:center;
  padding:6px 5px;
  border:1px solid var(--line);
  border-radius:8px;
  background:rgba(255,255,255,.72);
  color:#49443e;
  font-size:.7rem;
  font-weight:720;
  line-height:1.08;
  text-align:center;
  cursor:pointer;
}

.segmentedControl input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.segmentedControl input:disabled+span{border-color:#c8c8c4;background:#e5e4df;color:#8a8983;cursor:not-allowed;opacity:.62}
.segmentedControl input:checked:disabled+span{border-color:#c8c8c4;background:#e5e4df;color:#8a8983;box-shadow:none}

.toggleControl{display:flex;align-items:center;gap:9px;padding-bottom:9px;color:#49443e;font-size:.84rem;font-weight:700;cursor:pointer}
.toggleControl input{width:1rem;height:1rem;accent-color:var(--accent)}
.toggleControl.isDisabled{color:#77716a;cursor:not-allowed}
.toggleControl input:disabled{cursor:not-allowed}
.lowerCheckboxArea{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 18px}
.compactToggle{padding:3px 0 0;font-size:.78rem}

.selectorLayout{display:flex;width:100%;max-width:none;flex-wrap:wrap;align-items:flex-start;justify-content:flex-start;gap:10px}
.selectorBox{min-width:0;margin:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.52)}
.selectorLayout>.selectorBox{flex:0 0 clamp(15rem,24vw,20rem)}
.selectorLayout>.viewOptionsBox{flex:0 0 11.75rem}
.systemPicker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-width:none}
.pickerChoices{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.pickerChoices[hidden]{display:none}
.systemPicker legend,.selectorBox legend{padding:0 4px;color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.systemPicker legend small{font-size:.66rem;font-weight:650;letter-spacing:0;text-transform:none}
.systemPicker input{position:absolute;opacity:0;pointer-events:none}
.systemPicker>label:not(.toggleControl),.pickerChoices>label{display:block;min-width:0}
.systemPicker>label:not(.toggleControl)>span,.pickerChoices>label>span{display:flex;min-height:2.4rem;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:5px 6px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.72);color:#49443e;font-size:.7rem;font-weight:720;line-height:1.12;text-align:center;cursor:pointer;white-space:nowrap}
.systemLabelLine{display:block;white-space:nowrap}
.systemPicker>label:not(.toggleControl)>input:checked+span,.pickerChoices>label>input:checked+span{background:var(--axis);border-color:var(--axis);color:#fff}
.systemPicker>label:not(.toggleControl)>input:checked+span[data-order]::before,.pickerChoices>label>input:checked+span[data-order]::before{content:attr(data-order) ". ";color:#b9dcef}
.systemPicker>label:not(.toggleControl)>input:disabled+span,.pickerChoices>label>input:disabled+span{cursor:not-allowed;opacity:.5}
.systemPicker>label:not(.toggleControl)>input:checked:disabled+span,.pickerChoices>label>input:checked:disabled+span{border-color:var(--line);background:#e5e4df;color:#8a8983;opacity:.62}
.clickableToggle{grid-column:1/-1;padding:5px 0 0}
.matchToggle{grid-column:1/-1;padding:5px 0 0;white-space:normal}
.matchControls{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:8px}
.referencePickerToggle{display:inline-flex;width:1.75rem;height:1.75rem;flex:0 0 auto;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--accent);font-size:.9rem;line-height:1;cursor:pointer}
.referencePickerToggle[aria-expanded="false"] span{transform:rotate(-90deg)}
.referencePickerToggle:focus-visible{outline:3px solid rgba(139,58,43,.3);outline-offset:2px}
.systemPicker .matchToggle input{position:static;width:1rem;height:1rem;opacity:1;pointer-events:auto;accent-color:var(--accent)}
.systemPicker .clickableToggle input{position:static;width:1rem;height:1rem;opacity:1;pointer-events:auto;accent-color:var(--accent)}
.systemPicker .matchToggle input:focus-visible{outline:3px solid rgba(139,58,43,.3);outline-offset:2px}
.specialViewsBox{min-height:4.4rem}
.futureViewGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:2rem;gap:5px}
.futureViewGrid input{position:absolute;opacity:0;pointer-events:none}
.futureViewGrid label{display:block;min-width:0}
.futureViewGrid span{display:flex;min-height:2.4rem;height:100%;align-items:center;justify-content:center;padding:5px 6px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.72);color:#49443e;font-size:.7rem;font-weight:720;line-height:1.12;text-align:center;cursor:pointer}
.futureViewGrid input:checked+span{background:#734b70;border-color:#734b70;color:#fff}
.futureViewGrid input:disabled+span{border-color:#c8c8c4;background:#e5e4df;color:#8a8983;cursor:not-allowed;opacity:.62}
.futureViewGrid input:checked:disabled+span{border-color:#c8c8c4;background:#e5e4df;color:#8a8983}
.specialViewsBox.isDisabled{border-color:#c8c8c4;background:rgba(226,225,220,.62)}
.specialViewsBox.isDisabled legend{color:#8a8983}
.settingsStack{display:grid;grid-template-columns:1fr;gap:10px}
.languageControl{grid-template-columns:repeat(2,minmax(0,1fr))}
.erhuaDisplayControls{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:8px;padding:7px 8px;border:1px solid rgba(115,75,112,.32);border-radius:7px;background:rgba(255,255,255,.6);font-size:.72rem}
.erhuaDisplayControls[hidden]{display:none}
.erhuaDisplayControls strong{color:#5d455b;font-size:.7rem}
.erhuaDisplayControls label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.erhuaDisplayControls input{position:static;width:.95rem;height:.95rem;opacity:1;pointer-events:auto;accent-color:#734b70}
.wordModeControls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 0;padding:7px 8px;border:1px solid rgba(115,75,112,.32);border-radius:7px;background:rgba(255,255,255,.6)}
.wordModeControls[hidden]{display:none}
.wordModeControls legend{width:auto;margin:0 4px 0 0;padding:0;color:#5d455b;font-size:.7rem;letter-spacing:0;text-transform:none}
.wordModeControls label{display:inline-flex;align-items:center;gap:4px;color:#49443e;font-size:.72rem;font-weight:720;cursor:pointer}
.wordModeControls input{position:static;width:.95rem;height:.95rem;opacity:1;pointer-events:auto;accent-color:#734b70}
.specialOptionPanel{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:8px;padding:7px 8px;border:1px solid rgba(115,75,112,.32);border-radius:7px;background:rgba(255,255,255,.6);font-size:.72rem}
.pinyinToneControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px}
.pinyinToneControls strong{grid-column:1/-1}
.specialOptionPanel[hidden],.allCharacterControls[hidden]{display:none}
.specialOptionPanel strong{color:#5d455b;font-size:.7rem}
.specialOptionPanel label,.characterOptionGroup label{display:inline-flex;align-items:center;gap:4px;color:#49443e;font-size:.72rem;font-weight:720;cursor:pointer}
.specialOptionPanel input,.characterOptionGroup input{position:static;width:.95rem;height:.95rem;opacity:1;pointer-events:auto;accent-color:#734b70}
.syllableSearch{display:grid;grid-template-columns:max-content minmax(7rem,10rem);align-items:center;gap:5px 8px;margin-top:8px;padding:7px 8px;border:1px solid rgba(115,75,112,.32);border-radius:7px;background:rgba(255,255,255,.6);font-size:.72rem}
.syllableSearch label{color:#5d455b;font-size:.7rem;font-weight:800}
.syllableSearch input{width:100%;min-width:0;box-sizing:border-box;padding:4px 6px;border:1px solid #aab7c0;border-radius:5px;background:#fff;color:var(--ink);font-size:.75rem;line-height:1.2}
.syllableSearch input:focus-visible{outline:3px solid rgba(139,58,43,.3);outline-offset:2px}
.syllableSearch span{grid-column:2;min-height:1em;color:#42627a;font-size:.68rem;line-height:1.1}
.syllableSearch span.notFound{color:#9c2f23}
.syllableSearch span.found{color:#2e6b4b}
.allCharacterControls{display:grid;gap:7px;margin:8px 0 0;padding:7px 8px;border:1px solid rgba(115,75,112,.32);border-radius:7px;background:rgba(255,255,255,.6)}
.allCharacterControls>legend{padding:0 3px;color:#5d455b;font-size:.7rem;letter-spacing:0;text-transform:none}
.characterOptionGroup{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px}
.characterOptionGroup strong{min-width:6.4rem;color:#5d455b;font-size:.7rem}
.characterOptionGroup small{color:var(--muted);font-size:.62rem}
.hskOptionGroup label{min-width:2.4rem}
.characterOrderGroup label{min-width:5.2rem}
.hskChoiceGrid{display:grid;flex:1;grid-template-columns:repeat(3,minmax(2.4rem,1fr));gap:4px 8px}
.hskChoiceGrid label:last-child{grid-column:2/4}
.orderChoiceGrid{display:grid;flex:1;grid-template-columns:repeat(2,minmax(5.2rem,1fr));gap:4px 8px}

.chartStatus{min-height:1.2em;margin:0 4px 7px;color:var(--muted);font-size:.76rem}
.chartStatus.isError{color:#9c2f23;font-weight:700}

.chartPanel{
  overflow:hidden;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:9px;
  box-shadow:0 8px 22px rgba(31,47,61,.11);
}

.chartPanelHeader{
  padding:9px 12px 8px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid var(--line);
}
.widthToggle{margin-left:auto;padding:0}

.chartPanelHeader h2,.legend h2{margin:0;font-size:1rem;letter-spacing:-.015em}
.chartPanelHeader p{margin:5px 0 0;color:var(--muted);font-size:.78rem;line-height:1.4}

.chartViewport{
  width:100%;
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-x:contain;
}
.stickyTopMirror{position:fixed;top:0;z-index:900;overflow:hidden;background:var(--paper);box-shadow:0 3px 8px rgba(16,35,50,.2);pointer-events:none}
.stickyTopMirror[hidden]{display:none}
.stickyTopMirrorTable{margin:0;transform-origin:left top}
.stickyTopMirror .soundGrid thead th,.stickyTopMirror .soundGrid .stickyGroupCorner,.stickyTopMirror .soundGrid .rowGroupAxis,.stickyTopMirror .soundGrid .rowAxis{position:static}
.stickyHorizontalScrollbar{position:fixed;bottom:max(8px,env(safe-area-inset-bottom));z-index:850;height:17px;padding:2px;border:1px solid rgba(48,73,91,.48);border-radius:8px;background:rgba(238,243,246,.96);box-shadow:0 3px 12px rgba(16,35,50,.2);cursor:pointer;touch-action:none}
.stickyHorizontalScrollbar[hidden]{display:none}
.stickyHorizontalScrollbar:focus-visible{outline:3px solid rgba(139,58,43,.3);outline-offset:2px}
.stickyHorizontalScrollbarThumb{display:block;height:11px;border:1px solid #4d6c82;border-radius:6px;background:#7895a8;box-shadow:inset 0 1px 0 rgba(255,255,255,.42);cursor:grab;will-change:transform}
.stickyHorizontalScrollbarThumb:active{cursor:grabbing;background:#5f8095}

.soundGrid{
  width:max-content;
  min-width:87rem;
  border-collapse:separate;
  border-spacing:0;
  table-layout:auto;
  font-variant-numeric:tabular-nums;
}
.soundGrid.systems-2{min-width:104rem}
.soundGrid.systems-3{min-width:122rem}
.soundGrid .rowGroupColumn{width:var(--initial-group-width)}
.soundGrid .rowAxisColumn{width:var(--initial-width)}
.soundGrid .bodyDataColumn{width:auto}
.soundGrid .countColumn{width:2.4rem}
.soundGrid.orientation-initials-rows.has-modern-qieyun{--cell-width:2.55rem;min-width:116rem}
.soundGrid.orientation-initials-rows.has-modern-qieyun.systems-3{min-width:122rem}
.soundGrid.orientation-finals-rows{
  --cell-width:2.55rem;
  width:max-content;
  min-width:73rem;
}

.soundGrid th,.soundGrid td{
  height:1.85rem;
  min-width:var(--cell-width);
  padding:3px 1px;
  border-right:1px solid rgba(210,204,193,.76);
  border-bottom:1px solid rgba(210,204,193,.76);
  text-align:center;
  white-space:nowrap;
}

.soundGrid .axisCell{
  z-index:2;
  background:var(--axis);
  color:#fff;
  font-size:.64rem;
  font-weight:850;
}

.soundGrid thead th{position:sticky;background-clip:padding-box}
.soundGrid thead .columnGroupRow th{top:0;z-index:7}
.soundGrid thead .columnLabelRow th{top:var(--group-height);z-index:6;border-top:0}
.soundGrid thead .columnLabelRow .axisCell{z-index:8}
.soundGrid .rowGroupAxis{position:sticky;left:0;z-index:4;min-width:var(--initial-group-width);width:var(--initial-group-width);max-width:var(--initial-group-width);padding-left:0;padding-right:0;border-left:0}
.soundGrid .rowGroupAxis.cornerCell{font-size:.52rem;overflow-wrap:anywhere}
.soundGrid .rowAxis{position:sticky;left:var(--initial-group-width);z-index:4;min-width:var(--initial-width);width:var(--initial-width);max-width:var(--initial-width);padding-left:0;padding-right:0;white-space:nowrap}
.soundGrid .rowAxis .axisLabelLines{width:100%;min-width:0}
.soundGrid .rowAxis .axisLabelLine{max-width:100%}
.soundGrid thead .rowGroupAxis,.soundGrid thead .rowAxis{z-index:11}
.soundGrid .countCell{min-width:2.4rem;width:2.4rem;background:#d9e2e8;color:#30495b;font-size:.62rem;font-weight:850;overflow:visible;text-overflow:clip}
.soundGrid thead .countCell{z-index:7}
.soundGrid tfoot .axisCell,.soundGrid tfoot .countCell{border-bottom:0}
.soundGrid .cornerCell{font-size:.66rem;line-height:1.15;white-space:normal;overflow:visible;text-overflow:clip}
.cornerAxisLabel{display:flex;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center}
.cornerAxisLine{display:block;white-space:nowrap}

.soundGrid .columnGroupRow th{height:var(--group-height);padding:3px 4px;border-bottom:1px solid #fff3}
.soundGrid .columnGroupCell,.soundGrid .groupCorner{
  z-index:6;
  color:#fff;
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.025em;
  text-transform:none;
}
.soundGrid .groupCorner{background:#172f44}
.soundGrid .stickyGroupCorner{position:sticky;left:0;z-index:12;background:#172f44}
.soundGrid .groupSpacer{background:#71808c;color:transparent}
.soundGrid .rowGroupCell{
  color:#fff;
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.02em;
  line-height:1.05;
}
.rotatedGroupLabel{
  display:inline-flex;
  position:absolute;
  left:50%;
  top:50%;
  align-items:center;
  justify-content:center;
  transform:translate(-50%,-50%) rotate(90deg);
  white-space:nowrap;
}
.verticalChineseGroupLabel{display:flex;position:absolute;left:50%;top:50%;flex-direction:column;align-items:center;justify-content:center;gap:2px;transform:translate(-50%,-50%);white-space:nowrap}
.verticalGroupLatin{display:block;line-height:1;writing-mode:horizontal-tb;text-orientation:mixed}
.verticalGroupHan{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.verticalGroupHanCharacter{display:block;line-height:1.05;writing-mode:horizontal-tb;text-orientation:mixed}
.soundGrid.orientation-initials-rows .rowGroupCell.groupBand-0,.soundGrid.orientation-finals-rows .columnGroupCell.groupBand-0{background:#bd4f58}
.soundGrid.orientation-initials-rows .rowGroupCell.groupBand-1,.soundGrid.orientation-finals-rows .columnGroupCell.groupBand-1{background:#d37827}
.soundGrid.orientation-initials-rows .rowGroupCell.groupBand-2,.soundGrid.orientation-finals-rows .columnGroupCell.groupBand-2{background:#718b36}
.soundGrid.orientation-initials-rows .rowGroupCell.groupBand-3,.soundGrid.orientation-finals-rows .columnGroupCell.groupBand-3{background:#237f79}
.soundGrid.orientation-initials-rows .rowGroupCell.groupBand-4,.soundGrid.orientation-finals-rows .columnGroupCell.groupBand-4{background:#76549b}
.soundGrid.orientation-initials-rows .rowGroupCell.groupBand-5,.soundGrid.orientation-finals-rows .columnGroupCell.groupBand-5{background:#356b9a}
.soundGrid.orientation-initials-rows .columnGroupCell.groupBand-0,.soundGrid.orientation-finals-rows .rowGroupCell.groupBand-0{background:#c95645}
.soundGrid.orientation-initials-rows .columnGroupCell.groupBand-1,.soundGrid.orientation-finals-rows .rowGroupCell.groupBand-1{background:#c68d13}
.soundGrid.orientation-initials-rows .columnGroupCell.groupBand-2,.soundGrid.orientation-finals-rows .rowGroupCell.groupBand-2{background:#2d8469}
.soundGrid.orientation-initials-rows .columnGroupCell.groupBand-3,.soundGrid.orientation-finals-rows .rowGroupCell.groupBand-3{background:#665b9e}

.soundGrid .bodyCell{position:relative;background:var(--attested);color:#122231;font-size:.68rem;font-weight:760;letter-spacing:-.025em}
.soundGrid.characterView{font-family:"Noto Sans CJK TC","PingFang TC","Microsoft JhengHei","Source Han Sans TC",sans-serif}
.soundGrid.characterView th,.soundGrid.characterView td{height:1.85rem}
.soundGrid.characterView-all-characters{width:max-content}
.soundGrid.characterView-all-characters.orientation-finals-rows{--cell-width:5.2rem;width:122.5rem;min-width:122.5rem}
.soundGrid.characterView-all-characters.orientation-initials-rows{--cell-width:3.6rem;width:159.5rem;min-width:159.5rem}
.soundGrid.characterView-character-counts.orientation-finals-rows{--cell-width:4.15rem;min-width:101rem}
.soundGrid.characterView-character-counts.orientation-initials-rows{--cell-width:3.7rem;min-width:161rem}
.soundGrid.characterView-all-characters .countColumn,.soundGrid.characterView-character-counts .countColumn{width:3.2rem}
.soundGrid.characterView-all-characters .countCell:not(.rowGroupAxis):not(.rowAxis),.soundGrid.characterView-character-counts .countCell:not(.rowGroupAxis):not(.rowAxis){min-width:3.2rem;width:3.2rem;white-space:normal}
.representativeCharacterGrid{display:grid;width:100%;height:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));align-items:center;justify-items:center;font-size:.78rem;font-weight:650;line-height:1;letter-spacing:0;writing-mode:horizontal-tb}
.representativeCharacter{display:block;min-width:0;min-height:.72rem;writing-mode:horizontal-tb}
.unnumberedCharacterList{display:block;font-size:.78rem;font-weight:650;line-height:1.1;letter-spacing:.05em;white-space:nowrap;writing-mode:horizontal-tb}
.soundGrid.orientation-finals-rows .representativeCharacterGrid{font-size:.86rem}
.soundGrid.characterView-all-characters tbody th,.soundGrid.characterView-all-characters tbody td{height:auto;min-height:3rem;padding-top:5px;padding-bottom:5px;white-space:normal}
.soundGrid.characterView-all-characters .bodyCell{vertical-align:top}
.allCharacterGroups{display:flex;min-width:0;flex-direction:column;gap:3px;font-size:.65rem;font-weight:500;line-height:1.22;letter-spacing:0;text-align:left;writing-mode:horizontal-tb}
.allCharacterToneGroup{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px;align-items:start;writing-mode:horizontal-tb}
.characterToneLabel{color:#66523d;font-size:.55rem;font-weight:850;line-height:1.4}
.characterInventory{overflow-wrap:anywhere;word-break:break-all;writing-mode:horizontal-tb}
.soundGrid.characterView-character-counts tbody th,.soundGrid.characterView-character-counts tbody td{height:4.8rem}
.characterCountLayout{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-variant-numeric:tabular-nums;letter-spacing:0;writing-mode:horizontal-tb}
.characterCountHeading{display:flex;align-items:baseline;justify-content:center;gap:4px;font-size:.67rem;font-weight:700;line-height:1;white-space:nowrap}
.characterCountTotal{font-size:.8rem;font-weight:900}
.characterCountVector{display:flex;width:100%;align-items:center;justify-content:space-evenly;gap:2px;font-size:.58rem;font-weight:800;line-height:1;white-space:nowrap}
.characterToneCount{color:#263744}
.characterToneCount.sourceMarkedRed,.characterCountTotal.sourceMarkedRed{color:#c2271d}
.axisCharacterSummary{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:.5rem;font-weight:730;line-height:1.05;letter-spacing:0;white-space:nowrap}
.axisCharacterTone{display:block}
.axisCharacterUnnumbered{font-style:italic}
.axisCharacterTotal{display:block;margin-top:2px;padding-top:2px;border-top:1px solid rgba(48,73,91,.35);font-size:.52rem;font-weight:900}
.characterGrandTotal{border:2px solid rgba(48,73,91,.45)!important;background:#cbd8df!important}
.characterGrandTotal .grandTotalLabel,.characterGrandTotal .grandTotalValue{display:block;line-height:1.05}
.characterGrandTotal .grandTotalLabel{font-size:.48rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.characterGrandTotal .grandTotalValue{margin-top:3px;font-size:.68rem;font-weight:900}
.toggleControl.isDisabled{opacity:.55}
.cellSelectorBox.isDisabled{border-color:#c8c8c4;background:rgba(226,225,220,.62)}
.cellSelectorBox.isDisabled>legend{color:#8a8983}
.soundGrid.systems-2 th,.soundGrid.systems-2 td{height:2.45rem}
.soundGrid.systems-3 th,.soundGrid.systems-3 td{height:3.05rem}
.soundGrid.tone-grids-1.systems-1 tbody th,.soundGrid.tone-grids-1.systems-1 tbody td{height:2.45rem}
.soundGrid.tone-grids-1.systems-2 tbody th,.soundGrid.tone-grids-1.systems-2 tbody td{height:3.05rem}
.soundGrid.tone-grids-1.systems-3 tbody th,.soundGrid.tone-grids-1.systems-3 tbody td{height:3.65rem}
.soundGrid.tone-grids-2 tbody th,.soundGrid.tone-grids-2 tbody td{height:4.25rem}
.soundGrid.tone-grids-3 tbody th,.soundGrid.tone-grids-3 tbody td{height:5.35rem}
.soundGrid.characterView-one-character-per-tone tbody th,.soundGrid.characterView-one-character-per-tone tbody td{height:1.85rem}
.soundGrid.characterView-neutral-tone{--cell-width:5.5rem;width:max-content;min-width:max-content;table-layout:auto}
.soundGrid.characterView-neutral-tone .bodyDataColumn{width:auto}
.soundGrid.characterView-neutral-tone .bodyCell{min-width:5.5rem;width:max-content}
.soundGrid.characterView-neutral-tone .countColumn{width:3.2rem}
.soundGrid.characterView-neutral-tone .countCell:not(.rowGroupAxis):not(.rowAxis){min-width:3.2rem;width:3.2rem}
.soundGrid.characterView-neutral-tone tbody th,.soundGrid.characterView-neutral-tone tbody td{height:7.2rem;padding:5px 4px}
.soundGrid.characterView-neutral-tone .bodyCell{vertical-align:top}
.neutralToneCell{display:inline-flex;min-width:0;flex-direction:column;align-items:stretch;gap:4px;letter-spacing:0;text-align:left;writing-mode:horizontal-tb}
.neutralTonePinyin{display:block;color:#344b5d;font-size:.64rem;font-weight:850;line-height:1;white-space:nowrap}
.neutralToneExamples{display:flex;min-width:0;flex-direction:column;gap:2px;font-size:.75rem;font-weight:600;line-height:1.18;writing-mode:horizontal-tb}
.neutralToneExample{display:grid;min-width:0;grid-template-columns:1.25em minmax(0,1fr);gap:2px;align-items:start;white-space:nowrap;writing-mode:horizontal-tb}
.neutralToneExampleContent{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:1px}
.neutralToneLabel{color:#6a553e;font-size:.62rem;font-weight:850}
.neutralToneWord{font-size:.75rem;font-weight:650;writing-mode:horizontal-tb}
.neutralToneCanipa,.neutralTonePopupCanipa,.neutralToneCanipaForm{font-family:"canIPA Mandarin Subset",sans-serif;font-size:.85rem;font-weight:700;line-height:1;white-space:nowrap}
.neutralToneContextual{font-family:inherit;font-size:.62rem;font-weight:750;color:var(--muted)}
.soundGrid.characterView-erhua{--cell-width:4.55rem;width:max-content;min-width:max-content;table-layout:auto}
.soundGrid.characterView-erhua .bodyDataColumn{width:auto}
.soundGrid.characterView-erhua .bodyCell{min-width:4.55rem;width:max-content;vertical-align:top}
.soundGrid.characterView-erhua tbody th,.soundGrid.characterView-erhua tbody td{height:3.5rem;padding:5px 4px}
.soundGrid.characterView-erhua[class*="erhua-layers-characters"] tbody th,.soundGrid.characterView-erhua[class*="erhua-layers-characters"] tbody td{height:7.5rem}
.erhuaCell{display:inline-flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:4px;letter-spacing:0;text-align:center;writing-mode:horizontal-tb}
.erhuaPinyin{display:block;align-self:center;color:#344b5d;font-size:.64rem;font-weight:850;line-height:1;white-space:nowrap;text-align:center}
.erhuaExamples{display:flex;min-width:0;flex-direction:column;gap:2px;font-size:.75rem;font-weight:600;line-height:1.18;writing-mode:horizontal-tb}
.erhuaExample{display:grid;min-width:0;grid-template-columns:1.25em minmax(0,1fr);gap:2px;align-items:baseline;white-space:nowrap;writing-mode:horizontal-tb}
.erhuaToneLabel{color:#6a553e;font-size:.62rem;font-weight:850}
.erhuaWord{font-size:.75rem;font-weight:650;writing-mode:horizontal-tb}
.erhuaIpa{font-family:"Charis IPA",serif;font-size:1rem;font-weight:400;line-height:1.1;white-space:nowrap;text-align:center}
.erhuaMusa{font-family:"Zhouhei Musa Fangzi","Kunming Musa Fangzi",sans-serif;font-size:1rem;font-weight:700;line-height:1;white-space:nowrap;text-align:center}
.erhuaCanipa,.system-canipa-erhua{font-family:"canIPA Mandarin Subset","canIPA Erhua Simplified Bold Subset","canIPA Erhua Nasal Subset","canIPA Erhua Chapter 7 Bold Subset","canIPA Erhua Chapter 7 Bold Italic Subset","canIPA Erhua Emphatic E14 Subset","canIPA Erhua Emphatic E15 Subset","canIPA Erhua Emphatic E16 Subset","canIPA Erhua Mediatic M9 Subset","canIPA Erhua Mediatic M10 Subset","canIPA Erhua Mediatic M15 Subset","canIPA Erhua Mediatic M24 Subset","canIPA Erhua Mediatic M25 Subset","canIPA Erhua Mediatic M33 Subset","canIPA Erhua Mediatic M37 Subset","canIPA Erhua Mediatic M38 Subset",sans-serif;font-size:1rem;font-weight:700;line-height:1;white-space:nowrap;text-align:center}
.canipaFaceRun{font-family:inherit;font-style:normal;font-weight:700}
.canipaFace-mandarin{font-family:"canIPA Mandarin Subset",sans-serif}
.canipaFace-simplified_bold{font-family:"canIPA Erhua Simplified Bold Subset",sans-serif}
.canipaFace-chapter9_italic{font-family:"canIPA Mandarin Chapter 9 Bold Italic Subset",sans-serif}
.canipaFace-quick_r{font-family:"canIPA Mandarin 2024 Acina Bold Italic Subset",sans-serif}
.canipaFace-emphatic_r{font-family:"canIPA Mandarin 2024 Alibi Bold Italic Subset",sans-serif}
.canipaFace-cdf-001-abileabile{font-family:"canIPA Ordinary Final F AbileAbile",sans-serif}
.canipaFace-cdf-002-abilebold{font-family:"canIPA Ordinary Final F AbileBold","canIPA Ordinary Regional E AbileBold","canIPA Ordinary Expansion AbileBold",sans-serif}
.canipaFace-cdf-003-abilebolditalic{font-family:"canIPA Ordinary Final F AbileBoldItalic","canIPA Ordinary Expansion AbileBoldItalic",sans-serif}
.canipaFace-cdf-004-acinaacina{font-family:"canIPA Ordinary Regional E AcinaAcina","canIPA Ordinary Expansion AcinaAcina",sans-serif}
.canipaFace-cdf-005-acinaaddebold{font-family:"canIPA Ordinary Regional E AcinaAddeBold","canIPA Ordinary Expansion AcinaAddeBold",sans-serif}
.canipaFace-cdf-006-acinabold{font-family:"canIPA Ordinary Final F AcinaBold","canIPA Ordinary Regional E AcinaBold","canIPA Ordinary Expansion AcinaBold",sans-serif}
.canipaFace-cdf-007-acinabolditalic{font-family:"canIPA Ordinary Final F AcinaBoldItalic","canIPA Ordinary Regional E AcinaBoldItalic","canIPA Ordinary Expansion AcinaBoldItalic",sans-serif}
.canipaFace-cdf-008-acinaitalic{font-family:"canIPA Ordinary Expansion AcinaItalic",sans-serif}
.canipaFace-cdf-009-addebold{font-family:"canIPA Ordinary Expansion AddeBold",sans-serif}
.canipaFace-cdf-011-agensbold{font-family:"canIPA Ordinary Expansion AgensBold",sans-serif}
.canipaFace-cdf-012-agensbolditalic{font-family:"canIPA Ordinary Regional E AgensBoldItalic","canIPA Ordinary Expansion AgensBoldItalic",sans-serif}
.canipaFace-cdf-013-aiutobold{font-family:"canIPA Ordinary Final F AiutoBold",sans-serif}
.canipaFace-cdf-014-aiutobolditalic{font-family:"canIPA Ordinary Final F AiutoBoldItalic","canIPA Ordinary Regional E AiutoBoldItalic","canIPA Ordinary Expansion AiutoBoldItalic",sans-serif}
.canipaFace-cdf-015-aiutoitalic{font-family:"canIPA Ordinary Expansion AiutoItalic",sans-serif}
.canipaFace-cdf-016-alibibold{font-family:"canIPA Ordinary Expansion AlibiBold",sans-serif}
.canipaFace-cdf-018-anglobold{font-family:"canIPA Ordinary Expansion AngloBold",sans-serif}
.canipaFace-cdf-019-anglobolditalic{font-family:"canIPA Ordinary Expansion AngloBoldItalic",sans-serif}
.canipaFace-cdf-017-angloanglo{font-family:"canIPA Ordinary Final F AngloAnglo","canIPA Ordinary Regional E AngloAnglo",sans-serif}
.canipaFace-cdf-020-angloitalic{font-family:"canIPA Ordinary Final F AngloItalic","canIPA Ordinary Regional E AngloItalic","canIPA Ordinary Expansion AngloItalic",sans-serif}
.canipaFace-cdf-021-apizzapizz{font-family:"canIPA Ordinary Regional E ApizzApizz","canIPA Ordinary Expansion ApizzApizz",sans-serif}
.canipaFace-cdf-022-aromenbold{font-family:"canIPA Ordinary Final F AromenBold",sans-serif}
.canipaFace-cdf-023-asupplasuppl{font-family:"canIPA Ordinary Expansion AsupplAsuppl",sans-serif}
.canipaFace-cdf-024-asupplbold{font-family:"canIPA Ordinary Final F AsupplBold",sans-serif}
.canipaFace-cdf-025-atedbolditalic{font-family:"canIPA Ordinary Expansion AtedBoldItalic",sans-serif}
.canipaFace-cdf-027-axyzbolditalic{font-family:"canIPA Ordinary Expansion AxyzBoldItalic",sans-serif}
.canipaFace-cdf-028-axyzitalic{font-family:"canIPA Ordinary Expansion AxyzItalic",sans-serif}
.canipaFace-cdf-029-giobarbybold{font-family:"canIPA Ordinary Expansion GiobarbyBold",sans-serif}
.canipaFace-cdf-030-giobarbybolditalic{font-family:"canIPA Ordinary Expansion GiobarbyBoldItalic",sans-serif}
.canipaFace-neutral_taxotone{font-family:"canIPA Neutral Taxotone Bold Italic Subset",sans-serif}
.canipaFace-neutral_slow_tune{font-family:"canIPA Neutral Slow Tune Bold Subset",sans-serif}
.canipaFace-neutral_context{font-family:"canIPA Neutral Context Bold Subset",sans-serif}
.canipaFace-neutral_context_italic{font-family:"canIPA Neutral Context Bold Italic Subset",sans-serif}
.canipaFace-neutral_consonant{font-family:"canIPA Neutral Consonant Bold Subset",sans-serif}
.canipaFace-chapter7_bold{font-family:"canIPA Erhua Chapter 7 Bold Subset",sans-serif}
.canipaFace-chapter7_bold_italic{font-family:"canIPA Erhua Chapter 7 Bold Italic Subset",sans-serif}
.canipaFace-E14{font-family:"canIPA Erhua Emphatic E14 Subset",sans-serif}
.canipaFace-E15{font-family:"canIPA Erhua Emphatic E15 Subset",sans-serif}
.canipaFace-E16{font-family:"canIPA Erhua Emphatic E16 Subset",sans-serif}
.canipaFace-M9{font-family:"canIPA Erhua Mediatic M9 Subset",sans-serif}
.canipaFace-M10{font-family:"canIPA Erhua Mediatic M10 Subset",sans-serif}
.canipaFace-M15{font-family:"canIPA Erhua Mediatic M15 Subset",sans-serif}
.canipaFace-M24{font-family:"canIPA Erhua Mediatic M24 Subset",sans-serif}
.canipaFace-M25{font-family:"canIPA Erhua Mediatic M25 Subset",sans-serif}
.canipaFace-M33{font-family:"canIPA Erhua Mediatic M33 Subset",sans-serif}
.canipaFace-M37{font-family:"canIPA Erhua Mediatic M37 Subset",sans-serif}
.canipaFace-M38{font-family:"canIPA Erhua Mediatic M38 Subset",sans-serif}
.erhuaCanipaLabel{display:flex;min-width:0;flex-direction:column;gap:1px}
.erhuaCanipaMeta{color:var(--muted);font-size:.64rem;font-weight:650;line-height:1.15}
.erhuaCanipaVariant{width:max-content;max-width:100%;grid-template-columns:minmax(8.5rem,max-content) max-content auto;gap:.35rem .55rem;align-items:center;justify-content:start}
.soundGrid.characterView-most-common-words{width:max-content;min-width:max-content;table-layout:auto}
.soundGrid.characterView-most-common-words .bodyDataColumn{width:auto}
.soundGrid.characterView-most-common-words .bodyCell{min-width:5.4rem;width:max-content;vertical-align:top}
.soundGrid.characterView-most-common-words tbody th,.soundGrid.characterView-most-common-words tbody td{height:6rem;padding:5px 6px}
.mostCommonWordsList{display:inline-flex;min-width:5.4rem;flex-direction:column;align-items:stretch;gap:2px;text-align:left;writing-mode:horizontal-tb}
.mostCommonWordLine{display:grid;grid-template-columns:1.35em max-content;gap:3px;align-items:baseline;white-space:nowrap}
.mostCommonWordTone{color:#6a553e;font-size:.62rem;font-weight:850}
.mostCommonWord{display:block;min-width:max-content;font-size:.8rem;font-weight:680;line-height:1.15;white-space:nowrap;writing-mode:horizontal-tb}
.soundGrid.characterView-pinyin-with-tones tbody th,.soundGrid.characterView-pinyin-with-tones tbody td{height:2.4rem}
.soundGrid.characterView-pinyin-with-tones.orientation-finals-rows:not(.fitToWidth){--cell-width:5rem;min-width:122.5rem}
.soundGrid.characterView-pinyin-with-tones.orientation-initials-rows:not(.fitToWidth){--cell-width:4.3rem;min-width:193rem}
.pinyinToneGrid{width:max-content;min-width:100%;grid-template-columns:repeat(2,max-content);grid-template-rows:repeat(2,minmax(0,1fr));gap:2px 10px;justify-content:center}
.pinyinToneGrid.is-single-tone{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}
.soundGrid.characterView-pinyin-with-tones.orientation-initials-rows .pinyinToneGrid{column-gap:9px}
.pinyinToneForm{min-width:max-content;max-width:none;overflow:visible;font-size:.78rem;font-weight:760;line-height:1.08;white-space:nowrap;overflow-wrap:normal}
.pinyinToneForm.is-existing{color:#174c35}
.pinyinToneForm.is-nonexistent{color:#9c2f23;text-decoration:underline dotted;text-underline-offset:2px}
.cellLabelLines,.axisLabelLines{display:flex;min-width:max-content;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.06}
.cellLabelLine,.axisLabelLine{display:block;width:max-content;max-width:none;overflow:visible;text-overflow:clip;white-space:nowrap}
.headerPopupTrigger{border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer}
.headerPopupTrigger:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.headerPopupTrigger:focus-visible{outline:3px solid rgba(139,58,43,.34);outline-offset:1px;border-radius:3px}
.ipaHeaderButton{padding:1px 2px}
.groupHeaderButton{display:flex;width:100%;height:100%;min-width:0;align-items:center;justify-content:center;padding:0}
.groupHeaderButton.isRotated{position:absolute;inset:0}
.cellLabelLine{font-size:.76rem}
.cellLabelLine.system-ipa{font-family:"Charis IPA",serif;font-weight:400;letter-spacing:0}
.cellLabelLine.system-canipa{font-family:"canIPA Mandarin Subset",sans-serif;font-weight:700;letter-spacing:0}
.cellLabelLine.system-zhuyin{letter-spacing:0}
.cellLabelLine.system-xiaoerjing{letter-spacing:0;direction:rtl;unicode-bidi:isolate;text-align:start;max-width:100%}
.cellLabelLine.system-guanhua_zimu{font-family:"Guanhua Zimu",sans-serif;font-size:.9rem;font-weight:650;letter-spacing:0;line-height:1.08}
.cellLabelLine.system-musa{font-family:"Zhouhei Musa Fangzi","Kunming Musa Fangzi",sans-serif;font-size:.95rem;font-weight:700;line-height:1.15;padding-inline:.04em}
.axisLabelLine.system-ipa{font-family:"Charis IPA",serif;font-size:.7rem;font-weight:400;letter-spacing:0}
.axisLabelLine.system-canipa{font-family:"canIPA Mandarin Subset",sans-serif;font-size:.7rem;font-weight:700;letter-spacing:0}
.axisLabelLine.system-zhuyin{font-size:.7rem}
.axisLabelLine.system-xiaoerjing{font-size:.7rem;letter-spacing:0;direction:rtl;unicode-bidi:isolate;text-align:start;max-width:100%}
.axisLabelLine.system-guanhua_zimu{font-family:"Guanhua Zimu",sans-serif;font-size:.86rem;font-weight:650;letter-spacing:0;line-height:1.08}
.axisLabelLine.system-musa{font-family:"Zhouhei Musa Fangzi","Kunming Musa Fangzi",sans-serif;font-size:.8rem;font-weight:700;line-height:1.15;padding-inline:.04em}
.toneForm.system-guanhua_zimu{font-family:"Guanhua Zimu",sans-serif;font-size:.9rem;font-weight:650;letter-spacing:0}
.cellLabelLine.system-guanhua_zimu,.axisLabelLine.system-guanhua_zimu,.toneForm.system-guanhua_zimu{font-kerning:normal;font-feature-settings:"kern" 1,"mark" 1}
.axisLabelLine.system-modern_qieyun{font-size:.7rem;font-weight:650;letter-spacing:0}
.cellLabelLine.isUnavailable,.axisLabelLine.isUnavailable{opacity:.45;font-style:normal}
.cellLabelLine.system-modern_qieyun{max-width:none;font-weight:650;letter-spacing:-.04em;white-space:nowrap}
.soundGrid.orientation-finals-rows .bodyCell{font-size:.76rem;letter-spacing:-.012em}
.compactToneGrid{display:grid;width:max-content;min-width:100%;grid-template-columns:repeat(2,max-content);grid-template-rows:repeat(2,auto);gap:2px 7px;align-items:center;justify-content:center;justify-items:center;writing-mode:horizontal-tb;text-orientation:mixed}
.compactToneForm{display:block;min-width:max-content;max-width:none;overflow:visible;font-size:.62rem;font-weight:720;line-height:1.08;white-space:nowrap;text-align:center;writing-mode:horizontal-tb;text-orientation:mixed}
.compactToneGrid.system-modern_qieyun{column-gap:.65rem}
.compactToneGrid.system-modern_qieyun{row-gap:1px}
.compactToneGrid.system-modern_qieyun .compactToneForm{font-weight:650;letter-spacing:-.03em}
.soundGrid.orientation-initials-rows.has-modern-qieyun .compactToneGrid.system-modern_qieyun .compactToneForm{padding-inline:.12em}
.axisLabelLines .compactToneGrid.system-modern_qieyun{min-width:0;column-gap:2px}
.axisLabelLines .compactToneGrid.system-modern_qieyun .compactToneForm{font-size:.58rem}
.compactToneForm.isUnavailable{opacity:.45}
.cellLabelLine,.axisLabelLine,.compactToneForm,.popupToneForm,.toneInvariantForm{writing-mode:horizontal-tb;text-orientation:mixed}
.system-zhuyin{font-size:inherit;line-height:1.15;letter-spacing:0;vertical-align:baseline;unicode-bidi:isolate}
.soundGrid .bodyCell.isClickable{cursor:pointer}
.soundGrid .bodyCell.isClickable:hover{box-shadow:inset 0 0 0 2px rgba(139,58,43,.5)}
.soundGrid .bodyCell.isClickable:focus-visible{z-index:5;outline:3px solid var(--accent);outline-offset:-3px}
.soundGrid .bodyCell.isSearchMatch{z-index:3;outline:3px solid #a95516;outline-offset:-3px;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px rgba(169,85,22,.58)}
.soundGrid .bodyCell.isSearchMatch.isSuppressed{outline-color:#a95516;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px rgba(169,85,22,.32)}

.tonePopover{position:fixed;z-index:1000;width:min(42rem,calc(100vw - 16px));min-height:min(12rem,calc(100vh - 16px));max-height:none;overflow:visible;padding:0;border:1px solid #7890a1;border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 12px 36px rgba(16,35,50,.28);writing-mode:horizontal-tb;text-orientation:mixed}
.ordinaryCanipaPopover{width:min(56rem,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.ordinaryCanipaPopover.isExpanded{inset:12px!important;width:auto;height:auto;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;border-radius:8px}
.pinyinTonePopover{width:min(42rem,calc(100vw - 16px));min-height:min(12rem,calc(100vh - 16px));padding:0}
.tonePopover:focus{outline:3px solid rgba(139,58,43,.28);outline-offset:2px}
.tonePopoverHeader{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid var(--line);background:#eef3f6}
.tonePopoverTitle{font-size:.86rem}
.tonePopoverHeaderActions{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:8px}
.audioSpeakerControl{display:flex;align-items:center;gap:.6rem;padding:7px 11px;border-bottom:1px solid var(--line);background:#f8fafb;color:#30495b;font-size:.76rem;font-weight:750}
.audioSpeakerSelect{min-width:0;max-width:100%;padding:5px 7px;border:1px solid #8094a3;border-radius:5px;background:#fff;color:var(--ink);font:inherit}
.audioSpeakerSelect:focus-visible{outline:2px solid #7aabbf;outline-offset:2px}
.canipaPopupAlternativeCount{color:#526675;font-size:.72rem;font-weight:750;white-space:nowrap}
.canipaPopupAlternativeCount.isLargeInventory{color:#6a553e;font-weight:850}
.canipaPopupExpand{padding:.35rem .6rem;border:1px solid #8094a3;border-radius:5px;background:#fff;color:#30495b;font:750 .72rem/1.1 system-ui,sans-serif;cursor:pointer}
.canipaPopupExpand:hover,.canipaPopupExpand:focus-visible,.canipaAlternativeGroupToggle:hover,.canipaAlternativeGroupToggle:focus-visible{border-color:#385162;background:#edf4f8;outline:2px solid #7aabbf;outline-offset:1px}
.tonePopoverClose{width:1.8rem;height:1.8rem;padding:0;border:1px solid #8094a3;border-radius:50%;background:#fff;color:#30495b;font-size:1.15rem;line-height:1;cursor:pointer}
.tonePopoverBody{display:grid;gap:8px;padding:10px}
.headerPopover{width:min(28rem,calc(100vw - 16px));min-height:0}
.headerPopoverBody{gap:10px}
.headerPopoverDescription{margin:0;line-height:1.45}
.ipaHeaderDescription{font-weight:700}
.headerPopoverLink{width:max-content;font-weight:700}
.headerPopoverAlternatives{display:grid;gap:6px;padding-top:8px;border-top:1px solid var(--line)}
.headerAlternativeList{display:flex;flex-wrap:wrap;gap:6px}
.headerAlternativeForm{display:inline-block;padding:4px 7px;border:1px solid #aab7c0;border-radius:5px;background:#f8fafb;font-weight:720}
.tonePopoverRow{display:grid;grid-template-columns:minmax(7.5rem,10rem) minmax(4rem,auto) minmax(0,1fr);gap:8px;align-items:center}
.toneSystemName{font-size:.72rem;font-weight:800}
.toneInvariantForm{font-size:.9rem;font-weight:720;white-space:nowrap}
.toneTargetGrid{display:grid;grid-template-columns:repeat(4,minmax(3.25rem,1fr));gap:5px;direction:ltr}
.toneTargetGrid.hasToneFive{grid-template-columns:repeat(5,minmax(3.25rem,1fr))}
.toneTarget{display:flex;min-width:0;min-height:2.4rem;flex-direction:column;align-items:center;justify-content:center;padding:5px;border:1px solid #aab7c0;border-radius:6px;background:#f8fafb}
.toneTarget.is-existing{border-color:#9aaab5;background:#f8fafb;color:#243d4f}
.toneTarget.is-nonexistent{border-color:#b56c73;background:#f8e6e9;color:#702d35;box-shadow:inset 0 0 0 1px rgba(112,45,53,.08)}
.toneTarget.isUnavailable{opacity:.48}
.toneTarget.isAudioUnavailable,.characterToneTarget.isAudioUnavailable{border-style:dashed}
button.toneTarget{position:relative;font:inherit;line-height:inherit;cursor:pointer}
button.toneTarget.isPlayable{padding-right:1.05rem}
button.toneTarget.isPlayable::after{content:"▶";position:absolute;top:.25rem;right:.28rem;color:var(--accent);font-size:.5rem;line-height:1}
button.toneTarget.isPlayable:hover{filter:brightness(.97)}
button.toneTarget.isPlayable:focus-visible{outline:3px solid rgba(139,58,43,.3);outline-offset:2px}
.popupToneForm{display:block;max-width:100%;font-size:.95rem;font-weight:720;line-height:1.15;white-space:nowrap;text-align:center}
.popupToneForm.system-ipa{font-family:"Charis IPA",serif;font-weight:400}
.popupToneForm.system-canipa{font-family:"canIPA Mandarin Subset",sans-serif;font-weight:700}
.popupToneForm.system-guanhua_zimu{font-family:"Guanhua Zimu",sans-serif;font-weight:400}
.popupToneForm.system-musa{font-family:"Zhouhei Musa Fangzi","Kunming Musa Fangzi",sans-serif;font-size:1.15rem;font-weight:700;line-height:1.15;padding-inline:.04em}
.popupToneForm.system-zhuyin{font-size:1rem}
.popupToneForm.system-modern_qieyun{font-size:1.02rem;font-weight:650}
.popupSupplemental{margin:0 10px 10px;padding:9px 10px;border-top:1px solid #d5dee4;background:#f8fafb;font-size:.82rem;line-height:1.35;user-select:text}
.popupSupplementalTitle,.popupSupplementalHeading{margin:0;color:#40515e}
.popupSupplementalTitle{font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.popupSupplementalHeading{margin-top:.55rem;font-size:.76rem;font-weight:850}
.popupSupplementalGroup+.popupSupplementalGroup{margin-top:.6rem;padding-top:.5rem;border-top:1px solid #dce3e8}
.popupAlternativeForms{display:grid;gap:.4rem;margin-top:.3rem}
.popupAlternativeItem{display:flex;flex-wrap:wrap;align-items:baseline;gap:.22rem;min-width:0}
.popupAlternativeForm{display:inline-block;white-space:nowrap}
.popupAlternativeDescription{color:#526675;font-size:.75rem;white-space:normal}
.popupAlternativeContexts{flex:1 0 100%;color:#6a553e;font-size:.7rem;font-weight:750;white-space:normal}
.canipaAlternativeGroup{min-width:0;margin-top:.45rem;border:1px solid #d5dee4;border-radius:7px;background:#fff}
.canipaAlternativeGroupHeading{margin:0}
.canipaAlternativeGroupToggle{display:flex;width:100%;align-items:center;gap:.45rem;padding:.5rem .65rem;border:0;border-radius:6px;background:#eef3f6;color:#30495b;font:800 .76rem/1.2 system-ui,sans-serif;text-align:left;cursor:pointer}
.canipaAlternativeGroupToggle::before{content:"▾";width:.8rem;color:#526675}
.canipaAlternativeGroupToggle.isCollapsed::before{content:"▸"}
.canipaAlternativeGroupRows{min-width:0;padding:.2rem .65rem .65rem}
.canipaAlternativeSubgroupHeading{margin:.55rem 0 .2rem;color:#6a553e;font-size:.7rem;font-weight:850}
.canipaAlternativeSubgroupHeading+.popupAlternativeForms{margin-top:0}
.ordinaryCanipaPopover .popupCitationPanel,.ordinaryCanipaPopover .popupCitationItem,.ordinaryCanipaPopover .popupCitationLink,.ordinaryCanipaPopover .popupCitationAccessLink{min-width:0;overflow-wrap:anywhere;word-break:normal}
.popupCitationMarker{display:inline-grid;place-items:center;width:1.45rem;height:1.45rem;padding:0;border:1px solid #91a3b0;border-radius:50%;background:#fff;color:#385162;font:700 .9rem/1 system-ui,sans-serif;cursor:pointer}
.popupCitationMarker:hover,.popupCitationMarker:focus-visible{border-color:#385162;background:#edf4f8;outline:2px solid #7aabbf;outline-offset:1px}
.popupCitationPanel{flex:1 0 100%;margin:.2rem 0 0;padding:.55rem .7rem;border:1px solid #90a2ae;border-radius:6px;background:#fff;color:#263b49;font:400 .78rem/1.35 system-ui,sans-serif;white-space:normal}
.popupCitationList{margin:0;padding-left:1.1rem}
.popupCitationItem+.popupCitationItem{margin-top:.35rem}
.popupCitationTitle,.popupCitationNote{color:#526675}
.popupCanonicalSourceExplanation{margin:.45rem 0 0;color:#526675;font-size:.78rem;line-height:1.45}
.popupCanonicalSourceExceptions{margin:.45rem 0 0;color:#526675;font-size:.76rem}
.popupCanonicalSourceExceptionsSummary{cursor:pointer;color:var(--ink);font-weight:700}
.popupCanonicalSourceExceptionList{margin:.4rem 0 0;padding-left:1.25rem}
.popupCanonicalSourceException+.popupCanonicalSourceException{margin-top:.25rem}
@media (max-height:720px),(max-width:600px){.tonePopover{max-height:calc(100vh - 16px);overflow-y:auto;overflow-x:hidden}}
.popupAlternativeForm.system-ipa{font-family:"Charis IPA",serif;font-size:.95rem}
.popupAlternativeForm.system-canipa{font-family:"canIPA Mandarin Subset",sans-serif;font-size:.9rem;font-weight:700}
.popupSpecialVariants{display:grid;gap:.55rem}
.popupSpecialVariant{padding-top:.5rem;border-top:1px solid #dce3e8}
.popupSpecialVariant:first-of-type{padding-top:0;border-top:0}
.popupSpecialVariantHeading{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem;color:#40515e}
.popupSpecialVariantName{font-size:.86rem}
.popupSpecialVariantCharacter{font-family:"Noto Sans CJK TC","PingFang TC","Microsoft JhengHei","Source Han Sans TC",sans-serif;font-size:1rem;font-weight:720}
.popupSpecialVariantStatus{color:#6a553e;font-size:.72rem;font-weight:750}
.popupSpecialVariantTranscriptions{display:flex;flex-wrap:wrap;gap:.25rem .8rem;margin-top:.3rem}
.popupSpecialVariantLine{display:inline-flex;align-items:baseline;gap:.3rem;white-space:nowrap}
.popupSpecialVariantSystem{color:#526675;font-size:.7rem;font-weight:760}
.popupSpecialVariantTranscription{font-size:.92rem;font-weight:720;white-space:nowrap}
.popupSpecialVariantTranscription.system-ipa{font-family:"Charis IPA",serif;font-weight:400}
.popupSpecialVariantTranscription.system-canipa{font-family:"canIPA Mandarin Subset",sans-serif;font-weight:700}
.popupSpecialVariantTranscription.system-guanhua_zimu{font-family:"Guanhua Zimu",sans-serif;font-weight:400}
.popupSpecialVariantTranscription.system-musa{font-family:"Zhouhei Musa Fangzi","Kunming Musa Fangzi",sans-serif;font-size:1rem;font-weight:700;line-height:1}
.popupSpecialVariantNote,.popupNote{margin:.35rem 0 0;color:#526675;font-size:.76rem}
.popupNote{margin:0 10px 10px;padding:8px 10px;border-top:1px solid #d5dee4;background:#f8fafb;user-select:text}
.popupNotes{color:#526675}
.popupNoteEntry+.popupNoteEntry{margin-top:.55rem;padding-top:.5rem;border-top:1px solid #dce3e8}
.popupNoteParagraph{margin:.4rem 0 0}
.popupNoteLinks{margin:.45rem 0 0;font-size:.76rem}
.popupNoteLink{color:var(--accent);font-weight:760}
.popupSupplementalRow{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.45rem;align-items:start;margin-top:.4rem}
.popupSupplementalLabel{color:#6a553e;font-size:.72rem}
.popupSupplementalWords{min-width:0;font-family:"Noto Sans CJK TC","PingFang TC","Microsoft JhengHei","Source Han Sans TC",sans-serif;white-space:normal;overflow-wrap:anywhere}
.characterTonePopover{width:min(46rem,calc(100vw - 16px))}
.characterPopupContext{padding:0 10px;color:var(--muted);font-size:.78rem}
.characterToneTargetGrid{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(3.7rem,10vw,5rem);justify-content:center;gap:8px;padding:10px;overflow-x:auto}
.characterToneColumn{display:grid;grid-template-rows:auto 1fr;gap:4px;align-items:stretch;min-width:0;text-align:center}
.characterTonePinyin{font-size:.78rem;font-weight:750;line-height:1.1;white-space:nowrap}
.characterToneTarget{display:flex;aspect-ratio:1;min-width:0;align-items:center;justify-content:center;padding:8px;border:1px solid #aab7c0;border-radius:7px;background:#f8fafb;font-size:1.45rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
.characterToneTarget.isUnavailable{color:#8b9297;background:#f1f3f4}
button.characterToneTarget{position:relative;font:inherit;line-height:1.25;color:inherit;cursor:pointer}
button.characterToneTarget.isPlayable{padding-right:1.2rem}
button.characterToneTarget.isPlayable::after{content:"▶";position:absolute;top:.3rem;right:.35rem;color:var(--accent);font-size:.55rem;line-height:1}
button.characterToneTarget.isPlayable:hover{filter:brightness(.97)}
button.characterToneTarget.isPlayable:focus-visible{outline:3px solid rgba(139,58,43,.3);outline-offset:2px}
.characterTonePopover-all-characters .characterToneTargetGrid{grid-auto-columns:clamp(7.5rem,19vw,10rem);justify-content:start}
.characterTonePopover-all-characters .characterToneTarget{align-items:flex-start;justify-content:flex-start;overflow:visible;font-size:1.2rem}
.characterTonePopover-all-characters.characterTonePopover-large-inventory .characterToneTargetGrid{grid-auto-columns:clamp(11.5rem,23vw,13rem)}
.neutralToneTargetGrid{grid-auto-columns:clamp(4.25rem,11vw,5.5rem)}
.neutralToneTarget{display:flex;flex-direction:column;gap:4px;font-size:1.05rem}
.neutralTonePopupWord{display:block}
.neutralTonePopover{width:min(58rem,calc(100vw - 16px))}
.neutralToneCanipaPanel{display:flex;flex-direction:column;gap:.7rem;max-height:none;overflow:visible;min-width:0}
.neutralToneCanipaTone{display:flex;flex-direction:column;gap:.35rem}
.neutralToneCanipaToneTitle,.neutralToneCanipaGroupTitle{margin:0;color:var(--axis);font-size:.78rem}
.neutralToneCanipaGroup{display:flex;flex-direction:column;gap:.25rem}
.neutralToneCanipaGroupTitle{font-size:.7rem;color:var(--muted)}
.neutralToneCanipaVariant{display:grid;grid-template-columns:max-content minmax(0,1fr) auto;gap:.45rem;align-items:start;min-width:0}
.neutralToneCanipaDescription,.neutralToneContextExplanation{font-size:.7rem;line-height:1.35;color:var(--muted)}
.erhuaToneTargetGrid{grid-auto-columns:clamp(4.25rem,11vw,5.5rem)}
.erhuaToneTarget{font-size:1.05rem}
.mostCommonWordsPopover{width:min(58rem,calc(100vw - 16px))}
.mostCommonWordsTargetGrid{grid-auto-columns:minmax(7rem,1fr);justify-content:stretch;overflow-x:auto}
.mostCommonWordsTarget{aspect-ratio:auto;min-height:4.5rem;flex-direction:column;gap:3px;overflow:visible;white-space:nowrap}
.wordHan{display:block;font-size:1rem;font-weight:720;line-height:1.15;white-space:nowrap}
.wordPinyin{display:block;color:#526675;font-size:.7rem;font-weight:600;line-height:1.15;white-space:nowrap}
.mostCommonWordsAdditionalRow{align-items:start}
.mostCommonWordsAdditionalWords{display:flex;min-width:0;flex-wrap:wrap;gap:.55rem 1rem}
.mostCommonWordsAdditionalWord{display:inline-flex;min-width:max-content;flex-direction:column;gap:1px;white-space:nowrap}
.mostCommonWordsAdditionalWord .wordHan{font-size:.9rem}
.mostCommonWordsAdditionalWord .wordPinyin{font-size:.66rem}
.erhuaPopoverTitle{display:flex;min-width:0;flex-direction:column;gap:2px;line-height:1.1}
.erhuaPopupPinyin{font-size:.82rem}
.erhuaPopupIpa{font-family:"Charis IPA",serif;font-size:1rem;font-weight:400}
.erhuaPopupMusa,.popupAlternativeForm.system-musa{font-family:"Zhouhei Musa Fangzi","Kunming Musa Fangzi",sans-serif;font-size:1rem;font-weight:700;line-height:1}
.system-musa{font-family:"Zhouhei Musa Fangzi","Kunming Musa Fangzi",sans-serif!important;font-kerning:normal!important;font-variant-ligatures:common-ligatures contextual!important;font-feature-settings:"liga" 1,"calt" 1,"kern" 1!important;letter-spacing:normal!important;word-spacing:normal!important;text-rendering:optimizeLegibility}
.characterToneTarget-unnumbered{grid-column:1/-1}
.soundGrid.has-wide-tone-forms{table-layout:auto;width:max-content}
.soundGrid.fitToWidth{width:100%;min-width:100%;table-layout:auto}
.soundGrid.characterView-all-characters.fitToWidth{width:100%;min-width:100%;table-layout:fixed}
.soundGrid.characterView-all-characters.fitToWidth .bodyDataColumn{width:auto}
.soundGrid.characterView-all-characters.fitToWidth .bodyCell{width:auto;min-width:0}
.soundGrid.characterView-pinyin-with-tones.fitToWidth{width:max-content;min-width:100%;table-layout:auto}
.soundGrid.characterView-pinyin-with-tones.fitToWidth .bodyDataColumn{width:auto}
.soundGrid.characterView-pinyin-with-tones.fitToWidth .bodyCell{width:auto;min-width:3.7rem}
.soundGrid.characterView-pinyin-with-tones.fitToWidth.orientation-initials-rows .bodyCell{min-width:4.3rem;padding-left:4px;padding-right:4px}
.soundGrid.characterView-pinyin-with-tones.fitToWidth.orientation-finals-rows .bodyCell{min-width:4.75rem}
.soundGrid.characterView-most-common-words.fitToWidth{width:max-content;min-width:100%;table-layout:auto}
.soundGrid.characterView-most-common-words.fitToWidth .bodyDataColumn{width:auto}
.soundGrid.characterView-most-common-words.fitToWidth .bodyCell{width:max-content;min-width:5.4rem}
.soundGrid.has-wide-tone-forms .bodyDataColumn{width:auto}
.soundGrid.has-wide-tone-forms .bodyCell{min-width:max(4rem,7ch)}
.soundGrid.has-wide-tone-forms .compactToneGrid.system-simplified_wade,.soundGrid.has-wide-tone-forms .compactToneGrid.system-gwoyeu_romatzyh{width:max-content;min-width:100%}
.soundGrid.has-wide-tone-forms .compactToneForm{max-width:none}
.soundGrid .cell-special_attested{background:var(--special);color:#392b0b;box-shadow:inset 0 0 0 1px rgba(132,82,0,.35)}
.soundGrid .cell-erhua_derived{background:var(--erhua);color:#143d2d;box-shadow:inset 0 0 0 1px rgba(21,99,68,.3)}
.soundGrid .cell-nonexistent{background:var(--nonexistent);color:#27475b;font-weight:700}
.soundGrid .label-structural_notation{font-size:.58rem;font-style:italic;letter-spacing:-.04em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),inset 0 0 0 2px rgba(20,35,48,.28)}
.soundGrid .label-generated_pinyin{font-style:italic}
.soundGrid .bodyCell[data-slot-id="slot:r:a"]{font-style:normal}
.soundGrid .bodyCell.isSuppressed{background:#e5e9ec;color:transparent;box-shadow:none}
.soundGrid .bodyCell.isSuppressed .cellLabelLines{visibility:hidden}
.soundGrid.characterView .bodyCell.isSuppressed>*{visibility:hidden}

.legend{margin-top:10px;padding:10px 4px;color:var(--muted)}
.legendItems{margin-top:10px;display:flex;flex-wrap:wrap;gap:9px 18px;font-size:.76rem}
.legendItems span{display:inline-flex;align-items:center;gap:7px}
.legendSwatch{width:1rem;height:1rem;border:1px solid #cbc4b8;border-radius:3px;background:var(--attested)}
.legendSwatch.special{background:var(--special)}
.legendSwatch.erhua{background:var(--erhua)}
.legendSwatch.nonexistent{background:var(--nonexistent)}
.structuralSample{color:#5f5a53;font-size:.69rem}

@media(max-width:1100px){
  .controls{margin-top:12px}
  .supplementalLinks{grid-template-rows:repeat(6,minmax(0,auto))}
}

@media(max-width:700px){
  :root{--cell-width:3.9rem;--initial-group-width:3rem;--initial-width:4rem}
  .chartShell{width:calc(100% - 10px);padding-top:8px}
  .pageHeader{padding:24px 6px 0}
  .homeLink{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left))}
  h1{font-size:clamp(2rem,10vw,2.8rem)}
  .controls{margin-top:12px}
  .supplementalLinks{width:auto;grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr}
  .selectorLayout>.selectorBox,.settingsStack{flex-basis:min(100%,20rem)}
  .toggleControl{padding-bottom:0}
  .chartPanelHeader{padding:8px 10px}
  .chartPanelHeader .scrollHint{display:none}
  .widthToggle{display:none}
  .chartViewport{overflow-x:auto;overflow-y:visible}
  .soundGrid{width:max-content;min-width:100%}
  .soundGrid th,.soundGrid td{height:2.35rem;padding:4px;font-size:.7rem}
  .soundGrid.characterView th,.soundGrid.characterView td{height:2.35rem}
  .soundGrid.characterView-neutral-tone{--cell-width:3.65rem;min-width:max-content}
  .soundGrid.characterView-neutral-tone tbody th,.soundGrid.characterView-neutral-tone tbody td{height:7.2rem;padding:5px 4px}
  .soundGrid.characterView-erhua{--cell-width:4.55rem;min-width:max-content}
  .neutralToneExamples,.neutralToneWord{font-size:.76rem}
  .representativeCharacterGrid{font-size:1rem}
  .allCharacterGroups{font-size:.78rem}
  .soundGrid .rowGroupCell{font-size:.58rem}
  .compactToneForm{font-size:.65rem}
  .cellLabelLine.system-modern_qieyun{letter-spacing:0}
  .tonePopoverRow{grid-template-columns:1fr;gap:5px}
  .toneTargetGrid{grid-template-columns:repeat(4,minmax(3.25rem,1fr));overflow-x:auto}
  .toneTargetGrid.hasToneFive{grid-template-columns:repeat(5,minmax(3.25rem,1fr))}
  .toneInvariantForm{justify-self:start}
  .legendItems{align-items:flex-start;flex-direction:column}
}

@media(max-width:500px){
  .audioSpeakerControl{flex-wrap:wrap}
  .audioSpeakerSelect{width:100%}
  .supplementalLinks{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
}
