/* Resonance — a calm Kai reading grid, with a local-first, openly licensed fallback.
   Only CJK glyphs use the Kai face; Latin phonetics remain in a screen-readable face.
   Local system fonts are referenced, never bundled. */
@font-face {
  font-family: "Resonance Local Kai";
  src: local("KaiTi"), local("楷体"), local("STKaiti"), local("华文楷体"), local("Kaiti SC");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+2E80-2FFF, U+3000-303F, U+3100-312F, U+31A0-31BF, U+31C0-31EF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE30-FE4F, U+FF00-FFEF, U+20000-2FA1F, U+30000-323AF;
}
/* A separate face also supplies individual glyphs missing from a local Kai font. */
@font-face {
  font-family: "Resonance Kai";
  src: url("/fonts/LXGWWenKai-Light.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+2E80-2FFF, U+3000-303F, U+3100-312F, U+31A0-31BF, U+31C0-31EF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE30-FE4F, U+FF00-FFEF, U+20000-2FA1F, U+30000-323AF;
}
/* Current UI and library glyphs only. A separate full face remains the final fallback. */
@font-face {
  font-family: "Resonance Kai Current";
  src: url("/fonts/Resonance-Kai-Current.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+3001-3002, U+300A-300F, U+4C1F, U+4E00-4E01, U+4E03, U+4E07, U+4E09-4E0B, U+4E0D-4E0E, U+4E13-4E14, U+4E16, U+4E18, U+4E1A-4E1D, U+4E22, U+4E24-4E25, U+4E27, U+4E2A, U+4E2D, U+4E30, U+4E32, U+4E34, U+4E39-4E3B, U+4E3D-4E3E, U+4E43, U+4E45, U+4E48-4E49, U+4E4B-4E50, U+4E56, U+4E58, U+4E5D, U+4E5F-4E61, U+4E66, U+4E70-4E71, U+4E7E, U+4E82, U+4E86, U+4E88-4E89, U+4E8B-4E8C, U+4E8E, U+4E91-4E92, U+4E94, U+4E9A-4E9B, U+4EA1, U+4EA4, U+4EA6-4EA7, U+4EAB-4EAE, U+4EB2, U+4EBA, U+4EC0-4EC1, U+4EC5, U+4ECA-4ECB, U+4ECD-4ECE, U+4ED4-4ED9, U+4EE3-4EE5, U+4EEA, U+4EEC, U+4EF0, U+4EF6-4EF7, U+4EFB, U+4EFD, U+4EFF, U+4F0A, U+4F0D, U+4F0F-4F11, U+4F17-4F18, U+4F1A, U+4F1E, U+4F20, U+4F24, U+4F26, U+4F2A, U+4F2F, U+4F34, U+4F38, U+4F3C-4F3D, U+4F46, U+4F4D-4F50, U+4F53, U+4F55, U+4F59-4F5C, U+4F60, U+4F69, U+4F73, U+4F7B, U+4F7F, U+4F83, U+4F86, U+4F8B, U+4F8D, U+4F9B, U+4F9D, U+4FA0, U+4FA3, U+4FA7, U+4FAF, U+4FB5, U+4FBF, U+4FC3-4FC4, U+4FCE, U+4FD7-4FD8, U+4FDD-4FDE, U+4FE1, U+4FEE, U+500D, U+5012, U+5018-501A, U+501F, U+5026, U+502B, U+503A, U+503C, U+503E, U+5047, U+504F, U+505A, U+505C, U+5065, U+5076, U+507D, U+507F, U+508D, U+50A8, U+50AC, U+50B2-50B3, U+50CF, U+50E7, U+50FB, U+513F, U+5141, U+5143-5146, U+5148-5149, U+514B, U+514D, U+5165, U+5168-5169, U+516B-516E, U+5170-5171, U+5173-5174, U+5176-5178, U+517B-517C, U+5185, U+5189, U+518C-518D, U+5192, U+5197, U+5199, U+519B-519C, U+51A0, U+51A4-51A5, U+51AC, U+51AF-51B0, U+51B2-51B3, U+51B5, U+51B7, U+51BB, U+51C0, U+51C4, U+51C6, U+51C9, U+51CB, U+51CF, U+51D1, U+51DD, U+51E0-51E1, U+51E4, U+51ED, U+51EF-51F0, U+51F8, U+51FA-51FB, U+51FD, U+51FF-5200, U+5203, U+5206-5207, U+520A, U+520E, U+5211-5212, U+5217-521B, U+521D, U+5220, U+5224-5225, U+5229, U+522B, U+522D, U+5230, U+5236-5237, U+523A-523B, U+5247, U+524A, U+524C-524D, U+5251, U+5254, U+525B, U+5265, U+5267, U+5269-526A, U+526F, U+5272, U+5275, U+5289, U+529B, U+529D-52A1, U+52A8-52AA, U+52B1-52B3, U+52BF, U+52C7, U+52C9, U+52D2, U+52D5, U+52D8, U+52DD, U+52E4, U+52F0, U+52FF-5300, U+5305-5306, U+5316-5317, U+531D, U+5320, U+5339-533B, U+533F, U+5341, U+5343, U+5347-534A, U+534E-534F, U+5352, U+5355, U+5357, U+535A, U+5360-5362, U+536B, U+5370-5371, U+5373-5374, U+5377-5378, U+537F, U+5384, U+5386, U+5389, U+538B-538C, U+539A, U+539F, U+53A5, U+53BB, U+53C2, U+53C8-53CD, U+53D1, U+53D4, U+53D6-53D9, U+53E0, U+53E3-53E6, U+53EA-53EC, U+53EF-53F3, U+53F6-53F9, U+5403-5404, U+5408, U+540C-540F, U+5411, U+5417, U+541B, U+541F, U+5426, U+5429, U+542B-542C, U+542F, U+5433-5435, U+5438-5439, U+543B, U+543E, U+5448, U+544A, U+5458, U+5468, U+5473, U+547C-547D, U+548C, U+548F-5490, U+5492, U+54AB, U+54B3, U+54BD, U+54C0-54C1, U+54C8-54C9, U+54CD, U+54E5, U+54E9-54EA, U+54F2, U+54FD, U+5510, U+5524, U+552F, U+5531, U+5544, U+5546, U+5578, U+557C, U+5580, U+5582, U+5584, U+558B, U+559C-559D, U+55A7, U+55AA, U+55BB, U+55C5, U+55D3, U+55DF, U+5606, U+5617, U+562F, U+5632, U+564E, U+5668, U+56DA-56DB, U+56DE, U+56E0, U+56ED, U+56F0, U+56F4, U+56FA, U+56FD-56FE, U+5706, U+570B, U+570D, U+5712, U+5716, U+571F, U+5723, U+5728, U+5730, U+573A, U+5747, U+574A, U+574E-5750, U+575A, U+575F-5761, U+5782, U+578B, U+57AB, U+57C3, U+57CE, U+57DF, U+57F7, U+57FA, U+5802, U+582A, U+5854, U+5858, U+585E, U+586B, U+5883, U+5893, U+5899, U+589C, U+589E-589F, U+58A8, U+58C1, U+58DE, U+58EB, U+58EE, U+58F0, U+58FA, U+58FD, U+5904, U+5907, U+590D, U+590F, U+5915-5916, U+591A, U+591C, U+591F, U+5922, U+5927, U+5929-592B, U+592E, U+5931, U+5934, U+5938-593A, U+593E, U+5947-5948, U+594B, U+594F, U+5951, U+5957, U+5965, U+5973, U+5976, U+5979, U+597D, U+5982-5983, U+5987, U+5999, U+59A5, U+59A8, U+59B9, U+59BB, U+59BE, U+59C6, U+59CB, U+59D0-59D1, U+59D3-59D4, U+59DA, U+59E5, U+59FB, U+59FF, U+5A01, U+5A03, U+5A18, U+5A25, U+5A49, U+5A5A, U+5A66, U+5A74, U+5A92, U+5A9B, U+5ACC, U+5AE9, U+5B09, U+5B50, U+5B54, U+5B57-5B59, U+5B5F, U+5B63-5B64, U+5B66, U+5B69, U+5B6B, U+5B78, U+5B81, U+5B83, U+5B85, U+5B87-5B89, U+5B8B-5B8C, U+5B8F, U+5B95, U+5B97-5B9E, U+5BA0-5BA4, U+5BA6, U+5BAB, U+5BB3-5BB4, U+5BB6, U+5BB9, U+5BBD-5BBF, U+5BC2, U+5BC4, U+5BC6-5BC7, U+5BCC, U+5BD2-5BD3, U+5BDE-5BDF, U+5BE2, U+5BE5, U+5BF8-5BF9, U+5BFB-5BFC, U+5BFF, U+5C01, U+5C04, U+5C06-5C08, U+5C0A-5C0B, U+5C0D, U+5C0F, U+5C11, U+5C14, U+5C18, U+5C1A, U+5C1D, U+5C24, U+5C27, U+5C2C, U+5C31, U+5C34, U+5C3A, U+5C3C-5C3E, U+5C40, U+5C42, U+5C45, U+5C48, U+5C4A-5C4B, U+5C4F, U+5C55, U+5C5E, U+5C65, U+5C71, U+5C7F, U+5C81, U+5C9B, U+5CA9, U+5CB3, U+5CB8, U+5CED, U+5CFB, U+5D07, U+5D14, U+5D16, U+5D26, U+5D4C, U+5D69, U+5D6B, U+5DDD-5DDE, U+5DE1-5DE2, U+5DE5-5DE8, U+5DEB, U+5DEE, U+5DF1-5DF2, U+5DF4, U+5E02-5E03, U+5E06, U+5E08, U+5E0C, U+5E10, U+5E18, U+5E1D, U+5E26, U+5E2D-5E2E, U+5E37-5E38, U+5E45, U+5E4C, U+5E55, U+5E62, U+5E72-5E74, U+5E76, U+5E78-5E79, U+5E7B-5E7F, U+5E84, U+5E86-5E87, U+5E8A, U+5E8F-5E90, U+5E93-5E95, U+5E9C, U+5E9F, U+5EA6-5EA7, U+5EAB, U+5EAD, U+5EB5, U+5EC9-5ECA, U+5ED3, U+5EE2-5EE3, U+5EF3, U+5EF6-5EF7, U+5EFA, U+5F00, U+5F02-5F04, U+5F0F, U+5F13, U+5F15, U+5F17-5F18, U+5F1F-5F20, U+5F25-5F26, U+5F2D, U+5F2F, U+5F31, U+5F35, U+5F39-5F3A, U+5F52-5F53, U+5F55, U+5F59, U+5F62, U+5F69, U+5F6D, U+5F71, U+5F7B-5F7C, U+5F80-5F81, U+5F84-5F85, U+5F88, U+5F8B-5F8C, U+5F90-5F92, U+5F97, U+5F99, U+5F9E, U+5FA1, U+5FA9-5FAA, U+5FAE, U+5FB7, U+5FB9, U+5FC3, U+5FC5-5FC6, U+5FCC-5FCD, U+5FD7-5FD9, U+5FE0, U+5FE7, U+5FEB, U+5FF5, U+5FFD, U+6000-6001, U+600E, U+6012, U+6015-6016, U+601C-601D, U+6020, U+6025, U+6027-6028, U+602A, U+603B, U+6043, U+604B, U+604D, U+6050, U+6052, U+6055, U+6062, U+6064, U+6068-6069, U+606F-6070, U+6076, U+6078, U+6084, U+6089, U+60A3, U+60A6, U+60AC, U+60AF, U+60B2, U+60BC, U+60C5, U+60CA-60CB, U+60D1, U+60D5, U+60DC, U+60DF-60E1, U+60E6-60E7, U+60E9, U+60EB, U+60EF, U+60F3, U+60F6, U+6101, U+6108-6109, U+610F, U+611A-611B, U+611F, U+6124, U+6127, U+613F, U+6148, U+614C, U+614E, U+6151, U+6155, U+6158, U+6162, U+6167-6168, U+616E, U+6170, U+6177, U+6190, U+61A9, U+61B6, U+61BE, U+61C2, U+61C9, U+61F7, U+61FD, U+6200, U+6208, U+620F-6211, U+6216, U+6218, U+622A, U+622E, U+6234, U+6237, U+623F-6240, U+6247, U+6249, U+624B, U+624D-624E, U+6251, U+6253, U+6258, U+6267, U+6269, U+626B-626D, U+626F-6270, U+6276, U+6279, U+627E-6280, U+6284, U+6289-628A, U+6291-6293, U+6295, U+6297-6298, U+629A-629B, U+62A4-62A5, U+62AB-62AC, U+62B1, U+62B5, U+62B9, U+62BD, U+62C5-62C6, U+62C9, U+62D2, U+62D4, U+62D8-62D9, U+62DB-62DC, U+62DF, U+62E2, U+62E5, U+62E9, U+62EC, U+62EF, U+62FC, U+62FF, U+6301-6302, U+6307, U+6309, U+6311, U+6321, U+6323-6325, U+632A-632B, U+633D, U+634F, U+6355, U+635F, U+6362, U+6367, U+636E, U+6372, U+6383, U+6388-6389, U+638C, U+6392, U+63A0, U+63A2, U+63A5, U+63A7-63AA, U+63BA, U+63CF-63D0, U+63D2, U+63DA, U+63E1, U+63ED-63EE, U+63F4, U+640F, U+6414, U+6416, U+641C, U+642C-642D, U+643A, U+6446-6447, U+644A, U+6458, U+6467, U+6478, U+6487, U+6491-6492, U+649E, U+64A4, U+64AD, U+64B0, U+64B2, U+64B7, U+64BC, U+64C5, U+64CD, U+64DA, U+64F7, U+652F, U+6536, U+6539, U+653E-653F, U+6545, U+6548, U+654C, U+654F, U+6551, U+6559, U+655B, U+6563, U+656C, U+6570, U+6574, U+6577-6578, U+6587, U+6591, U+6597, U+6599, U+65A4, U+65A7, U+65AB, U+65AD, U+65AF-65B0, U+65B7, U+65B9, U+65BC-65BD, U+65C1, U+65C5, U+65CF, U+65E0, U+65E2, U+65E5-65E9, U+65F6-65F7, U+65FA, U+6606, U+6609, U+660C, U+660E-660F, U+6613-6614, U+661A, U+661F-6620, U+6625, U+6628, U+662D, U+662F, U+6635, U+663C, U+663E, U+6642, U+6649, U+664B, U+664F, U+6652, U+6654, U+6656, U+665A, U+665D-665E, U+6666, U+6668, U+666E-6670, U+6674, U+6676, U+667A, U+6682, U+668C, U+6691, U+6696-6697, U+669D, U+66AB, U+66AE, U+66B4, U+66F0, U+66F2, U+66F4, U+66F8-66F9, U+66FC, U+66FE-6700, U+6703, U+6708-6709, U+670B, U+670D, U+6713-6714, U+671B, U+671D, U+671F, U+6728, U+672A-672C, U+672F, U+6731, U+6734-6735, U+673A, U+673D, U+6740, U+6742-6743, U+674E, U+6750-6751, U+6756, U+675C, U+675F, U+6761, U+6765, U+6768, U+676F, U+6771, U+677E, U+6781, U+6784, U+6789, U+6790, U+6795, U+6797, U+679A, U+679C-679D, U+67AA-67AB, U+67AF, U+67B6, U+67C4, U+67D0, U+67D3-67D4, U+67E5, U+67EF, U+67F3-67F4, U+6801, U+6807, U+680F, U+6811, U+6816, U+6821, U+682A, U+6837-6839, U+683C, U+6842-6843, U+6846, U+6848, U+6850-6851, U+6863, U+6865, U+6868, U+6885, U+68A6-68A8, U+68AD, U+68B0, U+68C0, U+68C4, U+68CA-68CB, U+68DA, U+68EE, U+68FA, U+6905, U+690D, U+694A, U+6953, U+695A, U+696B, U+6975, U+697C, U+6982, U+6986, U+699C, U+69AE, U+69BB, U+6A02, U+6A0A, U+6A13, U+6A21, U+6A2A, U+6A35, U+6A39, U+6A90, U+6B20-6B23, U+6B27, U+6B32, U+6B3A, U+6B3D-6B3E, U+6B47, U+6B49, U+6B4C, U+6B61-6B67, U+6B72, U+6B78-6B79, U+6B7B, U+6B89-6B8B, U+6B93, U+6B9B, U+6BB5, U+6BB7, U+6BBA, U+6BBF, U+6BC1, U+6BCD, U+6BCF, U+6BD4, U+6BDB, U+6BEB, U+6C11, U+6C13-6C14, U+6C1B, U+6C23, U+6C34, U+6C38, U+6C42, U+6C47, U+6C49, U+6C50, U+6C57, U+6C5F-6C61, U+6C64, U+6C70, U+6C7A, U+6C89, U+6C90, U+6C92-6C93, U+6C99, U+6CA1, U+6CA7, U+6CAE, U+6CB3, U+6CBB, U+6CBE-6CBF, U+6CC1, U+6CC4, U+6CC9-6CCA, U+6CD5, U+6CDB, U+6CDE, U+6CE2-6CE3, U+6CE5, U+6CE8, U+6CEA, U+6CEE, U+6CFD, U+6D01, U+6D0B, U+6D12, U+6D19, U+6D1B, U+6D1E, U+6D25, U+6D32, U+6D3B, U+6D3E, U+6D41, U+6D45, U+6D4B, U+6D4E-6D4F, U+6D53, U+6D63, U+6D66, U+6D69-6D6A, U+6D6E, U+6D77-6D78, U+6D85, U+6D88-6D89, U+6D8C, U+6D9B, U+6D9F, U+6DA6, U+6DA8-6DA9, U+6DAF, U+6DB2, U+6DB5, U+6DC6-6DC7, U+6DD8, U+6DDA, U+6DE1, U+6DE8, U+6DF1, U+6DF5, U+6DF7, U+6DFA-6DFB, U+6E05, U+6E0A, U+6E10-6E11, U+6E14, U+6E17, U+6E20-6E21, U+6E29, U+6E2D, U+6E32, U+6E34, U+6E38, U+6E3A, U+6E3E, U+6E4A, U+6E56, U+6E58, U+6E67, U+6E6F, U+6E7E-6E7F, U+6E90, U+6EAA, U+6EAF, U+6EBA, U+6EBC, U+6EC4-6EC5, U+6ECB, U+6EDA, U+6EDE, U+6EE1, U+6EE9, U+6EF4, U+6EFE-6EFF, U+6F01-6F02, U+6F0F, U+6F14, U+6F20, U+6F22, U+6F2A-6F2B, U+6F38, U+6F47, U+6F54, U+6F5B-6F5C, U+6F64, U+6F6E, U+6F7A, U+6F88, U+6FA0, U+6FB9, U+6FC0, U+6FD5, U+6FE4, U+7051, U+706B, U+706D, U+706F-7070, U+7075, U+707E, U+708A, U+708E, U+70AB-70AC, U+70B9-70BA, U+70BC, U+70C2, U+70C8, U+70CF, U+70DB, U+70DF, U+70E6-70E7, U+70ED, U+70FD, U+7109, U+7121, U+7126, U+7130, U+7136, U+7159, U+715C, U+7167, U+7184, U+718A, U+719F, U+71AC, U+71B9, U+71C3, U+71D2, U+71D5, U+71ED, U+721B, U+722A, U+7231-7232, U+7236, U+723D, U+7247-7248, U+7259, U+725B, U+7261, U+7267, U+7269, U+7272, U+7275, U+7279-727A, U+727D, U+7280, U+72AF, U+72B6, U+72C2, U+72C4, U+72E9, U+72EC-72ED, U+72F1, U+730E, U+731B-731C, U+732E, U+7336, U+733F, U+7368, U+7375, U+7387, U+7389, U+738B, U+739B, U+73A9, U+73AB, U+73AF-73B0, U+73B2, U+73C0, U+73CA, U+73CD, U+73E0, U+73ED, U+7403, U+7406, U+7410, U+7425, U+742F, U+7434-7436, U+743C, U+745A, U+745E-745F, U+7463, U+7470, U+74CA, U+74CF, U+74E3, U+7518, U+751A, U+751C, U+751F, U+7528, U+752B, U+7530-7531, U+7533, U+7535, U+7537-7538, U+753B, U+7545, U+754C, U+754F, U+7559, U+7565, U+756B, U+7570, U+7576, U+758F, U+7591, U+7597, U+75AE, U+75B2, U+75BC, U+75BE, U+75C5, U+75D5, U+75DB, U+767B-767E, U+7684, U+7686, U+768E, U+76AE, U+76C8, U+76CA, U+76CF, U+76D6, U+76DB, U+76DF, U+76E1, U+76EE, U+76F4, U+76F8, U+76FC, U+76FE, U+7701, U+7709, U+770B, U+771F-7720, U+7737, U+773C, U+7740, U+7747, U+775B, U+7761, U+7763, U+776B, U+7792, U+77AC, U+77DB, U+77E2-77E3, U+77E5, U+77ED, U+77F3, U+7801, U+780D, U+7814, U+7827, U+7834, U+7840, U+786C, U+786E, U+788C-788E, U+78A7, U+78B0, U+78E8, U+793A, U+793C, U+793E, U+7947-7948, U+7956-7957, U+795D-795E, U+7968, U+796D, U+7977-7978, U+7981, U+7984, U+798F, U+79B9, U+79BB, U+79BD, U+79C0-79C1, U+79CB, U+79CD, U+79D1, U+79D8, U+79E6, U+79E9, U+79EF-79F0, U+79FB, U+7A00, U+7A0B, U+7A0D, U+7A1C, U+7A21, U+7A23, U+7A33, U+7A3D, U+7A3F, U+7A60, U+7A76-7A77, U+7A79-7A7A, U+7A7F, U+7A81, U+7A84, U+7A97, U+7AA6, U+7AAE, U+7ABA, U+7AC7, U+7ACB, U+7AD6, U+7AD9, U+7ADE-7AE0, U+7AE5, U+7AEF, U+7AF9, U+7AFF, U+7B11, U+7B14, U+7B1B, U+7B26, U+7B28, U+7B2C, U+7B3A, U+7B3C, U+7B49, U+7B51, U+7B54, U+7B56, U+7B5B, U+7B7E, U+7B80, U+7B87, U+7B97, U+7BA1, U+7BAD, U+7BC0, U+7BC7, U+7BDD, U+7C2A, U+7C3E, U+7C4D, U+7C73, U+7C7B, U+7C92, U+7C97, U+7C9F, U+7CAE, U+7CB9, U+7CBE, U+7CFB, U+7D04-7D05, U+7D0A, U+7D20, U+7D22, U+7D27, U+7D2B, U+7D2F-7D30, U+7D42, U+7D55, U+7D71-7D72, U+7D93, U+7DAD, U+7DBA, U+7DD2, U+7DE8, U+7DEF, U+7E23, U+7E37, U+7E3D-7E3E, U+7E41, U+7E54, U+7E8C, U+7E96, U+7EA0, U+7EA2, U+7EA6-7EA7, U+7EAA-7EAC, U+7EAF, U+7EB1-7EB3, U+7EB5-7EB9, U+7EBD, U+7EBF, U+7EC3-7EC4, U+7EC6-7EC8, U+7ECA, U+7ECD, U+7ECF, U+7ED3, U+7ED5, U+7ED8-7ED9, U+7EDC-7EDD, U+7EDF, U+7EE3, U+7EE7, U+7EE9-7EEA, U+7EED-7EEE, U+7EF4-7EF5, U+7EF7, U+7EFC, U+7EFF-7F00, U+7F13, U+7F15-7F16, U+7F18, U+7F1A, U+7F20, U+7F24, U+7F29-7F2A, U+7F3A, U+7F51, U+7F54-7F55, U+7F57, U+7F5A, U+7F6A, U+7F6E, U+7F72, U+7F81, U+7F85, U+7F88, U+7F8A, U+7F8E, U+7F9E, U+7FA1, U+7FA3-7FA4, U+7FA8-7FA9, U+7FB2, U+7FBD, U+7FC1, U+7FCC, U+7FD4, U+7FE9, U+7FF0, U+7FFB-7FFC, U+8000-8001, U+8003, U+8005, U+800C, U+8010, U+8017, U+8033, U+8036, U+803B, U+8046, U+804C, U+8054, U+805A, U+805E, U+8072, U+8074, U+807D, U+8089, U+80A1, U+80AF, U+80C1, U+80C3, U+80CC, U+80DC, U+80E5, U+80FD, U+8102, U+8106, U+8109, U+810F, U+8111, U+811A, U+8129, U+8131, U+8138, U+814A, U+8150, U+8154, U+8179, U+817B, U+81C2, U+81C6, U+81E3, U+81E8, U+81EA, U+81ED, U+81F3-81F4, U+81FA, U+81FE, U+8206-820A, U+820D, U+8212, U+821C, U+821E-821F, U+822A, U+822C, U+8239, U+8270, U+8272-8273, U+827A, U+827E, U+8282, U+8292, U+8299, U+82A5, U+82AC, U+82B1, U+82B3, U+82B7, U+82BD, U+82C7, U+82CD, U+82CF, U+82D1, U+82D4, U+82DF, U+82E5-82E6, U+82F1, U+82F9, U+8303, U+8305, U+830E, U+832B, U+8336, U+8343, U+8349, U+8352, U+8363, U+836B, U+8377, U+838E, U+83AB, U+83B1-83B2, U+83B7, U+83B9-83BA, U+83CA, U+83EF, U+83F2, U+840A-840B, U+8424-8427, U+842C, U+843D, U+8449, U+8457, U+846C, U+8473, U+848B, U+8499, U+84C4, U+84D1, U+84DD, U+84EC, U+84EE, U+853D, U+8559, U+8564, U+856D, U+859B, U+85A6, U+85AA, U+85C9, U+85CF, U+85D3, U+8605, U+8607, U+860B, U+862D, U+864E-864F, U+8651, U+8655, U+865A-865B, U+865E, U+866B, U+867D, U+868C, U+8695, U+8709, U+8721, U+8747, U+8749, U+8763, U+878D, U+87A2, U+87F2, U+881F, U+8836, U+8840, U+8846, U+884C-884D, U+8854, U+885E, U+8861, U+8863, U+8865, U+8868, U+886B-886C, U+8870, U+8877, U+887E, U+888B, U+88AB, U+88AD, U+88C1-88C2, U+88C5, U+88E1, U+88F3-88F4, U+88F8-88F9, U+8907, U+892A, U+8944, U+897F, U+8981, U+8986, U+898B, U+8993, U+8996, U+89AA, U+89BA, U+89BD, U+89C0-89C2, U+89C4-89C6, U+89C8-89C9, U+89D2, U+89E3, U+89E6, U+8A00, U+8A08, U+8A18, U+8A3B, U+8A50, U+8A54, U+8A5E, U+8A60, U+8A69, U+8A71, U+8A89, U+8A93, U+8A9E, U+8AA0, U+8AAA, U+8AB0, U+8ABF, U+8ACB, U+8AEB, U+8AF7, U+8B02, U+8B1D, U+8B2B, U+8B49, U+8B58, U+8B66, U+8B6C, U+8B8A, U+8BA1-8BA2, U+8BA4-8BA5, U+8BA8-8BA9, U+8BAE-8BB0, U+8BB2, U+8BB8, U+8BBA, U+8BBC-8BBF, U+8BC1, U+8BC4-8BC6, U+8BC9-8BCA, U+8BCD, U+8BD1, U+8BD5, U+8BD7-8BDA, U+8BDD, U+8BE2, U+8BE5-8BE6, U+8BEC-8BEF, U+8BF1, U+8BF4, U+8BF7-8BF8, U+8BFA-8BFB, U+8C01, U+8C03, U+8C05, U+8C08, U+8C0A-8C0B, U+8C0E-8C10, U+8C13, U+8C22-8C23, U+8C27-8C28, U+8C2A, U+8C2C, U+8C31, U+8C34, U+8C37, U+8C41, U+8C46, U+8C48, U+8C61, U+8C6A, U+8C79, U+8C8C, U+8CA0, U+8CA7, U+8CAA, U+8CB3-8CB4, U+8CE2, U+8CE6, U+8CEA, U+8D08, U+8D1E-8D1F, U+8D21-8D26, U+8D28-8D29, U+8D2B-8D2D, U+8D2F, U+8D31, U+8D34-8D35, U+8D39, U+8D44, U+8D4B, U+8D4E-8D4F, U+8D56, U+8D5B, U+8D5E, U+8D60, U+8D64, U+8D66, U+8D6B, U+8D70, U+8D74, U+8D76-8D77, U+8D81, U+8D85, U+8D8A-8D8B, U+8DA3, U+8DB3, U+8DC3, U+8DCB, U+8DDD, U+8DDF, U+8DE1, U+8DE8, U+8DEF, U+8DF3, U+8E0F-8E10, U+8E2A, U+8E30, U+8E64, U+8EAB, U+8ECA, U+8ECD, U+8ED2, U+8EFE-8EFF, U+8F09, U+8F12, U+8F15, U+8F1D, U+8F2F, U+8F66, U+8F6C, U+8F6E-8F6F, U+8F7B-8F7D, U+8F83-8F85, U+8F89, U+8F8B, U+8F91, U+8F93, U+8F9B-8F9C, U+8F9E, U+8FA6, U+8FA8-8FA9, U+8FAD, U+8FB0-8FB1, U+8FB9, U+8FBD-8FBE, U+8FC1, U+8FC5, U+8FC7, U+8FCE, U+8FD0-8FD1, U+8FD4, U+8FD8-8FD9, U+8FDB-8FDF, U+8FEA-8FEB, U+8FF0, U+8FF7, U+8FF9, U+8FFD, U+9000-9003, U+9006, U+9009-900A, U+900F-9010, U+9012, U+9014, U+9017, U+901A, U+901D-9020, U+9022, U+9038, U+903C, U+903E, U+9042, U+9047, U+904A-904B, U+904D-904E, U+9053-9054, U+9057, U+9060, U+9063, U+9065, U+906D-906E, U+9077-9078, U+907F-9080, U+9084, U+908A, U+90A3, U+90A6, U+90AA, U+90BB, U+90CA, U+90D1, U+90E1, U+90E8, U+90FD, U+9109, U+912D, U+9149, U+914C-914D, U+9152, U+915D, U+916C, U+9177-9178, U+917F, U+9189, U+9192, U+91C7, U+91CA, U+91CC-91CF, U+91D1, U+91E3, U+9234, U+9274, U+9280, U+92B7, U+932B, U+932F, U+9396, U+93C3, U+93E1, U+9488, U+9493, U+949F, U+94A2, U+94A6, U+94B1, U+94C3, U+94ED, U+94F6, U+94FA, U+94FE, U+9500-9501, U+9510, U+9519, U+9521, U+9526, U+952E, U+9547, U+955C, U+955E, U+9577, U+957F-9580, U+958B, U+9592-9593, U+95A8, U+95CA, U+95D5, U+95DA, U+95E8, U+95EA, U+95ED-95EE, U+95F2, U+95F4, U+95F9-95FB, U+9605, U+9610, U+9614-9615, U+9619, U+961F, U+9632-9636, U+963B, U+963F, U+9644-9646, U+9648, U+964C-964D, U+9650, U+9661-9662, U+9664, U+9669-966A, U+9670, U+9675-9678, U+967D, U+968F-9690, U+9694, U+969B-969C, U+96A8, U+96B0-96B1, U+96BE, U+96C1, U+96C4-96C6, U+96D5-96D6, U+96D9, U+96DC, U+96E2-96E3, U+96E8, U+96EA, U+96F2, U+96F6-96F7, U+9700, U+9707, U+970D, U+9711, U+9716, U+971C, U+971E, U+9727, U+972D, U+9732, U+9748, U+9752, U+9756, U+9759, U+975C, U+975E, U+9760, U+9762, U+9769, U+978B, U+97B5, U+97E6, U+97F3, U+97F5, U+97FF, U+9803, U+9808, U+982D, U+984C, U+9858, U+985E, U+9875-9877, U+9879-987B, U+987E-987F, U+9882, U+9884, U+9886, U+9891, U+9897-9898, U+989C-989D, U+98A8, U+98C4, U+98CE, U+98D8, U+98DB, U+98DE-98DF, U+98F2, U+98FE, U+990D, U+9918, U+991E, U+996E-9971, U+9986, U+9988, U+9996, U+9999, U+99AC, U+99AE, U+9A37, U+9A5A, U+9A6C, U+9A6F-9A71, U+9A7B, U+9A7E-9A7F, U+9A83-9A84, U+9A8C, U+9A97, U+9A9A, U+9AA8, U+9AB8, U+9AD4, U+9AD8-9AD9, U+9B1F, U+9B3C, U+9B41-9B42, U+9B54, U+9B5A, U+9BAB, U+9C7C, U+9C9B-9C9C, U+9CE5, U+9CF4, U+9D08, U+9D3B, U+9D51, U+9DAF, U+9DC1, U+9DD7, U+9E1D, U+9E1F, U+9E23, U+9E25, U+9E3F, U+9E43, U+9E45, U+9E7F, U+9E97, U+9EA6, U+9EBB, U+9EC3-9EC4, U+9ED1, U+9ED8, U+9EDE, U+9EEF, U+9F13, U+9F4A, U+9F50, U+9F61, U+9F84, U+9F8D, U+9F99, U+FF01, U+FF08-FF09, U+FF0B-FF0C, U+FF0F, U+FF1A-FF1B, U+FF1F;
}

:root {
  color-scheme: light;
  --paper: #f7f7f2;
  --white: #ffffff;
  --surface: #ffffff;
  --surface-soft: #f0f2eb;
  --ink: #252d29;
  --body: #46534b;
  --muted: #626d64;
  --line: #dce2d9;
  --green: #245346;
  --green-hover: #193f35;
  --sage: #e7eee6;
  --gold: #805d35;
  --warning: #76521d;
  --warning-bg: #f8f1e3;
  --error: #9a302b;
  --error-bg: #fff1ee;
  --focus: #286c9d;
  /* CJK is Kai throughout; Latin UI text stays familiar and quietly proportioned. */
  --sans: "Resonance Local Kai", "Resonance Kai Current", "Resonance Kai", "Times New Roman", "Times", "Noto Serif", serif;
  --display-sans: var(--sans);
  /* Explanations and original passages set their Latin text in Times. */
  --reading: "Resonance Local Kai", "Resonance Kai Current", "Resonance Kai", "Times New Roman", "Times", "Noto Serif", serif;
  /* Pinyin/IPA keep full diacritic coverage without decorative letter spacing. */
  --phonetic: "Resonance Local Kai", "Resonance Kai Current", "Resonance Kai", "Segoe UI", "Arial", "Noto Sans", sans-serif;
  --reading-leading: 1.88;
  --body-tracking: .015em;
  --baseline: .25rem;
  --panel-pad: clamp(22px, 2vw, 28px);
  --column-gap: clamp(26px, 3vw, 42px);
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --radius-sm: .4rem;
  --radius: .65rem;
  --radius-lg: .65rem;
  --shadow: none;
  --shadow-raised: 0 4px 16px #23372d08;
  --page-width: 1360px;
  --gutter: clamp(24px, 3.8vw, 52px);
}

* { box-sizing: border-box; }
html { font-size: 112.5%; scroll-behavior: smooth; scroll-padding-top: 28px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 1rem/var(--reading-leading) var(--sans); letter-spacing: var(--body-tracking); font-synthesis: none; -webkit-font-smoothing: antialiased; font-kerning: normal; }
button, input, textarea, select { font: inherit; color: inherit; }
button, input, textarea, select, summary, a { -webkit-tap-highlight-color: transparent; }
button, select, summary { cursor: pointer; }
button { background: none; border: 0; }
button, a, input, textarea, select, summary { touch-action: manipulation; }
button:disabled { opacity: .52; cursor: not-allowed; }
input, textarea, select { min-width: 0; max-width: 100%; }
input:not([type=checkbox]):not([type=radio]), textarea, select { border: 1px solid #aab6ab; border-radius: var(--radius-sm); background: var(--white); padding: 11px 14px; line-height: 1.65; }
input:not([type=checkbox]):not([type=radio]), select { min-height: 46px; }
input::placeholder, textarea::placeholder { color: #6a746c; opacity: 1; }
textarea { resize: vertical; min-height: 110px; width: 100%; }
input[type=checkbox], input[type=radio] { accent-color: var(--green); width: 18px; height: 18px; flex: 0 0 18px; }
input[aria-invalid=true], textarea[aria-invalid=true] { border-color: var(--error); }
input:focus, textarea:focus, select:focus { border-color: var(--green); }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration-thickness: 1px; text-underline-offset: 4px; }
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3, h4 { text-wrap: balance; overflow-wrap: anywhere; }
p, li, dd { overflow-wrap: anywhere; }
/* One reading stack across prose and quotations. CJK still resolves to Kai. */
p, li, dd, blockquote { font-family: var(--reading); }
/* Navigation and procedural instructions keep the UI Latin face. */
.site-header, .site-header p, .site-footer, .site-footer p, .guide-step, .guide-step p, .guide-step small { font-family: var(--sans); }
strong { font-weight: 600; }
small { font-size: 0.875rem; }
fieldset { min-width: 0; }
blockquote { margin: 1rem 0; }
svg { flex-shrink: 0; vertical-align: middle; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
main:focus { outline: none; }
::selection { background: #d6e7d8; color: var(--ink); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -100px; left: 20px; padding: 12px 20px; background: var(--green); color: #fff; z-index: 100; border-radius: var(--radius-sm); }
.skip-link:focus { top: 12px; }

/* A quiet shell. The interleaved rings in the brand remain Resonance's own. */
.site-header { max-width: var(--page-width); margin: 0 auto; min-height: 90px; padding: 15px var(--gutter); display: flex; align-items: center; gap: clamp(24px, 4vw, 64px); border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 46px; border-radius: 6px; background: var(--green); color: #fff; font: 500 1.5rem/1 var(--sans); }
.brand-word { font: 600 1.25rem/1.3 var(--display-sans); letter-spacing: .08em; }
.brand-word > span { display: block; font: 600 0.625rem/1.5 var(--sans); letter-spacing: .16em; margin-top: 3px; }
.site-header nav { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 0; }
.site-header nav > a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 15px; font-size: 0.9375rem; font-weight: 500; color: var(--body); border-radius: var(--radius-sm); }
.site-header nav > a:hover { color: var(--ink); background: #ebeee6; }
.site-header nav > a[aria-current] { color: var(--green); background: var(--sage); }
.header-tools { margin-left: auto; display: flex; gap: 12px; align-items: center; min-width: 0; }
.local-tag { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 0.875rem; margin-left: auto; white-space: nowrap; }
.local-tag i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.local-tag > span { margin-left: 3px; }
.secondary-nav, .resource-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 4px 20px; max-width: var(--page-width); margin: 0 auto; padding: 8px var(--gutter) 0; font-size: 0.875rem; color: var(--muted); }
.secondary-nav a, .resource-nav a { display: inline-flex; min-height: 44px; align-items: center; }
.secondary-nav a:hover, .resource-nav a:hover { color: var(--green); text-decoration: underline; }
.site-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; max-width: var(--page-width); padding: 26px var(--gutter); margin: 24px auto 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.875rem; }
.site-footer > span:first-child { font-size: 0.8125rem; font-weight: 600; letter-spacing: .08em; }
.site-footer > span:last-child { margin-left: auto; }
.site-footer p { font-family: var(--sans); }

/* Shared page grammar. Titles orient; the work remains above the fold. */
.studio-page, .private-page, .library-page, .detail-page, .sources-page, .framework-page, .home-page { max-width: var(--page-width); padding: 32px var(--gutter) 64px; margin: auto; }
.eyebrow { color: var(--muted); font-size: 0.8125rem; font-weight: 600; letter-spacing: .12em; line-height: 1.6; }
.eyebrow > span { font-weight: 400; letter-spacing: .02em; margin-left: 12px; }
.page-intro, .compact-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px 32px; margin-bottom: 26px; }
.page-intro h1, .compact-intro h1 { font-family: var(--display-sans); font-size: clamp(1.75rem, 2.7vw, 2.375rem); letter-spacing: .025em; font-weight: 500; line-height: 1.5; margin-top: 9px; }
.page-intro > p, .compact-intro > p, .page-intro > div > p:not(.eyebrow), .compact-intro > div > p:not(.eyebrow) { color: var(--body); font-size: 1rem; max-width: 60ch; margin-top: 12px; }
.page-intro > a, .compact-intro > a { flex-shrink: 0; }
.section-title { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 0 0 18px; }
.section-title h2, h2.section-title { font-size: 1.375rem; font-weight: 600; line-height: 1.5; }
.section-title > span, .section-caption, .comparison-note { font-size: 0.875rem; color: var(--muted); }
.section-caption { margin-bottom: 16px; }
.accent { color: var(--gold); }
.text-link, .back-link, .evidence-link { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; min-height: 44px; max-width: 100%; font-size: 0.875rem; color: var(--green); overflow-wrap: anywhere; }
.text-link:hover, .back-link:hover, .evidence-link:hover { text-decoration: underline; }
.text-link svg, .back-link svg { width: 15px; height: 15px; }
.back-link { color: var(--body); margin: -7px 0 10px; }
.evidence-link { display: inline; min-height: 0; text-decoration: underline; text-decoration-color: #9aad9a; text-underline-offset: 4px; }
.badge, .tag { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 5px; font-size: 0.875rem; line-height: 1.6; color: var(--green); background: var(--sage); overflow-wrap: anywhere; }
.badge.muted, .tag.muted { background: #edf0ea; color: var(--body); }
.badge.review, .badge.warning { background: var(--warning-bg); color: var(--warning); }
.badge.experimental { background: #edf0f8; color: #4d597a; }

/* The same controls are used by the workbench, saved cards, and case feedback. */
.button, .primary-button, .secondary-button, .quiet-button, .pagination button, .copy-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 17px; border-radius: var(--radius-sm); font-weight: 500; line-height: 1.5; text-align: center; font-size: 0.9375rem; transition: background .16s ease, border-color .16s ease; }
.button, .primary-button { background: var(--green); color: #fff; border: 1px solid var(--green); }
.button:hover, .primary-button:hover { background: var(--green-hover); border-color: var(--green-hover); }
.button.secondary, .secondary-button, .pagination button { background: var(--white); color: var(--green); border: 1px solid #b4c1b4; }
.button.secondary:hover, .secondary-button:hover, .pagination button:hover:not(:disabled) { background: var(--sage); border-color: #8da58e; }
.quiet-button, .copy-button { color: var(--green); background: transparent; border: 1px solid transparent; padding-left: 10px; padding-right: 10px; }
.quiet-button:hover, .copy-button:hover { background: var(--sage); }
.copy-button svg { width: 15px; height: 15px; }
.segmented { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; background: #ecefe8; border: 1px solid var(--line); border-radius: 11px; width: fit-content; max-width: 100%; }
.segmented button, .segmented label { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 15px; border-radius: 7px; font-size: 0.9375rem; color: var(--body); }
.segmented button[aria-pressed=true], .segmented button[aria-selected=true], .segmented label:has(input:checked) { background: var(--white); color: var(--green); box-shadow: 0 1px 4px #23372d10; font-weight: 600; }
.segmented input { margin: 0 7px 0 0; }
.field { display: grid; align-content: start; gap: 8px; min-width: 0; }
.field > label, .field > span:first-child, .field legend, .studio-form > label, .review-form label, .save-panel label { font-size: 0.9375rem; font-weight: 500; }
.field small, .field-hint, .field-note { color: var(--muted); font-size: 0.875rem; font-weight: 400; }
.field input, .field textarea, .field select { width: 100%; }
.field-row, .save-grid, .review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.field-row > *, .save-grid > *, .review-grid > * { min-width: 0; }
.form-actions, .candidate-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 12px; }
.status-note, .local-notice { color: var(--muted); font-size: 0.875rem; line-height: var(--reading-leading); }
.status-note { margin-top: 12px; }
.local-notice { margin-top: 22px; padding: 15px 18px; border-top: 1px solid var(--line); }
.inline-error { color: var(--error); background: var(--error-bg); border-left: 3px solid var(--error); border-radius: 5px; padding: 12px 15px; font-size: 0.9375rem; margin: 12px 0; }
.notice-panel { padding: 18px 22px; background: var(--warning-bg); border: 1px solid #e1cfa8; border-radius: var(--radius-sm); font-size: 0.9375rem; color: var(--warning); margin: 18px 0; }
.notice-panel h2, .notice-panel h3 { font-size: 1.0625rem; margin-bottom: 6px; }
.notice-panel p + p { margin-top: 8px; }
.unsaved-indicator { color: var(--warning); font-size: 0.875rem; }
.loading, .not-found { min-height: 52vh; display: flex; align-items: center; justify-content: center; padding: 40px var(--gutter); gap: 18px; }
.not-found { flex-direction: column; text-align: center; }
.not-found h1 { font-size: 2rem; }
.not-found p { color: var(--muted); max-width: 60ch; }
.notice { padding: 24px; }
.toast { position: fixed; bottom: 26px; left: 50%; transform: translate(-50%, 10px); max-width: min(620px, calc(100vw - 32px)); background: var(--green); color: #fff; border-radius: 11px; padding: 13px 20px; font-size: 0.9375rem; z-index: 80; opacity: 0; visibility: hidden; transition: opacity .18s, transform .18s; box-shadow: var(--shadow-raised); }
.toast.visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

/* Workbench. A bounded source column keeps the author in control. */
.workspace-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: var(--column-gap); }
.source-panel, .results-panel { min-width: 0; }
.source-panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--panel-pad); box-shadow: var(--shadow); }
.source-panel > h2, .results-panel > h2, .results-panel > header h2, .source-panel > header h2 { font-size: 1.25rem; font-weight: 600; margin-bottom: 18px; }
.studio-form { display: grid; gap: 1.25rem; }
.studio-form fieldset, .save-panel fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.studio-form legend, .save-panel legend { font-size: .9375rem; font-weight: 600; margin-bottom: 9px; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px 18px; margin-bottom: 16px; }
.panel-heading h2 { font-size: 1.25rem; font-weight: 600; line-height: 1.5; }
.panel-heading .eyebrow { margin-bottom: 9px; }
.panel-heading > .tag { margin-top: 3px; }
.results-panel .panel-heading { align-items: center; margin-bottom: 3px; }
.results-panel .panel-heading h2 { font-size: 1.4375rem; }
.results-panel #studio-results > .status-note { margin: 10px 0 18px; }
.results-panel #studio-results > .field { margin-bottom: 18px; }
.studio-form #source-expression { font: 400 1.875rem/1.5 var(--sans); padding-top: 12px; padding-bottom: 12px; }
.studio-form #source-context { min-height: 104px; }
.try-examples { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 7px; border-top: 1px solid var(--line); margin-top: 23px; padding-top: 16px; }
.try-examples > span { color: var(--muted); font-size: .875rem; flex-basis: 100%; margin-bottom: 2px; }
.try-examples .quiet-button { padding-inline: 10px; font-size: .9375rem; }
.local-notice > summary { min-height: 44px; padding: 8px 0; color: var(--green); }
.local-notice > p { margin-top: 9px; }
.local-notice[open] { background: #f0f3ec; border-radius: var(--radius-sm); }
.status-note.stale { padding: 13px 16px; background: var(--warning-bg); border-left: 3px solid #a07a37; border-radius: 5px; color: var(--warning); }
.candidate-state { color: var(--muted); font-size: .875rem; margin-left: auto; }
.studio-candidate .candidate-top { align-items: center; flex-wrap: wrap; margin-bottom: 11px; }
.studio-candidate .candidate-number { margin-top: 0; }
.studio-candidate .candidate-top .tag { font-size: .875rem; }
.result-footer { margin-top: 23px; padding-top: 20px; border-top: 1px solid var(--line); }
.result-footer .status-note { margin-top: 8px; }
.empty-mark { display: grid; place-items: center; width: 55px; height: 55px; margin: 0 auto 17px; color: var(--green); font: 400 1.875rem/1 var(--sans); border: 1px solid #bdcbb7; border-radius: 50%; }
.studio-form #studio-expression, .studio-form textarea[name=expression], .source-expression { font-size: 1.4375rem; line-height: 1.7; min-height: 116px; }
.studio-form > .primary-button { justify-self: start; }
.optional-fields { padding-top: 1px; }
.optional-fields > summary { color: var(--body); min-height: 44px; font-size: 0.9375rem; }
.optional-fields[open] > summary { margin-bottom: 16px; }
.optional-fields .field + .field, .optional-fields .field-row + .field { margin-top: 18px; }
.results-panel > header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.results-panel > header > p { color: var(--muted); font-size: 0.875rem; }
.results-panel > header h2 { margin: 0; }
.candidate-stack { display: grid; gap: 1.25rem; }
.studio-candidate { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--panel-pad); box-shadow: var(--shadow); min-width: 0; }
.candidate-top { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 14px; }
.candidate-top > div { flex: 1; min-width: 0; }
.candidate-number { display: grid; place-items: center; width: 29px; height: 29px; flex: 0 0 29px; background: var(--surface-soft); border-radius: 50%; color: var(--muted); font-size: 0.8125rem; font-weight: 600; margin-top: 5px; }
.studio-candidate h3, .studio-candidate .candidate-text { font: 400 clamp(1.625rem, 2.2vw, 2.125rem)/1.5 var(--sans); letter-spacing: .015em; overflow-wrap: anywhere; }
.studio-candidate h3[lang=zh-CN] { font-size: 1.75rem; letter-spacing: .025em; }
.studio-candidate .candidate-top .badge { margin-top: 8px; }
.studio-candidate > p, .studio-candidate .candidate-top p { color: var(--body); margin-top: 10px; font-size: 0.9375rem; }
.tradeoff-line { color: var(--body); font-size: 0.9375rem; line-height: var(--reading-leading); margin: 12px 0; }
.tradeoff-line strong { color: var(--ink); margin-right: 8px; }
.studio-candidate .candidate-actions { border-top: 1px solid var(--line); margin-top: 17px; padding-top: 13px; }
.studio-candidate details { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 9px; font-size: 0.9375rem; }
.studio-candidate summary { min-height: 44px; color: var(--green); }
.studio-candidate details p { color: var(--body); margin: 12px 0; }
.more-candidates { margin-top: 18px; }
.more-candidates > summary { min-height: 44px; color: var(--green); padding: 7px 0; }
.more-candidates .candidate-stack { margin-top: 12px; }
.empty-state { padding: 38px 28px; text-align: center; border: 1px dashed #b8c5b7; background: #f1f4ed; border-radius: var(--radius); grid-column: 1 / -1; }
.empty-state h2, .empty-state h3 { font-size: 1.3125rem; font-weight: 500; line-height: 1.6; }
.empty-state p { margin: 10px auto 21px; color: var(--body); max-width: 50ch; font-size: 0.9375rem; }
.empty-state > button, .empty-state > a { margin: 4px; }
.empty-glyph { color: #6c866c; font: 2.8125rem/1.4 var(--sans); margin-bottom: 12px; }
.results-panel > .empty-state { min-height: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.save-panel { background: #edf3ea; border: 1px solid #b8cbb4; border-radius: var(--radius); padding: 24px; margin: 23px 0 0; }
.save-panel h2, .save-panel h3 { font-size: 1.3125rem; margin-bottom: 8px; }
.save-panel > p { color: var(--body); margin-bottom: 18px; font-size: 0.9375rem; }
.save-panel form { display: grid; gap: 18px; }
.save-panel .field-row, .save-panel .save-grid { margin-top: 0; }
.save-panel .form-actions { margin-top: 5px; }
.voice-rule-panel { padding: 20px 0 0; margin-top: 20px; border-top: 1px solid var(--line); }
.voice-rule-panel h2, .voice-rule-panel h3 { font-size: 1.125rem; margin-bottom: 9px; }
.voice-rule-panel p, .voice-rule-panel label { font-size: 0.9375rem; color: var(--body); }
.voice-rule-panel textarea { margin-top: 9px; }

/* Private cards. A practical collection, separate from public judgments. */
.private-toolbar { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); gap: 14px; margin-bottom: 26px; align-items: end; }
.private-toolbar label { display: grid; gap: 7px; font-size: 0.875rem; color: var(--body); }
.private-toolbar input, .private-toolbar select { width: 100%; }
.private-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.private-card { padding: var(--panel-pad); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); min-width: 0; }
.private-card .card-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
.card-title { font: 400 1.75rem/1.45 var(--sans); margin: 15px 0 5px; overflow-wrap: anywhere; }
.private-card h2, .private-card h3 { font-size: 1.4375rem; margin: 13px 0 8px; overflow-wrap: anywhere; }
.private-card h2.card-title { font: 400 1.75rem/1.5 var(--sans); }
.private-card > .card-text { font: 400 1.8125rem/1.5 var(--sans); color: var(--gold); margin: 8px 0 13px; }
.private-card > p:not(.card-text):not(.status-note):not(.notice-panel) { color: var(--body); font-size: .9375rem; }
.private-card .compact-tags { margin-top: 17px; margin-bottom: 0; }
.private-page #private-count { margin-bottom: 19px; }
.voice-rule-panel > details > summary { font-size: 1.125rem; font-weight: 500; min-height: 44px; padding: 8px 0; }
.voice-rule-panel > details > summary > span { font-size: .875rem; font-weight: 400; color: var(--muted); margin-left: 10px; }
.voice-rule-panel form { display: grid; gap: 18px; margin-top: 20px; }
.voice-rule-panel form > .secondary-button { justify-self: start; }
.private-card .card-translation { font: 400 1.8125rem/1.45 var(--sans); color: var(--gold); margin: 8px 0; }
.card-text { color: var(--body); font-size: 0.9375rem; line-height: var(--reading-leading); margin: 10px 0; }
.private-card .card-text { white-space: pre-wrap; }
.private-card .card-meta, .card-meta { color: var(--muted); font-size: 0.875rem; line-height: 1.7; }
.private-card .card-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.card-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--line); padding-top: 13px; margin-top: 18px; }
.private-card details { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 12px; }
.private-card summary { min-height: 44px; color: var(--green); font-size: 0.9375rem; }
.private-card dl { font-size: 0.9375rem; }
.private-card dt { font-weight: 600; margin-top: 11px; }
.private-card dd { margin: 3px 0 12px; color: var(--body); }

/* Public human feedback is contextual; the count is a factual status label. */
.review-panel { margin-top: 34px; padding-top: 27px; border-top: 1px solid var(--line); }
.review-panel > header { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.review-panel h2 { font-size: 1.375rem; font-weight: 600; }
.review-summary { background: var(--surface-soft); border-radius: var(--radius-sm); padding: 16px 18px; margin: 16px 0; font-size: 0.9375rem; color: var(--body); }
.review-count { display: inline-flex; align-items: center; gap: 8px; font-size: 0.875rem; color: var(--muted); }
.review-section { margin-top: 36px; border-top: 1px solid var(--line); padding-top: 26px; }
.review-header { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px 22px; margin-bottom: 19px; }
.review-header h2 { font-size: 1.5rem; font-weight: 500; margin-top: 8px; }
.review-header > span, .review-draft-status { font-size: 0.875rem; color: var(--muted); }
.review-status { color: var(--body); background: var(--surface-soft); padding: 15px 18px; border-radius: var(--radius-sm); margin: 15px 0; font-size: 0.9375rem; }
.review-status ul { padding-left: 20px; margin: 10px 0 0; }
.review-status li + li { margin-top: 10px; }
.review-status li > span { color: var(--muted); font-size: 0.875rem; }
.review-note { color: var(--muted); font-size: 0.875rem; line-height: var(--reading-leading); margin: 12px 0; }
.review-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 14px; margin: 16px 0; }
.review-actions > span { color: var(--muted); font-size: 0.875rem; }
.review-editor { padding: 12px 0; margin: 10px 0; border-top: 1px solid var(--line); }
.review-editor > summary, .review-form > details > summary, .review-item summary { color: var(--green); min-height: 44px; padding: 8px 0; }
.review-field { display: grid; gap: 8px; font-size: 0.9375rem; font-weight: 500; min-width: 0; }
.review-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.review-form-row > *, .review-field input, .review-field select, .review-field textarea { min-width: 0; width: 100%; }
.review-form select { text-overflow: ellipsis; }
.review-form > details > .review-field + .review-field { margin-top: 17px; }
.review-form > details[open] > summary { margin-bottom: 10px; }
.review-criteria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 20px; }
.review-criteria legend { grid-column: 1 / -1; }
.review-criteria label { min-width: 0; }
.review-list { list-style: none; padding: 0; margin: 23px 0; }
.review-item { padding: 20px 0; border-top: 1px solid var(--line); }
.review-item > div > p { color: var(--body); white-space: pre-wrap; margin: 9px 0; }
.review-item details p { color: var(--body); font-size: 0.9375rem; white-space: pre-wrap; margin: 8px 0; }
.review-item .review-actions { margin: 6px 0 0; }
.review-error { color: var(--error); background: var(--error-bg); border-left: 3px solid var(--error); padding: 11px 14px; border-radius: 4px; font-size: 0.9375rem; margin: 13px 0; }
.review-dialog > .review-note, .review-dialog > .review-error, .review-dialog > [data-review-preview-content], .review-dialog > .review-field { margin: 18px 26px; }
.review-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 26px; border-bottom: 1px solid var(--line); }
.review-dialog-header h2 { font-size: 1.4375rem; line-height: 1.5; }
.review-close { min-height: 44px; min-width: 44px; padding: 8px; border-radius: 8px; color: var(--green); }
.review-close:hover { background: var(--sage); }
.review-preview { margin: 0; }
.review-preview > div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.review-preview dt { font-size: 0.875rem; color: var(--muted); margin-bottom: 7px; }
.review-preview dd { margin: 0; white-space: pre-wrap; line-height: var(--reading-leading); }
.review-dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 18px 26px; border-top: 1px solid var(--line); background: var(--paper); }
.review-form { display: grid; gap: 18px; margin-top: 20px; }
.review-form fieldset { padding: 0; border: 0; margin: 0; }
.review-form legend { font-size: 0.9375rem; font-weight: 600; margin-bottom: 10px; }
.review-form label:has(input[type=checkbox]), .review-form label:has(input[type=radio]), .check-label { display: flex; gap: 10px; align-items: center; min-height: 44px; font-weight: 400; line-height: 1.6; padding: 6px 0; }
.review-form input[type=checkbox], .review-form input[type=radio] { margin: 0; }
.review-form label > span, .check-label > span { min-width: 0; }
.review-dialog { width: min(720px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); border: 1px solid #bcc7bc; padding: 0; border-radius: 18px; background: var(--white); color: var(--ink); box-shadow: 0 24px 90px #142a3033; overflow: auto; }
.review-dialog::backdrop { background: #172b2866; }
.dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 24px 26px 19px; border-bottom: 1px solid var(--line); }
.dialog-header h2 { font-size: 1.4375rem; line-height: 1.5; }
.dialog-header > button { flex-shrink: 0; min-width: 44px; min-height: 44px; margin: -5px -10px 0 0; border-radius: 8px; }
.dialog-header > button:hover { background: var(--sage); }
.dialog-body { padding: 23px 26px; }
.dialog-body > p { margin-bottom: 17px; color: var(--body); }
.dialog-footer { padding: 17px 26px; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; border-top: 1px solid var(--line); background: var(--paper); }
.preview-field { margin: 0 0 15px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.preview-field > dt, .preview-field > span, .preview-field > strong { display: block; color: var(--muted); font-size: 0.875rem; margin-bottom: 6px; }
.preview-field > dd { margin: 0; }
.preview-field > p, .preview-field > dd { white-space: pre-wrap; font-size: 1rem; }

/* Literature browser: the rare allusions stay visible, with the source nearby. */
.library-content { display: grid; grid-template-columns: 185px minmax(0, 1fr); gap: 32px; align-items: start; }
.filters { min-width: 0; padding-right: 5px; }
.filters > .eyebrow { margin-bottom: 22px; }
.filters .eyebrow > span { display: block; margin: 4px 0 0; }
.filters fieldset { padding: 0; border: 0; margin: 0 0 22px; }
.filters legend, .filter-label { font-size: 0.875rem; color: var(--body); display: block; margin-bottom: 9px; }
.filters select { width: 100%; margin-bottom: 21px; font-size: 0.875rem; }
.direction-options { display: grid; gap: 5px; }
.direction-options button { display: flex; align-items: center; justify-content: space-between; gap: 9px; min-height: 44px; text-align: left; padding: 9px 12px; border-radius: 8px; color: var(--body); font-size: 0.9375rem; }
.direction-options button span { font-size: 0.875rem; color: var(--muted); }
.direction-options button[aria-pressed=true] { background: var(--sage); color: var(--green); font-weight: 600; }
.direction-options button:hover { background: #eaf0e5; }
.filter-foot { margin: 28px 0 10px; color: var(--muted); font-size: 0.875rem; }
.filters .text-link { margin-bottom: 6px; }
.results-area { min-width: 0; }
.search-box { display: flex; align-items: center; gap: 11px; min-height: 50px; border: 1px solid #aab6ab; border-radius: var(--radius-sm); background: var(--white); padding: 0 14px; color: var(--muted); }
.search-box:focus-within { outline: 3px solid var(--focus); outline-offset: 3px; }
.search-box input { border: 0 !important; outline: 0 !important; background: transparent !important; padding: 11px 0 !important; min-width: 0; flex: 1; font-size: 1rem; }
.search-box kbd { font: 0.875rem/1.5 var(--sans); min-width: 24px; text-align: center; border: 1px solid var(--line); border-radius: 4px; padding: 1px 5px; }
.result-toolbar, .result-count-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 18px; margin: 18px 0 13px; font-size: 0.9375rem; }
.result-toolbar > span { color: var(--muted); }
.result-count-row button { min-height: 44px; color: var(--green); padding: 8px; }
.sort-label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-size: 0.875rem; }
.sort-label select { font-size: 0.875rem; border-color: transparent; background: transparent; padding: 7px; }
.compact-count, .collection-note { font-size: 0.875rem; color: var(--muted); margin: 11px 0 20px; }
.collection-tabs, .mapping-tabs, .poetic-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.collection-tabs button, .mapping-tabs button, .poetic-tabs button { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; padding: 9px 14px; border: 1px solid #bdc9b9; border-radius: 9px; color: var(--body); background: transparent; font-size: 0.9375rem; }
.collection-tabs button:hover, .mapping-tabs button:hover, .poetic-tabs button:hover { background: var(--sage); }
.collection-tabs button[aria-pressed=true], .mapping-tabs button[aria-pressed=true] { background: var(--green); color: #fff; border-color: var(--green); }
.poetic-tabs button[aria-selected=true] { background: var(--sage); border-color: #7e9b7d; color: var(--green); }
.collection-tabs span { font-variant-numeric: tabular-nums; }
.entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.entry-card { display: flex; flex-direction: column; min-width: 0; padding: 28px 30px 0; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); transition: border-color .16s ease, box-shadow .16s ease; box-shadow: var(--shadow); }
.entry-card:hover { border-color: #9cb19a; box-shadow: var(--shadow-raised); }
.entry-card.featured { background: #f4f7ee; border-color: #bbccb0; }
.entry-card .card-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px 12px; }
.word-pair { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px 13px; margin: 17px 0 14px; }
.word-pair.solo { display: block; }
.word-pair h2, .entry-card h2 { font: 500 1.8125rem/1.5 var(--sans); letter-spacing: .02em; margin: 0; overflow-wrap: anywhere; }
.word-pair h2[lang=en] { letter-spacing: .015em; }
.word-pair > span { color: var(--muted); font-size: 1.0625rem; }
.word-pair > p, .card-translation { font: 400 1.8125rem/1.4 var(--sans); letter-spacing: .015em; color: var(--gold); overflow-wrap: anywhere; }
.card-sense, .card-note { color: var(--body); font-size: 0.9375rem; line-height: var(--reading-leading); margin: 3px 0 12px; }
.card-poem { color: var(--muted); font-size: 0.875rem; line-height: 1.7; margin-bottom: 15px; }
.compact-tags, .card-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; margin-bottom: 18px; }
.compact-tags { flex: 1; }
.card-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 13px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.875rem; }
.card-bottom i { font-style: normal; margin: 0 4px; }
.card-bottom svg { width: 16px; }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 22px; margin: 29px 0 0; }
.pagination span { font-size: 0.875rem; color: var(--muted); }
.library-end { text-align: center; color: var(--muted); padding-top: 30px; font-size: 0.875rem; }
.featured-allusion { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 23px; padding: 17px 23px; margin: -3px 0 27px; border: 1px solid #bdcdb3; border-radius: var(--radius-sm); background: #eef3e7; }
.featured-allusion > .eyebrow { color: var(--gold); }
.featured-allusion > strong { display: flex; align-items: baseline; flex-wrap: wrap; gap: 11px; font: 400 1.5625rem/1.5 var(--sans); }
.featured-allusion > strong i { font-size: 1rem; font-style: normal; color: var(--muted); }
.featured-allusion > strong span:last-child { color: var(--gold); }
.featured-allusion-focus { display: flex; flex-wrap: wrap; gap: 6px; }
.featured-allusion > small { color: var(--green); font-size: 0.875rem; margin-left: auto; }
.featured-allusion:hover { border-color: #849e7a; }
.featured-allusion:hover > strong { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.mythic-shelf { padding: 22px 0; margin: 20px 0 25px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.mythic-shelf > header { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 15px; }
.mythic-shelf h2 { font: 500 1.375rem/1.5 var(--sans); }
.mythic-shelf header > span { font-size: 0.875rem; color: var(--muted); }
.mythic-shelf-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 25px; }
.mythic-shelf-links > a { min-width: 0; padding: 8px 0; }
.mythic-shelf-links strong { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; font: 400 1.25rem/1.6 var(--sans); }
.mythic-shelf-links strong > span:last-child { color: var(--gold); }
.mythic-shelf-links i { font-size: 0.875rem; font-style: normal; color: var(--muted); }
.mythic-shelf-links small { display: block; color: var(--muted); font-size: 0.875rem; margin-top: 4px; }
.mythic-shelf-links > a:hover strong { text-decoration: underline; text-underline-offset: 4px; }

/* Case reading. Translation first; deeper proof is deliberately progressive. */
.detail-page { padding-top: 26px; }
.entry-header { padding: 16px 0 28px; border-bottom: 1px solid var(--line); }
.entry-header h1 { font: 400 clamp(2.25rem, 4.1vw, 3.1875rem)/1.6 var(--sans); letter-spacing: .02em; margin: 10px 0 5px; overflow-wrap: anywhere; }
.entry-deck { color: var(--body); font-size: 1.0625rem; max-width: 70ch; }
.detail-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.entry-translation { margin: 20px 0 18px; max-width: 850px; }
.translation-label { color: var(--muted); font-size: 0.875rem; }
.entry-translation-pair { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 15px; margin: 5px 0 10px; }
.entry-translation-pair > span { color: var(--muted); font-size: 1.375rem; }
.entry-translation-pair > a { font: 400 clamp(1.8125rem, 3.4vw, 2.625rem)/1.4 var(--sans); color: var(--gold); overflow-wrap: anywhere; }
.entry-translation-pair > a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.translation-meaning { font-size: 1rem; color: var(--body); max-width: 77ch; line-height: var(--reading-leading); margin-top: 9px; }
.literary-alternatives { display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px; margin-top: 16px; }
.literary-alternatives > span { color: var(--muted); font-size: 0.875rem; margin-right: 4px; }
.literary-alternatives > a { display: inline-flex; align-items: center; min-height: 44px; font: 400 1.1875rem/1.5 var(--sans); color: var(--green); padding: 6px 12px; border: 1px solid #c7d2c0; border-radius: var(--radius-sm); background: var(--white); }
.literary-alternatives > a:hover { background: var(--sage); }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: var(--column-gap); align-items: start; padding-top: 28px; }
.detail-body, .detail-aside { min-width: 0; }
.detail-body h2, .detail-aside h2 { font-size: 1.375rem; font-weight: 600; line-height: 1.5; }
.detail-aside { position: sticky; top: 25px; }
.detail-aside > h2 { font-size: 1.125rem; margin: 12px 0; }
.context-sense { color: var(--body); font-size: 1rem; margin: 16px 0; }
.context-section > h2 { margin: 10px 0; }
.context-section > p:not(.eyebrow) { color: var(--body); line-height: var(--reading-leading); }
.context-background, .context-disclosure { font-size: 0.9375rem; color: var(--body); margin: 10px 0; }
.context-background > summary, .context-disclosure > summary { min-height: 44px; padding: 9px 0; color: var(--green); }
.context-background p, .context-disclosure p { max-width: 72ch; margin: 18px 0; }
.context-disclosure h2 { margin-bottom: 12px; }
.context-disclosure small { font-size: 0.875rem; color: var(--muted); }
.sense { padding-left: 16px; border-left: 2px solid #b4c6a9; margin: 20px 0; }
.sense > span { font-size: 0.875rem; color: var(--muted); }
.sense > p { color: var(--body); margin-top: 7px; }
.candidates-section { margin-top: 30px; }
.candidate-list { display: grid; gap: 22px; }
.candidate-card { padding: var(--panel-pad); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); scroll-margin-top: 24px; min-width: 0; }
.candidate-heading, .compact-candidate-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.candidate-heading { flex-wrap: wrap; justify-content: flex-start; }
.candidate-index { color: var(--muted); font-size: 0.875rem; }
.candidate-origin { margin-left: auto; color: var(--muted); font-size: 0.875rem; }
.candidate-card h3 { font: 400 1.875rem/1.5 var(--sans); margin: 16px 0 12px; overflow-wrap: anywhere; }
.compact-candidate-top h3 { margin: 0; font-size: 2rem; }
.compact-candidate-top .copy-button { margin-left: auto; flex-shrink: 0; }
.candidate-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 9px; }
.candidate-summary > span:last-child { color: var(--muted); font-size: 0.875rem; }
.candidate-fit, .candidate-rationale { color: var(--body); font-size: 1rem; line-height: var(--reading-leading); margin-top: 16px; }
.candidate-sources { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 13px; margin: 14px 0 5px; }
.candidate-detail { color: var(--body); border-top: 1px solid var(--line); padding-top: 8px; margin-top: 18px; font-size: 0.9375rem; }
.candidate-detail > summary { min-height: 44px; padding: 9px 0; color: var(--green); }
.tradeoffs { display: grid; gap: 16px; margin: 16px 0 20px; padding-top: 10px; }
.tradeoffs > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; font-size: 0.9375rem; line-height: var(--reading-leading); }
.tradeoffs dt { color: var(--gold); }
.tradeoffs dd { margin: 0; color: var(--body); }
.evidence-list { list-style: none; padding: 18px 0 0; margin: 18px 0 7px; border-top: 1px solid var(--line); display: grid; gap: 20px; }
.evidence-list > li > span { font-size: 0.875rem; color: var(--gold); margin-right: 8px; }
.evidence-list p { font-size: 0.875rem; color: var(--muted); margin-top: 9px; line-height: var(--reading-leading); }
.evidence-list blockquote { padding-left: 14px; border-left: 2px solid #c1ceb7; font-size: 0.9375rem; line-height: var(--reading-leading); color: var(--body); }
.comparison-section { margin: 30px 0; }
.comparison-section h2 { margin-bottom: 9px; }
.comparison-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 15px; }
.compare-choice { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; min-height: 44px; padding: 8px 13px; background: var(--white); border: 1px solid #c4d0bd; border-radius: var(--radius-sm); }
.compare-choice:hover { background: var(--sage); }
.compare-choice > span:first-child { font: 400 1.3125rem/1.5 var(--sans); }
.compare-choice small { color: var(--green); font-size: 0.875rem; }
.compact-disclosure, .coverage-details { border-top: 1px solid var(--line); padding: 15px 0; margin-top: 20px; color: var(--body); font-size: 0.9375rem; }
.compact-disclosure > summary, .coverage-details > summary { min-height: 44px; padding: 8px 0; color: var(--ink); font-size: 1.0625rem; font-weight: 500; }
.compact-disclosure[open] > summary, .coverage-details[open] > summary { margin-bottom: 15px; }
.compact-disclosure p + p, .coverage-details p + p { margin-top: 14px; }
.uncertainty { margin-top: 20px; }
.uncertainty ul { padding-left: 21px; color: var(--body); line-height: var(--reading-leading); margin: 10px 0 18px; }
.uncertainty li + li { margin-top: 11px; }
.uncertainty > p { color: var(--muted); font-size: 0.875rem; }
.example { padding: 17px 0; border-bottom: 1px solid var(--line); }
.example blockquote { font: 400 1.25rem/var(--reading-leading) var(--reading); margin: 13px 0 10px; }
.example-target { color: var(--body); font: 400 1.1875rem/var(--reading-leading) var(--reading); }
.example-note, .example-attribution { color: var(--muted); font-size: 0.875rem; margin-top: 12px; }
.related-entries { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 10px; border-top: 1px solid var(--line); padding-top: 12px; }
.related-entries > span { color: var(--muted); font-size: 0.875rem; }
.related-entries > a { display: inline-flex; align-items: center; min-height: 44px; color: var(--green); }
.entry-source-list > a { display: block; padding: 17px 0; border-bottom: 1px solid var(--line); }
.entry-source-list strong { display: block; font: 400 1.125rem/1.6 var(--sans); }
.entry-source-list span { display: block; color: var(--muted); font-size: 0.875rem; margin-top: 7px; }
.entry-source-list > a:hover strong { text-decoration: underline; }
.aside-note { font-size: 0.875rem; color: var(--muted); margin-top: 17px; }

/* Parallel passages are genuine primary texts, not a decorative translation pair. */
.poetic-section, .mythic-section { border-top: 1px solid var(--line); padding-top: 27px; margin: 30px 0; }
.poetic-section > header { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 15px 24px; margin-bottom: 20px; }
.poetic-section h2, .mythic-section h2 { font: 500 1.6875rem/1.6 var(--sans); margin-top: 9px; }
.poetic-section header > p { max-width: 28ch; font-size: 0.875rem; color: var(--muted); }
.poetic-assessment { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; color: var(--muted); font-size: 0.875rem; margin-bottom: 15px; }
.poem-parallel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 20px 0 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); overflow: hidden; }
.poem-original { padding: var(--panel-pad); min-width: 0; }
.poem-original + article { border-left: 1px solid var(--line); background: #f0f5eb; }
.poem-original h3 { font-size: 1.1875rem; font-weight: 600; line-height: 1.6; margin: 14px 0 5px; overflow-wrap: anywhere; }
.poem-author { color: var(--muted); font-size: 0.875rem; margin-bottom: 20px; }
.poem-original blockquote { font: 400 1.25rem/var(--reading-leading) var(--reading); margin: 18px 0; color: #2f4637; overflow-wrap: anywhere; }
.poem-original small, .poem-locator { font-size: 0.875rem; color: var(--muted); line-height: var(--reading-leading); }
.poem-original .supplementary-quote { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 22px; }
.poetic-reason h3 { font-size: 1rem; font-weight: 600; color: var(--green); margin: 24px 0 8px; }
.poetic-reason p { font-size: 1rem; line-height: var(--reading-leading); color: var(--body); max-width: 72ch; }
.poetic-differences { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 13px 18px; margin-top: 23px; font-size: 0.9375rem; color: var(--body); }
.poetic-differences summary { color: var(--green); min-height: 44px; padding: 8px 0; }
.poetic-differences ul { padding-left: 22px; }
.poetic-differences li + li { margin-top: 11px; }
.unpaired-note { background: var(--surface-soft); border-radius: var(--radius-sm); padding: 17px 20px; margin: 20px 0; color: var(--body); font-size: 0.9375rem; }
.mythic-story { color: var(--body); max-width: 72ch; line-height: var(--reading-leading); margin: 15px 0; }
.mythic-section .poem-original { border: 1px solid var(--line); background: var(--white); border-radius: var(--radius); margin-top: 18px; }

/* Sources, theory, and local documents share a familiar reading system. */
.source-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.source-card { min-width: 0; padding: 30px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.source-top { display: flex; flex-wrap: wrap; gap: 6px; }
.source-card h3 { font: 500 1.4375rem/1.6 var(--sans); margin: 17px 0 7px; overflow-wrap: anywhere; }
.source-card p, .source-card details { font-size: 0.9375rem; color: var(--body); line-height: var(--reading-leading); }
.source-card > p { margin-top: 12px; }
.source-card .source-author { color: var(--ink); }
.source-card .source-english { font-family: var(--sans); font-size: 1.0625rem; }
.source-card .source-locator, .source-read-note { color: var(--muted); font-size: 0.875rem; }
.source-card details { padding-top: 10px; margin-top: 17px; border-top: 1px solid var(--line); }
.source-card summary { min-height: 44px; padding: 9px 0; color: var(--green); }
.source-card details p + p { margin-top: 12px; }
.source-links { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; }
.source-search { max-width: 620px; margin: 25px 0; }
.source-group { margin-top: 28px; }
.source-group > h2 { font-size: 1.375rem; font-weight: 500; margin-bottom: 17px; }
.source-group > h2 > span { font-size: 0.875rem; color: var(--muted); margin-left: 12px; }
.source-detail { max-width: 1000px; }
.source-detail > .source-card { margin-top: 19px; }
.source-detail .source-card h3 { font-size: 1.875rem; }
.source-detail .source-card > p { max-width: 75ch; }
.source-read-note { margin-top: 20px; }
.sources-header h1 { font-size: 2.125rem; margin: 10px 0 18px; }
.sources-intro { display: flex; flex-wrap: wrap; align-items: center; gap: 15px 25px; padding: 20px 0; margin: 25px 0; border-block: 1px solid var(--line); font-size: 0.9375rem; }
.sources-intro p { color: var(--muted); }
.framework-intro { max-width: 77ch; color: var(--body); margin-bottom: 28px; font-size: 1.0625rem; }
.framework-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px; }
.framework-card { padding: 27px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); min-width: 0; }
.framework-card h2 { font-size: 1.5625rem; font-weight: 500; margin: 14px 0; }
.framework-question { color: var(--green); font-size: 1.0625rem; margin-bottom: 18px; }
.framework-card details > summary { min-height: 44px; padding: 10px 0; color: var(--green); font-size: 0.9375rem; }
.framework-card details p { color: var(--body); font-size: 0.9375rem; margin: 12px 0; }
.framework-card blockquote { font: 400 1.3125rem/var(--reading-leading) var(--reading); margin: 20px 0 9px; }
.framework-card small { color: var(--muted); font-size: 0.875rem; }
.framework-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.theory-reading { border-top: 1px solid var(--line); padding: 18px 0; }
.theory-reading p { color: var(--body); line-height: var(--reading-leading); margin-top: 9px; }
.theory-reading small, .theory-application small { display: block; margin-top: 11px; color: var(--muted); font-size: 0.875rem; line-height: var(--reading-leading); }
.reading-use { color: var(--muted); font-size: 0.9375rem; }
.theory-entry-links { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0; }
.theory-entry-links > span { flex-basis: 100%; font-size: 0.875rem; color: var(--muted); }
.theory-entry-links > a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--green); font-size: 0.9375rem; }
.theory-entry-links > a:hover { background: var(--sage); }
.pending-resources { margin-top: 35px; padding-top: 22px; border-top: 1px solid var(--line); }
.pending-resources h2 { font-size: 1.3125rem; margin-bottom: 12px; }
.pending-resources p { font-size: 0.9375rem; color: var(--body); margin-top: 12px; }
.theory-application-section { margin: 29px 0; padding: 14px 0; border-block: 1px solid var(--line); }
.theory-application-section > summary { min-height: 44px; font-size: 1.125rem; font-weight: 500; padding: 8px 0; }
.theory-application-section > summary span { font-size: 0.875rem; font-weight: 400; color: var(--muted); margin-left: 9px; }
.theory-application { padding: 20px 0; max-width: 78ch; }
.theory-application h3 { font-size: 1.3125rem; margin-bottom: 11px; }
.theory-application p { color: var(--body); line-height: var(--reading-leading); margin-top: 13px; }
.theory-question { padding-left: 17px; border-left: 2px solid var(--gold); }
.documents-page { max-width: var(--page-width); margin: auto; padding: 35px var(--gutter) 60px; }
.document-detail { max-width: 1000px; margin: auto; }
.document-intro, .document-index-note { color: var(--body); font-size: 1rem; margin: 20px 0; max-width: 82ch; line-height: var(--reading-leading); }
.document-index-note { color: var(--muted); font-size: 0.875rem; margin-top: 25px; }
.document-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 25px; }
.document-card h2 { font: 400 1.5625rem/1.6 var(--sans); margin: 14px 0 8px; overflow-wrap: anywhere; }
.document-title-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.document-page-counts { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 0.875rem !important; }
.document-metadata { margin: 25px 0; font-size: 1rem; }
.document-metadata > div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.document-metadata dt { color: var(--muted); }
.document-metadata dd { margin: 0; }
.document-inspection ul { padding-left: 21px; }
.document-inspection li + li { margin-top: 11px; }
.document-reading-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px 16px; }
.document-reading-title h3 { font: 400 1.375rem/1.6 var(--sans); }
.document-reading-locator { font-size: 0.875rem; color: var(--muted); margin: 10px 0 14px !important; }
.document-excerpt { font: 400 1.3125rem/var(--reading-leading) var(--reading); border-left: 2px solid var(--gold); padding: 8px 0 8px 18px; margin: 17px 0; }
.document-link-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 13px; margin-top: 14px; }
.document-link-row > span { font-size: 0.875rem; color: var(--muted); }

/* Older explanatory home content remains legible if deep-linked or reused. */
.home-hero { padding: 20px 0 35px; max-width: 780px; }
.home-hero h1 { font: 500 clamp(2.125rem, 4vw, 3.25rem)/1.4 var(--sans); margin: 18px 0; letter-spacing: .015em; }
.home-lead { color: var(--body); font-size: 1.125rem; max-width: 64ch; margin-bottom: 22px; }
.home-secondary { margin-left: 22px; }
.home-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; border-block: 1px solid var(--line); padding: 24px 0; }
.home-stats strong { display: block; font-size: 1.875rem; font-weight: 500; }
.home-stats span { display: block; font-size: 0.875rem; color: var(--muted); margin-top: 5px; }
.home-poetic-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; margin: 26px 0; }
.home-echo { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); min-width: 0; }
.home-echo:hover { background: var(--sage); }
.home-echo span, .home-echo small { display: block; color: var(--muted); font-size: 0.875rem; }
.home-echo strong { display: block; font: 400 1.6875rem/1.6 var(--sans); margin: 12px 0; overflow-wrap: anywhere; }
.home-echo i { font-style: normal; color: var(--muted); font-size: 1.125rem; margin: 0 9px; }
.home-principles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px; padding: 25px 0; }
.home-principles h2 { font-size: 1.375rem; margin-bottom: 12px; }
.home-principles p { color: var(--body); }

/* At tablet widths the source remains first; nothing requires horizontal scroll. */
@media (max-width: 1100px) {
  .site-header { gap: 22px; }
  .site-header nav > a { padding-inline: 11px; }
  .local-tag { display: none; }
  .workspace-grid { gap: 25px; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); }
  .source-panel { padding: 22px; }
  .studio-candidate { padding: 21px; }
  .source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-layout { grid-template-columns: minmax(0, 1fr) 235px; gap: 25px; }
  .library-content { grid-template-columns: 165px minmax(0, 1fr); gap: 24px; }
  .entry-card { padding-inline: 19px; }
  .word-pair > p { font-size: 1.625rem; }
}
@media (max-width: 900px) {
  .workspace-grid { grid-template-columns: minmax(0, 1fr); }
  .source-panel { padding: 25px; }
  .studio-form { grid-template-columns: minmax(0, 1fr); }
  .studio-form > .primary-button { align-self: end; justify-self: start; }
  .results-panel > .empty-state { min-height: 0; }
  .private-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .private-toolbar > :first-child { grid-column: 1 / -1; }
  .detail-layout { grid-template-columns: minmax(0, 1fr); }
  .detail-aside { position: static; border-top: 1px solid var(--line); padding-top: 18px; }
  .entry-source-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 25px; }
  .library-content { grid-template-columns: 155px minmax(0, 1fr); gap: 23px; }
  .entry-grid { grid-template-columns: minmax(0, 1fr); }
  .featured-allusion > small { margin-left: 0; }
  .framework-grid { gap: 18px; }
  .framework-card { padding: 23px; }
}
@media (max-width: 700px) {
  :root { --gutter: 20px; }
  .site-header { flex-wrap: wrap; gap: 10px 20px; padding-top: 18px; padding-bottom: 12px; }
  .brand { margin-right: auto; }
  .brand-mark { width: 36px; height: 40px; border-radius: 5px; font-size: 1.4375rem; }
  .brand-word { font-size: 1.1875rem; }
  .site-header nav { flex-basis: 100%; justify-content: flex-start; gap: 4px; }
  .site-header nav > a { padding: 9px 13px; font-size: 0.9375rem; }
  .header-tools { margin-left: 0; }
  .secondary-nav, .resource-nav { justify-content: flex-start; padding-top: 5px; gap: 4px 20px; }
  .studio-page, .private-page, .library-page, .detail-page, .sources-page, .framework-page, .home-page, .documents-page { padding-top: 26px; padding-bottom: 40px; }
  .page-intro, .compact-intro { display: block; margin-bottom: 23px; }
  .page-intro h1, .compact-intro h1 { font-size: 1.8125rem; }
  .page-intro > a, .compact-intro > a { margin-top: 12px; }
  .source-panel { padding: 21px; }
  .studio-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .studio-form > * { grid-column: auto !important; }
  .studio-form #studio-expression, .studio-form textarea[name=expression], .source-expression { font-size: 1.375rem; min-height: 100px; }
  .studio-form > .primary-button { justify-self: stretch; }
  .workspace-grid { gap: 22px; }
  .studio-candidate { padding: 20px; }
  .studio-candidate h3 { font-size: 1.8125rem; }
  .candidate-top { gap: 12px; }
  .candidate-actions { gap: 7px; }
  .candidate-actions > .primary-button, .candidate-actions > .secondary-button { flex-grow: 1; }
  .save-panel { padding: 20px; }
  .private-grid, .framework-grid, .source-grid, .document-grid, .home-poetic-highlights { grid-template-columns: minmax(0, 1fr); }
  .private-card { padding: 21px; }
  .library-content { display: block; }
  .filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; padding: 0; margin-bottom: 21px; }
  .filters > .eyebrow, .filters > fieldset:first-of-type { grid-column: 1 / -1; }
  .filters > .eyebrow { margin-bottom: 14px; }
  .filters .eyebrow > span { display: inline; margin-left: 10px; }
  .filters fieldset { margin-bottom: 13px; }
  .direction-options { display: flex; flex-wrap: wrap; gap: 5px; }
  .direction-options button { flex: 1; justify-content: center; min-width: 0; font-size: 0.875rem; padding: 9px 11px; background: #edf0e8; gap: 7px; }
  .direction-options button span { font-size: 0.875rem; }
  .filter-label { margin: 0 0 8px; }
  .filters select { margin-bottom: 14px; }
  .filter-foot, .filters > .text-link { display: none; }
  .entry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
  .entry-card { padding: 20px 20px 0; }
  .word-pair { gap: 4px 10px; }
  .word-pair h2, .entry-card h2 { font-size: 1.6875rem; }
  .word-pair > p { font-size: 1.625rem; }
  .featured-allusion { padding: 17px 20px; gap: 10px 18px; margin-top: 0; }
  .featured-allusion > strong { font-size: 1.5625rem; }
  .featured-allusion-focus { flex-basis: 100%; }
  .mythic-shelf-links { gap: 14px 20px; }
  .entry-header h1 { font-size: 2.4375rem; }
  .entry-header { padding-top: 8px; }
  .entry-deck { font-size: 1rem; }
  .entry-translation-pair > a { font-size: 2.125rem; }
  .literary-alternatives { gap: 7px; }
  .detail-layout { padding-top: 22px; gap: 23px; }
  .candidate-card { padding: 20px; }
  .compact-candidate-top h3 { font-size: 1.8125rem; }
  .candidate-origin { margin-left: 0; }
  .poem-parallel { grid-template-columns: minmax(0, 1fr); }
  .poem-original { padding: 22px; }
  .poem-original + article { border-left: 0; border-top: 1px solid var(--line); }
  .poem-original blockquote { font-size: 1.25rem; }
  .poetic-section > header { display: block; }
  .poetic-section header > p { max-width: none; margin-top: 13px; }
  .poetic-section h2, .mythic-section h2 { font-size: 1.5625rem; }
  .source-card, .framework-card { padding: 23px; }
  .source-card h3 { font-size: 1.5rem; }
  .source-detail .source-card h3 { font-size: 1.6875rem; }
  .document-reading-title h3 { font-size: 1.3125rem; }
  .document-metadata > div { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; }
  .review-dialog { max-height: calc(100dvh - 32px); }
  .dialog-header, .dialog-body { padding: 21px; }
  .dialog-footer { padding: 16px 21px; }
  .dialog-header h2 { font-size: 1.3125rem; }
  .review-dialog-header { padding: 20px; }
  .review-dialog > .review-note, .review-dialog > .review-error, .review-dialog > [data-review-preview-content], .review-dialog > .review-field { margin-left: 20px; margin-right: 20px; }
  .review-dialog-actions { padding: 16px 20px; }
  .home-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-principles { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .site-footer { gap: 10px 22px; margin-top: 12px; padding-block: 22px; }
  .site-footer > span:last-child { width: 100%; margin-left: 0; }
}
@media (max-width: 500px) {
  .field-row, .save-grid, .review-grid, .private-toolbar { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .review-form-row, .review-criteria { grid-template-columns: minmax(0, 1fr); }
  .review-dialog-actions > button { flex-grow: 1; }
  .private-toolbar > :first-child { grid-column: auto; }
  .entry-grid, .mythic-shelf-links, .entry-source-list { grid-template-columns: minmax(0, 1fr); }
  .page-intro h1, .compact-intro h1 { font-size: 1.75rem; }
  .page-intro > p, .compact-intro > p { margin-top: 13px; }
  .source-panel { padding: 22px; }
  .studio-candidate { padding: 22px; }
  .studio-candidate h3 { font-size: 1.75rem; }
  .candidate-number { width: 27px; height: 27px; flex-basis: 27px; }
  .candidate-actions > button, .candidate-actions > a { min-width: 0; }
  .segmented { display: flex; width: 100%; }
  .segmented button, .segmented label { flex: 1; padding-inline: 8px; }
  .entry-card { padding-inline: 22px; }
  .word-pair { gap: 8px 14px; }
  .word-pair h2, .entry-card h2 { font-size: 1.8125rem; }
  .word-pair > p { font-size: 1.8125rem; }
  .collection-tabs, .mapping-tabs { gap: 7px; }
  .collection-tabs button { flex-grow: 1; padding-inline: 12px; }
  .mapping-tabs button { padding-inline: 11px; }
  .featured-allusion > .eyebrow { flex-basis: 100%; }
  .featured-allusion > strong { font-size: 1.5625rem; }
  .mythic-shelf { padding-top: 20px; }
  .mythic-shelf-links { gap: 9px; }
  .mythic-shelf-links > a { padding: 10px 0; }
  .mythic-shelf-links strong { font-size: 1.375rem; }
  .entry-header h1 { font-size: 2.3125rem; }
  .entry-translation-pair { gap: 10px; }
  .entry-translation-pair > a { font-size: 2rem; }
  .compact-candidate-top { align-items: flex-start; flex-wrap: wrap; gap: 8px; }
  .compact-candidate-top h3 { flex-basis: calc(100% - 84px); font-size: 1.8125rem; }
  .tradeoffs > div { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; }
  .candidate-card { padding: 22px; }
  .poem-original { padding: 21px; }
  .poetic-tabs button { padding-inline: 14px; }
  .review-panel > header { display: block; }
  .review-count { margin-top: 10px; }
  .dialog-footer > button { flex-grow: 1; }
  .document-metadata > div { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .result-toolbar { align-items: flex-start; }
  .sort-label { max-width: 100%; }
  .sort-label select { max-width: 100%; }
  .pagination { gap: 12px; }
  .pagination button { padding-inline: 13px; }
  .home-secondary { margin-left: 0; margin-top: 10px; display: flex; width: fit-content; }
}
@media (max-width: 359px) {
  :root { --gutter: 16px; }
  .site-header nav > a { padding-inline: 10px; font-size: 0.875rem; }
  .source-panel, .studio-candidate, .save-panel, .private-card, .candidate-card, .source-card, .framework-card { padding: 18px; }
  .field-row, .save-grid, .review-grid { gap: 14px; }
  .filters { grid-template-columns: minmax(0, 1fr); }
  .filters > * { grid-column: auto; }
  .direction-options button { flex-basis: 100%; justify-content: space-between; }
  .candidate-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .candidate-actions > * { width: 100%; }
  .search-box { padding-inline: 10px; gap: 8px; }
  .search-box kbd { display: none; }
  .pagination > span { flex-basis: 100%; text-align: center; order: 3; }
  .compact-candidate-top h3 { flex-basis: 100%; }
  .compact-candidate-top .copy-button { margin-left: 0; }
  .brand { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .button, .primary-button, .badge, .tag, .segmented button[aria-pressed=true], .site-header nav > a[aria-current] { border: 1px solid ButtonText; }
  :focus-visible { outline-color: Highlight; }
}

/* Reviewable case sources and explicit isolated QA fixtures. */
.case-reading{margin-block:1.5rem;border-block:1px solid var(--line);padding-block:.5rem}.case-reading>summary{font-weight:600;padding-block:.75rem}.qa-notice{max-width:var(--content-max,1320px);margin:.75rem auto 0;padding:.75rem 1.25rem;background:#edf0e8;color:#254c40;font-size:.875rem;border-radius:12px}.review-dialog .field{display:grid;gap:.5rem;margin-block:1rem}.review-dialog .check-label{display:flex;align-items:center;gap:.75rem;min-height:44px;margin-block:.5rem}.review-dialog .check-label input{width:1.2rem;height:1.2rem;flex:none}.card-footer{flex-wrap:wrap}.dialog-body p{overflow-wrap:anywhere}

/* Reserve the first viewport while local library data is loading. */
#main{min-height:calc(100dvh - 86px)}


/* Typographic additions — a shared invisible grid, never a visible graph-paper overlay. */
.page-intro, .compact-intro, .workspace-grid, .collection-layout { text-align: left; }
.page-intro > div, .compact-intro > div, .collection-main, .folder-sidebar { min-width: 0; }
.panel-heading h2, .section-title h2, .folder-sidebar h2 { line-height: 1.5; }
.studio-candidate h3, .candidate-card h3, .entry-translation-pair > a,
.private-card > .card-text, .card-translation { font-style: normal; }
.studio-candidate .candidate-actions, .private-card .card-footer { align-items: center; }
.optional-label, .field-optional { display: inline; color: var(--muted); font-size: .8125rem; font-weight: 400; letter-spacing: .015em; margin-inline-start: .5rem; }
.optional-fields > summary > span { color: var(--muted); font-size: .875rem; margin-inline-start: .5rem; }
.pronunciation-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem .75rem; margin-block: .25rem .625rem; color: var(--body); font-size: .78rem; line-height: 1.65; }
.pronunciation-label { color: var(--muted); font-size: .72rem; font-weight: 400; }
.phonetic, .pronunciation-text, .pronunciation-row [lang], .pronunciation-row ruby { font-family: var(--phonetic); font-weight: 400; font-style: normal; letter-spacing: 0; line-height: var(--reading-leading); overflow-wrap: anywhere; }
.pronunciation-row a { min-height: 44px; display: inline-flex; align-items: center; gap: .3rem; color: var(--green); font-size: .78rem; }
.pronunciation-row small, .pronunciation-note { color: var(--muted); font-size: .78rem; }
.entry-card .pronunciation-row, .private-card .pronunciation-row { margin-block: .1rem .5rem; }
.entry-header > .pronunciation-row { margin-block: .25rem 1rem; }

/* Prose and quotations share Times for Latin, while every CJK character stays Kai.
   Explicit reading contexts also cover inline source titles and example translations. */
blockquote, .example-target, .document-excerpt, .poem-original blockquote,
.framework-card blockquote, .evidence-list blockquote,
.candidate-fit, .candidate-rationale, .tradeoffs dd, .translation-meaning,
.context-sense, .context-background p, .context-disclosure p,
.poetic-reason p, .poetic-differences li, .mythic-story,
.source-card p, .source-card .source-english, .theory-reading p,
.theory-application p, .document-intro, .document-index-note,
.studio-candidate details p, .tradeoff-line, .card-sense, .card-note,
.card-poem, .private-card .card-text {
  font-family: var(--reading);
  line-height: var(--reading-leading);
  letter-spacing: var(--body-tracking);
}
.pronunciation-row, .pronunciation-row p, .pronunciation-row li,
.phonetic, .pronunciation-text, .pronunciation-note, .pronunciation-note p {
  font-family: var(--phonetic);
  letter-spacing: 0;
  line-height: 1.65;
}

/* First use follows the task itself; prompts never cover the working controls. */
.workspace-intro { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1.5rem; margin-bottom: 1.125rem; }
.workspace-intro > div { min-width: 0; }
.workspace-intro h1 { font: 500 clamp(1.625rem, 2.2vw, 2rem)/1.5 var(--display-sans); letter-spacing: .015em; max-width: 38ch; margin-top: .375rem; }
.workspace-intro p:not(.eyebrow) { color: var(--body); max-width: 64ch; margin-top: .5rem; font-size: .9375rem; }
.onboarding-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .5rem; }
.onboarding-tools :is(a,button) { min-height: 44px; font-size: .875rem; }
.task-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .25rem 1rem; margin: 0 0 1.125rem; padding: 0 0 .5rem; border-bottom: 1px solid var(--line); list-style: none; }
.task-steps > li { min-width: 0; }
.task-step, .task-steps > li > :is(button,a) { display: flex; align-items: center; gap: .5rem; min-width: 0; min-height: 44px; width: 100%; padding: .375rem .25rem; color: var(--body); text-align: left; font: 400 .875rem/1.6 var(--sans); border-bottom: 2px solid transparent; }
.task-step > span:first-child, .task-step .step-number { color: var(--muted); font-variant-numeric: tabular-nums; font-size: .75rem; }
.task-step[aria-current=step], .task-step [aria-current=step], .task-steps > li[aria-current=step] > :is(button,a), .task-steps > li > [aria-current=step] { color: var(--green); border-bottom-color: var(--green); font-weight: 600; }
.task-step:hover, .task-steps > li > :is(button,a):hover { background: var(--sage); }
.onboarding-tip { display: flex; align-items: flex-start; flex-wrap: wrap; gap: .25rem .75rem; padding: .625rem .875rem; margin-block: .5rem 1rem; background: var(--sage); border-left: 2px solid #91a68c; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: var(--body); font: 400 .875rem/1.75 var(--reading); }
.onboarding-tip > :is(p,div) { flex: 1 1 15rem; min-width: 0; }
.onboarding-tip strong { color: var(--ink); font-weight: 600; }
.onboarding-tip .quiet-button { flex: 0 0 auto; min-height: 44px; padding-block: .375rem; font-size: .8125rem; margin-top: -.375rem; margin-bottom: -.375rem; }
.workspace-grid.lookup-start { grid-template-columns: minmax(0,1fr); max-width: 52rem; }
.lookup-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .625rem; }
.private-card.just-saved { outline: 2px solid var(--green); outline-offset: 4px; }
.source-meaning:focus-visible, .save-confirmation:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.lookup-start .source-panel { max-width: 100%; }
.lookup-start .results-panel:empty { display: none; }
.lookup-start #studio-results > .empty-state { display: none; }
.lookup-start .lookup-intro { color: var(--muted); font-size: .875rem; margin-top: .5rem; }
.source-meaning { padding-block: .5rem .875rem; margin-bottom: 1rem; border-bottom: 1px solid var(--line); }
.source-meaning h3 { font: 500 1.125rem/1.5 var(--sans); margin-bottom: .375rem; }
.source-meaning p { color: var(--body); font-size: .9375rem; line-height: var(--reading-leading); }
.source-meaning .text-link { margin-top: .25rem; }
.save-confirmation { margin-top: 1rem; padding: 1rem 1.125rem; border: 1px solid #9fb799; border-radius: var(--radius); background: #f4f7ee; }
.save-confirmation h3, .save-confirmation h2 { color: var(--green); font-size: 1.25rem; font-weight: 600; line-height: 1.5; margin-bottom: .375rem; }
.save-confirmation > p { font-size: .9375rem; color: var(--body); }
.save-confirmation .candidate-actions { margin-top: .75rem; }
.saved-location { color: var(--body); font-size: .9375rem; overflow-wrap: anywhere; }
.saved-location strong { color: var(--ink); }
.example-chooser { width: fit-content; max-width: 100%; }
.example-chooser > summary { display: flex; align-items: center; width: fit-content; min-height: 44px; padding-block: .375rem; color: var(--green); font-size: .9375rem; cursor: pointer; }
.example-chooser > summary::after { content: '+'; font-family: var(--sans); margin-left: .625rem; }
.example-chooser[open] > summary::after { content: '−'; }
.example-chooser .example-options { display: flex; flex-wrap: wrap; gap: .25rem .5rem; padding-top: .25rem; }
.example-chooser > p { color: var(--muted); font-size: .8125rem; margin-bottom: .25rem; }
.candidate-warning { margin: .75rem 0; padding: .5rem .75rem; background: var(--warning-bg); border-left: 2px solid #a07a37; color: var(--warning); font-size: .875rem; line-height: 1.75; }
.folder-choose-row { display: flex; align-items: end; gap: 1rem; flex-wrap: wrap; }
.folder-choose-row > .field { flex: 1 1 12rem; margin-block: 0; }
.folder-management { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .5rem; }
.pronunciation-note > summary { min-height: 44px; display: inline-flex; align-items: center; color: var(--green); }
.pronunciation-note[open] { flex-basis: 100%; }
.pronunciation-note > p { font-size: .875rem; color: var(--body); }
.quick-save-summary { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: .75rem; align-items: start; }
.quick-save-summary > div { min-width: 0; overflow-wrap: anywhere; }
.workspace-help { margin-block: .75rem 1.5rem; color: var(--body); font-size: .9375rem; }
.workspace-help > summary { min-height: 44px; color: var(--green); padding-block: .5rem; }

/* A saved expression and its preferred wording are the lightweight collection unit. */
.collection-layout { display: grid; grid-template-columns: minmax(10.5rem,2fr) minmax(0,10fr); gap: var(--column-gap); align-items: start; }
.folder-sidebar { padding-block: .25rem; }
.folder-sidebar h2 { font-size: 1rem; font-weight: 600; margin-bottom: .75rem; }
.folder-list { display: grid; gap: .25rem; list-style: none; padding: 0; margin: 0 0 1rem; }
.folder-list > li { min-width: 0; }
.folder-button { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 44px; width: 100%; padding: .5rem .75rem; border-radius: var(--radius-sm); color: var(--body); text-align: left; font-size: .9375rem; overflow-wrap: anywhere; }
.folder-button > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.folder-button > small, .folder-count { color: var(--muted); font-size: .8125rem; font-variant-numeric: tabular-nums; flex: none; }
.folder-button:hover { background: #ebeee6; }
.folder-button[aria-pressed=true], .folder-button[aria-current=true], .folder-button[aria-current=page] { color: var(--green); background: var(--sage); font-weight: 600; }
.folder-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.folder-sidebar .field { margin-bottom: .75rem; }
.folder-sidebar .field input { width: 100%; }
.folder-sidebar .quiet-button { text-align: left; justify-content: flex-start; }
.collection-main .private-toolbar { margin-bottom: 1.5rem; }
.collection-main .private-grid { gap: 1.25rem; }
.private-card .card-title { font-size: 1.5rem; font-weight: 400; line-height: 1.7; margin-block: .75rem .375rem; }
.private-card > .card-text { font-size: 1.75rem; font-weight: 400; line-height: 1.55; margin-block: .5rem .875rem; }
.private-card .card-footer { gap: .375rem .75rem; margin-top: 1rem; }
.private-card .card-footer > :is(a,button) { font-size: .875rem; padding-inline: .5rem; }
.private-card .card-footer > .primary-button { padding-inline: .875rem; }
.private-card .card-folder { color: var(--muted); font-size: .8125rem; }
.private-card .card-details { margin-top: .75rem; padding-top: .5rem; }
.quick-save-panel { margin-top: 1rem; padding: var(--panel-pad); background: var(--sage); border: 1px solid #b8cbb4; border-radius: var(--radius); }
.quick-save-summary { display: grid; gap: .375rem; margin-block: .5rem 1rem; }
.quick-save-summary strong { font-size: 1.375rem; font-weight: 500; line-height: 1.5; }
.quick-save-summary > p { font-size: 1.125rem; color: var(--gold); }
.quick-save-panel .field { margin-block: 1rem; }
.quick-save-panel .candidate-actions { margin-top: 1rem; }
.save-extras { padding-top: .5rem; }
.save-extras > summary { min-height: 44px; padding-block: .5rem; color: var(--green); font-size: .9375rem; }
.save-extras[open] > summary { margin-bottom: .75rem; }
.folder-dialog .field { margin-block: 1rem; }

@media (max-width: 1100px) {
  .collection-layout { grid-template-columns: minmax(9.5rem,2fr) minmax(0,8fr); gap: 1.5rem; }
  .collection-main .private-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 900px) {
  .workspace-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 700px) {
  .workspace-intro { gap: .375rem .75rem; margin-bottom: .75rem; }
  .workspace-intro h1 { font-size: 1.625rem; line-height: 1.5; }
  .onboarding-tools { gap: .125rem .5rem; }
  .task-steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 .75rem; margin-bottom: .75rem; }
  .task-step, .task-steps > li > :is(button,a) { font-size: .8125rem; }
  .onboarding-tip { margin-bottom: .75rem; padding: .5rem .75rem; }
  .save-confirmation { padding: .875rem; }
  .save-confirmation .candidate-actions > :is(a,button) { flex: 1 1 10rem; }
  .collection-layout { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .folder-sidebar { padding-bottom: .875rem; border-bottom: 1px solid var(--line); }
  .folder-sidebar h2 { margin-bottom: .5rem; }
  .folder-list { display: flex; flex-wrap: wrap; gap: .375rem; margin-bottom: .5rem; }
  .folder-list > li { max-width: 100%; }
  .folder-button { justify-content: flex-start; width: auto; max-width: 100%; gap: .5rem; padding-inline: .75rem; }
  .folder-actions { margin-top: .5rem; }
  .collection-main .private-grid { grid-template-columns: minmax(0,1fr); }
  .pronunciation-row { gap: .125rem .5rem; }
  .quick-save-panel { padding: 1.25rem; }
  .quick-save-summary { grid-template-columns: minmax(0,1fr); gap: .125rem; }
  .quick-save-summary > span { display: none; }
}
@media (max-width: 359px) {
  .quick-save-panel { padding: 1rem; }
  .folder-button { padding-inline: .5rem; }
}

/* Keep the first action close to the expression; guidance follows it. */
.studio-form > [data-guide-at]:empty { display: none; }
.lookup-start .panel-heading { margin-bottom: .75rem; }
.lookup-start .studio-form { gap: 1.125rem; }
.lookup-start .studio-form legend { margin-bottom: 6px; }

@media (max-width: 700px) {
  .site-header nav > a { padding-inline: 8px; }
}

/* Private collection: one quiet row per expression, with details on demand. */
.private-grid, .collection-main .private-grid { grid-template-columns: minmax(0,1fr); gap: .625rem; }
.private-page .private-card { padding: 0; }
.private-card > .private-card-disclosure { border: 0; margin: 0; padding: 0; }
.private-card-summary { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr) 1rem; align-items: center; gap: .625rem 1.25rem; min-height: 80px; padding: 14px 22px; cursor: pointer; list-style: none; border-radius: inherit; }
.private-card-summary::-webkit-details-marker { display: none; }
.private-card-summary::marker { content: ''; }
.private-card-summary:hover { background: var(--sage); }
.private-card-summary:focus-visible { outline-offset: -4px; border-radius: var(--radius); }
.private-card-word { min-width: 0; font: 400 1.5rem/1.5 var(--sans); color: var(--ink); overflow-wrap: anywhere; }
.pronunciation-inline { min-width: 0; font: 400 .78rem/1.7 var(--phonetic); letter-spacing: 0; color: var(--body); overflow-wrap: anywhere; }
.private-card-chevron { justify-self: end; color: var(--green); transition: transform .16s ease; }
.private-card-disclosure[open] > .private-card-summary .private-card-chevron { transform: rotate(180deg); }
.private-card-disclosure[open] > .private-card-summary { border-radius: var(--radius) var(--radius) 0 0; }
.private-card-body { padding: 20px 22px 22px; border-top: 1px solid var(--line); }
.private-card-body > .card-text { font: 400 1.75rem/1.55 var(--reading); color: var(--gold); margin: .625rem 0 .375rem; }
.private-card-body > .field { margin-top: 1.25rem; max-width: 24rem; }
.private-card-meaning, .private-card-notes { max-width: 66ch; margin-top: 1rem; }
.private-card-meaning h3, .private-card-notes h3 { font-size: 1rem; font-weight: 500; margin: 0 0 .25rem; }
.private-card-meaning p, .private-card-notes p { font-size: .9375rem; color: var(--body); }
.private-card-notes p + p { margin-top: .5rem; }
.private-card-body .compact-tags:empty { display: none; }
@media (max-width: 700px) {
 .private-card-summary { padding: 12px 16px; gap: .5rem .75rem; min-height: 76px; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr) 1rem; }
 .private-card-word { font-size: 1.3125rem; }
 .private-card-body { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) { .private-card-chevron { transition: none; } }

/* English words share Times; phonetic text keeps its existing legible face. */
.candidate-usage { margin-top: .75rem; font-size: 1rem; color: var(--body); line-height: var(--reading-leading); }
.candidate-usage strong { font-weight: 500; color: var(--ink); }
.candidate-reason { margin-top: 1rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.candidate-reason h4 { font: 500 1rem/1.5 var(--sans); color: var(--ink); margin-bottom: .5rem; }
.candidate-reason > p { font-size: .9375rem; }
.candidate-originals { display: grid; gap: .875rem; margin-top: .875rem; }
.candidate-original { margin: 0; padding-left: .875rem; border-left: 2px solid #c4cec1; min-width: 0; }
.candidate-original blockquote { margin: 0; font-size: 1.0625rem; line-height: 1.75; color: var(--ink); overflow-wrap: anywhere; }
.candidate-original figcaption { font: 400 .8125rem/1.65 var(--reading); color: var(--muted); margin-top: .375rem; overflow-wrap: anywhere; }
.candidate-original a { text-decoration: underline; text-underline-offset: 3px; }
.candidate-reason .candidate-warning { margin-top: .875rem; font-size: .875rem; }
.candidate-footnotes { border-top: 1px solid var(--line); padding-top: .75rem; margin-top: 1rem; }
.reading-source-note { font-size: .8125rem; line-height: 1.7; color: var(--muted); margin-top: .5rem; }
.reading-source-note a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.candidate-detail { border: 0; padding: 0; margin-top: 0; }
.script-toggle { flex: none; min-width: 58px; border: 1px solid var(--line); font-size: .875rem; }
.script-toggle[aria-pressed=true] { background: var(--sage); }
@media (max-width: 700px) {
 .site-header { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 12px; }
 .site-header > .brand { grid-column: 1; grid-row: 1; margin-right: 0; min-width: 0; }
 .site-header .brand-word { min-width: 0; overflow-wrap: anywhere; }
 .site-header .brand-mark { flex-shrink: 0; }
 .site-header > nav { grid-column: 1 / -1; grid-row: 2; }
 .site-header .header-tools { position: static; grid-column: 2; grid-row: 1; justify-self: end; margin: 0; }
 .site-header .header-tools .local-tag { display: none; }
}
