/* GENERATED from styles/pages.json. Preserve source order and cascade layers. */

/* Source: css/noto.css */
/* Noto Sans SC — 仅保留覆盖本站实际用字的 unicode-range 分片（Variable 100-900） */
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-118-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+d,U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d-4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a-4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee4-4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0-52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7-53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd-56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e73-5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210-6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247-7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8-8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08-ff09;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-117-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+4e,U+201c-201d,U+3010-3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b-4e8c,U+4ea4,U+4eab-4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6-4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e38,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc-91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-116-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+2b,U+40,U+3000,U+300a-300b,U+4e16,U+4e66,U+4e70,U+4e91-4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17-4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e-529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7-53d8,U+53ea,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3-81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f-9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-115-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956-5957,U+5a92,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838-6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4b,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26-8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632-9633,U+963f,U+968f-9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-114-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b63,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-latin-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-119-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+df-e5,U+e7-ea,U+ec-ed,U+f1-f4,U+f6,U+f9-fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300-301,U+1ebf,U+1ec7,U+2013-2014,U+2022,U+2027,U+2039-203a,U+2122,U+3001-3002,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075-3076,U+3078-3079,U+307b,U+307e-307f,U+3081-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3-30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3,U+30fb-30fc,U+3127,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708-6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-113-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987-5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388-6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6740,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade-7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4-96c5,U+96e8,U+96f6-96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d-996e,U+9b54,U+9e21,U+9ebb,U+9f50;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-112-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd-5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696-6697,U+66dd,U+675f,U+676f-6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4-80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f-9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634-9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-111-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3-4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076-5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54-5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75-8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-110-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+300c-300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237-7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+feff,U+ff0d;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-109-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+a5,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366-5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3-62d4,U+63f4,U+642c,U+6478,U+6491-6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+85aa,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90aa,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+e675,U+e6b9,U+ffe5;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-106-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+b0,U+2191,U+2460-2461,U+25c6,U+300e-300f,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54b1,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+61be,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+6380,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0-80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+82ad,U+8304,U+8393,U+83b9,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681-8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95f7,U+9706,U+9709,U+9774,U+98a0,U+9e64,U+9f9f,U+e603;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-90-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+207c-2083,U+208c-208e,U+2092,U+20a6,U+20a8-20ad,U+20af,U+20b1,U+20b4-20b5,U+20b8-20ba,U+20bd,U+20db,U+20dd,U+20e0,U+20e3,U+2105,U+2109,U+2113,U+2116-2117,U+2120-2121,U+2126,U+212b,U+2133,U+2139,U+2194,U+2196-2199,U+21a0,U+21a9-21aa,U+21af,U+21b3,U+21b5,U+21ba-21bb,U+21c4,U+21ca,U+21cc,U+21d0-21d4,U+21e1,U+21e6-21e9,U+2200,U+2202,U+2205-2208,U+220f,U+2211-2212,U+2215,U+2217-2219,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223c-223d,U+2248,U+224c,U+2252,U+2256,U+2260-2261,U+2266-2267,U+226a-226b,U+226e-226f,U+2282-2283,U+2295,U+2297,U+2299,U+22a5,U+22b0-22b1,U+22b9,U+22bf,U+22c5-22c6,U+22ef,U+2304,U+2307,U+230b,U+2312-2314,U+2318,U+231a-231b,U+2323,U+239b,U+239d-239e,U+23a0,U+23e9;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-108-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20-6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b-886c,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b-8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+964c,U+9675,U+971c,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f,U+e715;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-89-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+23f0,U+23f3,U+2445,U+2449,U+2465-2471,U+2474-249b,U+24b8,U+24c2,U+24c7,U+24c9,U+24d0,U+24d2,U+24d4,U+24d8,U+24dd-24de,U+24e3,U+24e6,U+24e8,U+2500-2509,U+250b-2526,U+2528-2534,U+2536-2537,U+253b-2548,U+254a-254b;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-105-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+5e,U+2190,U+250a,U+25bc,U+25cf,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bb0,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6e9c,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82bd,U+8305,U+8328,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8e81,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+9540,U+958b,U+9600,U+9640,U+96b6,U+96c7,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ad6d,U+c5b4,U+d55c,U+ff0f;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-107-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+200b,U+2103,U+4e18,U+4e27-4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+83ca,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95ef,U+95fa,U+95fd,U+96c0,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9887,U+9b4f,U+9e2d,U+9f0e,U+e601-e602,U+e604-e605,U+ff5c;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-88-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+2550-2551,U+2554,U+2557,U+255a-255b,U+255d,U+255f-2560,U+2562-2563,U+2565-2567,U+2569-256a,U+256c-2572,U+2579,U+2580-2595,U+25a1,U+25a3,U+25a9-25ad,U+25b0,U+25b3-25bb,U+25bd-25c2,U+25c4,U+25c8-25cb,U+25cd,U+25d0-25d1,U+25d4-25d5,U+25d8,U+25dc-25e6,U+25ea-25eb,U+25ef,U+25fe,U+2600-2604,U+2609,U+260e-260f,U+2611,U+2614-2615,U+2618,U+261a-2620,U+2622-2623,U+262a,U+262d-2630,U+2639-2640,U+2642,U+2648-2650;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-100-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5340,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+5618,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5be6,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+62ce,U+62ed,U+6345,U+6390,U+63b0,U+63b7,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f31,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+733f,U+7396,U+739f,U+7459,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b-814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385-8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8bb3,U+8d2e,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+99ac,U+9a6f,U+9a87,U+9a8b,U+9ab7,U+9abc,U+9ac5,U+9e25,U+e608,U+e621,U+ff06,U+ff14-ff16;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-104-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+2003,U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d-575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a1f,U+5a49,U+5ac2,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f6c,U+5f8c,U+603c,U+608d,U+611b,U+6127,U+62a0,U+62d0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6703,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0-8be1,U+8c0e,U+8d29,U+8d50,U+8d63,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9610,U+9631,U+9699,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+e600,U+e60f,U+e611,U+ff05,U+ff0b;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-5-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+fee3,U+fef3,U+ff03-ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c-ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ff61-ff65,U+ff67-ff6a,U+ff6c,U+ff6f-ff78,U+ff7a-ff7d,U+ff80-ff84,U+ff86,U+ff89-ff8e,U+ff92,U+ff97-ff9b,U+ff9d-ff9f,U+ffe0-ffe4,U+ffe6,U+ffe9,U+ffeb,U+ffed,U+fffc,U+1f004,U+1f170-1f171,U+1f192-1f195,U+1f198-1f19a,U+1f1e6-1f1e8;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-87-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+2651-2655,U+2658,U+265a-265b,U+265d-265e,U+2660-266d,U+266f,U+267b,U+2688,U+2693-2696,U+2698-2699,U+269c,U+26a0-26a1,U+26a4,U+26aa-26ab,U+26bd-26be,U+26c4-26c5,U+26d4,U+26e9,U+26f0-26f1,U+26f3,U+26f5,U+26fd,U+2702,U+2704-2706,U+2708-270f,U+2712-2718,U+271a-271b,U+271d,U+271f,U+2721,U+2724-2730,U+2732-2734,U+273a,U+273d-2744,U+2747-2749,U+274c,U+274e-274f,U+2753-2757,U+275b,U+275d-275e,U+2763,U+2765-2767,U+276e-276f,U+2776-277e,U+2780-2782,U+278a-278c,U+278e,U+2794-2796,U+279c;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-101-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+161,U+926,U+928,U+939,U+93f-940,U+94d,U+e17,U+e22,U+e44,U+25c7,U+25ce,U+2764,U+3009,U+3016-3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+51c4,U+5225,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+560e,U+565c,U+5662,U+5669,U+566c,U+56bc,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5ac9,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+620c,U+6273,U+62c7,U+62f7,U+6320,U+6342,U+6401-6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+72e9,U+7409,U+7422,U+745a,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+8042,U+808b,U+8236,U+82b8-82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8aaa,U+8c41,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541-9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc-96cd,U+96cf,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+e606-e607,U+e60a,U+e60c,U+e60e,U+fe0f,U+ff02,U+ff1e;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-102-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+10c,U+627-629,U+639,U+644,U+64a,U+203b,U+2265,U+2463,U+2573,U+25b2,U+3448-3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+516e,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5364,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6ed5,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+7405,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+803f,U+8046,U+80fa,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8cec,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9704,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+9f9a,U+e60b,U+e610,U+ff10,U+ff13,U+ff3b,U+ff3d,U+f012b;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-103-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+60,U+631,U+2606,U+3014-3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+609a,U+60df,U+6168,U+61c8,U+6236,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+67da,U+67ec,U+6813,U+6816,U+6869,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119-711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+73fe,U+7410,U+7426,U+7455,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+81b3,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8e72,U+8f9c,U+900d,U+904b,U+904e,U+9063,U+90a2,U+90b9,U+9119,U+94f2,U+952f,U+9576-9577,U+9593,U+95f8,U+961c,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11-ff12,U+fffd;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-91-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+1d34-1d35,U+1d38-1d3a,U+1d3c,U+1d3f-1d40,U+1d49,U+1d4e-1d4f,U+1d52,U+1d55,U+1d5b,U+1d5e,U+1d9c,U+1da0,U+1dc4-1dc5,U+1e69,U+1e73,U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd-1ebe,U+1ec0-1ec3,U+1ec5-1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+1f62,U+1f7b,U+2001-2002,U+2004-2006,U+2009-200a,U+200c-2012,U+2015-2016,U+201a,U+201e-2021,U+2023,U+2025,U+2028,U+202a-202d,U+202f-2030,U+2032-2033,U+2035,U+2038,U+203c,U+203e-203f,U+2043-2044,U+2049,U+204d-204e,U+2060-2061,U+2070,U+2074-2078,U+207a-207b;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-99-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7-f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e-11f,U+121,U+123,U+125-127,U+129-12a,U+12d,U+12f-13f,U+141-142,U+144,U+146,U+14b-14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-6-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+f0a7,U+f0b2,U+f0b7,U+f0c9,U+f0d8,U+f0da,U+f0dc-f0dd,U+f0e0,U+f0e6,U+f0eb,U+f0fc,U+f101,U+f104-f105,U+f107,U+f10b,U+f11b,U+f14b,U+f18a,U+f193,U+f1d6-f1d7,U+f244,U+f27a,U+f296,U+f2ae,U+f471,U+f4b3,U+f610-f611,U+f880-f881,U+f8ec,U+f8f5,U+f8ff,U+f901,U+f90a,U+f92c-f92d,U+f934,U+f937,U+f941,U+f965,U+f967,U+f969,U+f96b,U+f96f,U+f974,U+f978-f979,U+f97e,U+f981,U+f98a,U+f98e,U+f997,U+f99c,U+f9b2,U+f9b5,U+f9ba,U+f9be,U+f9ca,U+f9d0-f9d1,U+f9dd,U+f9e0-f9e1,U+f9e4,U+f9f7,U+fa00-fa01,U+fa08,U+fa0a,U+fa11,U+fb01-fb02,U+fdfc,U+fe0e,U+fe30-fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b,U+fe8e,U+fe92-fe93,U+feae,U+feb8,U+fecb-fecc,U+fee0;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-23-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+9c82-9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad-9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf-9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc-9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee-9cef,U+9cf3-9cf4,U+9cf6,U+9cfc-9cfd,U+9d02,U+9d08-9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c-9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9-9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e2f;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-78-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+55f5-55f7,U+55fb,U+55fe,U+5600-5601,U+5605-5606,U+5608,U+560c-560d,U+560f,U+5614,U+5616-5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663-5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b-569c,U+569e-569f,U+56a1-56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee-56ef,U+56f1-56f3,U+56f5,U+56f7-56f8;
}
@font-face {
  font-family: 'Noto Sans SC VF';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/noto-sans-sc-79-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+550f,U+5511-5514,U+5516-5517,U+5519,U+551b,U+551d-551e,U+5520,U+5522-5523,U+5526-5527,U+552a-552c,U+5530,U+5532-5535,U+5537-5538,U+553b-5541,U+5543-5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b-557c,U+557e-557f,U+5581,U+5583,U+5585-5586,U+5588,U+558b-558c,U+558e-5591,U+5593,U+5599-559a,U+559f,U+55a5-55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9-55ba,U+55bc-55be,U+55c4,U+55c6-55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3;
}

/* Source: css/style.css */
@layer existing {
/* ============================================================
   备考分队 EXAM SQUAD · 绝区零 (ZZZ) 风格设计系统
   黄黑强对比 · 巨型浓缩字 · 警示条纹 · 故障艺术 · CRT 电视
   显示字体: Anton   数据字体: IBM Plex Mono
   ============================================================ */

:root {
  --black: #0d0d0f;
  --black-2: #17171b;
  --paper: #f2efe6;
  --paper-2: #e7e3d5;
  --yellow: #0a84ff;
  --yellow-deep: #006edb;
  --red: #ff3b30;
  --green: #3ddc64;
  --line-d: rgba(242, 239, 230, 0.14);

  --font-display: "Anton", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
  --font-body: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
    -apple-system, "Segoe UI", sans-serif;

  --max-width: 1140px;
  --text-width: 720px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  background: var(--black);
  color: var(--paper);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* 全局噪点氛围 */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2000;
  pointer-events: none;
  opacity: 0.5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

a {
  color: var(--yellow);
  text-decoration: none;
}

a:hover {
  color: #fff;
}

/* ---------- 警示条纹（通用） ---------- */
.stripes {
  height: 16px;
  background: repeating-linear-gradient(
    -45deg,
    var(--yellow) 0,
    var(--yellow) 16px,
    var(--black) 16px,
    var(--black) 32px
  );
}

/* ---------- 跑马灯横幅 ---------- */
.marquee {
  background: var(--yellow);
  color: var(--black);
  overflow: hidden;
  padding: 10px 0;
  border-top: 3px solid var(--black);
  border-bottom: 3px solid var(--black);
  position: relative;
  z-index: 1;
}

.marquee-track {
  display: flex;
  gap: 48px;
  width: max-content;
  animation: marquee 24s linear infinite;
}

.marquee span {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---------- 导航 ---------- */
/* ---------- 导航 · 基础（Apple 式玻璃条） ---------- */
html {
  scroll-padding-top: 76px;
}

.site-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: 54px;
  background: rgba(16, 16, 19, 0.72);
  -webkit-backdrop-filter: saturate(1.8) blur(20px);
  backdrop-filter: saturate(1.8) blur(20px);
  border-bottom: 1px solid rgba(242, 239, 230, 0.1);
}

.nav-inner {
  max-width: var(--max-width);
  height: 100%;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.nav-logo {
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 0.04em;
  color: var(--paper);
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  white-space: nowrap;
}

.nav-logo .logo-mark {
  color: var(--black);
  background: var(--yellow);
  padding: 1px 7px;
  margin-right: 8px;
}

.nav-logo:hover {
  color: var(--paper);
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none;
}

.nav-item > a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-mono);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: rgba(242, 239, 230, 0.72);
  padding: 8px 14px;
  white-space: nowrap;
  border-radius: 8px;
  transition: color 0.18s ease, background 0.18s ease;
}

.nav-item > a:hover {
  color: var(--paper);
  background: rgba(242, 239, 230, 0.07);
}

.nav-item > a.active {
  color: var(--yellow);
}

.nav-item.nav-on > a {
  color: var(--paper);
  background: rgba(242, 239, 230, 0.09);
}

.chev {
  width: 9px;
  height: 6px;
  opacity: 0.55;
  transition: transform 0.26s ease;
}

.nav-item.nav-on .chev {
  transform: rotate(180deg);
  opacity: 0.9;
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.nav-icon-btn {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  border-radius: 50%;
  color: rgba(242, 239, 230, 0.72);
  cursor: pointer;
  transition: color 0.18s ease, background 0.18s ease;
}

.nav-icon-btn svg {
  width: 16px;
  height: 16px;
}

.nav-icon-btn:hover {
  color: var(--paper);
  background: rgba(242, 239, 230, 0.09);
}

.nav-burger {
  display: none;
  width: 34px;
  height: 34px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none;
  border-radius: 8px;
  cursor: pointer;
}

.nav-burger span {
  display: block;
  width: 16px;
  height: 1.6px;
  background: var(--paper);
  border-radius: 2px;
  transition: transform 0.25s ease;
}

body.mobile-open .nav-burger span:first-child {
  transform: translateY(3.3px) rotate(45deg);
}

body.mobile-open .nav-burger span:last-child {
  transform: translateY(-3.3px) rotate(-45deg);
}

/* ---------- 通用 Section ---------- */
.section {
  position: relative;
  z-index: 1;
  padding: 90px 24px;
}

.section-inner {
  max-width: var(--max-width);
  margin: 0 auto;
}

.section-head {
  margin-bottom: 44px;
}

.section-head .head-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--black);
  background: var(--yellow);
  padding: 4px 12px;
  transform: rotate(-1.5deg);
  margin-bottom: 14px;
}

.section-head h2 {
  font-family: var(--font-display);
  font-size: clamp(30px, 4.6vw, 48px);
  letter-spacing: 0.02em;
  line-height: 1.1;
  text-transform: uppercase;
}

.section-head p {
  color: rgba(242, 239, 230, 0.62);
  font-size: 15.5px;
  margin-top: 8px;
}

/* ============================================================
   HERO · 巨型排版 + 故障标题 + 电视倒计时
   ============================================================ */
.hero {
  position: relative;
  z-index: 1;
  padding: 140px 24px 72px;
}

/* CRT 扫描线覆盖层 */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 3px,
    rgba(0, 0, 0, 0.16) 3px,
    rgba(0, 0, 0, 0.16) 4px
  );
  opacity: 0.5;
}

.hero-inner {
  position: relative;
  max-width: var(--max-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 48px;
  align-items: center;
}

.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--black);
  background: var(--red);
  color: #fff;
  padding: 5px 14px;
  transform: rotate(-1.2deg);
  margin-bottom: 22px;
}

.hero-title {
  font-family: var(--font-display);
  font-size: clamp(52px, 8.6vw, 104px);
  line-height: 0.98;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

.hero-title .row-en {
  display: block;
  color: var(--yellow);
  text-shadow: 4px 4px 0 var(--red);
}

.hero-title .row-cn {
  display: block;
  color: var(--paper);
  -webkit-text-stroke: 2px var(--paper);
}

.hero-title .row-cn.fill {
  -webkit-text-stroke: 0;
  color: var(--paper);
}

/* 故障文字 */
.glitch {
  position: relative;
  display: inline-block;
}

.glitch::before,
.glitch::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.glitch::before {
  color: var(--red);
  z-index: -1;
  animation: glitch-a 3.2s infinite steps(1);
}

.glitch::after {
  color: #35d0ff;
  z-index: -2;
  animation: glitch-b 2.7s infinite steps(1);
}

@keyframes glitch-a {
  0%, 92% { transform: translate(0); clip-path: inset(0 0 0 0); }
  93% { transform: translate(-4px, 2px); clip-path: inset(12% 0 58% 0); }
  95% { transform: translate(3px, -1px); clip-path: inset(62% 0 8% 0); }
  97% { transform: translate(-2px, 1px); clip-path: inset(30% 0 40% 0); }
  99% { transform: translate(0); clip-path: inset(0 0 0 0); }
}

@keyframes glitch-b {
  0%, 90% { transform: translate(0); clip-path: inset(0 0 0 0); }
  91% { transform: translate(4px, -2px); clip-path: inset(48% 0 22% 0); }
  94% { transform: translate(-3px, 2px); clip-path: inset(8% 0 74% 0); }
  96% { transform: translate(2px, 1px); clip-path: inset(70% 0 4% 0); }
  98% { transform: translate(0); clip-path: inset(0 0 0 0); }
}

.hero-sub {
  color: rgba(242, 239, 230, 0.66);
  font-size: 16px;
  margin: 22px 0 30px;
  max-width: 460px;
}

.hero-cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.btn-primary {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 0.08em;
  color: var(--black);
  background: var(--yellow);
  padding: 13px 30px;
  border: 3px solid var(--yellow);
  box-shadow: 5px 5px 0 var(--red);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.btn-primary:hover {
  color: var(--black);
  transform: translate(-2px, -2px);
  box-shadow: 8px 8px 0 var(--red);
}

.btn-ghost {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 0.08em;
  color: var(--paper);
  padding: 13px 26px;
  border: 3px solid var(--paper);
  transition: all 0.15s ease;
}

.btn-ghost:hover {
  color: var(--black);
  background: var(--paper);
}

/* ---------- 电视框倒计时 ---------- */
.tv {
  position: relative;
  background: var(--black-2);
  border: 4px solid var(--paper);
  outline: 4px solid var(--black);
  box-shadow: 10px 10px 0 rgba(10, 132, 255, 0.9);
}

/* 四角螺丝装饰 */
.tv::before,
.tv::after {
  content: "✚";
  position: absolute;
  font-size: 13px;
  color: var(--paper);
  opacity: 0.7;
}

.tv::before { top: 4px; left: 7px; }
.tv::after { top: 4px; right: 7px; }

.tv-screen {
  position: relative;
  padding: 22px 24px 20px;
  overflow: hidden;
}

/* 屏内扫描线 */
.tv-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 2px,
    rgba(0, 0, 0, 0.22) 2px,
    rgba(0, 0, 0, 0.22) 3px
  );
}

.tv-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.tv-rec {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--red);
}

.tv-rec i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--red);
  animation: rec-blink 1.1s steps(1) infinite;
}

@keyframes rec-blink {
  50% { opacity: 0.15; }
}

.tv-date {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--yellow);
  border: 2px solid var(--yellow);
  padding: 2px 10px;
}

.tv-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  color: rgba(242, 239, 230, 0.55);
  margin-bottom: 6px;
}

.tv-units {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.tv-unit {
  text-align: center;
}

.cd-num {
  font-family: var(--font-display);
  font-size: clamp(44px, 5.6vw, 66px);
  line-height: 1;
  color: var(--yellow);
  text-shadow: 0 0 22px rgba(10, 132, 255, 0.4);
  font-variant-numeric: tabular-nums;
}

.cd-num.tick {
  animation: digit-flip 0.45s cubic-bezier(0.3, 0.7, 0.3, 1);
}

@keyframes digit-flip {
  0% { transform: rotateX(0); opacity: 1; }
  45% { transform: rotateX(86deg); opacity: 0.15; }
  55% { transform: rotateX(-86deg); opacity: 0.15; }
  100% { transform: rotateX(0); opacity: 1; }
}

.cd-unit-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: rgba(242, 239, 230, 0.5);
  margin-top: 4px;
}

.tv-colon {
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 46px);
  color: var(--red);
  animation: rec-blink 1s steps(1) infinite;
  transform: translateY(-6px);
}

/* 进度条：警示条纹风 */
.tv-progress {
  position: relative;
  height: 14px;
  margin-top: 18px;
  border: 2px solid var(--paper);
  background: rgba(242, 239, 230, 0.08);
}

.cd-progress-bar {
  height: 100%;
  width: 0%;
  background: repeating-linear-gradient(
    -45deg,
    var(--yellow) 0,
    var(--yellow) 8px,
    var(--yellow-deep) 8px,
    var(--yellow-deep) 16px
  );
  transition: width 1.2s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.cd-progress-spark {
  position: absolute;
  top: 50%;
  left: 0%;
  width: 10px;
  height: 22px;
  margin: -11px 0 0 -5px;
  background: var(--red);
  transition: left 1.2s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.tv-meta {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: rgba(242, 239, 230, 0.45);
  margin-top: 8px;
}

.tv-quote {
  margin-top: 14px;
  padding: 10px 12px;
  border-left: 4px solid var(--yellow);
  background: rgba(10, 132, 255, 0.07);
  font-size: 13.5px;
  color: rgba(242, 239, 230, 0.85);
  transition: opacity 0.45s ease, transform 0.45s ease;
}

.tv-quote.quote-fade {
  opacity: 0;
  transform: translateY(6px);
}

/* ============================================================
   学科模块 · 纸面卡片 + 贴纸
   ============================================================ */
.subject-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.subject-card {
  position: relative;
  display: block;
  background: var(--paper);
  color: var(--black);
  padding: 24px 22px 22px;
  border: 3px solid var(--black);
  box-shadow: 6px 6px 0 var(--card-accent, var(--yellow));
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.subject-card:hover {
  transform: translate(-3px, -3px) rotate(-0.6deg);
  box-shadow: 10px 10px 0 var(--card-accent, var(--yellow));
  color: var(--black);
}

.card-math { --card-accent: var(--yellow); }
.card-politics { --card-accent: var(--red); }
.card-english { --card-accent: #35d0ff; }
.card-major { --card-accent: var(--green); }

/* 顶部胶带 */
.subject-card::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 22px;
  width: 74px;
  height: 22px;
  background: var(--card-accent, var(--yellow));
  opacity: 0.9;
  transform: rotate(-4deg);
}

.subject-card .card-index {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: #6f6a58;
  margin-bottom: 12px;
}

.subject-card .card-icon {
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: 26px;
  line-height: 1;
  background: var(--black);
  color: var(--card-accent, var(--yellow));
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(6deg);
}

.subject-card h3 {
  font-family: var(--font-display);
  font-size: 26px;
  letter-spacing: 0.02em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.subject-card .subject-desc {
  font-size: 13px;
  color: #4c4838;
  line-height: 1.65;
  min-height: 64px;
}

.subject-card .subject-meta {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  background: var(--black);
  color: var(--paper);
  padding: 3px 9px;
  margin-top: 12px;
}

.subject-card .subject-more {
  display: block;
  margin-top: 10px;
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--black);
}

.subject-card .subject-more::after {
  content: " ▸▸";
  color: var(--red);
}

/* ---------- 宣言区：警示条纹包边 ---------- */
.manifesto {
  background: var(--yellow);
  color: var(--black);
  text-align: center;
  padding: 70px 24px;
  position: relative;
  z-index: 1;
}

.manifesto .m-quote {
  font-family: var(--font-display);
  font-size: clamp(26px, 4.2vw, 44px);
  line-height: 1.3;
  letter-spacing: 0.02em;
  max-width: 820px;
  margin: 0 auto 14px;
  text-transform: uppercase;
}

.manifesto .m-sub {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: rgba(13, 13, 15, 0.65);
}

/* ============================================================
   学科页
   ============================================================ */
.page-hero {
  position: relative;
  z-index: 1;
  padding: 140px 24px 30px;
}

.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 3px,
    rgba(0, 0, 0, 0.14) 3px,
    rgba(0, 0, 0, 0.14) 4px
  );
  opacity: 0.4;
}

.page-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: #fff;
  background: var(--red);
  padding: 5px 14px;
  transform: rotate(-1.2deg);
  margin-bottom: 16px;
}

.page-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(46px, 7vw, 84px);
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-shadow: 4px 4px 0 rgba(10, 132, 255, 0.85);
}

.page-hero p {
  color: rgba(242, 239, 230, 0.62);
  font-size: 15.5px;
  max-width: 620px;
  margin-top: 12px;
}

/* ---------- 分区 ---------- */
.unit-block {
  margin-bottom: 60px;
}

.unit-block:last-child {
  margin-bottom: 0;
}

.unit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.unit-head h2 {
  font-family: var(--font-display);
  font-size: 24px;
  letter-spacing: 0.03em;
  background: var(--yellow);
  color: var(--black);
  padding: 4px 14px;
  transform: rotate(-0.8deg);
}

.unit-head .unit-note {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: rgba(242, 239, 230, 0.5);
}

/* ---------- 章节卡片 ---------- */
.chapter-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.chapter-card {
  background: var(--black-2);
  border: 2px solid var(--line-d);
  padding: 16px 18px;
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.chapter-card:hover {
  transform: translate(-2px, -2px);
  border-color: var(--yellow);
  box-shadow: 4px 4px 0 rgba(10, 132, 255, 0.75);
}

.chapter-card .ch-num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: rgba(242, 239, 230, 0.42);
}

.chapter-card h4 {
  font-size: 15.5px;
  font-weight: 600;
  margin: 5px 0 10px;
  line-height: 1.4;
}

.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 2px 9px;
  border: 1.5px solid;
}

.status-chip::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.chip-empty {
  color: rgba(242, 239, 230, 0.45);
  border-color: rgba(242, 239, 230, 0.25);
}

.chip-empty::before {
  background: rgba(242, 239, 230, 0.4);
}

.chip-ready {
  color: var(--green);
  border-color: rgba(61, 220, 100, 0.5);
  background: rgba(61, 220, 100, 0.08);
}

.chip-ready::before {
  background: var(--green);
  box-shadow: 0 0 8px rgba(61, 220, 100, 0.9);
  animation: rec-blink 1.6s steps(1) infinite;
}

/* ---------- 空状态 ---------- */
.empty-state {
  text-align: center;
  padding: 48px 24px;
  border: 3px dashed rgba(242, 239, 230, 0.3);
  background: rgba(23, 23, 27, 0.6);
}

.empty-state .empty-icon {
  font-size: 36px;
  margin-bottom: 12px;
}

.empty-state h3 {
  font-family: var(--font-display);
  font-size: 19px;
  letter-spacing: 0.04em;
  color: var(--yellow);
  margin-bottom: 6px;
}

.empty-state p {
  font-size: 14px;
  color: rgba(242, 239, 230, 0.6);
}

/* ============================================================
   文章正文页
   ============================================================ */
.article-hero {
  position: relative;
  z-index: 1;
  padding: 140px 24px 36px;
  text-align: center;
}

.article-hero .article-tag {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--yellow);
}

.article-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(30px, 4.8vw, 50px);
  line-height: 1.15;
  max-width: 820px;
  margin: 12px auto 0;
}

.article-hero .article-meta {
  margin-top: 16px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: rgba(242, 239, 230, 0.45);
}

.article-body {
  position: relative;
  z-index: 1;
  max-width: var(--text-width);
  margin: 0 auto;
  padding: 24px 24px 80px;
  font-size: 17px;
  line-height: 1.85;
  color: rgba(242, 239, 230, 0.82);
}

.article-body h2 {
  font-family: var(--font-display);
  font-size: 24px;
  letter-spacing: 0.03em;
  color: var(--paper);
  margin: 42px 0 14px;
  padding-left: 12px;
  border-left: 6px solid var(--yellow);
}

.article-body h3 {
  font-size: 19px;
  font-weight: 700;
  color: var(--paper);
  margin: 30px 0 10px;
}

.article-body p {
  margin-bottom: 18px;
}

.article-body ul,
.article-body ol {
  margin: 0 0 18px 22px;
}

.article-body li {
  margin-bottom: 7px;
}

.article-body blockquote {
  margin: 26px 0;
  padding: 14px 18px;
  background: rgba(10, 132, 255, 0.08);
  border-left: 5px solid var(--yellow);
  color: var(--paper);
}

.article-body pre {
  background: var(--black-2);
  border: 2px solid var(--line-d);
  padding: 18px 20px;
  overflow-x: auto;
  font-size: 14px;
  line-height: 1.6;
  margin: 20px 0;
}

.article-body code {
  font-family: var(--font-mono);
}

.article-body p code,
.article-body li code {
  background: rgba(10, 132, 255, 0.12);
  color: var(--yellow);
  padding: 2px 7px;
  font-size: 0.86em;
}

.back-link {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
}

/* ============================================================
   关于页
   ============================================================ */
.about-block {
  position: relative;
  z-index: 1;
  max-width: var(--text-width);
  margin: 0 auto;
  padding: 24px 24px 64px;
}

.about-block h2 {
  font-family: var(--font-display);
  font-size: 23px;
  letter-spacing: 0.03em;
  margin: 42px 0 12px;
  color: var(--yellow);
}

.about-block p {
  font-size: 16px;
  color: rgba(242, 239, 230, 0.78);
  line-height: 1.85;
}

.skill-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  margin-top: 10px;
}

.skill-chips li {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--black);
  background: var(--yellow);
  padding: 5px 14px;
  transform: rotate(-1deg);
}

.skill-chips li:nth-child(even) {
  transform: rotate(1.2deg);
}

/* ============================================================
   页脚
   ============================================================ */
.site-footer {
  position: relative;
  z-index: 1;
  border-top: 3px solid var(--yellow);
  padding: 34px 24px;
  background: var(--black);
}

.footer-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  font-family: var(--font-mono);
  font-size: 12px;
  color: rgba(242, 239, 230, 0.45);
}

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  padding-bottom: 14px;
  border-bottom: 1px dashed var(--line-d);
  margin-bottom: 14px;
}

.footer-nav a {
  color: rgba(242, 239, 230, 0.75);
  font-weight: 600;
}

.footer-nav a:hover {
  color: var(--yellow);
}

.copyright {
  line-height: 1.9;
}

/* ---------- 渐入动画 ---------- */
.fade-in {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================================
   动效增强：开场幕 / 背景巨字 / 装饰贴纸 / 信号条 / 电视干扰 / 流动条纹 / 交错入场
   ============================================================ */

/* ---------- 开场加载幕 ---------- */
.intro {
  position: fixed;
  inset: 0;
  z-index: 3000;
  background: var(--black);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  animation: intro-out 0.5s ease 1s forwards;
}

.intro-logo {
  font-family: var(--font-display);
  font-size: clamp(28px, 7vw, 40px);
  letter-spacing: 0.06em;
  color: var(--yellow);
  text-shadow: 3px 3px 0 var(--red);
}

.intro-bar {
  width: min(220px, 60vw);
  height: 10px;
  border: 2px solid var(--paper);
  padding: 1px;
}

.intro-bar i {
  display: block;
  height: 100%;
  width: 0;
  background: repeating-linear-gradient(-45deg, var(--yellow) 0, var(--yellow) 6px, var(--yellow-deep) 6px, var(--yellow-deep) 12px);
  animation: intro-load 0.9s cubic-bezier(0.3, 0.8, 0.4, 1) forwards;
}

.intro-text {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.3em;
  color: rgba(242, 239, 230, 0.55);
  animation: rec-blink 0.8s steps(1) infinite;
}

@keyframes intro-load {
  to { width: 100%; }
}

@keyframes intro-out {
  to { opacity: 0; visibility: hidden; }
}

/* ---------- 背景巨型描边滚动字 ---------- */
.bg-word {
  position: absolute;
  bottom: -26px;
  left: 0;
  right: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.bg-word span {
  display: inline-block;
  white-space: nowrap;
  font-family: var(--font-display);
  font-size: clamp(100px, 16vw, 190px);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(242, 239, 230, 0.08);
  animation: bg-word-move 36s linear infinite;
}

@keyframes bg-word-move {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---------- 装饰贴纸 ---------- */
.hero-deco {
  position: absolute;
  z-index: 2;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  padding: 5px 12px;
  pointer-events: none;
  animation: deco-float 4.5s ease-in-out infinite alternate;
}

.deco-1 {
  top: 17%;
  right: 5%;
  color: var(--yellow);
  border: 2px solid var(--yellow);
  transform: rotate(7deg);
}

.deco-2 {
  bottom: 16%;
  left: 3%;
  color: #fff;
  background: var(--red);
  transform: rotate(-5deg);
  animation-delay: -1.6s;
}

.deco-3 {
  top: 62%;
  right: 11%;
  color: rgba(242, 239, 230, 0.6);
  border: 2px dashed rgba(242, 239, 230, 0.35);
  transform: rotate(-3deg);
  animation-delay: -3s;
}

@keyframes deco-float {
  from { margin-top: 0; }
  to { margin-top: -14px; }
}

/* ---------- 信号均衡器 ---------- */
.eq {
  display: inline-flex;
  align-items: flex-end;
  gap: 2.5px;
  height: 13px;
  margin-left: 4px;
}

.eq i {
  width: 3px;
  height: 100%;
  background: var(--yellow);
  transform-origin: bottom;
  animation: eq-jump 0.85s ease-in-out infinite;
}

.eq i:nth-child(2) { animation-delay: 0.15s; }
.eq i:nth-child(3) { animation-delay: 0.3s; }
.eq i:nth-child(4) { animation-delay: 0.45s; }

@keyframes eq-jump {
  0%, 100% { transform: scaleY(0.25); }
  50% { transform: scaleY(1); }
}

/* ---------- 电视信号干扰 ---------- */
.tv.zap {
  animation: tv-zap 0.22s steps(2);
}

@keyframes tv-zap {
  0% { filter: none; transform: translateX(0); }
  50% { filter: brightness(1.7) contrast(1.5); transform: translateX(3px); }
  100% { filter: none; transform: translateX(0); }
}

/* ---------- 流动警示条纹 ---------- */
.stripes-anim {
  animation: stripes-slide 1.1s linear infinite;
}

@keyframes stripes-slide {
  to { background-position: 45.25px 0; }
}

/* ---------- 交错入场 ---------- */
.d1 { transition-delay: 0.05s; }
.d2 { transition-delay: 0.14s; }
.d3 { transition-delay: 0.23s; }
.d4 { transition-delay: 0.32s; }

/* ---------- 按钮故障悬停 ---------- */
.btn-primary {
  position: relative;
}

.btn-primary:active {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--red);
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width: 1000px) {
  .hero-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .subject-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .hero {
    padding: 108px 18px 56px;
  }
  .section {
    padding: 56px 18px;
  }
  .subject-grid {
    grid-template-columns: 1fr;
  }
  .chapter-grid {
    grid-template-columns: 1fr;
  }
  .tv-units {
    gap: 4px;
  }
  .unit-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .bg-word {
    bottom: -14px;
  }
}

/* ---------- 小屏手机（≤480px）重点适配 ---------- */
@media (max-width: 480px) {
  /* 导航：汉堡菜单模式 */
  .site-nav {
    height: 48px;
  }
  .nav-inner {
    padding: 0 14px;
  }
  .nav-logo {
    font-size: 15px;
  }
  .nav-logo .logo-mark {
    font-size: 10px;
    padding: 1px 5px;
    margin-right: 5px;
  }
  .nav-menu {
    display: none;
  }
  .nav-burger {
    display: flex;
  }
  .nav-icon-btn {
    width: 32px;
    height: 32px;
  }
  .nav-mega {
    display: none;
  }

  /* Hero */
  .hero {
    padding: 96px 16px 52px;
  }
  .hero-tag {
    font-size: 10px;
    padding: 4px 10px;
    margin-bottom: 16px;
  }
  .hero-title {
    font-size: clamp(40px, 11.6vw, 56px);
  }
  .hero-sub {
    font-size: 14.5px;
    margin: 16px 0 22px;
  }
  .hero-cta {
    gap: 10px;
  }
  .btn-primary,
  .btn-ghost {
    font-size: 15px;
    padding: 11px 22px;
  }
  .hero-deco {
    display: none;
  }

  /* 电视倒计时：小屏防溢出 */
  .tv {
    box-shadow: 6px 6px 0 rgba(10, 132, 255, 0.9);
  }
  .tv-screen {
    padding: 16px 12px 14px;
  }
  .tv-top {
    margin-bottom: 10px;
  }
  .tv-rec {
    font-size: 10.5px;
  }
  .tv-date {
    font-size: 10.5px;
    padding: 2px 7px;
  }
  .cd-num {
    font-size: clamp(28px, 8.6vw, 42px);
  }
  .tv-colon {
    font-size: clamp(18px, 5.6vw, 28px);
    transform: translateY(-3px);
  }
  .cd-unit-label {
    font-size: 10px;
  }
  .tv-quote {
    font-size: 12.5px;
    padding: 8px 10px;
  }

  /* 跑马灯与区块 */
  .marquee {
    padding: 8px 0;
  }
  .marquee span {
    font-size: 16px;
  }
  .section-head {
    margin-bottom: 30px;
  }
  .section-head h2 {
    font-size: clamp(26px, 7.6vw, 34px);
  }
  .section-head .head-tag {
    font-size: 11px;
  }

  /* 学科卡 */
  .subject-card {
    padding: 22px 18px 20px;
  }
  .subject-card h3 {
    font-size: 24px;
  }
  .subject-card .card-icon {
    width: 40px;
    height: 40px;
    font-size: 22px;
  }

  /* 宣言区 */
  .manifesto {
    padding: 52px 18px;
  }
  .manifesto .m-quote {
    font-size: clamp(21px, 6.6vw, 30px);
  }
  .manifesto .m-sub {
    font-size: 11px;
  }

  /* 学科页 */
  .page-hero {
    padding: 104px 16px 24px;
  }
  .page-tag {
    font-size: 11px;
  }
  .page-hero h1 {
    font-size: clamp(40px, 11.4vw, 58px);
  }
  .page-hero p {
    font-size: 14.5px;
  }
  .unit-head h2 {
    font-size: 20px;
  }
  .unit-head .unit-note {
    font-size: 11px;
  }

  /* 页脚：适配全面屏底部安全区 */
  .site-footer {
    padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  }
}

/* ---------- 超小屏（≤360px）兼容 ---------- */
@media (max-width: 360px) {
  .nav-logo {
    font-size: 14px;
  }
  .hero-title {
    font-size: 38px;
  }
  .cd-num {
    font-size: 26px;
  }
  .tv-colon {
    font-size: 17px;
  }
  .tv-screen {
    padding: 14px 9px 12px;
  }
  .marquee span {
    font-size: 14px;
  }
}

/* ---------- 减少动态偏好 ---------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms ;
    animation-iteration-count: 1 ;
    transition-duration: 0.01ms ;
  }
}

/* ============================================================
   碎片粒子倒计时 · SHATTER PARTICLE COUNTDOWN
   ============================================================ */
.cd-stage {
  position: relative;
  height: clamp(140px, 24vw, 196px);
  margin-top: 4px;
  cursor: crosshair;
  touch-action: pan-y;
}

.cd-stage canvas {
  display: block;
}

/* 无 canvas / 减少动态偏好时的纯数字兜底 */
.cd-fallback {
  display: none;
  height: 100%;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.cd-fallback.show {
  display: flex;
}

.cd-fallback .cd-days-text {
  font-family: var(--font-display);
  font-size: clamp(88px, 15vw, 148px);
  line-height: 1;
  color: var(--yellow);
  text-shadow: 0 0 26px rgba(10, 132, 255, 0.45);
  font-variant-numeric: tabular-nums;
}

.cd-fallback .cd-fallback-unit {
  font-family: var(--font-display);
  font-size: 26px;
  color: var(--paper);
}

.cd-sub {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin-top: 8px;
}

.cd-sub-unit {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 0.3em;
  color: var(--paper);
}

.cd-sub-en {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  color: rgba(242, 239, 230, 0.5);
}

.cd-hint {
  margin-top: 8px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: rgba(10, 132, 255, 0.6);
  animation: hint-pulse 2.6s ease-in-out infinite;
}

@keyframes hint-pulse {
  50% { opacity: 0.35; }
}

/* ============================================================
   打卡作战室 · SCHEDULE / CHECK-IN
   ============================================================ */
.sch-panel {
  position: relative;
  background: var(--black-2);
  border: 4px solid var(--paper);
  outline: 4px solid var(--black);
  box-shadow: 10px 10px 0 rgba(10, 132, 255, 0.9);
  padding: 20px 22px 18px;
  overflow: hidden;
}

/* 屏内扫描线 */
.sch-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 2px,
    rgba(0, 0, 0, 0.22) 2px,
    rgba(0, 0, 0, 0.22) 3px
  );
}

.sch-panel-top {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.sch-now-badge {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  padding: 4px 10px;
  background: var(--paper);
  color: var(--black);
}

.sch-now-badge.t-study { background: var(--yellow); color: var(--black); }
.sch-now-badge.t-rest { background: var(--green); color: var(--black); }
.sch-now-badge.t-life { background: var(--paper); color: var(--black); }
.sch-now-badge.t-fun { background: var(--red); color: #fff; }
.sch-now-badge.t-idle { background: transparent; color: rgba(242, 239, 230, 0.6); border: 1px dashed rgba(242, 239, 230, 0.4); }

.sch-now-name {
  font-family: var(--font-display);
  font-size: clamp(20px, 3vw, 28px);
  letter-spacing: 0.03em;
  color: var(--paper);
}

.sch-now-range {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--yellow);
  border: 2px solid var(--yellow);
  padding: 2px 10px;
}

/* 安静数字时钟：等宽大字，只有变化的位轻微淡入，冒号缓慢呼吸 */
.sch-clock {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: baseline;
  padding: 26px 0 14px;
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: clamp(52px, 8.5vw, 108px);
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--yellow);
  text-shadow: 0 0 24px rgba(10, 132, 255, 0.25);
  font-variant-numeric: tabular-nums;
  user-select: none;
}

.sch-clock .d {
  display: inline-block;
  min-width: 0.62em;
  text-align: center;
}

.sch-clock .d.shift {
  animation: sch-digit 0.22s ease;
}

@keyframes sch-digit {
  0% { opacity: 0.25; transform: translateY(3px); }
  100% { opacity: 1; transform: translateY(0); }
}

.sch-clock .c {
  color: var(--red);
  padding: 0 0.04em;
  animation: sch-colon 1s ease-in-out infinite;
}

@keyframes sch-colon {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.sch-sub {
  text-align: center;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  color: rgba(242, 239, 230, 0.5);
  margin-top: 6px;
}

.sch-progress {
  position: relative;
  height: 14px;
  margin-top: 14px;
  border: 2px solid var(--paper);
  background: rgba(242, 239, 230, 0.08);
  z-index: 1;
}

.sch-progress-bar {
  height: 100%;
  width: 0%;
  background: repeating-linear-gradient(
    -45deg,
    var(--yellow) 0,
    var(--yellow) 8px,
    var(--yellow-deep) 8px,
    var(--yellow-deep) 16px
  );
  transition: width 0.5s linear;
}

.sch-progress-spark {
  position: absolute;
  top: 50%;
  left: 0%;
  width: 10px;
  height: 22px;
  margin: -11px 0 0 -5px;
  background: var(--red);
  transition: left 0.5s linear;
}

.sch-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: rgba(242, 239, 230, 0.45);
  margin-top: 8px;
  position: relative;
  z-index: 1;
}

/* ---------- 打卡区 ---------- */
.sch-checkin-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 20px;
}

.sch-checkin-card,
.sch-note-card {
  position: relative;
  background: var(--paper);
  color: var(--black);
  padding: 26px 24px;
  border: 3px solid var(--black);
  box-shadow: 8px 8px 0 var(--red);
}

.sch-note-card {
  box-shadow: 8px 8px 0 var(--yellow);
}

.ci-btn {
  display: block;
  width: 100%;
  font-family: var(--font-display);
  font-size: clamp(24px, 3.4vw, 34px);
  letter-spacing: 0.1em;
  color: var(--black);
  background: var(--yellow);
  border: 4px solid var(--black);
  padding: 22px 10px;
  cursor: pointer;
  box-shadow: 6px 6px 0 var(--black);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s ease;
}

.ci-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 9px 9px 0 var(--black);
}

.ci-btn:active {
  transform: translate(3px, 3px);
  box-shadow: 2px 2px 0 var(--black);
}

.ci-btn.done {
  background: var(--green);
  cursor: default;
}

/* 盖章动画 */
.ci-btn.stamp {
  animation: ci-stamp 0.55s cubic-bezier(0.2, 1.6, 0.4, 1);
}

@keyframes ci-stamp {
  0% { transform: scale(2.2) rotate(-14deg); opacity: 0.2; }
  60% { transform: scale(0.94) rotate(2deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); }
}

.ci-stats {
  display: flex;
  gap: 16px;
  margin-top: 20px;
}

.ci-stat {
  flex: 1;
  text-align: center;
  border: 2px dashed rgba(13, 13, 15, 0.35);
  padding: 12px 8px;
}

.ci-stat b {
  display: block;
  font-family: var(--font-display);
  font-size: 42px;
  line-height: 1;
  color: var(--red);
}

.ci-stat span {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: rgba(13, 13, 15, 0.6);
}

.ci-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: rgba(13, 13, 15, 0.65);
  margin-bottom: 10px;
}

.sch-note-card textarea {
  width: 100%;
  resize: vertical;
  min-height: 96px;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--black);
  background: #fff;
  border: 2px solid var(--black);
  padding: 10px 12px;
  outline: none;
}

.sch-note-card textarea:focus {
  border-color: var(--red);
  box-shadow: 4px 4px 0 rgba(255, 59, 48, 0.35);
}

.sch-note-card textarea:disabled {
  background: var(--paper-2);
  color: rgba(13, 13, 15, 0.4);
}

.ci-note-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}

.ci-save {
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 0.08em;
  color: var(--paper);
  background: var(--black);
  border: 3px solid var(--black);
  padding: 9px 22px;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
}

.ci-save:hover:not(:disabled) {
  background: var(--red);
  transform: translate(-1px, -1px);
}

.ci-save:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.ci-hint {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: rgba(13, 13, 15, 0.55);
}

/* 历史记录 */
.ci-history {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.ci-empty {
  grid-column: 1 / -1;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: rgba(242, 239, 230, 0.5);
  border: 2px dashed var(--line-d);
  padding: 18px;
  text-align: center;
}

.ci-card {
  background: var(--black-2);
  border: 2px solid var(--line-d);
  border-left: 5px solid var(--yellow);
  padding: 14px 16px;
}

.ci-card-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.ci-date {
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--yellow);
  letter-spacing: 0.04em;
}

.ci-time {
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(242, 239, 230, 0.5);
}

.ci-del {
  margin-left: auto;
  background: none;
  border: none;
  color: rgba(242, 239, 230, 0.35);
  font-size: 13px;
  cursor: pointer;
  padding: 2px 6px;
}

.ci-del:hover { color: var(--red); }

.ci-note {
  margin-top: 8px;
  font-size: 13.5px;
  color: rgba(242, 239, 230, 0.85);
  white-space: pre-wrap;
  word-break: break-word;
}

.ci-note-empty { color: rgba(242, 239, 230, 0.35); }

/* ---------- 课表 ---------- */
.sch-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
}

.sch-tabs button {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: rgba(242, 239, 230, 0.6);
  background: transparent;
  border: 2px solid var(--line-d);
  padding: 7px 18px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.sch-tabs button:hover { border-color: var(--paper); color: var(--paper); }

.sch-tabs button.active {
  background: var(--yellow);
  border-color: var(--yellow);
  color: var(--black);
}

.sch-table {
  width: 100%;
  border-collapse: collapse;
  border: 3px solid var(--paper);
  background: var(--black-2);
}

.sch-table th {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--black);
  background: var(--yellow);
  padding: 10px 12px;
  text-align: left;
}

.sch-table td {
  padding: 10px 12px;
  border-top: 1px solid var(--line-d);
  font-size: 14px;
  color: rgba(242, 239, 230, 0.88);
}

.sch-table .sch-time {
  font-family: var(--font-mono);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--paper);
  white-space: nowrap;
}

/* 当前时段行高亮 */
.sch-table tr.now td {
  background: rgba(10, 132, 255, 0.14);
  color: var(--yellow);
}

.sch-table tr.now td:first-child::before {
  content: "▶";
  color: var(--red);
  margin-right: 6px;
  animation: rec-blink 1.1s steps(1) infinite;
}

.sch-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  padding: 2px 9px;
}

.sch-tag-study { background: var(--yellow); color: var(--black); }
.sch-tag-rest { background: var(--green); color: var(--black); }
.sch-tag-life { background: transparent; border: 1px solid rgba(242, 239, 230, 0.4); color: rgba(242, 239, 230, 0.7); }
.sch-tag-fun { background: var(--red); color: #fff; }

.sch-foot {
  margin-top: 14px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: rgba(242, 239, 230, 0.45);
}

@media (max-width: 1000px) {
  .sch-checkin-grid { grid-template-columns: 1fr; }
  .ci-history { grid-template-columns: 1fr; }
  .sch-now-range { margin-left: 0; }
}


/* ============================================================
   NAV · Apple 式 Mega Menu（悬停展开）
   ============================================================ */
.nav-mega {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: rgba(16, 16, 19, 0.86);
  -webkit-backdrop-filter: saturate(1.6) blur(28px);
  backdrop-filter: saturate(1.6) blur(28px);
  border-bottom: 1px solid rgba(242, 239, 230, 0.1);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
}

.nav-mega.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition: opacity 0.28s ease, transform 0.28s ease;
}

.mega-inner {
  max-width: 980px;
  margin: 0 auto;
  padding: 30px 24px 34px;
}

/* 笔记库：四科卡片 */
.mega-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.mega-tile {
  padding: 16px 16px 14px;
  border-radius: 14px;
  border: 1px solid transparent;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.mega-tile:hover {
  background: rgba(242, 239, 230, 0.055);
}

.mega-tile.cur {
  border-color: rgba(10, 132, 255, 0.4);
  background: rgba(10, 132, 255, 0.05);
}

.mega-tile-head {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 12px;
}

.mega-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--black);
}

.ic-math { background: var(--yellow); }
.ic-politics { background: var(--red); color: #fff; }
.ic-english { background: var(--paper); }
.ic-major { background: var(--green); }

.mega-tile-txt {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.mega-name {
  font-weight: 700;
  font-size: 14.5px;
  color: var(--paper);
}

.mega-tagline {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: rgba(242, 239, 230, 0.42);
}

.mega-list {
  list-style: none;
  display: grid;
  gap: 1px;
}

.mega-list a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 9px;
  margin: 0 -9px;
  border-radius: 8px;
  font-size: 13px;
  color: rgba(242, 239, 230, 0.66);
  transition: color 0.15s ease, background 0.15s ease;
}

.mega-list a i {
  font-style: normal;
  font-family: var(--font-mono);
  font-size: 10px;
  color: rgba(242, 239, 230, 0.32);
  letter-spacing: 0.06em;
  flex-shrink: 0;
}

.mega-list a:hover {
  color: var(--paper);
  background: rgba(242, 239, 230, 0.06);
}

.mega-foot {
  display: flex;
  gap: 26px;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid rgba(242, 239, 230, 0.08);
}

.mega-foot a {
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: 0.08em;
  color: var(--yellow);
  opacity: 0.85;
  transition: opacity 0.15s ease;
}

.mega-foot a:hover {
  opacity: 1;
}

/* 作战资源：三列链接 */
.mega-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.mega-col h5 {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: rgba(242, 239, 230, 0.4);
  margin-bottom: 10px;
}

.mega-col .mega-list a {
  justify-content: flex-start;
  font-size: 13.5px;
  padding: 7px 9px;
  margin: 0 -9px;
}

/* 页面压暗层 */
.nav-dim {
  position: fixed;
  inset: 0;
  z-index: 99;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

body.nav-open .nav-dim {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.3s ease;
}

/* ============================================================
   NAV · 移动端全屏菜单
   ============================================================ */
.mobile-menu {
  position: fixed;
  top: 48px;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99;
  background: rgba(13, 13, 15, 0.96);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
  padding: 10px 28px 40px;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0.3s;
}

body.mobile-open .mobile-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.mm-list {
  list-style: none;
}

.mm-item {
  border-bottom: 1px solid rgba(242, 239, 230, 0.09);
}

.mm-item > a,
.mm-acc-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 17px 2px;
  font-size: 21px;
  font-weight: 600;
  color: var(--paper);
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
}

.mm-item > a:active {
  color: var(--yellow);
}

.mm-acc-btn .chev {
  width: 12px;
  height: 8px;
}

.mm-acc.open .mm-acc-btn .chev {
  transform: rotate(180deg);
}

.mm-sub {
  display: grid;
  gap: 2px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.32s ease;
}

.mm-acc.open .mm-sub {
  max-height: 420px;
  padding-bottom: 12px;
}

.mm-sub a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 10px;
  margin: 0 -10px;
  border-radius: 10px;
}

.mm-sub a:active {
  background: rgba(242, 239, 230, 0.07);
}

.mm-ic {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--black);
}

.mm-txt {
  display: flex;
  flex-direction: column;
}

.mm-txt b {
  font-size: 15.5px;
  font-weight: 600;
  color: var(--paper);
}

.mm-txt i {
  font-style: normal;
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: rgba(242, 239, 230, 0.4);
  letter-spacing: 0.08em;
  margin-top: 1px;
}

.mm-search-row {
  border-bottom: none;
}

.mm-search-row button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 17px 2px;
  background: none;
  border: none;
  color: rgba(242, 239, 230, 0.55);
  font-size: 17px;
  cursor: pointer;
}

.mm-search-row svg {
  width: 17px;
  height: 17px;
}

/* ============================================================
   NAV · 站内搜索弹层
   ============================================================ */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 1500;
  background: rgba(10, 10, 12, 0.66);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 13vh 20px 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.24s ease, visibility 0s linear 0.24s;
}

.search-overlay.open {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.24s ease;
}

.search-box {
  width: 100%;
  max-width: 560px;
  background: rgba(23, 23, 27, 0.94);
  border: 1px solid rgba(242, 239, 230, 0.13);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.55);
  transform: translateY(-8px) scale(0.99);
  transition: transform 0.24s ease;
}

.search-overlay.open .search-box {
  transform: translateY(0) scale(1);
}

.search-input-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 18px;
  border-bottom: 1px solid rgba(242, 239, 230, 0.08);
}

.search-glyph {
  color: rgba(242, 239, 230, 0.45);
  display: inline-flex;
}

.search-glyph svg {
  width: 17px;
  height: 17px;
}

.search-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--paper);
  font-size: 15.5px;
  font-family: var(--font-body);
}

.search-input::placeholder {
  color: rgba(242, 239, 230, 0.3);
}

.search-close {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  color: rgba(242, 239, 230, 0.4);
  background: rgba(242, 239, 230, 0.07);
  border: 1px solid rgba(242, 239, 230, 0.12);
  border-radius: 6px;
  padding: 3px 8px;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.search-close:hover {
  color: var(--paper);
  background: rgba(242, 239, 230, 0.12);
}

.search-results {
  max-height: 46vh;
  overflow-y: auto;
  padding: 8px;
}

.search-item {
  display: block;
  padding: 10px 12px;
  border-radius: 10px;
  cursor: pointer;
}

.search-item:hover,
.search-item.sel {
  background: rgba(10, 132, 255, 0.09);
}

.search-item .si-crumb {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: rgba(242, 239, 230, 0.38);
}

.search-item .si-title {
  font-size: 14px;
  color: var(--paper);
  margin-top: 2px;
}

.search-empty {
  padding: 26px 20px;
  text-align: center;
  color: rgba(242, 239, 230, 0.4);
  font-size: 13.5px;
}

.search-hint {
  padding: 10px 18px;
  border-top: 1px solid rgba(242, 239, 230, 0.08);
  display: flex;
  gap: 18px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: rgba(242, 239, 230, 0.32);
}

.search-hint b {
  font-weight: 600;
  color: rgba(242, 239, 230, 0.5);
}

body.no-scroll {
  overflow: hidden;
}

@media (max-width: 768px) {
  .nav-menu {
    display: none;
  }
  .nav-burger {
    display: flex;
  }
  .nav-mega {
    display: none;
  }
  .mobile-menu {
    top: 48px;
  }
  .site-nav {
    height: 48px;
  }
  html {
    scroll-padding-top: 70px;
  }
}

/* ============================================================
   资料库 · 文件下载卡片
   ============================================================ */
.file-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.file-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  background: var(--black-2);
  border: 2px solid var(--line-d);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.file-card:hover {
  border-color: var(--yellow);
  box-shadow: 4px 4px 0 rgba(10, 132, 255, 0.22);
  transform: translate(-2px, -2px);
}

.file-type {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--yellow);
  border: 1.5px solid var(--yellow);
  padding: 3px 7px;
  flex-shrink: 0;
}

.file-info {
  flex: 1;
  min-width: 0;
}

.file-info h4 {
  font-size: 16px;
  color: var(--paper);
  line-height: 1.3;
}

.file-info p {
  font-size: 12.5px;
  color: rgba(242, 239, 230, 0.5);
  margin-top: 3px;
}

.file-size {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: rgba(10, 132, 255, 0.75);
  margin-top: 7px;
}

.file-dl {
  font-family: var(--font-mono);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--black);
  background: var(--yellow);
  border: 2px solid var(--yellow);
  padding: 9px 16px;
  flex-shrink: 0;
  white-space: nowrap;
  transition: background 0.18s ease, color 0.18s ease;
}

.file-dl:hover {
  background: transparent;
  color: var(--yellow);
}

@media (max-width: 640px) {
  .file-grid {
    grid-template-columns: 1fr;
  }
}

/* 加载幕 CSS 保底：即使 main.js 失效，最多 4.5s 后自动消失，绝不困住访客 */
.intro {
  animation: intro-vanish 0.4s ease 4.5s forwards;
}

@keyframes intro-vanish {
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* ============================================================
   联机大厅
   ============================================================ */
.mc-status-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  padding: 26px 28px;
  background: var(--black-2);
  border: 2px solid var(--green);
  box-shadow: 6px 6px 0 rgba(61, 220, 100, 0.25);
}

.mc-status-left {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mc-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #555;
}

.mc-dot.on { background: var(--green); box-shadow: 0 0 14px rgba(61, 220, 100, 0.8); }
.mc-dot.off { background: var(--red); }
.mc-dot.na { background: #777; }

.mc-state {
  font-weight: 700;
  font-size: 17px;
  color: var(--paper);
}

.mc-sub {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: rgba(242, 239, 230, 0.45);
  margin-top: 4px;
}

.mc-addr-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.mc-addr {
  font-family: var(--font-mono);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--yellow);
  background: rgba(10, 132, 255, 0.07);
  border: 1.5px dashed rgba(10, 132, 255, 0.5);
  padding: 10px 18px;
}

.btn-copy {
  font-family: var(--font-mono);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--black);
  background: var(--yellow);
  border: 2px solid var(--yellow);
  padding: 11px 18px;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease;
}

.btn-copy:hover {
  background: transparent;
  color: var(--yellow);
}

.mc-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.mc-step {
  display: flex;
  gap: 14px;
  padding: 18px;
  background: var(--black-2);
  border: 2px solid var(--line-d);
}

.mc-step b {
  font-family: var(--font-display);
  font-size: 26px;
  color: var(--yellow);
  line-height: 1;
  flex-shrink: 0;
}

.mc-step h4 {
  font-size: 15px;
  color: var(--paper);
  margin-bottom: 6px;
}

.mc-step p {
  font-size: 13px;
  line-height: 1.65;
  color: rgba(242, 239, 230, 0.55);
}

.mc-step p b {
  font-size: 13px;
  color: var(--yellow);
  font-family: var(--font-mono);
}

@media (max-width: 860px) {
  .mc-steps { grid-template-columns: 1fr; }
  .mc-status-card { flex-direction: column; align-items: flex-start; }
}

/* 联机大厅图标色 */
.ic-mc { background: var(--green); }
.ic-dst { background: #b07cff; color: var(--black); }
.mega-grid-2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 860px) { .mega-grid-2 { grid-template-columns: 1fr; } }


/* 手机日历订阅板块 */
.ics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.ics-card {
  padding: 20px 22px;
  background: var(--black-2);
  border: 2px solid var(--line-d);
}

.ics-card h4 {
  font-size: 16px;
  color: var(--yellow);
  margin-bottom: 12px;
}

.ics-card ol {
  padding-left: 18px;
  display: grid;
  gap: 8px;
}

.ics-card li {
  font-size: 13px;
  line-height: 1.65;
  color: rgba(242, 239, 230, 0.68);
}

.ics-card li b {
  color: var(--paper);
}

.ics-card p {
  font-size: 13px;
  color: rgba(242, 239, 230, 0.55);
}

.ics-note {
  margin-top: 10px;
  font-size: 11.5px ;
  color: rgba(242, 239, 230, 0.38) ;
}

@media (max-width: 860px) {
  .ics-grid { grid-template-columns: 1fr; }
}


/* ============ 30 讲笔记体系 ============ */
.lec-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lec-desc {
  font-size: 12px;
  color: rgba(242, 239, 230, 0.5);
  line-height: 1.5;
}

.lnotes {
  margin-top: 4px;
  border-top: 1px dashed rgba(10, 132, 255, 0.35);
  padding-top: 8px;
}

.lnotes summary {
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--yellow);
  list-style: none;
  user-select: none;
}

.lnotes summary::-webkit-details-marker { display: none; }

.lnotes summary::before {
  content: "▸ ";
}

.lnotes[open] summary::before {
  content: "▾ ";
}

.lnotes[open] {
  padding-bottom: 6px;
}

/* 笔记正文样式 */
.nb h5 {
  font-size: 13px;
  font-weight: 700;
  color: var(--yellow);
  margin: 14px 0 6px;
  letter-spacing: 0.04em;
}

.nb h5:first-child { margin-top: 6px; }

.nb p, .nb li {
  font-size: 12.8px;
  line-height: 1.72;
  color: rgba(242, 239, 230, 0.78);
}

.nb ol, .nb ul {
  padding-left: 18px;
  display: grid;
  gap: 5px;
  margin-bottom: 6px;
}

.nb b { color: var(--paper); }

.nb sup, .nb sub { font-size: 9.5px; }

.nb-loc {
  font-size: 12.5px ;
  color: rgba(242, 239, 230, 0.62) ;
  border-left: 3px solid var(--yellow);
  padding-left: 10px;
  margin-bottom: 10px ;
}

.nb-tip {
  font-size: 12.2px ;
  background: rgba(10, 132, 255, 0.07);
  border: 1px dashed rgba(10, 132, 255, 0.4);
  padding: 8px 10px;
  margin-top: 10px ;
  color: rgba(242, 239, 230, 0.72) ;
}


.lec-link {
  display: inline-block;
  margin-top: 6px;
  font-family: ui-monospace, Consolas, monospace;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #0d0d0f;
  background: #0a84ff;
  border: 2px solid #0a84ff;
  padding: 6px 12px;
  text-decoration: none;
  transition: background 0.18s, color 0.18s;
}

.lec-link:hover {
  background: transparent;
  color: #0a84ff;
}

.fml-head { font-family: ui-monospace, Consolas, monospace; font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; color: #3ddc64; margin-bottom: 8px; }
.fml-sep { border: none; border-top: 1px dashed rgba(242, 239, 230, 0.18); margin: 14px 0; }

/* ============================================================
   番茄专注 · TOMODORO EMBED
   ============================================================ */
.pomo-panel { padding: 14px; }

.pomo-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  position: relative;
  z-index: 1;
}

.pomo-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--red);
  animation: rec-blink 1.6s ease infinite;
  flex-shrink: 0;
}

.pomo-bar-title {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: rgba(242, 239, 230, 0.55);
}

.pomo-open {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--black);
  background: var(--yellow);
  border: 2px solid var(--yellow);
  padding: 6px 12px;
  text-decoration: none;
  transition: background 0.15s ease;
}

.pomo-open:hover {
  background: var(--yellow-deep);
  border-color: var(--yellow-deep);
}

.pomo-frame {
  position: relative;
  z-index: 1;
  border: 2px solid var(--line-d);
  background: #222233;
}

.pomo-frame iframe {
  display: block;
  width: 100%;
  height: clamp(520px, 72vh, 700px);
  border: 0;
}

.pomo-tips {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 16px;
}

.pomo-tip {
  background: var(--black-2);
  border: 2px solid var(--line-d);
  padding: 14px 16px;
}

.pomo-tip b {
  display: block;
  font-size: 14px;
  color: var(--yellow);
  margin-bottom: 6px;
}

.pomo-tip span {
  font-size: 12.5px;
  color: rgba(242, 239, 230, 0.65);
  line-height: 1.6;
}

@media (max-width: 1000px) {
  .pomo-tips { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .pomo-tips { grid-template-columns: 1fr; }
  .pomo-frame iframe { height: 78vh; }
}

/* ============================================================
   上岸排行榜 · RANKING
   ============================================================ */
.rk-mine-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}

.rk-mine-card {
  background: var(--black-2);
  border: 2px solid var(--line-d);
  text-align: center;
  padding: 20px 10px;
}

.rk-mine-card b {
  display: block;
  font-family: var(--font-display);
  font-size: 38px;
  color: var(--yellow);
  line-height: 1.1;
}

.rk-mine-card span {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  color: rgba(242, 239, 230, 0.5);
}

.rk-mine-score {
  border-color: var(--yellow);
}

.rk-medal {
  font-size: 20px;
  white-space: nowrap;
}

.rk-num {
  font-family: var(--font-mono);
  font-weight: 700;
  color: rgba(242, 239, 230, 0.6);
}

.rk-name {
  font-weight: 700;
  color: var(--paper);
  white-space: nowrap;
}

.rk-badge {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  background: var(--red);
  color: #fff;
  padding: 2px 7px;
  margin-left: 6px;
  vertical-align: 1px;
}

.rk-badge-me {
  background: var(--green);
}

.rk-me td {
  background: rgba(10, 132, 255, 0.1);
}

.rk-score {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--yellow);
}

.rk-act {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  background: transparent;
  border: 1.5px solid rgba(242, 239, 230, 0.35);
  color: var(--paper);
  padding: 4px 10px;
  cursor: pointer;
  margin-right: 6px;
}

.rk-act:hover {
  border-color: var(--yellow);
  color: var(--yellow);
}

.rk-act-danger {
  border-color: rgba(255, 59, 48, 0.5);
  color: #ff6b64;
}

.rk-act-danger:hover {
  border-color: var(--red);
  color: var(--red);
}

@media (max-width: 900px) {
  .rk-mine-grid { grid-template-columns: repeat(2, 1fr); }
  .rank-table td, .rank-table th { padding: 8px 6px; font-size: 12.5px; }
}

/* ============================================================
   首页站点导航卡片 · DIRECTORY CARDS
   ============================================================ */
.nc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.nc-card {
  position: relative;
  display: block;
  background: var(--black-2);
  border: 3px solid var(--paper);
  box-shadow: 7px 7px 0 rgba(10, 132, 255, 0.85);
  padding: 22px 20px 18px;
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.nc-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: -80%;
  width: 50%;
  height: 100%;
  background: linear-gradient(100deg, transparent, rgba(10, 132, 255, 0.16), transparent);
  transform: skewX(-18deg);
  transition: left 0.45s ease;
}

.nc-card:hover::before { left: 130%; }

.nc-card:hover {
  transform: translateY(-6px) rotate(-0.4deg);
  border-color: var(--yellow);
  box-shadow: 10px 12px 0 rgba(255, 59, 48, 0.75);
}

.nc-icon {
  width: 74px;
  height: 74px;
  margin-bottom: 14px;
  animation: nc-float 3.6s ease-in-out infinite;
}

.nc-card:hover .nc-icon { animation: nc-wiggle 0.5s ease-in-out; }

.nc-icon svg { width: 100%; height: 100%; }

@keyframes nc-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

@keyframes nc-wiggle {
  0%, 100% { transform: rotate(-5deg) scale(1.1); }
  50% { transform: rotate(5deg) scale(1.1); }
}

.nc-card h3 {
  font-family: var(--font-display);
  font-size: 21px;
  color: var(--yellow);
  letter-spacing: 0.03em;
  margin-bottom: 6px;
}

.nc-card p {
  font-size: 12.5px;
  color: rgba(242, 239, 230, 0.6);
  margin-bottom: 12px;
}

.nc-arrow {
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--paper);
  opacity: 0.55;
  transition: opacity 0.15s, transform 0.15s;
}

.nc-card:hover .nc-arrow { opacity: 1; color: var(--yellow); transform: translateX(5px); }

@media (max-width: 980px) {
  .nc-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .nc-grid { grid-template-columns: 1fr; }
}

}


/* Source: css/design.css */
@layer existing {
/* ============================================================
   design.css — haodong.site 视觉系统 v2
   目标：Apple 官网级别的排版精度、留白节奏与克制动效
   依据：apple.com / apple.com.cn 渲染反推 + Apple HIG
   结构：
     0  字体
     1  设计令牌
     2  基础与复位
     3  排版系统
     4  导航
     5  首屏
     6  章节与页面首屏
     7  卡片系统
     8  按钮与链接
     9  表格与表单
     10 页脚
     11 浮层
     12 图像与氛围
     13 动效
     14 响应式
     15 无障碍
   约束：不改动任何 HTML 结构、文案与链接；chat.html（body.kook-app）只做语气统一
   ============================================================ */

/* ============================================================
   0. 字体
   Inter       → 拉丁字母与数字（Apple SF Pro 的等价替代，可变字重 100–900）
   Noto Sans SC→ 中文（思源黑体同源，等价于 PingFang SC 的设计语言）
   中文分片由 noto.css 以 unicode-range 声明，浏览器按需加载
   ============================================================ */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/css/fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================
   1. 设计令牌
   ============================================================ */
:root {
  /* ---- 字体族 ---- */
  --font-sans: "Inter", "Noto Sans SC VF", -apple-system, BlinkMacSystemFont,
    "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-display: "Inter", "Noto Sans SC VF", -apple-system, BlinkMacSystemFont,
    "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono",
    Menlo, Consolas, monospace;

  /* ---- 字号（流体刻度，桌面 → 手机自动收敛）---- */
  --fs-hero:    clamp(40px, 7.6vw, 88px);
  --fs-h1:      clamp(34px, 5.6vw, 64px);
  --fs-h2:      clamp(26px, 3.5vw, 44px);
  --fs-h3:      clamp(19px, 1.9vw, 26px);
  --fs-h4:      clamp(17px, 1.4vw, 20px);
  --fs-deck:    clamp(17px, 1.5vw, 21px);
  --fs-body:    17px;
  --fs-sm:      15px;
  --fs-xs:      13px;
  --fs-eyebrow: 12px;
  --fs-quote:   clamp(24px, 4vw, 46px);

  /* ---- 字重 ---- */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semi: 600;
  --fw-bold: 700;

  /* ---- 行高 / 字距（Apple：显示级收紧，正文级放松）---- */
  --lh-display: 1.06;
  --lh-title: 1.14;
  --lh-cjk: 1.7;
  --lh-body: 1.55;
  --ls-display: -0.03em;
  --ls-title: -0.022em;
  --ls-body: -0.005em;
  --ls-eyebrow: 0.06em;

  /* ---- 间距 ---- */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 40px;
  --sp-12: 48px; --sp-16: 64px; --sp-20: 80px; --sp-24: 96px; --sp-30: 120px;

  /* ---- 布局 ---- */
  --container: 1024px;
  --container-wide: 1240px;
  --text-max: 720px;
  --gutter: 22px;
  --section-y: 120px;
  --nav-h: 48px;

  /* ---- 圆角（continuous corner 观感）---- */
  --r-sm: 8px; --r-md: 12px; --r-lg: 18px; --r-xl: 28px; --r-pill: 980px;

  /* ---- 缓动与时长 ---- */
  --ease: cubic-bezier(0.28, 0, 0.22, 1);
  --ease-soft: cubic-bezier(0.25, 0.1, 0.25, 1);
  --t-fast: 150ms; --t-base: 220ms; --t-slow: 400ms; --t-reveal: 760ms;

  /* ---- 层叠 ---- */
  --z-nav: 9000; --z-overlay: 9600; --z-modal: 9800; --z-toast: 9900;
}

/* ---------- 深色（默认：夜间备考场景）---------- */
:root,
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #000000;
  --bg-2: #0a0a0b;
  --surface: #141416;
  --surface-2: #1c1c1e;
  --surface-3: #242426;
  --fg: #f5f5f7;
  --fg-2: #c7c7cc;
  --muted: #8e8e93;
  --muted-2: #636366;
  --ln-hair: rgba(255, 255, 255, 0.09);
  --ln-strong: rgba(255, 255, 255, 0.16);
  --accent: #2997ff;
  --accent-hover: #4aa8ff;
  --accent-press: #0071e3;
  --accent-ink: #ffffff;
  --accent-soft: rgba(41, 151, 255, 0.14);
  --brand: #ffd91f;
  --brand-ink: #1d1d1f;
  --nav-bg: rgba(10, 10, 11, 0.72);
  --shadow-raised: 0 24px 60px -24px rgba(0, 0, 0, 0.9);
  --shadow-hover: 0 40px 80px -32px rgba(0, 0, 0, 0.95);
  --shadow-panel: 0 1px 0 rgba(255, 255, 255, 0.05) inset;
  --ok: #30d158;
  --warn: #ffd60a;
  --danger: #ff453a;
}

/* ---------- 浅色 ---------- */
html[data-theme="light"] {
  color-scheme: light;
  --bg: #ffffff;
  --bg-2: #fbfbfd;
  --surface: #f5f5f7;
  --surface-2: #f0f0f2;
  --surface-3: #e8e8ed;
  --fg: #1d1d1f;
  --fg-2: #424245;
  --muted: #6e6e73;
  --muted-2: #86868b;
  --ln-hair: rgba(0, 0, 0, 0.09);
  --ln-strong: rgba(0, 0, 0, 0.16);
  --accent: #0071e3;
  --accent-hover: #0077ed;
  --accent-press: #0066cc;
  --accent-ink: #ffffff;
  --accent-soft: rgba(0, 113, 227, 0.1);
  --brand: #ffd91f;
  --brand-ink: #1d1d1f;
  --nav-bg: rgba(255, 255, 255, 0.74);
  --shadow-raised: 0 20px 48px -20px rgba(0, 0, 0, 0.18);
  --shadow-hover: 0 30px 64px -24px rgba(0, 0, 0, 0.24);
  --shadow-panel: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
  --ok: #248a3d;
  --warn: #a05a00;
  --danger: #d70015;
}

/* ============================================================
   1.5 原站变量重映射
   style.css 定义了 --yellow / --paper / --black 等一组变量，全站有数百处
   引用。直接在此重映射，比逐条覆盖规则更彻底，也让旧规则自然融入新系统。
   ============================================================ */
:root,
html[data-theme="dark"] {
  --black: #000000;          /* 原为「深色底」 */
  --black-2: #141416;
  --paper: #f5f5f7;          /* 原为「深色底上的纸白」文字色 */
  --paper-2: #e8e8ed;
  --yellow: #ffd91f;         /* 品牌色：仅作点缀，不承载正文 */
  --yellow-deep: #f0c808;
  --red: #ff453a;
  --green: #30d158;
  --line-d: rgba(255, 255, 255, 0.11);
  --font-body: var(--font-sans);
  --max-width: 1024px;
  --text-width: 720px;
}
html[data-theme="light"] {
  --black: #1d1d1f;
  --black-2: #3a3a3c;
  --paper: #ffffff;
  --paper-2: #f5f5f7;
  --yellow: #a06800;
  --yellow-deep: #8a6100;
  --red: #d70015;
  --green: #248a3d;
  --line-d: rgba(0, 0, 0, 0.11);
  --max-width: 1024px;
  --text-width: 720px;
}

/* ============================================================
   2. 基础与复位
   ============================================================ */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--fg);
}

body {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  font-weight: var(--fw-regular);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
  overflow-x: hidden;
}

/* 原站的噪点 / 扫描线 / 装饰覆盖层：视觉退场 */
body::after { display: none; }

::selection { background: var(--accent-soft); color: var(--fg); }

img, svg, video, canvas { max-width: 100%; }
img { height: auto; }

/* 细滚动条 */
* { scrollbar-width: thin; scrollbar-color: var(--ln-strong) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--ln-strong);
  border-radius: 980px;
  border: 3px solid transparent;
  background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background-clip: content-box; background-color: var(--muted-2); }

/* 统一聚焦环 */
:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px var(--accent-soft), 0 0 0 1.5px var(--accent);
  border-radius: var(--r-sm);
}

/* ============================================================
   3. 排版系统
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--fg);
  margin: 0;
  text-wrap: balance;
}

h1 { font-size: var(--fs-h1); font-weight: var(--fw-bold); line-height: var(--lh-display); letter-spacing: var(--ls-display); }
h2 { font-size: var(--fs-h2); font-weight: var(--fw-semi); line-height: var(--lh-title); letter-spacing: var(--ls-title); }
h3 { font-size: var(--fs-h3); font-weight: var(--fw-semi); line-height: 1.28;  letter-spacing: -0.015em; }
h4 { font-size: var(--fs-h4); font-weight: var(--fw-semi); line-height: 1.34;  letter-spacing: -0.01em; }
h5 { font-size: var(--fs-xs); font-weight: var(--fw-semi); line-height: 1.4;   letter-spacing: 0.01em; }

p {
  margin: 0;
  color: var(--fg-2);
  line-height: var(--lh-cjk);
  font-size: var(--fs-body);
}

a { color: var(--accent); text-decoration: none; transition: color var(--t-fast) var(--ease); }
a:hover { color: var(--accent-hover); }

strong, b { font-weight: var(--fw-semi); color: var(--fg); }

code, kbd, pre, samp { font-family: var(--font-mono); font-size: 0.92em; }

/* 眉标（Apple 的分类小标签） */
.head-tag, .page-tag, .hero-tag, .card-index, .subject-meta, .unit-note,
.ch-num, .m-sub, .sub-label {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-eyebrow);
  text-transform: none;
  color: var(--accent);
  background: none;
  border: none;
  box-shadow: none;
  padding: 0;
  transform: none;
  display: inline-block;
  text-shadow: none;
}

/* 眉标 / 标签类绝不带色块底。
   注意：中和层会生成 .section-head .head-tag 这类更高特异性的规则，
   所以这里必须按同样或更高的特异性逐条覆盖。 */
.section-head .head-tag,
.page-hero .page-tag,
.hero-left .hero-tag,
.hero .hero-tag,
.unit-head .unit-note,
.chapter-card .ch-num,
.subject-card .card-index,
.nc-card .nc-arrow {
  background: none;
  padding: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.section-head .head-tag,
.page-hero .page-tag,
.hero-left .hero-tag { color: var(--accent); }
.hero-left .hero-tag,
.hero .hero-tag { color: var(--brand); }
html[data-theme="light"] .hero .hero-tag { color: #a06800; }
.unit-head .unit-note,
.chapter-card .ch-num,
.subject-card .card-index { color: var(--muted); font-weight: var(--fw-regular); letter-spacing: 0; }

/* Apple 式的等宽数字 */
.num, .cd-days-text, .stat-value, [data-num] {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ============================================================
   4. 导航 —— Apple 顶部导航：48px、毛玻璃、12px 链接、滚动收窄
   ============================================================ */
.site-nav {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  height: var(--nav-h);
  min-height: var(--nav-h);
  background: var(--nav-bg);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border: none;
  border-bottom: 1px solid transparent;
  box-shadow: none;
  transition: height var(--t-slow) var(--ease), border-color var(--t-slow) var(--ease);
}
.site-nav.ae-scrolled { height: 44px; min-height: 44px; border-bottom-color: var(--ln-hair); }

.nav-inner {
  max-width: var(--container-wide);
  margin: 0 auto;
  height: 100%;
  padding: 0 max(var(--gutter), calc((100vw - var(--container-wide)) / 2 + var(--gutter)));
  padding-left: 0; padding-right: 0;
  display: flex;
  align-items: center;
  gap: 18px;
  padding-inline: var(--gutter);
}

.nav-logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: var(--fw-semi);
  letter-spacing: -0.012em;
  color: var(--fg);
  text-transform: none;
  white-space: nowrap;
  flex: none;
}
.nav-logo .logo-mark {
  width: 23px; height: 23px;
  display: grid; place-items: center;
  border-radius: 7px;
  background: var(--brand);
  color: var(--brand-ink);
  font-size: 10px; font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  border: none;
  box-shadow: none;
  transform: none;
}

.nav-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  flex: 1 1 auto;
  list-style: none;
  margin: 0; padding: 0;
}
.nav-item > a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-regular);
  letter-spacing: 0.005em;
  color: var(--fg);
  opacity: 0.82;
  padding: 6px 2px;
  border: none;
  background: none;
  text-transform: none;
  transition: opacity var(--t-fast) var(--ease);
}
.nav-item > a:hover { opacity: 1; }
.nav-item > a.active { opacity: 1; }
/* 当前项：Apple 用小圆点而非下划线 */
.nav-item.nav-on > a,
.nav-item > a.active { position: relative; }
.nav-item.nav-on > a::after,
.nav-item > a.active::after {
  content: "";
  position: absolute;
  left: 50%; bottom: -1px;
  width: 4px; height: 4px;
  margin-left: -2px;
  border-radius: 50%;
  background: var(--accent);
}
.nav-item .chev { width: 8px; height: 5px; opacity: 0.5; }

.nav-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: none;
}

/* 图标按钮：统一 34px 圆形，细描边，玻璃底 */
.nav-icon-btn,
.ae-theme-toggle {
  width: 34px; height: 34px;
  min-width: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--ln-hair);
  background: color-mix(in srgb, var(--fg) 5%, transparent);
  color: var(--fg);
  box-shadow: none;
  cursor: pointer;
  padding: 0;
  font-size: 0;      /* 隐藏原来的 ☀ / ☾ 字符，改用 SVG */
  line-height: 0;
  transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease),
    transform var(--t-fast) var(--ease);
  transform: none;
}
.nav-icon-btn svg,
.ae-theme-toggle svg { width: 17px; height: 17px; display: block; }
.nav-icon-btn:hover,
.ae-theme-toggle:hover {
  background: color-mix(in srgb, var(--fg) 10%, transparent);
  border-color: var(--ln-strong);
}
.nav-icon-btn:active,
.ae-theme-toggle:active { transform: scale(0.94); }

.nav-burger {
  width: 34px; height: 34px;
  display: none;
  place-items: center;
  border: 1px solid var(--ln-hair);
  background: color-mix(in srgb, var(--fg) 5%, transparent);
  border-radius: 50%;
  box-shadow: none;
  cursor: pointer;
}
.nav-burger span {
  display: block;
  width: 15px; height: 1.5px;
  background: var(--fg);
  border-radius: 2px;
  margin: 2.5px auto;
  transform: none;
}

/* 导航右侧顺序：搜索 → 切换主题 → 登录 → 汉堡（用 order 控制，不改 DOM） */
.nav-actions > .nav-icon-btn            { order: 2; }
.nav-actions > .ae-theme-toggle         { order: 3; }
.nav-actions > .nav-burger              { order: 5; }
.nav-actions > .auth-navbtn,
.nav-actions > .auth-float,
.nav-actions > [class*="auth"]          { order: 4; }

/* 登录 / 注册：Apple 蓝色胶囊 */
.nav-actions .auth-navbtn,
.nav-actions .auth-float,
.nav-actions [class*="auth-"][class*="btn"] {
  height: 32px;
  padding: 0 16px;
  border-radius: var(--r-pill);
  border: none;
  background: var(--accent);
  color: var(--accent-ink);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-body);
  box-shadow: none;
  display: inline-flex; align-items: center;
  transition: background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.nav-actions .auth-navbtn:hover,
.nav-actions .auth-float:hover { background: var(--accent-hover); }
.nav-actions .auth-navbtn:active,
.nav-actions .auth-float:active { transform: scale(0.96); }

/* ---- Mega menu：Apple 式浮层 ---- */
.nav-mega {
  background: var(--nav-bg);
  -webkit-backdrop-filter: saturate(180%) blur(24px);
  backdrop-filter: saturate(180%) blur(24px);
  border-bottom: 1px solid var(--ln-hair);
  box-shadow: var(--shadow-raised);
  transform: none;
}
.mega-inner { max-width: var(--container-wide); margin: 0 auto; padding: 40px var(--gutter) 48px; }
.mega-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 32px; }
.mega-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 32px; }
.mega-col h5 {
  color: var(--muted);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-eyebrow);
  text-transform: none;
  margin-bottom: 14px;
  border: none;
  padding: 0;
}
.mega-tile-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.mega-icon {
  width: 34px; height: 34px;
  display: grid; place-items: center;
  border-radius: var(--r-sm);
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 16px;
  font-weight: var(--fw-semi);
  border: none;
  box-shadow: none;
  transform: none;
}
.mega-name {
  display: block;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: var(--fw-semi);
  color: var(--fg);
  letter-spacing: -0.01em;
}
.mega-tagline {
  display: block;
  font-size: var(--fs-xs);
  color: var(--muted);
  letter-spacing: 0;
}
.mega-list { list-style: none; margin: 0; padding: 0; }
.mega-list li + li { margin-top: 9px; }
.mega-list a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  font-size: var(--fs-sm);
  color: var(--fg-2);
  border: none;
  background: none;
  padding: 0;
  transition: color var(--t-fast) var(--ease);
}
.mega-list a:hover { color: var(--accent); }
.mega-list a i { font-style: normal; font-size: var(--fs-xs); color: var(--muted-2); flex: none; }
.mega-foot {
  display: flex; flex-wrap: wrap; gap: 28px;
  margin-top: 36px; padding-top: 24px;
  border-top: 1px solid var(--ln-hair);
}
.mega-foot a { font-size: var(--fs-sm); color: var(--accent); }

.nav-dim { background: rgba(0, 0, 0, 0.5); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }

/* ---- 移动端抽屉 ---- */
.mobile-menu {
  background: var(--bg);
  border: none;
  box-shadow: none;
}
.mm-list { list-style: none; margin: 0; padding: 84px 22px 40px; }
.mm-item { border-bottom: 1px solid var(--ln-hair); }
.mm-item > a, .mm-acc-btn {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%;
  padding: 18px 0;
  font-family: var(--font-display);
  font-size: 21px;
  font-weight: var(--fw-semi);
  letter-spacing: -0.014em;
  color: var(--fg);
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  transform: none;
}
.mm-sub { padding: 4px 0 16px; }
.mm-sub a {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 0;
  border: none;
}
.mm-ic {
  width: 30px; height: 30px; flex: none;
  display: grid; place-items: center;
  border-radius: var(--r-sm);
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 13px;
  border: none;
  transform: none;
}
.mm-txt b { display: block; font-size: var(--fs-body); font-weight: var(--fw-medium); color: var(--fg); }
.mm-txt i { font-style: normal; font-size: var(--fs-xs); color: var(--muted); }
.mm-search-row button {
  width: 100%;
  display: flex; align-items: center; gap: 10px;
  padding: 18px 0;
  background: none;
  border: none;
  color: var(--muted);
  font-size: var(--fs-body);
  cursor: pointer;
}
.mm-search-row svg { width: 17px; height: 17px; }

/* ============================================================
   5. 首屏 —— 全幅光场 + 左文右「产品视觉」
   ============================================================ */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #000;
  border: none;
}
/* 背景：极光光场 + 左侧暗部（给文案留出对比度）
   注意：legacy-fix.css 会把原站 .hero::before 的条纹背景中和为 background-image:none，
   因此这里的装饰性背景必须显式提升权重（design.css 在其之后加载）。 */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/css/img/bg-aurora.webp") center 58% / cover no-repeat;
  filter: brightness(1.5) saturate(1.2) contrast(1.04);
  opacity: 1;
  z-index: -3;
}
/* 左侧暗部 + 底部融入页面背景 */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.80) 0%, rgba(0, 0, 0, 0.48) 36%,
      rgba(0, 0, 0, 0.08) 64%, rgba(0, 0, 0, 0) 80%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 26%, rgba(0, 0, 0, 0) 62%, var(--bg) 100%);
  z-index: -1;
}

/* ---- 浅色档：珍珠光场 ---- */
html[data-theme="light"] .hero { background: #fff; }
html[data-theme="light"] .hero::before {
  background-image: url("/css/img/bg-pearl.webp");
  background-position: center 50%;
  filter: none;
}
html[data-theme="light"] .hero::after {
  background:
    radial-gradient(40% 48% at 78% 30%, rgba(0, 113, 227, 0.07) 0%, rgba(0, 113, 227, 0) 70%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.52) 0%, rgba(255, 255, 255, 0.16) 46%, var(--bg) 100%);
}

/* ---- 浅色档：光晕换成更淡的蓝，其余结构不变（已无卡片底色）---- */
html[data-theme="light"] .tv::before {
  background: radial-gradient(48% 50% at 50% 50%,
    rgba(0, 113, 227, 0.10) 0%, rgba(0, 113, 227, 0.03) 44%, transparent 72%);
}
html[data-theme="light"] .cd-days-text { color: var(--fg); }

.hero-inner {
  position: relative;
  max-width: var(--container);
  margin: 0 auto;
  padding: clamp(56px, 7vh, 96px) var(--gutter) clamp(56px, 7vh, 92px);
  min-height: min(84vh, 800px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
}

.hero-left { min-width: 0; }

.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--brand);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: 0.08em;
  margin-bottom: 22px;
}
html[data-theme="light"] .hero-tag { color: #a06800; }
.hero-tag::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 18%, transparent);
}

.hero-title {
  display: block;
  margin: 0 0 24px;
  font-family: var(--font-display);
}
.hero-title .row-en,
.hero-title .row-cn { display: block; }
.hero-title .row-en {
  font-size: var(--fs-hero);
  font-weight: var(--fw-bold);
  line-height: 0.98;
  letter-spacing: -0.042em;
  /* Apple 式金属渐变字 */
  background: linear-gradient(180deg, #ffffff 12%, #f5f5f7 46%, #9a9aa1 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: none;
  filter: none;
  transform: none;
}
.hero-title .row-cn {
  margin-top: 6px;
  font-size: calc(var(--fs-hero) * 0.56);
  font-weight: var(--fw-semi);
  line-height: 1.06;
  letter-spacing: -0.028em;
  color: #ffffff;
  text-shadow: none;
  transform: none;
}
html[data-theme="light"] .hero-title .row-en {
  background: linear-gradient(180deg, #1d1d1f 8%, #3a3a3c 48%, #86868b 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
html[data-theme="light"] .hero-title .row-cn { color: #1d1d1f; }
/* 关闭原站 glitch 抖动 */
.hero-title .glitch::before,
.hero-title .glitch::after { display: none; content: none; }
.hero-title .glitch { animation: none; }

.hero-sub {
  max-width: 34em;
  font-size: var(--fs-deck);
  line-height: 1.62;
  color: rgba(245, 245, 247, 0.74);
  margin-bottom: 34px;
  letter-spacing: 0;
  text-wrap: pretty;
}
html[data-theme="light"] .hero-sub { color: var(--muted); }

.hero-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 26px;
}

/* ---- 倒计时「产品视觉」：不加卡片，数字直接浮在光场上 ---- */
.tv {
  position: relative;
  min-width: 0;
  border: none;
  background: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
  transform: none;
  overflow: visible;
  text-align: center;
}
/* 数字背后的柔和光晕，让粒子有「发光源」而不是压在一块深色矩形上 */
.tv::before {
  content: "";
  display: block;
  position: absolute;
  inset: -14% -8% -10% -8%;
  background: radial-gradient(48% 50% at 50% 50%,
    color-mix(in srgb, var(--accent) 20%, transparent) 0%,
    color-mix(in srgb, var(--accent) 6%, transparent) 42%,
    transparent 72%);
  filter: blur(26px);
  z-index: 0;
  pointer-events: none;
}
.tv-screen {
  position: relative;
  z-index: 1;
  border-radius: 0;
  background: none;
  padding: 0;
  border: none;
  box-shadow: none;
  overflow: visible;
}
/* 关闭原站 CRT 扫描线与屏幕高光 */
.tv-screen::before,
.tv-screen::after { display: none; content: none; }

.tv-label {
  display: block;
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-eyebrow);
  text-transform: none;
  color: var(--muted);
  margin-bottom: 10px;
  background: none;
  border: none;
  padding: 0;
}

.cd-stage {
  position: relative;
  width: 100%;
  height: clamp(150px, 19vw, 240px);
  margin: 0;
  border: none;
  background: none;
}
#cdCanvas { display: block; width: 100%; height: 100%; }

.cd-fallback {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.cd-fallback.show { display: flex; }
.cd-days-text {
  font-family: var(--font-display);
  font-size: clamp(64px, 9vw, 112px);
  font-weight: var(--fw-bold);
  line-height: 1;
  letter-spacing: -0.045em;
  color: var(--fg);
  text-shadow: none;
}
.cd-fallback-unit {
  font-size: var(--fs-deck);
  font-weight: var(--fw-medium);
  color: var(--muted);
  align-self: flex-end;
  padding-bottom: 14px;
}

.cd-sub {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin-top: 6px;
  color: var(--muted);
}
.cd-sub .cd-sub-unit { font-size: var(--fs-sm); font-weight: var(--fw-medium); color: var(--fg-2); }
.cd-sub .cd-sub-en {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  letter-spacing: var(--ls-eyebrow);
  color: var(--muted);
  text-transform: none;
  opacity: 0.8;
}

.tv-progress {
  position: relative;
  margin: 30px 0 4px;
  height: 3px;
  border-radius: 980px;
  background: var(--ln-hair);
  border: none;
  overflow: visible;
}
.cd-progress-bar {
  height: 100%;
  border-radius: 980px;
  background: linear-gradient(90deg, var(--accent-press), var(--accent));
  box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 55%, transparent);
  transition: width var(--t-reveal) var(--ease);
}
.cd-progress-spark {
  position: absolute;
  top: 50%;
  width: 9px; height: 9px;
  margin-top: -4.5px; margin-left: -4.5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 10px 2px color-mix(in srgb, var(--accent) 70%, transparent);
  border: none;
  transform: none;
}

.tv-quote {
  margin: 22px auto 0;
  padding: 0;
  border: none;
  max-width: 30em;
  text-align: center;
  font-size: var(--fs-sm);
  line-height: 1.7;
  color: var(--muted);
  font-style: normal;
  letter-spacing: 0;
  background: none;
}

/* 首屏里的加号角标（原站装饰）退场 */
.tv > .tv-corner, .tv .tv-corner { display: none; }

/* ============================================================
   6. 章节与页面首屏
   ============================================================ */
.section {
  position: relative;
  padding: var(--section-y) 0;
  background: var(--bg);
  border: none;
}
.section-inner {
  max-width: var(--container);
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.section-head {
  max-width: 760px;
  margin: 0 auto clamp(40px, 5vw, 64px);
  text-align: center;
}
.section-head .head-tag { display: block; margin-bottom: 14px; }
.section-head h2 { margin: 0 0 16px; }
.section-head p {
  font-size: var(--fs-deck);
  line-height: 1.6;
  color: var(--muted);
  max-width: 640px;
  margin: 0 auto;
  letter-spacing: 0;
}

/* 子页面首屏：Apple 产品页式 —— 素材图 + 蒙版
   图片由 html[data-page] 决定（motion.js 写入），栏目没配图时只留光晕。 */
.page-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  max-width: none;
  margin: 0;
  padding: clamp(88px, 13vh, 156px) 0 clamp(56px, 7vh, 92px);
  min-height: clamp(320px, 42vh, 460px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  background: var(--bg);
  border: none;
}
/* 图层一：栏目素材图（缺失时为 none），下面垫品牌光晕 */
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    var(--page-img, none),
    radial-gradient(52% 46% at 50% 0%, color-mix(in srgb, var(--accent) 20%, transparent) 0%, transparent 70%),
    radial-gradient(40% 40% at 82% 8%, color-mix(in srgb, var(--brand) 8%, transparent) 0%, transparent 72%);
  background-size: cover, auto, auto;
  background-position: center 44%, center top, center top;
  background-repeat: no-repeat;
  opacity: 0.9;
  z-index: -2;
  pointer-events: none;
}
/* 图层二：蒙版。深色档压暗，浅色档提亮，保证标题在任何素材图上都清晰。
   素材图本身极低对比，蒙版压到 0.2–0.45 之间仍可读，但图能透出轮廓。 */
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(0, 0, 0, 0.48) 0%,
    rgba(0, 0, 0, 0.3) 38%,
    rgba(0, 0, 0, 0.2) 66%,
    var(--bg) 100%);
  z-index: -1;
  pointer-events: none;
}
html[data-theme="light"] .page-hero::after {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.55) 0%,
    rgba(255, 255, 255, 0.4) 38%,
    rgba(255, 255, 255, 0.3) 66%,
    var(--bg) 100%);
}
/* 没有配图的栏目：蒙版淡一些，让光晕透出来 */
html:not([data-page="math"]):not([data-page="politics"]):not([data-page="english"]):not([data-page="major"]):not([data-page="resources"]):not([data-page="rank"]):not([data-page="cet6"]) .page-hero::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.16) 46%, var(--bg) 100%);
}
html[data-theme="light"]:not([data-page="math"]):not([data-page="politics"]):not([data-page="english"]):not([data-page="major"]):not([data-page="resources"]):not([data-page="rank"]):not([data-page="cet6"]) .page-hero::after {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.2) 46%, var(--bg) 100%);
}

/* ---------- 栏目素材图分配 ----------
   每张图约 10–47 KB，只在对应栏目页加载；其它页不会请求。 */
html[data-page="math"]      { --page-img: url("/css/img/sec-math.webp"); }
html[data-page="politics"]  { --page-img: url("/css/img/sec-politics.webp"); }
html[data-page="english"]   { --page-img: url("/css/img/sec-english.webp"); }
html[data-page="cet6"]      { --page-img: url("/css/img/sec-english.webp"); }
html[data-page="major"]     { --page-img: url("/css/img/sec-major.webp"); }
html[data-page="resources"] { --page-img: url("/css/img/sec-resources.webp"); }
html[data-page="rank"]      { --page-img: url("/css/img/sec-rank.webp"); }

/* 学科卡：同一张素材图作低透明底，让四个「栏目入口」各有其貌 */
.subject-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--card-img, none);
  background-size: cover;
  background-position: center 40%;
  opacity: 0.42;
  z-index: 0;
  pointer-events: none;
  transition: opacity var(--t-base) var(--ease);
}
.subject-card:hover::after { opacity: 0.56; }
/* 压一层竖向渐变，保证卡片内文字对比度 */
.subject-card::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--surface) 52%, transparent) 0%,
    color-mix(in srgb, var(--surface) 30%, transparent) 45%,
    color-mix(in srgb, var(--surface) 70%, transparent) 100%);
  z-index: 0;
  pointer-events: none;
}
html[data-theme="light"] .subject-card::after { opacity: 0.22; }
html[data-theme="light"] .subject-card:hover::after { opacity: 0.32; }
html[data-theme="light"] .subject-card::before {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.66) 0%, rgba(255, 255, 255, 0.5) 45%, rgba(255, 255, 255, 0.82) 100%);
}
.subject-card[href^="math"]     { --card-img: url("/css/img/sec-math.webp"); }
.subject-card[href^="politics"] { --card-img: url("/css/img/sec-politics.webp"); }
.subject-card[href^="english"]  { --card-img: url("/css/img/sec-english.webp"); }
.subject-card[href^="major"]    { --card-img: url("/css/img/sec-major.webp"); }
.page-hero .page-tag { display: block; margin-bottom: 16px; }
.page-hero h1 {
  max-width: 900px;
  margin: 0 auto 20px;
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-display);
  line-height: var(--lh-display);
}
.page-hero p {
  max-width: 660px;
  margin: 0 auto;
  font-size: var(--fs-deck);
  line-height: 1.62;
  color: var(--muted);
  letter-spacing: 0;
}

/* 单元块（数学/政治等页面的章节分组） */
.unit-block { margin-bottom: clamp(48px, 6vw, 80px); border: none; background: none; }
.unit-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 18px;
  padding-bottom: 20px;
  margin-bottom: 30px;
  border-bottom: 1px solid var(--ln-hair);
  border-top: none;
  background: none;
}
.unit-head h2 { font-size: var(--fs-h3); font-weight: var(--fw-semi); }
.unit-note { color: var(--muted); font-weight: var(--fw-regular); letter-spacing: 0; }

/* ============================================================
   7. 卡片系统
   ============================================================ */
/* ---- 站点导航卡（bento）---- */
.nc-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}
/* 6 张卡片在 3 列下正好两行。此前让首卡跨 2 列，会剩出 1 个空位，
   反而破坏网格的整齐——Apple 的 bento 也只在能整除时才用跨列。 */
.nc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 178px;
  padding: 30px 30px 26px;
  border-radius: var(--r-lg);
  border: 1px solid transparent;
  background: var(--surface);
  box-shadow: none;
  overflow: hidden;
  color: var(--fg);
  transition: transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease),
    background var(--t-base) var(--ease);
}
html[data-theme="dark"] .nc-card { background: var(--surface); border-color: var(--ln-hair); }
.nc-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-hover);
  background: var(--surface-2);
}
.nc-card > * { position: relative; z-index: 1; }

.nc-icon {
  width: 42px; height: 42px;
  display: grid; place-items: center;
  margin-bottom: 26px;
  border-radius: 0;
  background: none;
  border: none;
  box-shadow: none;
  color: var(--accent);
}
.nc-icon svg {
  width: 38px; height: 38px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}
/* 原站内联 SVG 的写死配色 → 统一到 currentColor（表现属性优先级最低，可直接覆盖） */
.nc-icon svg [fill]:not([fill="none"]) { fill: none; }
.nc-icon svg [stroke] { stroke: currentColor; }
.nc-icon svg text { fill: currentColor; }

.nc-card h3 {
  margin: 0 0 8px;
  font-size: 19px;
  font-weight: var(--fw-semi);
  letter-spacing: -0.014em;
  color: var(--fg);
}
.nc-card p {
  margin: 0 0 22px;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--muted);
  max-width: 34ch;
}
.nc-arrow {
  margin-top: auto;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: gap var(--t-fast) var(--ease);
}
.nc-card:hover .nc-arrow { gap: 9px; }

/* ---- 学科模块卡 ---- */
.subject-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.subject-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 30px 30px 26px;
  border-radius: var(--r-lg);
  border: 1px solid transparent;
  background: var(--surface);
  box-shadow: none;
  overflow: hidden;
  color: var(--fg);
  transition: transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);
}
html[data-theme="dark"] .subject-card { border-color: var(--ln-hair); }
.subject-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-hover); }
.subject-card > * { position: relative; z-index: 1; }
/* 原站在卡片左上角挂了一个旋转色块装饰 —— 该装饰被中和层清成了纯色块，
   这里彻底退场；::before 改作素材图的对比度蒙版（见 6 节栏目素材图分配）。 */

/* 图标与导航卡统一：回到正常流、左对齐、同尺寸同色 */
.card-icon {
  position: static;
  inset: auto;
  width: auto;
  height: auto;
  display: block;
  align-items: initial;
  justify-content: initial;
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: var(--fw-semi);
  line-height: 1;
  margin: 0 0 26px;
  color: var(--accent);
  background: none;
  border: none;
  box-shadow: none;
  transform: none;
  text-shadow: none;
}
.subject-card .card-index { display: block; margin-bottom: 10px; color: var(--muted); }
.subject-card h3 {
  margin: 0 0 10px;
  font-size: 21px;
  font-weight: var(--fw-semi);
  letter-spacing: -0.018em;
  color: var(--fg);
  text-transform: none;
}
.subject-desc {
  margin: 0 0 20px;
  font-size: var(--fs-sm);
  line-height: 1.62;
  color: var(--muted);
  min-height: 0;
}
/* 单位/章节数：原来的深色小方块 → 克制的元信息文字 */
.subject-card .subject-meta {
  display: block;
  background: none;
  color: var(--muted-2);
  padding: 0;
  margin: 0 0 16px;
}
.subject-more {
  margin-top: auto;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  color: var(--accent);
}
/* 去掉原来的红色 ▸▸，改用与全站一致的折角箭头 */
.subject-card .subject-more::after {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  margin-left: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg) translateY(-1px);
  color: inherit;
}
.subject-card:hover .subject-more { color: var(--accent-hover); }

/* ---- 章节笔记卡 ---- */
.chapter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(272px, 1fr));
  gap: 16px;
}
.chapter-card {
  display: flex;
  flex-direction: column;
  padding: 26px 26px 24px;
  border-radius: var(--r-md);
  border: 1px solid var(--ln-hair);
  background: var(--surface);
  box-shadow: none;
  transition: transform var(--t-base) var(--ease), border-color var(--t-base) var(--ease),
    background var(--t-base) var(--ease);
  overflow: hidden;
}
.chapter-card:hover {
  transform: translateY(-4px);
  border-color: var(--ln-strong);
  background: var(--surface-2);
}
.chapter-card .ch-num { display: block; margin-bottom: 12px; color: var(--muted); }
.chapter-card h4 {
  margin: 0 0 8px;
  font-size: var(--fs-h4);
  font-weight: var(--fw-semi);
  color: var(--fg);
  line-height: 1.35;
}
.chapter-card .lec-desc {
  margin: 0 0 18px;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--muted);
}
.lec-link {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--accent);
  background: none;
  border: none;
  padding: 0;
  border-radius: 0;
  transform: none;
  box-shadow: none;
  width: auto;
  transition: gap var(--t-fast) var(--ease);
}
.lec-link:hover { gap: 9px; color: var(--accent-hover); }

/* 通用工具卡 / 文件卡 / 信息卡 */
.ics-grid, .file-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.opc-key, .opc-rule, .opc-board {
  border-radius: var(--r-md);
  border: 1px solid var(--ln-hair);
  background: var(--surface);
  box-shadow: none;
  transform: none;
  transition: border-color var(--t-base) var(--ease), background var(--t-base) var(--ease);
}
.opc-key:hover, .opc-rule:hover { border-color: var(--ln-strong); }

/* ---- 宣言：全幅影像条 ---- */
.manifesto {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(420px, 68vh, 640px);
  display: grid;
  place-items: center;
  margin: 0;
  padding: clamp(72px, 10vh, 120px) 0;
  background: #000;
  border: none;
}
.manifesto::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/css/img/band-desk.webp") center 46% / cover no-repeat;
  transform: scale(1.04);
  z-index: -2;
}
.manifesto::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, var(--bg) 0%, rgba(0, 0, 0, 0.55) 26%, rgba(0, 0, 0, 0.62) 74%, var(--bg) 100%),
    radial-gradient(90% 80% at 50% 50%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 100%);
  z-index: -1;
}
.manifesto .section-inner { position: relative; text-align: center; padding: 0 var(--gutter); }
.m-quote {
  font-family: var(--font-display);
  font-size: var(--fs-quote);
  font-weight: var(--fw-semi);
  line-height: 1.28;
  letter-spacing: var(--ls-title);
  color: #f5f5f7;
  max-width: 22em;
  margin: 0 auto;
  text-shadow: 0 2px 40px rgba(0, 0, 0, 0.7);
  background: none;
  border: none;
  padding: 0;
}
.m-sub {
  display: block;
  margin-top: 26px;
  color: rgba(245, 245, 247, 0.62);
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
}

/* ============================================================
   8. 按钮与链接
   ============================================================ */
.btn-primary,
.btn-ghost,
button.btn, a.btn {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  line-height: 1;
  border-radius: var(--r-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  letter-spacing: var(--ls-body);
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease),
    transform var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
  transform: none;
  text-shadow: none;
}

.btn-primary {
  padding: 15px 28px;
  border: none;
  background: var(--accent);
  color: var(--accent-ink);
  box-shadow: none;
}
.btn-primary:hover { background: var(--accent-hover); color: var(--accent-ink); }
.btn-primary:active { transform: scale(0.97); }

/* 次要动作 → Apple 的蓝色文字链「进一步了解 ›」 */
.btn-ghost {
  padding: 15px 4px;
  border: none;
  background: none;
  color: var(--accent);
  box-shadow: none;
  gap: 5px;
}
.btn-ghost::after {
  content: "";
  width: 6px; height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg) translateY(-1px);
  margin-left: 2px;
  transition: transform var(--t-fast) var(--ease);
}
.btn-ghost:hover { color: var(--accent-hover); }
.btn-ghost:hover::after { transform: rotate(-45deg) translate(2px, -3px); }
.btn-ghost:active { transform: scale(0.98); }

/* 表单提交类按钮的统一升级 */
input[type="submit"], button[type="submit"] {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  border-radius: var(--r-pill);
  padding: 14px 26px;
  border: none;
  background: var(--accent);
  color: var(--accent-ink);
  cursor: pointer;
  box-shadow: none;
  transition: background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
input[type="submit"]:hover, button[type="submit"]:hover { background: var(--accent-hover); }
input[type="submit"]:active, button[type="submit"]:active { transform: scale(0.97); }

/* ============================================================
   9. 表格与表单
   ============================================================ */
table, .table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: var(--fs-sm);
  border: none;
}
th {
  text-align: left;
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-eyebrow);
  color: var(--muted);
  padding: 0 14px 13px;
  border: none;
  border-bottom: 1px solid var(--ln-hair);
  background: none;
  text-transform: none;
}
td {
  padding: 17px 14px;
  border: none;
  border-bottom: 1px solid var(--ln-hair);
  color: var(--fg-2);
  background: none;
}
tbody tr { transition: background var(--t-fast) var(--ease); }
tbody tr:hover td { background: var(--surface); }

input[type="text"], input[type="search"], input[type="email"], input[type="password"],
input[type="number"], input[type="tel"], input[type="url"], input[type="date"],
select, textarea {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  color: var(--fg);
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-md);
  padding: 12px 15px;
  height: auto;
  min-height: 46px;
  box-shadow: none;
  transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);
  -webkit-appearance: none;
  appearance: none;
}
textarea { min-height: 108px; line-height: 1.6; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--muted-2); }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--accent);
  background: var(--bg);
  box-shadow: 0 0 0 4px var(--accent-soft);
}
label {
  display: block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--muted);
  margin-bottom: 7px;
  letter-spacing: 0.01em;
}

/* ============================================================
   10. 页脚
   ============================================================ */
.site-footer {
  background: var(--bg-2);
  border: none;
  border-top: 1px solid var(--ln-hair);
  padding: 56px 0 44px;
  margin: 0;
}
.footer-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  padding-bottom: 26px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--ln-hair);
}
.footer-nav a {
  font-size: var(--fs-xs);
  color: var(--fg-2);
  letter-spacing: 0;
  transition: color var(--t-fast) var(--ease);
}
.footer-nav a:hover { color: var(--accent); }
.copyright {
  font-size: var(--fs-xs);
  line-height: 1.8;
  color: var(--muted-2);
  letter-spacing: 0;
}

/* 页脚外观控件：Apple HIG 的三段式「浅色 / 深色 / 自动」 */
.ae-appearance {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 26px;
}
.ae-appearance-label {
  font-size: var(--fs-xs);
  color: var(--muted);
  letter-spacing: 0.01em;
}
.ae-seg {
  display: inline-flex;
  padding: 2px;
  gap: 2px;
  border-radius: var(--r-pill);
  background: var(--surface);
  border: 1px solid var(--ln-hair);
}
.ae-seg button {
  appearance: none;
  border: none;
  background: none;
  color: var(--muted);
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  padding: 6px 14px;
  border-radius: var(--r-pill);
  cursor: pointer;
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.ae-seg button:hover { color: var(--fg); }
.ae-seg button[aria-pressed="true"] {
  background: var(--bg);
  color: var(--fg);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
}

/* ============================================================
   11. 浮层
   ============================================================ */
.search-overlay {
  background: rgba(0, 0, 0, 0.56);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  backdrop-filter: blur(12px) saturate(140%);
}
.search-box {
  background: var(--bg);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-raised);
  overflow: hidden;
}
.search-input-row {
  display: flex; align-items: center; gap: 12px;
  padding: 6px 8px 6px 18px;
  border-bottom: 1px solid var(--ln-hair);
  background: none;
}
.search-input-row .search-glyph svg { width: 18px; height: 18px; color: var(--muted); }
.search-input {
  flex: 1;
  min-height: 52px;
  border: none;
  background: none;
  box-shadow: none;
  font-size: var(--fs-deck);
  padding: 0;
}
.search-input:focus { background: none; box-shadow: none; }
.search-close {
  flex: none;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-sm);
  padding: 6px 9px;
  cursor: pointer;
}
.search-results { padding: 8px; }
.search-results a, .search-result {
  display: block;
  padding: 13px 16px;
  border-radius: var(--r-md);
  border: none;
  color: var(--fg);
  font-size: var(--fs-sm);
  transition: background var(--t-fast) var(--ease);
}
.search-results a:hover, .search-result:hover { background: var(--surface); }

/* 通用弹窗 */
.modal, .dialog, .auth-modal, .overlay-card {
  background: var(--bg);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-raised);
}
.auth-overlay { background: rgba(0, 0, 0, 0.52); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

/* ============================================================
   11.5 图标层（icons.js 注入的内联 SVG）
   尺寸走 1em，天然继承所在上下文的字号，无需逐处指定
   ============================================================ */
.ae-ico-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: -0.14em;
  flex: none;
  line-height: 0;
}
.ae-ico {
  width: 1em;
  height: 1em;
  display: block;
  stroke-width: 1.7;
  transition: stroke var(--t-fast) var(--ease);
}
/* 大尺寸场景下收细描边，保持与 Apple 线性图标一致的视觉重量 */
.card-icon .ae-ico,
.nc-icon .ae-ico,
.mm-ic .ae-ico { stroke-width: 1.3; }
/* 正文内联图标：略降透明度，避免抢文字 */
p .ae-ico-wrap,
li .ae-ico-wrap,
td .ae-ico-wrap { opacity: 0.9; }
/* 导航 / 抽屉里的 emoji 图标：与文字同色同高 */
.nav-item .ae-ico-wrap,
.mm-item .ae-ico-wrap,
.mm-sub .ae-ico-wrap { color: currentColor; }

/* ---- 卡片图标：统一为图标集的线性图标 ---- */
.card-icon svg {
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  overflow: visible;
  width: 32px;
  height: 32px;
}

/* 学科小图标（mega menu / 移动端抽屉） */
.mega-icon svg,
.mm-ic svg {
  width: 18px; height: 18px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
.mm-ic svg { width: 15px; height: 15px; }

/* ============================================================
   11.6 联机大厅（MC / 饥荒）— 保留插画，只统一组件外壳
   ============================================================ */
.mc-status-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  padding: 26px 28px;
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-lg);
  box-shadow: none;
}
.mc-status-left { display: flex; align-items: center; gap: 16px; }
.mc-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--muted-2);
  box-shadow: none;
}
.mc-dot.on { background: var(--ok); box-shadow: 0 0 0 4px color-mix(in srgb, var(--ok) 22%, transparent); }
.mc-dot.off { background: var(--danger); box-shadow: 0 0 0 4px color-mix(in srgb, var(--danger) 20%, transparent); }
.mc-dot.na { background: var(--muted-2); }
.mc-state {
  font-weight: var(--fw-semi);
  font-size: var(--fs-body);
  color: var(--fg);
  letter-spacing: -0.012em;
}
.mc-sub {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  letter-spacing: 0;
  color: var(--muted);
  margin-top: 5px;
}
.mc-addr-wrap { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.mc-addr {
  font-family: var(--font-mono);
  font-size: 17px;
  font-weight: var(--fw-semi);
  letter-spacing: 0.01em;
  color: var(--fg);
  background: var(--surface-2);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-md);
  padding: 11px 18px;
}
.btn-copy {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  color: var(--accent-ink);
  background: var(--accent);
  border: none;
  border-radius: var(--r-pill);
  padding: 11px 20px;
  cursor: pointer;
  box-shadow: none;
  transform: none;
  transition: background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.btn-copy:hover { background: var(--accent-hover); color: var(--accent-ink); }
.btn-copy:active { transform: scale(0.97); }

.mc-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.mc-step {
  display: flex;
  gap: 16px;
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-md);
  box-shadow: none;
}
.mc-step b {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: var(--fw-semi);
  color: var(--accent);
  line-height: 1.1;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.mc-step h4 {
  font-size: var(--fs-body);
  font-weight: var(--fw-semi);
  color: var(--fg);
  margin: 0 0 7px;
  background: none;
  letter-spacing: -0.012em;
}
.mc-step p { font-size: var(--fs-xs); line-height: 1.68; color: var(--muted); }
.mc-step p b {
  font-size: inherit;
  color: var(--fg-2);
  font-family: var(--font-sans);
  font-weight: var(--fw-semi);
}
@media (max-width: 860px) {
  .mc-steps { grid-template-columns: 1fr; }
}

/* ============================================================
   11.7 番茄专注（iframe 嵌入）
   内层是自包含的 Tomodoro 应用，这里只统一它外面的框与说明卡
   ============================================================ */
.pomo-panel { padding: 0; }
.pomo-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.pomo-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--danger);
  flex-shrink: 0;
  animation: none;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--danger) 18%, transparent);
}
.pomo-bar-title {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-eyebrow);
  color: var(--muted);
}
.pomo-open {
  margin-left: auto;
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  color: var(--fg-2);
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-pill);
  padding: 8px 16px;
  text-decoration: none;
  transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease),
    color var(--t-fast) var(--ease);
}
.pomo-open:hover {
  background: var(--surface-2);
  border-color: var(--ln-strong);
  color: var(--fg);
}

/* 嵌入框：圆角容器 + 发丝描边，取代原来的 2px 硬边与深蓝底 */
.pomo-frame {
  position: relative;
  z-index: 1;
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-lg);
  background: var(--surface);
  overflow: hidden;
}
.pomo-frame iframe {
  display: block;
  width: 100%;
  height: clamp(520px, 72vh, 700px);
  border: 0;
  background: transparent;
}

.pomo-tips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.pomo-tip {
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-md);
  padding: 18px 20px;
  box-shadow: none;
}
.pomo-tip b {
  display: block;
  font-size: var(--fs-body);
  font-weight: var(--fw-semi);
  color: var(--fg);
  margin-bottom: 8px;
  letter-spacing: -0.012em;
}
.pomo-tip span { font-size: var(--fs-xs); line-height: 1.7; color: var(--muted); }
@media (max-width: 860px) {
  .pomo-tips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .pomo-tips { grid-template-columns: 1fr; }
}

/* ============================================================
   11.8 打卡作战室 —— 当前时段倒计时
   原设计是「CRT 监视器」：4px 双层边框 + 黄色硬偏移阴影 + 扫描线 +
   高饱和黄数字 + 闪烁红冒号 + 危险条纹进度条。这里换成安静的排版时钟。
   ============================================================ */
.sch-panel {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  outline: none;
  border-radius: var(--r-lg);
  box-shadow: none;
  padding: 28px 32px 24px;
  overflow: hidden;
}
/* 关掉屏内扫描线 */
.sch-panel::after { display: none; content: none; }

.sch-panel-top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; position: relative; z-index: 1; }

.sch-now-badge {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-eyebrow);
  padding: 5px 12px;
  border-radius: var(--r-pill);
  border: none;
  background: var(--ln-hair);
  color: var(--fg-2);
}
.sch-now-badge.t-study { background: color-mix(in srgb, var(--accent) 20%, transparent); color: var(--accent); }
.sch-now-badge.t-rest  { background: color-mix(in srgb, var(--ok) 20%, transparent);     color: var(--ok); }
.sch-now-badge.t-life  { background: var(--ln-hair);                                     color: var(--fg-2); }
.sch-now-badge.t-fun   { background: color-mix(in srgb, var(--danger) 20%, transparent); color: var(--danger); }
.sch-now-badge.t-idle  { background: transparent; color: var(--muted); border: 1px solid var(--ln-hair); }

.sch-now-name {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: var(--fw-semi);
  letter-spacing: -0.016em;
  color: var(--fg);
}

.sch-now-range {
  margin-left: auto;
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  color: var(--muted);
  border: none;
  background: var(--ln-hair);
  border-radius: var(--r-pill);
  padding: 5px 12px;
}

/* 主时钟：从高饱和黄 + 发光，改为克制的白色等宽大字 */
.sch-clock {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: baseline;
  padding: 34px 0 18px;
  font-family: var(--font-display);
  font-weight: var(--fw-semi);
  font-size: clamp(48px, 7.2vw, 92px);
  line-height: 1;
  letter-spacing: -0.045em;
  color: var(--fg);
  text-shadow: none;
  font-variant-numeric: tabular-nums;
  user-select: none;
}
.sch-clock .d { display: inline-block; min-width: 0.6em; text-align: center; }
.sch-clock .d.shift { animation: sch-digit 0.22s var(--ease); }
/* 冒号：去掉 1s 闪烁（长时间盯着非常疲劳），改为静态弱化 */
.sch-clock .c {
  color: var(--muted-2);
  opacity: 0.5;
  padding: 0 0.015em;
  animation: none;
}

.sch-sub {
  text-align: center;
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-eyebrow);
  color: var(--muted);
  margin-top: 4px;
}

/* 进度：危险条纹 → 细线 + 系统蓝渐变 */
.sch-progress {
  position: relative;
  height: 6px;
  margin-top: 26px;
  border: none;
  border-radius: var(--r-pill);
  background: var(--ln-hair);
  overflow: visible;
  z-index: 1;
}
.sch-progress-bar {
  height: 100%;
  border-radius: var(--r-pill);
  background: linear-gradient(90deg, var(--accent-press), var(--accent));
  background-image: linear-gradient(90deg, var(--accent-press), var(--accent));
  box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 50%, transparent);
  transition: width var(--t-slow) linear;
}
.sch-progress-spark {
  position: absolute;
  top: 50%;
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 10px 2px color-mix(in srgb, var(--accent) 70%, transparent);
  transition: left var(--t-slow) linear;
}

.sch-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  color: var(--muted-2);
  margin-top: 16px;
  position: relative;
  z-index: 1;
}

/* ---------- 打卡区 / 课表 ---------- */
.sch-checkin-card,
.sch-note-card {
  background: var(--surface);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-lg);
  box-shadow: none;
  padding: 26px 28px;
}
.sch-note-card textarea {
  background: var(--bg);
  border: 1px solid var(--ln-hair);
  border-radius: var(--r-md);
}

/* 时段标签：实心高饱和块 → 低饱和药丸 */
.sch-tag {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: var(--fw-semi);
  letter-spacing: 0.01em;
  border-radius: var(--r-pill);
  padding: 3px 10px;
  border: none;
}
.sch-tag-study { background: color-mix(in srgb, var(--accent) 18%, transparent); color: var(--accent); }
.sch-tag-rest  { background: color-mix(in srgb, var(--ok) 18%, transparent);     color: var(--ok); }
.sch-tag-life  { background: var(--ln-hair);                                     color: var(--fg-2); }
.sch-tag-fun   { background: color-mix(in srgb, var(--danger) 18%, transparent); color: var(--danger); }

/* 课表 */
.sch-table { border-collapse: collapse; }
.sch-table th {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: 0.02em;
  color: var(--muted);
  border: none;
  border-bottom: 1px solid var(--ln-hair);
  padding: 0 14px 12px;
}
.sch-table td {
  border: none;
  border-bottom: 1px solid var(--ln-hair);
  padding: 15px 14px;
  color: var(--fg-2);
}
.sch-table .sch-time {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
/* 当前行：从黄色高亮改为左侧强调线 + 淡蓝底 */
.sch-table tr.now td {
  background: var(--accent-soft);
  color: var(--fg);
}
.sch-table tr.now td:first-child {
  box-shadow: inset 2px 0 0 var(--accent);
  animation: none;
}

/* 时段切换标签页 → 分段控件 */
.sch-tabs {
  display: inline-flex;
  gap: 2px;
  padding: 2px;
  border-radius: var(--r-pill);
  background: var(--surface);
  border: 1px solid var(--ln-hair);
}
.sch-tabs button {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  padding: 8px 16px;
  border-radius: var(--r-pill);
  border: none;
  background: none;
  color: var(--muted);
  cursor: pointer;
}
.sch-tabs button:hover { color: var(--fg); border: none; }
.sch-tabs button.active {
  background: var(--bg);
  color: var(--fg);
  font-weight: var(--fw-semi);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

/* ============================================================
   12. 图像与氛围
   ============================================================ */
/* 图片：圆角 + 裁剪，Apple 式媒体处理 */
.section-inner img:not(.no-round), .page-hero img { border-radius: var(--r-lg); display: block; }

/* 章节之间的细分隔线 */
.section + .section { position: relative; }
.section + .section::before {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: min(var(--container), calc(100% - var(--gutter) * 2));
  height: 1px;
  background: var(--ln-hair);
}

/* ============================================================
   13. 动效
   ============================================================ */
/* 失败安全：默认完全可见；只有 JS 就绪（html.ae-motion）才启用隐藏态 */
html.ae-motion .ae-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease);
  transition-delay: var(--ae-delay, 0ms);
}
html.ae-motion .ae-reveal.ae-in { opacity: 1; transform: none; }

html.ae-motion .ae-kinetic {
  opacity: 0;
  transform: translateY(26px);
  letter-spacing: 0.01em;
}
html.ae-motion .ae-kinetic.ae-in {
  opacity: 1;
  transform: none;
  letter-spacing: var(--ls-display);
  transition: opacity 900ms var(--ease), transform 900ms var(--ease),
    letter-spacing 1000ms var(--ease);
}

/* 媒体缩放揭示（Apple 产品图签名动效） */
.ae-media { overflow: hidden; border-radius: var(--r-lg); }
.ae-media > img, .ae-media > video {
  transform: scale(1.06);
  transition: transform 1100ms var(--ease);
  will-change: transform;
}
.ae-media.ae-in > img, .ae-media.ae-in > video { transform: scale(1); }

/* 卡片指针反馈的容器基础 */
.nc-card, .subject-card, .chapter-card { will-change: transform; }

/* 切换外观的瞬间关闭过渡，避免整页渐变闪烁 */
html.ae-theme-swap,
html.ae-theme-swap *,
html.ae-theme-swap *::before,
html.ae-theme-swap *::after {
  transition: none;
  animation: none;
}

/* 影像条视差位移（由 motion.js 写入 --ae-shift） */
.manifesto::before {
  transform: translate3d(0, var(--ae-shift, 0px), 0) scale(1.06);
  will-change: transform;
}

/* 顶部滚动进度条 */
.ae-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 100%;
  transform-origin: 0 50%;
  transform: scaleX(0);
  background: linear-gradient(90deg, var(--accent-press), var(--accent), color-mix(in srgb, var(--brand) 70%, transparent));
  z-index: 9999;
  pointer-events: none;
  will-change: transform;
}

/* ============================================================
   14. 响应式
   ============================================================ */
@media (max-width: 1023px) {
  :root { --section-y: 84px; }
  .nav-menu { display: none; }
  .nav-burger { display: inline-grid; }
  .hero-inner { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: 40px; }
  .nc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subject-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mega-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  :root { --section-y: 64px; --gutter: 16px; --fs-body: 16px; }
  .nav-inner { gap: 10px; }
  .nav-logo { font-size: 14px; }
  .nc-grid, .subject-grid { grid-template-columns: minmax(0, 1fr); }
  .nc-card { min-height: 0; padding: 26px 22px 24px; }
  .nc-icon { margin-bottom: 24px; }
  .subject-card { padding: 26px 22px 24px; }
  .card-icon { margin-bottom: 20px; }
  .hero-inner { padding-top: 56px; padding-bottom: 56px; }
  .page-hero { padding-top: 64px; }
  .section-head { text-align: left; }
  .section-head p { margin-left: 0; margin-right: 0; }
  .mega-grid, .mega-cols { grid-template-columns: 1fr; }
  .footer-nav { gap: 8px 18px; }
  .btn-primary, .btn-ghost { min-height: 44px; }
  /* 手机端隐藏主题切换图标（改由抽屉与页脚承担），避免导航过挤 */
  .nav-actions > .ae-theme-toggle { display: none; }
}

/* ============================================================
   15. 无障碍：尊重「减弱动态效果」
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms;
    animation-iteration-count: 1;
    transition-duration: 0.001ms;
    scroll-behavior: auto;
  }
  html.ae-motion .ae-reveal,
  html.ae-motion .ae-kinetic { opacity: 1; transform: none; letter-spacing: normal; }
  .ae-media > img, .ae-media > video { transform: none; }
  .ae-progress { display: none; }
  .manifesto::before { transform: none; }
}

/* 强制对比度模式 */
@media (prefers-contrast: more) {
  :root { --ln-hair: rgba(255, 255, 255, 0.28); --muted: #c7c7cc; }
  html[data-theme="light"] { --ln-hair: rgba(0, 0, 0, 0.3); --muted: #424245; }
}

}

/* Source: css/auth.css */
@layer existing {
/* ============================================================
   auth.css — 账号系统组件样式（Apple 风格）
   版本：v2 · 2026-09-22
   职责：登录/注册弹窗、用户按钮、用户菜单 Popover、Toast、
         笔记页用户角标、无导航页浮动按钮
   约束：
     - 全部颜色取自 design.css 的设计令牌（--fg / --surface /
       --accent / --ln-hair …），浅色深色自动切换
     - 菜单开合使用 opacity / visibility / transform /
       pointer-events，不使用 display 突变
     - 本文件是唯一允许覆盖 auth 组件的地方；旧版 auth.js
       内联注入样式已移除
   ============================================================ */

/* ---------- 本组件私有的主题变量 ---------- */
:root,
html[data-theme="dark"] {
  --auth-glass: rgba(30, 30, 32, 0.86);
  --auth-glass-solid: #1e1e20;
  --auth-card-bg: #1c1c1e;
  --auth-field-bg: rgba(255, 255, 255, 0.06);
  --auth-menu-shadow: 0 12px 40px rgba(0, 0, 0, 0.55),
    0 2px 8px rgba(0, 0, 0, 0.4);
  --auth-card-shadow: 0 24px 70px rgba(0, 0, 0, 0.6),
    0 4px 16px rgba(0, 0, 0, 0.4);
  --auth-overlay-bg: rgba(0, 0, 0, 0.48);
}
html[data-theme="light"] {
  --auth-glass: rgba(255, 255, 255, 0.86);
  --auth-glass-solid: #ffffff;
  --auth-card-bg: #ffffff;
  --auth-field-bg: rgba(0, 0, 0, 0.03);
  --auth-menu-shadow: 0 12px 40px rgba(0, 0, 0, 0.16),
    0 2px 8px rgba(0, 0, 0, 0.06);
  --auth-card-shadow: 0 24px 70px rgba(0, 0, 0, 0.22),
    0 4px 16px rgba(0, 0, 0, 0.08);
  --auth-overlay-bg: rgba(0, 0, 0, 0.36);
}

/* ============================================================
   1. 导航栏用户按钮（已登录）
   ============================================================ */
.auth-usermenu { position: relative; display: inline-block; }

.auth-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 34px;
  padding: 2px 10px 2px 2px;
  border: none;
  border-radius: var(--r-pill, 980px);
  background: transparent;
  color: var(--fg);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
  cursor: pointer;
  white-space: nowrap;
  transition: background 140ms var(--ease, ease);
}
.auth-trigger:hover { background: color-mix(in srgb, var(--fg) 8%, transparent); }
.auth-trigger:active { transform: scale(0.97); }
.auth-trigger:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.auth-avatar {
  width: 30px;
  height: 30px;
  flex: none;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: var(--surface-3);
  color: var(--fg);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  user-select: none;
}
.auth-avatar-lg { width: 38px; height: 38px; font-size: 16px; }

.auth-name {
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.auth-chev {
  width: 8px;
  height: 5px;
  flex: none;
  opacity: 0.55;
  transition: transform 160ms var(--ease, ease);
}
.auth-usermenu.open .auth-chev { transform: rotate(180deg); }

/* ============================================================
   2. 用户菜单 Popover
   ============================================================ */
.auth-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: 244px;
  padding: 6px;
  border-radius: 16px;
  border: 1px solid var(--ln-hair);
  background: var(--auth-glass);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  backdrop-filter: blur(20px) saturate(160%);
  box-shadow: var(--auth-menu-shadow);
  z-index: 100;
  transform-origin: top right;
  /* 开合：不使用 display 突变 */
  opacity: 0;
  visibility: hidden;
  transform: scale(0.96) translateY(-4px);
  pointer-events: none;
  transition:
    opacity 160ms var(--ease, ease),
    transform 160ms var(--ease, ease),
    visibility 0s linear 160ms;
}
/* 不支持毛玻璃时退回纯色 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .auth-menu { background: var(--auth-glass-solid); }
}
/* 隐形桥：覆盖按钮与菜单之间的 8px 缝隙，指针经过不算离开 */
.auth-menu::before {
  content: "";
  position: absolute;
  top: -10px;
  left: 0;
  right: 0;
  height: 10px;
}
.auth-usermenu.open .auth-menu {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
  transition:
    opacity 160ms var(--ease, ease),
    transform 160ms var(--ease, ease);
}

/* 菜单头部：头像 + 用户名 */
.auth-menu-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 12px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--ln-hair);
}
.auth-menu-meta { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.auth-menu-meta b {
  font-size: 14px;
  font-weight: 600;
  color: var(--fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.auth-menu-meta i {
  font-style: normal;
  font-size: 11.5px;
  color: var(--muted);
}

/* 菜单项 */
.auth-menu a,
.auth-menu button.auth-mi {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  padding: 8px 12px;
  border: none;
  border-radius: 10px;
  background: none;
  color: var(--fg);
  font-family: inherit;
  font-size: 13px;
  font-weight: 400;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background 120ms var(--ease, ease);
}
.auth-menu a:hover,
.auth-menu button.auth-mi:hover,
.auth-menu a:focus-visible,
.auth-menu button.auth-mi:focus-visible {
  background: color-mix(in srgb, var(--fg) 7%, transparent);
  outline: none;
}
.auth-mi-ico {
  width: 16px;
  height: 16px;
  flex: none;
  color: var(--muted);
}
.auth-menu a:hover .auth-mi-ico,
.auth-menu button.auth-mi:hover .auth-mi-ico { color: var(--fg); }
.auth-menu .auth-logout { color: var(--danger); }
.auth-menu .auth-logout .auth-mi-ico { color: var(--danger); }

/* 外观三段式 */
.auth-menu-seg {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 12px;
  margin: 4px 0;
  border-top: 1px solid var(--ln-hair);
}
.auth-seg-label { font-size: 12.5px; color: var(--muted); }
.auth-seg {
  display: inline-flex;
  padding: 2px;
  border-radius: 9px;
  background: color-mix(in srgb, var(--fg) 7%, transparent);
}
.auth-seg button {
  border: none;
  border-radius: 7px;
  padding: 4px 10px;
  background: transparent;
  color: var(--fg-2);
  font-family: inherit;
  font-size: 12px;
  cursor: pointer;
  transition: background 140ms var(--ease, ease), color 140ms var(--ease, ease),
    box-shadow 140ms var(--ease, ease);
}
.auth-seg button[aria-pressed="true"] {
  background: var(--auth-card-bg);
  color: var(--fg);
  font-weight: 500;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

/* ============================================================
   3. 登录 / 注册弹窗
   ============================================================ */
.auth-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal, 9800);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: var(--auth-overlay-bg) ; /* 覆盖 design.css 1715 行的  */
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms var(--ease, ease), visibility 0s linear 200ms;
}
.auth-overlay.show {
  opacity: 1;
  visibility: visible;
  transition: opacity 200ms var(--ease, ease);
}

.auth-card {
  width: 100%;
  max-width: 400px;
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  padding: 28px 28px 24px;
  position: relative;
  border-radius: 18px;
  border: 1px solid var(--ln-hair);
  background: var(--auth-card-bg);
  color: var(--fg);
  box-shadow: var(--auth-card-shadow);
  transform: scale(0.96) translateY(8px);
  transition: transform 220ms var(--ease, ease);
}
.auth-overlay.show .auth-card { transform: none; }

.auth-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition: background 120ms var(--ease, ease), color 120ms var(--ease, ease);
}
.auth-close:hover { background: color-mix(in srgb, var(--fg) 8%, transparent); color: var(--fg); }
.auth-close svg { width: 13px; height: 13px; display: block; }

.auth-title {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 4px;
}
.auth-sub {
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 18px;
}

/* 登录 / 注册切换：分段控件 */
.auth-tabs {
  display: flex;
  padding: 2px;
  margin-bottom: 18px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--fg) 7%, transparent);
}
.auth-tab {
  flex: 1;
  border: none;
  border-radius: 8px;
  padding: 7px 0;
  background: transparent;
  color: var(--fg-2);
  font-family: inherit;
  font-size: 13.5px;
  cursor: pointer;
  transition: background 160ms var(--ease, ease), color 160ms var(--ease, ease),
    box-shadow 160ms var(--ease, ease);
}
.auth-tab.active {
  background: var(--auth-card-bg);
  color: var(--fg);
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
}

.auth-field { margin-bottom: 14px; }
.auth-field label {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 6px;
}
.auth-field input {
  width: 100%;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 15px;
  color: var(--fg);
  padding: 11px 12px;
  border: 1px solid var(--ln-strong);
  border-radius: 10px;
  background: var(--auth-field-bg);
  outline: none;
  transition: border-color 140ms var(--ease, ease), box-shadow 140ms var(--ease, ease);
}
.auth-field input::placeholder { color: var(--muted-2); }
.auth-field input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3.5px var(--accent-soft);
}

.auth-err {
  min-height: 18px;
  font-size: 12.5px;
  color: var(--danger);
  margin: 2px 0 8px;
}

.auth-submit {
  display: block;
  width: 100%;
  border: none;
  border-radius: 12px;
  padding: 12px 0;
  background: var(--accent);
  color: var(--accent-ink);
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: background 140ms var(--ease, ease), transform 120ms var(--ease, ease),
    opacity 140ms var(--ease, ease);
}
.auth-submit:hover { background: var(--accent-hover); }
.auth-submit:active { transform: scale(0.98); }
.auth-submit[disabled] { opacity: 0.55; cursor: wait; }

.auth-foot {
  margin-top: 16px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
  text-align: center;
}

/* ============================================================
   4. Toast 提示
   ============================================================ */
.auth-toast {
  position: fixed;
  left: 50%;
  bottom: 32px;
  transform: translateX(-50%) translateY(8px);
  z-index: var(--z-toast, 9900);
  max-width: min(90vw, 420px);
  padding: 10px 18px;
  border-radius: var(--r-pill, 980px);
  border: 1px solid var(--ln-hair);
  background: var(--auth-glass);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  backdrop-filter: blur(20px) saturate(160%);
  color: var(--fg);
  font-size: 13px;
  box-shadow: var(--auth-menu-shadow);
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms var(--ease, ease), transform 200ms var(--ease, ease);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .auth-toast { background: var(--auth-glass-solid); }
}
.auth-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ============================================================
   5. 笔记页角标 / 无导航页浮动按钮
   ============================================================ */
.auth-notechip {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  color: var(--fg-2, inherit);
  text-decoration: none;
  white-space: nowrap;
}
.auth-float {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 8700;
}

/* ============================================================
   6. 响应式：窄屏只留头像
   ============================================================ */
@media (max-width: 767px) {
  .auth-name,
  .auth-chev { display: none; }
  .auth-trigger { padding: 2px; }
  .auth-menu { position: fixed; top: 54px; right: 10px; left: auto; }
  .auth-card { padding: 24px 20px 20px; }
}

}


/* Source: css/site.css */
/* v25 · Apple official-page inspired visual system. Tokens → layout → components → responsive. */
html{background:var(--bg);scroll-padding-top:100px;}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:17px;line-height:1.75;overflow-x:clip;}
html body [hidden]{display:none;}h1,h2,h3,h4,h5,h6{color:var(--fg);font-family:var(--font-display);font-weight:600;letter-spacing:-.025em;}p{color:var(--fg-2);font-size:17px;line-height:1.8;}a{color:var(--accent);}a:hover{color:var(--accent-hover);}button,input,select,textarea{font-family:var(--font-sans);}button{touch-action:manipulation;}button:disabled{opacity:.5;}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;box-shadow:none;}::selection{background:var(--accent-soft);color:var(--fg);}body::after{display:none;}
.intro,.hero-deco,.bg-word,.stripes{display:none;}.skip-link{position:fixed;top:-90px;left:20px;z-index:11000;background:var(--accent-press);color:var(--accent-ink);padding:12px 18px;border-radius:6px;}.skip-link:focus{top:12px;}
.site-nav{height:76px;background:var(--nav-bg);border-bottom:1px solid var(--ln-hair);backdrop-filter:blur(12px);box-shadow:none;}.nav-inner{height:76px;max-width:1280px;padding:0 28px;gap:28px;}.nav-logo{font-size:18px;gap:12px;min-width:180px;}.logo-mark{width:34px;height:34px;background:none;padding:0;border-radius:5px;overflow:hidden;}.site-logo-icon{display:block;width:34px;height:34px;}.brand-copy{display:block;line-height:1.4;font-weight:600;color:var(--fg);}.brand-copy small{display:block;margin-top:3px;font:10px var(--font-sans);letter-spacing:.11em;color:var(--muted);}
.nav-menu{gap:25px;}.nav-item>a{font-size:14px;color:var(--fg-2);padding:28px 0;}.nav-item>a.active{color:var(--accent);}.nav-item>a.active:after{background:var(--accent);border-radius:0;width:20px;height:2px;bottom:17px;}.nav-actions{gap:8px;}.nav-search-btn,.ae-theme-toggle{border:1px solid var(--ln-hair);background:transparent;width:38px;height:38px;border-radius:6px;}.nav-mega{top:76px;background:var(--surface);border-bottom:1px solid var(--ln-strong);box-shadow:0 15px 25px -25px var(--fg);}.mega-inner{max-width:1280px;padding:34px 28px;}.mega-col h5{font-family:var(--font-sans);font-size:12px;letter-spacing:.06em;color:var(--muted);}.mega-list a{font-size:15px;color:var(--fg);}.mega-list a:hover{color:var(--accent);}.nav-dim{backdrop-filter:none;}.search-box,.auth-modal,.k-modal{border-radius:10px;border:1px solid var(--ln-strong);background:var(--surface);}.search-results a{border-radius:4px;}.ae-progress{height:2px;background:var(--accent);}
.hero,.page-hero{isolation:isolate;background:var(--bg);}.hero:before,.hero:after,.page-hero:before{content:none;}.hero{padding:0;border-bottom:1px solid var(--ln-hair);overflow:visible;}.hero-inner{max-width:1280px;min-height:570px;padding:65px 28px 56px;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:50px;align-items:center;}.hero-left{position:relative;z-index:2;}.hero-tag,.head-tag,.page-tag{font-family:var(--font-sans);font-size:12px;letter-spacing:.08em;line-height:1.6;color:var(--accent);background:none;border:0;transform:none;}.hero-tag:before{content:none;}.hero-title{margin:22px 0;line-height:1.2;font-family:var(--font-display);font-size:clamp(46px,5.6vw,76px);font-weight:600;}.hero-title em{display:block;font-style:normal;color:var(--accent);}.hero-title .row-en,.hero-title .row-cn{color:var(--fg);-webkit-text-fill-color:currentColor;background:none;font-size:inherit;text-shadow:none;}.hero-sub{font-size:17px;max-width:440px;color:var(--fg-2);line-height:1.9;}.hero-cta{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:20px;}.btn-primary,.btn-ghost,.ci-btn,.opc-to-today{border-radius:6px;font:500 15px var(--font-sans);min-height:46px;transform:none;box-shadow:none;}.btn-primary,.ci-btn{background:var(--accent-press);color:var(--accent-ink);padding:14px 22px;border:1px solid var(--accent-press);}.btn-primary:hover,.ci-btn:hover{background:var(--accent-hover);color:var(--accent-ink);transform:translateY(-2px);}.btn-ghost{color:var(--fg);background:transparent;border:0;padding:10px 0;}.btn-ghost:after{color:var(--accent);}
.atelier-art{position:relative;min-width:0;margin:0;perspective:1000px;}.atelier-art img{display:block;aspect-ratio:1.12;width:100%;height:auto;object-fit:cover;object-position:65% 50%;border-radius:2px;box-shadow:none;transform:rotateY(var(--art-x,0deg)) rotateX(var(--art-y,0deg));transition:transform .5s ease;}.atelier-art figcaption{display:flex;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.05em;color:var(--muted);padding:14px 0;border-bottom:1px solid var(--ln-strong);}.atelier-art:after{content:"";position:absolute;right:-14px;top:-14px;width:65px;height:65px;border:1px solid var(--accent);border-left:0;border-bottom:0;pointer-events:none;}.atelier-orbit{position:absolute;right:18px;top:18px;width:62px;height:62px;border:1px solid rgba(23,46,64,.4);border-radius:50%;animation:atelier-orbit 22s linear infinite;pointer-events:none;}.atelier-orbit:before{content:"";position:absolute;width:8px;height:8px;top:4px;left:7px;background:#0071e3;border-radius:50%;}
.hero .tv{grid-column:1/-1;display:flex;margin:0;border:0;background:none;transform:none;box-shadow:none;width:100%;max-width:none;}.tv:before,.tv:after,.tv-screen:after{content:none;}.hero .tv-screen{width:100%;padding:18px 0 0;border-top:1px solid var(--ln-strong);background:none;border-radius:0;box-shadow:none;display:flex;align-items:center;gap:24px;min-height:0;overflow:visible;}.tv-top{display:flex;flex-direction:column;gap:3px;min-width:140px;font-size:12px;}.tv-label,.tv .cd-sub-unit,.tv .cd-hint,.tv .tv-knobs,.tv .tv-base{display:none;}.tv .cd-stage{height:auto;min-height:0;width:auto;margin:0;}.cd-fallback{display:flex;position:static;align-items:baseline;gap:8px;}.cd-days-text{font-family:var(--font-sans);font-weight:600;font-size:44px;line-height:1;color:var(--fg);-webkit-text-fill-color:var(--fg);}.cd-fallback-unit{font-size:14px;color:var(--muted);}.tv .cd-sub{margin:0;font-size:13px;color:var(--muted);}.cd-progress{margin:0 0 0 auto;flex:1;max-width:260px;min-width:90px;height:3px;border-radius:0;background:var(--ln-hair);}.cd-progress-bar{background:var(--accent);border-radius:0;}.tv-rec{color:var(--fg);font-size:13px;}.tv-date{color:var(--muted);font-size:11px;}
.section{padding:68px 0;background:var(--bg);}.section:nth-of-type(even){background:var(--bg);}.section-inner{max-width:1220px;padding:0 28px;}.section-head{text-align:left;margin:0 0 36px;max-width:none;position:relative;padding-bottom:24px;border-bottom:1px solid var(--ln-hair);}.section-head h2{margin:12px 0;font-size:36px;}.section-head p{max-width:680px;font-size:16px;}.head-tag{font-size:11px;}.page-hero{max-width:1220px;margin:auto;text-align:left;min-height:260px;padding:65px 300px 40px 28px;border-bottom:1px solid var(--ln-hair);}.page-hero h1{font-size:clamp(34px,4.2vw,54px);line-height:1.35;max-width:770px;margin:16px 0 18px;}.page-hero>p{max-width:720px;margin:0;line-height:1.85;font-size:17px;}.page-hero:after{content:"";display:block;position:absolute;inset:25px 28px 25px auto;width:235px;max-height:225px;background:var(--field-art,url("/assets/field-math.svg")) center/contain no-repeat;opacity:.65;filter:none;border-radius:0;z-index:0;pointer-events:none;}.page-hero>*{position:relative;z-index:1;}html[data-page=english]{--field-art:url("/assets/field-english.svg");}html[data-page=politics]{--field-art:url("/assets/field-politics.svg");}html[data-page=major]{--field-art:url("/assets/field-major.svg");}html[data-page=schedule],html[data-page=today],html[data-page=plan]{--field-art:url("/assets/field-path.svg");}
.nc-grid,.cards{gap:0;border-top:1px solid var(--ln-hair);border-left:1px solid var(--ln-hair);}.nc-card,.subject-card,.file-card{border:0;border-right:1px solid var(--ln-hair);border-bottom:1px solid var(--ln-hair);border-radius:0;background:var(--surface);box-shadow:none;padding:28px;min-height:200px;transition:background .25s,transform .3s;}.nc-card:hover,.subject-card:hover,.file-card:hover{background:var(--surface-2);transform:translateY(-3px);box-shadow:none;}.nc-card:before,.nc-card:after{content:none;}.nc-card h3,.subject-card h3{font-family:var(--font-display);font-size:25px;margin:16px 0 12px;color:var(--fg);}.nc-card p,.subject-card p{font-size:15px;color:var(--muted);}.nc-icon{background:transparent;color:var(--accent);width:32px;height:32px;}.nc-icon svg{width:30px;height:30px;}.nc-enter,.card-btn{color:var(--accent);font-size:13px;letter-spacing:0;background:none;border:0;padding:12px 0 0;margin-top:20px;}.subject-card{padding-top:160px;position:relative;overflow:hidden;}.subject-card:before{content:"";display:block;position:absolute;inset:20px 22px auto;height:115px;background:var(--field-art,url("/assets/field-math.svg")) center/contain no-repeat;opacity:.7;border-radius:0;z-index:0;}.subject-card.politics{--field-art:url("/assets/field-politics.svg");}.subject-card.english{--field-art:url("/assets/field-english.svg");}.subject-card.major{--field-art:url("/assets/field-major.svg");}.subject-card:after{content:none;}.subject-card>*{position:relative;z-index:1;}.card-index{font:11px var(--font-sans);color:var(--muted);}.subject-meta{font-size:13px;color:var(--muted);}.resource-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ln-hair);margin:24px 0 38px;}.resource-index a{padding:24px;border-right:1px solid var(--ln-hair);border-radius:0;background:var(--surface);display:flex;flex-direction:column;gap:6px;color:var(--fg);font-size:17px;}.resource-index a:last-child{border:0;}.resource-index small,.resource-index span{font-size:13px;color:var(--muted);}.resource-index i{font-style:normal;color:var(--accent);}
.unit{padding-top:44px;}.unit-head{border-bottom:1px solid var(--ln-strong);padding-bottom:22px;align-items:baseline;}.unit-title{font-family:var(--font-display);}.chapters-grid,.lecture-grid{gap:12px;}.chapter-card{border:1px solid var(--ln-hair);border-radius:5px;background:var(--surface);padding:24px;box-shadow:none;transition:border-color .25s,transform .25s;}.chapter-card:hover{transform:translateY(-3px);border-color:var(--accent);background:var(--surface);box-shadow:none;}.chapter-card .ch-num{font:11px var(--font-sans);letter-spacing:.08em;color:var(--accent);}.chapter-card h4{font-family:var(--font-sans);font-size:19px;line-height:1.5;margin:12px 0 10px;}.chapter-card .lec-desc{font-size:14px;line-height:1.8;color:var(--muted);}.lec-link{color:var(--accent);font-size:14px;border:0;background:none;padding:0;margin-top:15px;}.nb-reading-strip{font:12px var(--font-sans);letter-spacing:.03em;color:var(--muted);padding:18px 0;border-bottom:1px solid var(--ln-hair);}
.task-panel{font-family:var(--font-sans);}.tp-head{margin-bottom:28px;align-items:flex-start;}.tp-head .tp-title{font-size:34px;margin:12px 0;color:var(--fg);}.tp-head p{font-size:15px;}.tp-exam{border-left:1px solid var(--ln-hair);padding-left:24px;}.tp-exam strong{font-family:var(--font-sans);font-size:38px;}.tp-nav{margin-bottom:25px;padding:14px 0;border-top:1px solid var(--ln-hair);border-bottom:1px solid var(--ln-hair);}.tp-nav a{font-size:14px;}.tp-stats{padding:0;margin-bottom:24px;}.tp-stats>div{padding:12px 20px;}.tp-stats>div:first-child{padding-left:0;}.tp-stats>div>span{font-size:12px;}.tp-stats strong{font-size:28px;font-family:var(--font-sans);}.tp-stats button{border-radius:4px;font-size:13px;}.tp-main{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:22px;align-items:start;}.tp-focus{--fg:#f5f5f5;--fg-2:#d5d5d5;--muted:#b5b5b5;--accent:#e5e5e5;--surface:#242424;--ln-hair:#3d3d3d;--ln-strong:#737373;background:#171717;border:0;border-radius:8px;position:relative;overflow:hidden;}.tp-focus:before{content:"";position:absolute;top:0;right:0;width:100px;height:100px;background:url("/assets/field-path.svg") center/contain no-repeat;opacity:.2;pointer-events:none;}.tp-focus .tp-title{font:600 24px/1.5 var(--font-sans);margin:28px 0 12px;}.tp-focus-top{font-size:12px;}.tp-focus-top small{font-size:12px;}.tp-focus p{font-size:15px;color:var(--fg-2);}.tp-today,.tp-path,.tp-week{border-radius:6px;box-shadow:none;border:1px solid var(--ln-hair);background:var(--surface);padding:28px;}.tp-eyebrow{font-size:11px;letter-spacing:.08em;}.tp-section-title .tp-title,.tp-week .tp-title{font-size:25px;line-height:1.4;margin:8px 0 14px;}.tp-clock{width:100%;height:145px;margin:28px 0;border-top:1px solid var(--ln-strong);border-bottom:1px solid var(--ln-strong);}.tp-clock svg{display:none;}.tp-clock>div{align-items:flex-start;gap:8px;}.tp-clock strong{font:500 clamp(45px,5vw,66px)/1.2 var(--font-sans);letter-spacing:-.04em;}.tp-clock span{font-size:13px;color:var(--muted);}.tp-focus-buttons button{border-radius:4px;}.tp-focus-buttons button:first-child{background:#e7eefc;color:#1d1d1f;border-color:#e7eefc;}.tp-focus-buttons button:first-child:hover{background:white;color:#1d1d1f;}.tp-focus-buttons button:last-child{background:transparent;}.tp-focus-bottom button{font-size:13px;color:#e5e5e5;}.tp-note{font-size:12px;}.tp-task{border:0;border-bottom:1px solid var(--ln-hair);border-radius:0;background:none;padding:15px 10px;transition:background .2s;}.tp-task.is-current{background:var(--accent-soft);border:0;border-left:2px solid var(--accent);border-bottom:1px solid var(--ln-hair);}.tp-task>input{accent-color:var(--accent-press);width:20px;height:20px;}.tp-task-title{font-size:16px;font-weight:500;}.tp-task-meta,.tp-task-minutes{font-size:12px;}.tp-task.is-done{opacity:.7;}.tp-add,.tp-deferred,.tp-edit{border-top:1px solid var(--ln-hair);}.tp-add input,.tp-edit input,.tp-add select,.tp-edit select{background:var(--bg);border-radius:4px;font-size:15px;}.tp-path-grid{gap:20px;}.tp-path-grid article{padding:14px 0;border:0;background:none;}.tp-path-grid article h3{font:600 18px var(--font-sans);line-height:1.7;}.tp-path-grid article p{font-size:14px;}.tp-bottom{margin-top:22px;gap:22px;}.tp-path .tp-section-title a{font-size:13px;}.tp-week h2{margin-top:12px;}.tp-chart>div>div{border-radius:2px;background:var(--surface-2);}.tp-chart i{border-radius:2px;background:var(--accent);transition:height .6s ease;}.tp-footer{font-size:12px;color:var(--muted);padding-top:22px;}.focus-running .tp-focus{box-shadow:inset 0 0 0 1px #e5e5e5;}.focus-running .tp-focus-top i{width:6px;height:6px;border-radius:50%;background:#a4c9ff;display:inline-block;margin-right:8px;animation:atelier-pulse 2s ease-in-out infinite;}
.ov-section{padding-top:20px;}.ov-grid{gap:12px;}.ov-card{border-radius:6px;padding:24px;border:1px solid var(--ln-hair);background:var(--surface);box-shadow:none;}.ov-card:before,.ov-card:after{content:none;}.ov-hero{background:var(--bg-2);}.ov-greeting{font-family:var(--font-display);font-size:28px;}.ov-card h3{font:600 17px var(--font-sans);}.ov-days strong,.ov-count{font-family:var(--font-sans);}.ov-hero-glow{display:none;}
.opc-cd,.opc-progress,.opc-key,.opc-rule,.opc-board,.opc-month{border-radius:6px;background:var(--surface);box-shadow:none;border:1px solid var(--ln-hair);}.opc-board{gap:12px;border:0;background:none;}.opc-cd-num{font-family:var(--font-sans);color:var(--fg);}.opc-month{padding:25px;}.opc-cal{border-radius:0;}.opc-day{border:1px solid var(--ln-hair);border-radius:3px;background:var(--surface);transition:background .2s,transform .2s;}.opc-day:hover{background:var(--accent-soft);transform:translateY(-2px);}.opc-day.is-today,.opc-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);}.opc-day.is-selected{background:var(--accent-soft);}.opc-detail,.opc-phase{border-radius:5px;background:var(--surface);box-shadow:none;}.opc-h2{font-family:var(--font-display);font-size:32px;}.opc-bar{height:4px;border-radius:0;}.opc-bar i{background:var(--accent);}.sch-panel,.sch-checkin-card,.sch-note-card,.ci-card,.ics-card,.rk-mine-card,.rk-insight-card,.major-source-card{border-radius:6px;background:var(--surface);border:1px solid var(--ln-hair);box-shadow:none;}.sch-panel:after,.ci-card:before{content:none;}.sch-clock{font-family:var(--font-sans);font-size:60px;color:var(--fg);}.sch-now-name{font-family:var(--font-sans);font-size:26px;}.sch-progress{height:4px;border-radius:0;}.sch-progress-bar{background:var(--accent);}.sch-table{border-color:var(--ln-hair);font-size:15px;}.sch-table th{color:var(--muted);background:var(--surface-2);font:500 13px var(--font-sans);}.sch-table td{color:var(--fg);border-color:var(--ln-hair);}.mc-status-card{border:1px solid var(--ln-hair);border-radius:6px;background:var(--surface);box-shadow:none;}.mc-status-left,.mc-status-left>div,.mc-addr-wrap{min-width:0;max-width:100%;}.mc-addr{max-width:100%;overflow-wrap:anywhere;white-space:normal;font:15px var(--font-sans);color:var(--fg);background:var(--bg);border-color:var(--ln-hair);border-radius:4px;}.mc-sub{font-size:14px;overflow-wrap:anywhere;}.btn-copy{background:var(--accent-press);color:var(--accent-ink);border-radius:4px;min-height:44px;}.major-source-card{margin:20px 0;padding:28px;}.major-source-card ul{padding-left:20px;}.major-source-card li{line-height:1.9;}.major-source-label{font-size:12px;color:var(--accent);}
.nb-topbar{height:auto;min-height:64px;background:var(--nav-bg);border-bottom:1px solid var(--ln-strong);backdrop-filter:blur(12px);font-size:13px;}.nb-crumb{font-family:var(--font-sans);font-size:11px;color:var(--muted);letter-spacing:.04em;}.nb-wrap{max-width:940px;padding:56px 45px 100px;margin:auto;}.nb-lecttag{background:none;color:var(--accent);border:0;border-bottom:1px solid var(--ln-strong);font:12px var(--font-sans);letter-spacing:.1em;transform:none;padding:0 0 12px;}.nb-title{font-family:var(--font-display);font-size:clamp(32px,4vw,48px);line-height:1.4;margin:25px 0;}.nb-meta{background:none;border:0;border-left:2px solid var(--accent);padding:5px 0 5px 20px;font-size:15px;line-height:1.9;margin:30px 0;color:var(--muted);border-radius:0;}.nb-wrap h2{font-size:28px;border-bottom:1px solid var(--ln-hair);padding-bottom:15px;margin-top:45px;}.nb-wrap h3{font-family:var(--font-sans);font-size:21px;margin-top:28px;}.nb-wrap p,.nb-wrap li{font-size:17px;line-height:1.95;color:var(--fg-2);}.nb-box,.nb-formula,.nb-example,.nb-key,.nb-tip,.nb-warn{background:var(--surface);color:var(--fg);border:1px solid var(--ln-hair);border-left:3px solid var(--accent);border-radius:4px;padding:22px;box-shadow:none;}.katex-display{padding:18px;background:var(--surface-2);border-radius:4px;overflow:auto;}.nb-wrap table{font-size:15px;border-color:var(--ln-hair);}.nb-wrap table th{background:var(--surface-2);}.nb-wrap table td{background:var(--surface);border-color:var(--ln-hair);}.reading-index{position:static;margin:25px 0;border:1px solid var(--ln-hair);border-radius:5px;padding:18px;max-height:65vh;overflow:auto;background:var(--bg);font:13px/1.8 var(--font-sans);}.reading-index summary{font-weight:600;color:var(--fg);cursor:pointer;min-height:32px;}.reading-index nav{display:grid;gap:8px;margin-top:14px;}.reading-index a{display:block;color:var(--muted);padding:5px 0 5px 12px;border-left:1px solid var(--ln-hair);font-size:12px;}.reading-index a.active{border-color:var(--accent);color:var(--accent);}.reading-index a:hover{color:var(--accent);}.nt-toolbar,.nt-pop,.cc-panel{background:var(--surface);border-color:var(--ln-hair);border-radius:6px;box-shadow:var(--shadow-raised);}
.mn-nav,.sa-head{background:var(--nav-bg);border-color:var(--ln-hair);}.mn-shell,.sa-shell{max-width:1220px;}.mn-sidebar,.mn-editor,.sa-panel,.sa-side-card,.sa-answer{background:var(--surface);border:1px solid var(--ln-hair);border-radius:6px;box-shadow:none;}.mn-brand,.sa-brand{font-size:17px;color:var(--fg);}.mn-nav nav a,.sa-head nav a{font-size:14px;}.mn-title,.sa-hero h1{font-family:var(--font-display);}.sa-hero h1 em{font-style:normal;color:var(--accent);}.sa-hero{background:none;text-align:left;border-bottom:1px solid var(--ln-hair);padding-bottom:35px;}.sa-modes button,.mn-sort button,.sa-preset{border-radius:4px;background:var(--bg);color:var(--fg);}.sa-question,.sa-panel textarea,.mn-editor textarea{background:var(--bg);color:var(--fg);border:1px solid var(--ln-hair);border-radius:4px;}.sa-submit-row button,.mn-btn-primary{background:var(--accent-press);color:var(--accent-ink);border-radius:4px;min-height:44px;}.site-notice{position:fixed;right:24px;bottom:24px;max-width:calc(100vw - 48px);z-index:11000;background:var(--surface);color:var(--fg);border:1px solid var(--ln-strong);border-left:3px solid var(--accent);padding:16px 22px;border-radius:6px;box-shadow:var(--shadow-raised);}
.kook-app{--k-bg:var(--bg);--k-panel:var(--surface);--k-panel2:var(--surface-2);--k-hover:var(--accent-soft);--k-text:var(--fg);--k-dim:var(--muted);--k-accent:var(--accent);--k-accent-soft:var(--accent-soft);--k-card:var(--surface);--k-card2:var(--surface-2);--k-line:var(--ln-hair);--k-line2:var(--ln-strong);--k-radius:5px;--k-radius-lg:8px;--k-green:var(--ok);--k-red:var(--danger);font-family:var(--font-sans);background:var(--bg);color:var(--fg);font-size:15px;}.k-rail{background:var(--bg-2);border-right:1px solid var(--ln-hair);width:64px;}.k-sidebar,.k-members{background:var(--surface);border-color:var(--ln-hair);}.k-main,.k-main-head,.k-inputbar{background:var(--bg);}.k-main-head{height:65px;border-bottom:1px solid var(--ln-hair);}.k-server-icon,.k-rail-icon{border-radius:6px;}.k-rail-icon.active{background:var(--accent-soft);color:var(--accent);}.k-sidebar-head{height:65px;font-size:16px;background:var(--surface);border-bottom:1px solid var(--ln-hair);}.k-ch{border-radius:4px;min-height:40px;font-size:14px;}.k-ch.is-active{border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--fg);}.k-userbar{background:var(--surface-2);border-top:1px solid var(--ln-hair);border-radius:0;margin:0;}.k-msg{border-radius:3px;}.k-msg:hover{background:var(--surface);}.k-msg-text{font-size:15px;line-height:1.8;}.k-msg-user{font-size:13px;color:var(--fg);}.k-msg-time{font-size:11px;color:var(--muted);}.k-inputbar textarea{min-height:46px;border:1px solid var(--ln-strong);background:var(--surface);border-radius:5px;font:15px var(--font-sans);color:var(--fg);}.k-send-btn{background:var(--accent-press);color:var(--accent-ink);border-radius:5px;min-height:44px;box-shadow:none;}.k-command-menu{position:absolute;bottom:100%;left:16px;right:16px;background:var(--surface);border:1px solid var(--ln-strong);border-radius:5px;box-shadow:var(--shadow-raised);max-height:320px;overflow:auto;z-index:300;}.k-command-menu button{width:100%;display:block;text-align:left;font:15px var(--font-sans);background:none;color:var(--fg);padding:12px 16px;border:0;min-height:44px;}.k-command-menu button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);}.k-voice,.k-v-head,.k-v-card{background:var(--surface);border-color:var(--ln-hair);border-radius:6px;}
.manifesto{background:var(--bg-2);min-height:230px;padding:65px 28px;display:block;border-top:1px solid var(--ln-hair);border-bottom:1px solid var(--ln-hair);margin:0;text-align:left;}.manifesto:before,.manifesto:after{content:none;}.manifesto-inner{max-width:1160px;margin:auto;}.m-quote{font-family:var(--font-display);font-size:clamp(25px,3.4vw,42px);color:var(--fg);line-height:1.5;text-shadow:none;max-width:950px;}.m-sub{font-size:14px;color:var(--muted);margin-top:25px;}.site-footer{padding:44px 0;background:var(--bg);border-top:1px solid var(--ln-hair);}.footer-inner{max-width:1220px;padding:0 28px;}.footer-nav{gap:20px;justify-content:flex-start;}.footer-nav a{color:var(--muted);font-size:13px;}.copyright{font-size:11px;margin-top:28px;color:var(--muted);text-align:left;letter-spacing:.02em;}.ae-footer-appearance{justify-content:flex-start;}.ae-segment{background:var(--surface);border-color:var(--ln-hair);border-radius:4px;}.ae-segment button{border-radius:3px;}.atelier-top{position:fixed;right:22px;bottom:22px;z-index:9000;border:1px solid var(--ln-strong);background:var(--surface);color:var(--fg);border-radius:5px;width:44px;height:44px;display:grid;place-items:center;font-size:20px;opacity:0;visibility:hidden;transition:opacity .3s,transform .3s;transform:translateY(8px);}.atelier-top.is-visible{opacity:1;visibility:visible;transform:none;}
.today-block{display:grid;grid-template-columns:150px minmax(0,1fr);padding:20px 0;gap:20px;border-bottom:1px solid var(--ln-hair);font-size:16px;color:var(--fg);}.today-block time{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;}.atelier-enter{animation:atelier-enter .65s both;}.atelier-reveal{animation:atelier-reveal .65s both;}.atelier-orbit.is-paused{animation-play-state:paused;}@keyframes atelier-enter{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}@keyframes atelier-reveal{from{opacity:.1;transform:translateY(16px);}to{opacity:1;transform:none;}}@keyframes atelier-orbit{to{transform:rotate(360deg);}}@keyframes atelier-pulse{50%{opacity:.35;}}
@media(min-width:1320px){body.nb-page .nb-wrap{max-width:1210px;padding-right:275px;padding-left:50px;}.reading-index{position:fixed;right:max(30px,calc((100vw - 1210px)/2));top:100px;width:200px;margin:0;border:0;border-left:1px solid var(--ln-hair);border-radius:0;background:none;padding-left:20px;}}
@media(max-width:1100px){.nav-menu{gap:18px;}.nav-inner{gap:20px;}.brand-copy small{font-size:8px;}.nav-logo{min-width:165px;}.hero-inner{gap:30px;}.page-hero{padding-right:240px;}.page-hero:after{width:185px;}.tp-bottom,.tp-path-grid{grid-template-columns:1fr;}.k-members{width:185px;}}
@media(max-width:820px){.nav-menu{display:none;}.nav-toggle{display:block;}.nav-inner{height:64px;}.site-nav{height:64px;}.nav-mega{top:64px;}.mobile-menu{top:64px;background:var(--surface);}.nav-logo{min-width:0;}.nav-actions{margin-left:auto;}.brand-copy small{font-size:8px;}.hero-inner{padding:38px 24px 25px;gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;}.hero-title{font-size:44px;}.hero-sub{font-size:15px;}.atelier-art img{aspect-ratio:.82;object-position:70% center;}.hero-cta{gap:15px;}.tv-screen{gap:15px;}.tv-top{min-width:130px;}.tv .cd-sub{max-width:180px;font-size:11px;}.section{padding:48px 0;}.section-inner{padding:0 24px;}.page-hero{padding:40px 210px 30px 24px;min-height:220px;}.page-hero:after{right:22px;top:40px;width:160px;}.page-hero h1{font-size:36px;}.resource-index{grid-template-columns:1fr;}.resource-index a{border-right:0;border-bottom:1px solid var(--ln-hair);}.tp-main{grid-template-columns:1fr 1.05fr;gap:16px;}.tp-focus,.tp-today,.tp-path,.tp-week{padding:22px;}.tp-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;}.tp-stats>div:nth-child(2){border:0;}.tp-stats>div:nth-child(3){padding-left:0;}.tp-head .tp-title{font-size:30px;}.nb-wrap{padding:38px 25px 70px;}.reading-index{max-height:none;}.mc-addr{font-size:14px;}.k-members{display:none;}}
@media(max-width:600px){:root{--gutter:20px;--section-y:44px;--nav-h:64px;}.hero-inner{grid-template-columns:1fr;padding:34px 20px 26px;gap:28px;}.hero-title{font-size:49px;margin:18px 0;}.hero-sub{font-size:16px;max-width:none;}.hero-tag{font-size:11px;}.hero-cta{margin-top:24px;}.atelier-art img{aspect-ratio:1.45;object-position:65% 60%;}.atelier-art:after{right:-8px;top:-8px;width:38px;height:38px;}.atelier-art figcaption{font-size:9px;}.atelier-orbit{width:44px;height:44px;}.hero .tv-screen{gap:16px;flex-wrap:wrap;}.tv-top{min-width:110px;flex:1;}.cd-days-text{font-size:38px;}.tv .cd-sub{max-width:none;flex-basis:100%;order:4;}.cd-progress{max-width:none;flex-basis:100%;min-width:100%;order:5;margin:0;}.section-inner{padding:0 20px;}.section-head h2{font-size:29px;}.section-head p{font-size:15px;}.page-hero{padding:36px 20px 30px;min-height:0;}.page-hero:after{width:80px;height:80px;top:25px;right:20px;opacity:.22;}.page-hero h1{font-size:35px;margin:12px 0 16px;}.page-hero>p{font-size:15px;}.nc-grid{grid-template-columns:1fr 1fr;}.nc-card{padding:23px 18px;min-height:185px;}.nc-card h3{font-size:21px;}.nc-card p{font-size:13px;}.nc-card .nc-enter{font-size:12px;}.cards{grid-template-columns:1fr 1fr;}.subject-card{padding:120px 18px 23px;min-height:270px;}.subject-card:before{inset:12px 10px auto;height:90px;}.subject-card h3{font-size:23px;}.subject-card p{font-size:13px;}.chapter-card{padding:20px;}.tp-head{gap:12px;}.tp-head .tp-title{font-size:28px;}.tp-head p{font-size:13px;}.tp-exam{padding-left:12px;}.tp-exam strong{font-size:32px;}.tp-exam span,.tp-exam small{font-size:10px;}.tp-main{grid-template-columns:1fr;}.tp-focus,.tp-today,.tp-path,.tp-week{padding:23px;}.tp-clock{height:135px;margin:24px 0;}.tp-clock strong{font-size:58px;}.tp-clock>div{align-items:flex-start;}.tp-nav{gap:16px;}.tp-nav span{display:none;}.tp-stats>div{padding:10px 12px;}.tp-stats strong{font-size:24px;}.tp-stats>div:nth-child(2){border:0;}.tp-stats p{font-size:12px;}.tp-task{padding:16px 8px;}.tp-task-title{font-size:16px;}.tp-section-title .tp-title{font-size:23px;}.tp-focus h2.tp-title{font-size:23px;}.tp-bottom{grid-template-columns:1fr;}.tp-section-title{align-items:flex-start;}.tp-section-title a{font-size:11px;max-width:86px;}.tp-footer{font-size:11px;}.ov-grid{gap:10px;}.ov-card{padding:22px;}.opc-month{padding:12px;}.opc-board{grid-template-columns:1fr;}.opc-day{min-width:0;padding:7px 3px;}.opc-day .opc-sub{font-size:10px;}.opc-calendar,.opc-cal{min-width:0;}.opc-h2{font-size:27px;}.nb-wrap{padding:34px 20px 70px;}.nb-title{font-size:34px;}.nb-topbar{padding:10px 20px;gap:6px;}.nb-crumb{font-size:9px;}.nb-wrap h2{font-size:26px;}.nb-wrap h3{font-size:20px;}.nb-wrap p,.nb-wrap li{font-size:16px;}.nb-meta{font-size:14px;}.nb-box,.nb-formula,.nb-example,.nb-key,.nb-tip,.nb-warn{padding:18px;}.k-rail{width:52px;}.k-main-head{height:58px;}.k-inputbar{padding:10px;}.k-send-btn{min-width:60px;}.mn-shell,.sa-shell{padding-left:20px;padding-right:20px;}.sa-hero h1{font-size:36px;}.sa-panel{padding:22px;}.sa-head{gap:12px;}.sa-head nav{gap:12px;}.sa-head nav a{font-size:12px;}.mn-brand,.sa-brand{font-size:15px;}.today-block{grid-template-columns:1fr;gap:6px;padding:16px 0;}.manifesto{padding:48px 20px;}.m-quote{font-size:27px;}.footer-inner{padding:0 20px;}.atelier-top{right:15px;bottom:15px;}.sch-clock{font-size:42px;}.sch-now-name{font-size:22px;}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}html body *,html body *:before,html body *:after{animation:none;transition:none;}.atelier-art img{transform:none;}}

.atelier-gallery{padding:28px;}.atelier-gallery h2{margin:28px 0;font-size:28px;}.atelier-gallery .cell{border:1px solid var(--ln-hair);background:var(--surface);color:var(--fg);border-radius:6px;width:150px;padding:22px 12px;}.atelier-gallery .cell.dark{background:var(--surface-2);}.atelier-gallery .cell div{font:12px var(--font-sans);color:var(--muted);}

.hero .tv-screen{border:0;border-top:1px solid var(--ln-strong);}.hero .tv-screen .tv-date{border:0;background:none;padding:0;}.hero .tv-screen .tv-top{font-family:var(--font-sans);}.tv-screen .tv-quote{font-size:12px;color:var(--muted);margin:0 0 0 auto;border:0;background:none;text-align:right;max-width:300px;}.hero .cd-progress{height:3px;}.cd-progress-spark,.cd-progress-dot{display:none;}.ov-aurora{display:none;}.ov-main{background:var(--bg-2);}.ov-greet{font-family:var(--font-display);font-size:26px;color:var(--fg);}.ov-btn-primary{background:var(--accent-press);color:var(--accent-ink);border-radius:5px;}.ov-btn-ghost{color:var(--fg);border-radius:5px;}.ov-days{font-family:var(--font-sans);}.ci-account-btn{border-radius:5px;}.auth-user-menu,.auth-user-trigger{border-radius:6px;}@media(max-width:600px){.tv-screen .tv-quote{display:none;}}

.palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}.palette-grid article{border:1px solid var(--ln-hair);padding:22px;background:var(--surface);border-radius:5px;}.palette-grid h3{font:16px var(--font-sans);margin-top:15px;}.palette-grid p{font-size:12px;}.palette-chip{height:85px;border:1px solid var(--ln-hair);border-radius:3px;}.palette-bg{background:var(--bg);}.palette-surface{background:var(--surface);}.palette-fg{background:var(--fg);}.palette-muted{background:var(--muted);}.palette-accent{background:var(--accent);}.palette-ok{background:var(--ok);}@media(max-width:600px){.palette-grid{grid-template-columns:1fr 1fr;}}

.glitch:before,.glitch:after,.page-hero h1:before,.page-hero h1:after{content:none;}.page-hero h1,.hero h1,.unit-title,.unit-head h2{transform:none;text-shadow:none;filter:none;-webkit-text-stroke:0;}.unit-head h2,.unit-title{background:none;border:0;color:var(--fg);padding:0;font-size:28px;}.chapter-grid{gap:14px;}.nr-toc{background:var(--bg);border:0;border-left:1px solid var(--ln-hair);border-radius:0;box-shadow:none;backdrop-filter:none;padding:10px 0 10px 20px;}.nr-toc a{border-radius:0;padding:7px 0 7px 12px;border-left:1px solid transparent;white-space:normal;line-height:1.65;}.nr-toc a.active{border-left-color:var(--accent);background:transparent;color:var(--accent);}.nr-toc-title{font:600 12px var(--font-sans);letter-spacing:.03em;}.nr-toolbar{border-radius:6px;box-shadow:var(--shadow-raised);background:var(--surface);backdrop-filter:none;}.nr-toolbar button{min-height:42px;border-radius:4px;}.nr-toolbar .nr-ai-btn,.nr-toolbar .nr-ai-btn:hover{background:var(--accent-press);}.nr-toolbar .nr-done.done{background:var(--ok);color:var(--surface);}.nb-body p,.nb-body li{font-size:var(--nr-font-size,17px);line-height:var(--nr-line-height,1.95);}.nb-page.nr-focus .nb-wrap{max-width:900px;padding-left:45px;padding-right:45px;}.nb-page.nr-focus .nb-reading-strip{display:none;}@media(min-width:1320px){.nr-toc{left:auto;right:max(30px,calc((100vw - 1210px)/2));width:200px;top:105px;}}@media(min-width:1180px) and (max-width:1319px){.nr-toc{left:20px;width:170px;}.nb-page:not(.nr-focus) .nb-wrap{margin-left:210px;margin-right:20px;max-width:calc(100vw - 230px);padding-right:35px;padding-left:20px;}}@media(max-width:820px){.nav-burger{display:flex;}.nav-inner{padding:0 20px;gap:12px;}.nav-actions{gap:6px;}}@media(max-width:600px){.nr-toc.mobile-open{background:var(--surface);border:1px solid var(--ln-strong);border-radius:6px;box-shadow:var(--shadow-raised);padding:20px;}.nr-toolbar{border-radius:6px;bottom:10px;}.nr-toolbar button{font-size:11px;min-height:42px;}.nb-page.nr-focus .nb-wrap{padding:30px 20px 85px;}.brand-copy small{font-size:7px;}.nav-logo{gap:9px;font-size:16px;}.nav-logo .logo-mark{width:29px;height:29px;}.nav-logo .site-logo-icon{width:29px;height:29px;}.nav-search-btn,.ae-theme-toggle,.nav-burger{width:32px;height:38px;}.nav-actions{gap:4px;}.atelier-timer .timer-brand{top:72px;left:20px;}.nb-page .atelier-top{bottom:75px;}.hero .cd-progress-spark{display:none;}}

.hero .tv-screen::before{content:none;}

/* FINAL VISUAL RULES · shared, explicit components; no !important. */
:root{--font-sans:-apple-system,BlinkMacSystemFont,"Inter","Noto Sans SC VF","PingFang SC","Microsoft YaHei",sans-serif;--font-display:var(--font-sans);--nav-h:56px;--nav-bg:rgba(250,250,252,.82);--shadow-raised:0 16px 44px rgba(0,0,0,.08);--accent-press:#0071e3;--ls-display:-.04em;--section-y:96px;}
html[data-theme="dark"]{--bg:#000;--bg-2:#101012;--surface:#161617;--surface-2:#1d1d1f;--fg:#f5f5f7;--muted:#a1a1a6;--ln-hair:#323235;--nav-bg:rgba(22,22,23,.85);--accent:#2997ff;--accent-press:#0071e3;}
body{background:var(--bg);font-family:var(--font-sans);font-size:17px;}h1,h2,h3,h4,.unit-title,.nb-title,.tp-title{font-family:var(--font-sans);font-weight:650;letter-spacing:-.035em;}h1 em{font-style:normal;}html body [hidden]{display:none;}
.intro,.hero-deco,.hero-ticker,.hero-giant,.ov-aurora,.page-hero::after{display:none;}button:disabled{cursor:not-allowed;opacity:.45;}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px;}
.skip-link{position:fixed;z-index:10000;top:8px;left:12px;transform:translateY(-160%);background:var(--surface);color:var(--fg);padding:10px 18px;border-radius:12px;}.skip-link:focus{transform:none;}
.site-nav,.nav-inner{height:56px;}.nav-inner{max-width:1100px;padding:0 24px;gap:28px;}.site-nav{background:var(--nav-bg);backdrop-filter:blur(24px) saturate(170%);border-bottom:1px solid var(--ln-hair);}.nav-logo{font-size:15px;gap:10px;}.nav-logo .logo-mark,.nav-logo .site-logo-icon{width:27px;height:27px;}.brand-copy small{font-size:8px;letter-spacing:.06em;}.nav-item>a{font-size:12px;padding:18px 0;}.nav-item>a.active:after{bottom:9px;width:12px;height:2px;border-radius:2px;}.nav-menu{gap:27px;}.nav-item>a:hover{background:none;}.nav-search-btn,.ae-theme-toggle,.nav-burger{width:32px;height:32px;border:0;background:transparent;border-radius:50%;}.nav-actions{gap:6px;}.nav-mega{top:56px;background:var(--surface);border-radius:0 0 24px 24px;}.search-box,.auth-modal,.k-modal{border-radius:22px;}.search-input{font-size:19px;}.mobile-menu{top:56px;background:var(--bg);}
.btn-primary,.ov-btn-primary,.tp-focus-buttons button:first-child{background:var(--accent-press);border:0;border-radius:999px;color:#fff;box-shadow:none;}.btn-primary{padding:12px 23px;min-height:44px;font-size:16px;}.btn-primary:hover{background:#0077ed;transform:translateY(-2px);}.btn-ghost{font-size:16px;color:var(--accent);border:0;background:none;}.btn-ghost:hover{transform:none;text-decoration:underline;}.btn-primary:after{display:none;}
.hero{background:var(--bg);padding:0;position:relative;overflow:hidden;}.hero-inner{display:flex;flex-direction:column;max-width:1500px;min-height:0;gap:0;padding:50px 0 0;margin:auto;}.hero-left{text-align:center;position:relative;z-index:2;width:100%;padding:0 24px;}.hero-tag{font:500 14px var(--font-sans);color:var(--muted);letter-spacing:0;}.hero-title{font-size:clamp(48px,5.8vw,76px);line-height:1.04;font-weight:700;margin:18px 0 20px;letter-spacing:-.045em;}.hero-title em{color:var(--fg);display:inline;}.hero-sub{font-size:21px;line-height:1.6;color:var(--fg-2);max-width:700px;margin:0 auto;}.hero-cta{justify-content:center;gap:25px;margin:24px 0 0;}.home-art{width:100%;position:relative;margin-top:20px;height:440px;overflow:hidden;}.home-art img{width:100%;height:100%;object-fit:cover;object-position:50% 66%;display:block;transform:scale(var(--hero-scale,1));will-change:transform;}.home-art:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(var(--bg),transparent 25%);}.home-art:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 75%,var(--bg));}.hero .tv{display:flex;width:100%;max-width:1100px;margin:0 auto;padding:0 24px;background:none;border:0;box-shadow:none;}.hero .tv-screen{padding:24px 0;display:flex;align-items:center;gap:25px;border:0;border-top:1px solid var(--ln-hair);background:none;border-radius:0;}.tv-screen::before,.tv-screen::after,.tv::before,.tv::after{content:none;}.tv-top{font-family:var(--font-sans);font-size:13px;min-width:170px;}.tv-date{font-size:12px;border:0;}.cd-days-text{font-size:44px;font-weight:600;color:var(--fg);}.tv .cd-stage{height:auto;min-height:0;width:auto;margin:0;}.tv .cd-sub{font-size:13px;}.tv-progress{height:3px;background:var(--ln-hair);width:160px;margin-left:auto;border-radius:4px;overflow:hidden;}.cd-progress-bar{background:var(--accent);}.cd-progress-spark,.tv-meta,.tv-quote,.cd-hint{display:none;}
html[data-theme="dark"] .home-art img{opacity:.76;}html[data-theme="dark"] .home-art::before{background:linear-gradient(#000,transparent 25%);}html[data-theme="dark"] .home-art::after{background:linear-gradient(transparent 60%,#000);}
.section{padding:86px 0;}.section-inner{max-width:1200px;padding:0 32px;}.section-head{margin-bottom:38px;}.section-head h2{font-size:42px;line-height:1.15;}.section-head p{font-size:18px;line-height:1.6;}.head-tag,.page-tag{font-size:13px;letter-spacing:0;color:var(--muted);}.section:nth-of-type(even){background:var(--bg-2);}.action-section{background:var(--bg-2);}.page-hero{max-width:none;min-height:490px;padding:110px max(40px,calc((100vw - 1100px)/2)) 75px;background:var(--bg-2);overflow:hidden;position:relative;border:0;}.page-hero>.page-tag,.page-hero>h1,.page-hero>p{position:relative;z-index:2;max-width:540px;}.page-hero h1{font-size:clamp(38px,4.2vw,58px);line-height:1.12;letter-spacing:-.04em;margin:17px 0 24px;}.page-hero>p{font-size:19px;line-height:1.7;max-width:450px;}.page-art{position:absolute;inset:0;pointer-events:none;overflow:hidden;}.page-art img{width:100%;height:100%;object-fit:cover;object-position:center;}.page-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg-2) 0%,color-mix(in srgb,var(--bg-2) 90%,transparent) 23%,transparent 64%);}.page-hero[data-art="focus"]{color:#fff;}.page-hero[data-art="focus"] h1,.page-hero[data-art="focus"] p{color:#fff;}html[data-theme="dark"] .page-art img{opacity:.65;}html[data-theme="dark"] .page-art:after{background:linear-gradient(90deg,#101012 0%,rgba(16,16,18,.95) 23%,rgba(16,16,18,.2) 100%);}
.subject-card,.nc-card{position:relative;overflow:hidden;isolation:isolate;border:0;border-radius:24px;background:var(--surface);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s;}.subject-card{padding:30px;min-height:410px;}.subject-card:before,.subject-card:after,.nc-card:before,.nc-card:after{content:none;}.tile-art{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% bottom;transition:transform .7s cubic-bezier(.2,.7,.2,1);}.subject-card .tile-art{mask-image:linear-gradient(transparent 18%,#000 70%);}.subject-card:hover .tile-art,.nc-card:hover .tile-art{transform:scale(1.05);}.subject-card:hover,.nc-card:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(0,0,0,.08);}.subject-card h3{font-size:32px;}.subject-card p{max-width:330px;font-size:16px;}.sc-tags{display:none;}.sc-foot{position:absolute;bottom:26px;right:28px;background:var(--surface);border-radius:999px;padding:9px 14px;color:var(--accent);}.subject-grid{gap:24px;}.nc-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}.nc-card{min-height:290px;padding:26px;}.nc-card .tile-art{object-position:center 90%;mask-image:linear-gradient(transparent 22%,#000 80%);}.nc-card h3{font-size:23px;}.nc-card p{max-width:240px;font-size:14px;}.nc-card .nc-arrow{position:absolute;right:23px;bottom:20px;background:var(--surface);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;}.nc-icon{display:none;}
.product-story{padding:96px 24px;text-align:center;background:var(--bg);}.story-heading h2{font-size:clamp(34px,4.5vw,56px);line-height:1.15;}.story-heading p{font-size:20px;color:var(--muted);margin:22px auto 32px;}.story-tabs{display:flex;gap:5px;justify-content:center;border-radius:999px;background:var(--bg-2);padding:5px;max-width:300px;margin:0 auto 32px;}.story-tabs button{flex:1;padding:10px 14px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:16px;}.story-tabs button[aria-selected="true"]{background:var(--surface);color:var(--fg);box-shadow:0 2px 12px rgba(0,0,0,.08);}.story-panel{max-width:740px;min-height:180px;margin:auto;}.story-panel h3{font-size:28px;margin-bottom:18px;}.story-panel p{font-size:19px;color:var(--muted);line-height:1.7;margin-bottom:22px;}.story-panel a{font-size:18px;color:var(--accent);}
.focus-feature{position:relative;min-height:560px;overflow:hidden;background:#061322;color:#f5f5f7;}.focus-feature>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}.focus-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,19,34,.5),transparent);}.focus-feature>div{position:relative;z-index:2;max-width:1100px;margin:auto;padding:120px 32px;}.focus-feature h2{font-size:46px;line-height:1.17;color:#f5f5f7;margin:20px 0;}.focus-feature p{font-size:19px;line-height:1.7;color:#c7d4e3;margin-bottom:30px;}
.tp-head .tp-title{font-size:38px;}.tp-main{grid-template-columns:1fr 1fr;gap:24px;}.tp-focus{border-radius:24px;background:var(--surface);color:var(--fg);border:0;box-shadow:none;}.tp-focus h2,.tp-focus .tp-clock strong{color:var(--fg);}.tp-focus p,.tp-focus-top,.tp-clock span{color:var(--muted);}.tp-focus .tp-focus-bottom button{color:var(--accent);border-color:var(--ln-hair);}.tp-focus-buttons button{border-radius:999px;border:1px solid var(--ln-hair);}.tp-focus-buttons button:nth-child(2){background:transparent;color:var(--accent);}.tp-clock{border:0;border-radius:22px;background:var(--bg-2);padding:25px;margin:24px 0;}.tp-clock strong{font-size:72px;font-weight:500;letter-spacing:-.05em;}.tp-today,.tp-path,.tp-week{border:0;border-radius:24px;background:var(--surface);}.tp-task{border-radius:14px;border:1px solid transparent;transition:background .25s,transform .25s;}.tp-task.is-current{border-color:var(--accent);background:var(--accent-soft);}.tp-task.is-done{opacity:.6;}.tp-subject{border-radius:999px;}.tp-stats{background:var(--surface);border:0;border-radius:20px;padding:26px;}.tp-nav{border:0;margin:24px 0;gap:12px;}.tp-nav a{border-radius:999px;background:var(--surface);padding:9px 16px;}.tp-progress,.tp-progress i{border-radius:99px;}.tp-chart>div>div{border-radius:8px;}.tp-chart i{border-radius:8px;}.task-panel.focus-running .tp-clock{animation:focus-breath 5s ease-in-out infinite;}@keyframes focus-breath{0%,100%{box-shadow:0 0 0 0 rgba(0,113,227,.04);}50%{box-shadow:0 0 0 8px rgba(0,113,227,.07);}}
.ov-card{border-radius:22px;border:0;background:var(--surface);}.ov-grid{gap:22px;}.ov-main{background:var(--surface);}.ov-greet{font-family:var(--font-sans);font-size:28px;}.ov-days{font-weight:600;}.library-tools{border:0;border-radius:20px;background:var(--bg-2);padding:20px;box-shadow:none;}.library-search{border-radius:12px;}.library-filters{border-radius:999px;}.library-filters button{border-radius:999px;}.unit-head{margin:40px 0 24px;}.unit-head h2{font-family:var(--font-sans);font-size:32px;}.chapter-grid{gap:18px;}.chapter-card{border:0;border-radius:20px;background:var(--bg-2);padding:25px;transition:transform .3s,background .3s;}.chapter-card:hover{transform:translateY(-4px);background:var(--surface-2);}.chapter-card h4{font-size:21px;line-height:1.4;}.chapter-action{border-radius:999px;}.chapter-note-btn{font-size:15px;}.file-card{border-radius:20px;border:0;background:var(--bg-2);}.file-pill,.unit-tag{border-radius:999px;}.opc-sec,.opc-month,.opc-table-wrap,.ci-card,.ci-panel,.st-timetable,.timetable-wrap,.rank-card,.rank-item{border-radius:20px;}.opc-day{border-radius:10px;}.ci-day{border-radius:7px;}.ci-account-btn{border-radius:999px;}.ci-head h2{font-size:32px;}
.nb-wrap{max-width:930px;padding:50px 40px 85px;}.nb-title{font-family:var(--font-sans);font-size:44px;line-height:1.2;}.nb-course-art{height:145px;overflow:hidden;border-radius:22px;margin:25px 0;}.nb-course-art img{width:100%;height:100%;object-fit:cover;object-position:center 65%;}.nb-body{font-family:var(--font-sans);}.nb-body h2{font-size:27px;}.nb-meta,.nb-tip,.fml{border-radius:14px;}.nr-toc{background:var(--bg);border-radius:14px;}.nr-toolbar{border-radius:999px;padding:6px 10px;border:1px solid var(--ln-hair);}.nr-toolbar button{border-radius:999px;}.nr-ai-btn{border-radius:999px;}.nb-nav{gap:20px;}.nb-nav a{font-size:15px;}.sa-hero{background:var(--bg-2);}.sa-card,.sa-side-card,.mn-list,.mn-editor,.mn-card,.site-notice{border-radius:20px;border:1px solid var(--ln-hair);}.site-notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--surface);box-shadow:var(--shadow-raised);padding:15px 22px;max-width:calc(100vw - 32px);z-index:10000;color:var(--fg);}.kook-app{background:var(--bg);}.k-msg.is-me .k-message-body{background:var(--accent-soft);border-radius:16px;}.k-input-box,.k-editor{border-radius:16px;}.k-sidebar{border-right:1px solid var(--ln-hair);}.k-channel{border-radius:12px;}.k-channel.active{background:var(--accent-soft);}.k-toolbar button{border-radius:10px;}.site-footer{background:var(--bg-2);padding:42px 24px;font-size:12px;}.ae-theme-seg{border-radius:999px;}.ae-theme-seg button{border-radius:999px;}
.page-localnav{position:sticky;top:56px;z-index:25;display:flex;align-items:center;gap:22px;padding:14px max(24px,calc((100vw - 1100px)/2));background:var(--nav-bg);backdrop-filter:blur(20px);border-bottom:1px solid var(--ln-hair);overflow-x:auto;white-space:nowrap;scrollbar-width:none;}.page-localnav a{font-size:13px;color:var(--muted);}.page-localnav a.active{color:var(--accent);}.page-localnav:empty{display:none;}.site-top{position:fixed;right:22px;bottom:22px;z-index:40;background:var(--surface);border:1px solid var(--ln-hair);box-shadow:var(--shadow-raised);width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:var(--fg);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;transform:translateY(10px);}.site-top.visible{opacity:1;pointer-events:auto;transform:none;}.nb-page .site-top{bottom:88px;}.button-feedback{animation:button-feedback .3s ease;}@keyframes button-feedback{50%{transform:scale(.97);}}
@media(min-width:1320px){.nb-wrap{margin-left:max(60px,calc((100vw - 1180px)/2));margin-right:260px;max-width:880px;}.nr-toc{right:30px;width:205px;}}
@media(max-width:1000px){.page-hero{padding:85px 40px 60px;min-height:440px;}.page-hero h1{max-width:450px;}.page-art:after{background:linear-gradient(90deg,var(--bg-2) 0%,color-mix(in srgb,var(--bg-2) 80%,transparent) 43%,transparent);} .page-hero>p{max-width:400px;}.nav-menu{gap:17px;}.nc-grid{grid-template-columns:repeat(2,1fr);}.focus-feature h2{font-size:38px;}.home-art{height:360px;}}
@media(max-width:820px){.nav-burger{display:flex;}.nav-inner{height:56px;padding:0 18px;gap:10px;}.nav-menu{display:none;}.hero-inner{padding-top:38px;}.hero-title{font-size:58px;}.hero-sub{font-size:18px;}.hero-cta{gap:17px;}.home-art{height:330px;}.section-head h2{font-size:34px;}.section{padding:62px 0;}.page-hero{padding:60px 28px 230px;min-height:510px;}.page-hero h1,.page-hero>p{max-width:600px;}.page-art img{object-position:75% bottom;}.page-art:after{background:linear-gradient(var(--bg-2),color-mix(in srgb,var(--bg-2) 97%,transparent) 30%,transparent 70%);}html[data-theme="dark"] .page-art:after{background:linear-gradient(#101012,rgba(16,16,18,.95) 32%,rgba(16,16,18,.15));}.tp-main{grid-template-columns:1fr;}.tp-head .tp-title{font-size:32px;}.nb-title{font-size:36px;}.subject-card{min-height:380px;}.focus-feature>div{padding:85px 28px;}.focus-feature:after{background:linear-gradient(90deg,rgba(6,19,34,.85),rgba(6,19,34,.15));}.page-localnav{top:56px;padding:13px 24px;}.nr-toc.mobile-open{border-radius:20px;}.nr-toolbar{border-radius:20px;}.nb-wrap{padding:38px 25px 80px;}}
@media(max-width:600px){.hero-title{font-size:49px;}.hero-tag{font-size:12px;}.hero-sub{font-size:17px;}.hero-left{padding:0 20px;}.hero-cta{flex-wrap:wrap;gap:15px;}.hero-cta .btn-primary{flex-basis:70%;max-width:240px;}.hero-cta .btn-ghost{font-size:14px;}.home-art{height:255px;margin-top:26px;}.home-art img{object-position:68% 68%;}.hero .tv{padding:0 20px;}.hero .tv-screen{flex-wrap:wrap;gap:10px 20px;padding:20px 0;}.tv-top{min-width:130px;flex:1;}.tv .cd-sub{max-width:none;font-size:12px;order:4;width:100%;}.tv-progress{width:100%;max-width:none;order:5;margin:0;}.cd-days-text{font-size:38px;}.section-inner{padding:0 20px;}.section-head h2{font-size:32px;}.section-head p{font-size:16px;}.page-hero{padding:45px 22px 210px;min-height:510px;}.page-hero h1{font-size:37px;line-height:1.16;}.page-hero>p{font-size:16px;}.page-art img{object-position:72% bottom;}.subject-grid{grid-template-columns:1fr;gap:18px;}.subject-card{min-height:390px;padding:28px;}.subject-card h3{font-size:30px;}.nc-grid{grid-template-columns:1fr;gap:18px;}.nc-card{min-height:290px;}.product-story{padding:64px 22px;}.story-heading h2{font-size:34px;}.story-heading p{font-size:16px;}.story-panel h3{font-size:24px;}.story-panel p{font-size:17px;}.focus-feature{min-height:520px;}.focus-feature>img{object-position:65% center;}.focus-feature h2{font-size:32px;}.focus-feature p{font-size:17px;}.focus-feature>div{padding:75px 22px;}.tp-focus,.tp-today,.tp-path,.tp-week{padding:24px;}.tp-clock strong{font-size:64px;}.tp-stats{padding:22px;}.tp-head .tp-title{font-size:29px;}.tp-exam strong{font-size:38px;}.tp-nav a{font-size:12px;}.tp-task{padding:12px 8px;}.library-tools{padding:16px;}.library-filters{flex-wrap:wrap;}.library-filters button{font-size:13px;}.chapter-card{padding:24px;}.chapter-card h4{font-size:21px;}.nb-title{font-size:32px;}.nb-course-art{height:120px;}.nr-toolbar button{font-size:11px;min-height:40px;}.page-localnav{gap:20px;padding:12px 20px;}.site-top{right:16px;bottom:16px;}.nav-logo{font-size:14px;}.nav-logo .site-logo-icon,.nav-logo .logo-mark{width:27px;height:27px;}.brand-copy small{font-size:7px;}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.home-art img{transform:none;}.task-panel.focus-running .tp-clock{animation:none;}.subject-card,.nc-card,.tile-art,.site-top{transition:none;}.button-feedback{animation:none;}}

.sa-hero{position:relative;isolation:isolate;overflow:hidden;}.sa-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right;opacity:.2;z-index:-1;}.sa-hero h1{font:650 clamp(36px,4vw,54px)/1.15 var(--font-sans);}.cc-panel{border-radius:22px;}.cc-results a{border-radius:12px;}@media(max-width:820px){.nav-burger,.nav-search-btn,.ae-theme-toggle{width:44px;height:44px;}.nav-actions{gap:0;}.nav-inner{gap:8px;}.nr-toolbar button{min-height:44px;}}

html[data-theme="light"]{--nav-bg:rgba(250,250,252,.85);--muted-2:#6e6e73;}html[data-theme="dark"]{--nav-bg:rgba(22,22,23,.85);--fg-2:#d2d2d7;--muted-2:#a1a1a6;--accent-soft:#14273b;--ln-strong:#515154;}.auth-navbtn{background:var(--accent-press);color:var(--accent-ink);}.tp-subject{color:#0058b0;background:#eaf3ff;}html[data-theme="dark"] .tp-subject{color:#aad3ff;background:#14273b;}.tp-task small{color:var(--muted);}.section:not(.action-section),.product-story,.focus-feature{content-visibility:auto;contain-intrinsic-size:auto 700px;}html[data-theme="dark"] .page-localnav{background:rgba(22,22,23,.88);}@media(max-width:820px){.site-nav{backdrop-filter:none;}.auth-navbtn{min-height:44px;}.nr-toolbar{max-width:calc(100vw - 24px);}}

.mm-sub{display:none;}.mm-acc.open .mm-sub{display:grid;}.mobile-menu{transition:opacity .25s,transform .25s,visibility .25s;}

/* Countdown caption follows accessible neutral text tokens. */
html .cd-sub-en{color:var(--muted)}

html .hero .cd-sub .cd-sub-en{color:var(--muted)}

html .hero .cd-sub .cd-sub-en{opacity:1}

/* Learning Space v26: functional layout, solid surfaces, no image fade overlays. */
:root{--space-ink:#171717;--space-blue:#005bd6;--space-paper:#f2f5f8;--space-line:#dbe2eb;}html[data-theme=dark]{--space-ink:#f0f4fa;--space-blue:#87bdff;--space-paper:#121a25;--space-line:#2d3848;}
.learning-space{max-width:1220px;margin:0 auto;padding:0 36px 130px;color:var(--space-ink)}.learning-space h1,.learning-space h2,.learning-space h3{font-family:var(--font-sans);font-weight:650;letter-spacing:-.045em;text-shadow:none}.space-kicker{font-size:11px;font-weight:650;letter-spacing:.12em;color:var(--muted)}.space-intro{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:48px;padding:60px 0 58px}.space-intro h1{font-size:clamp(48px,5.2vw,70px);line-height:1.1;margin:22px 0}.space-intro-copy>p{font-size:19px;line-height:1.75;color:var(--fg-2)}.space-intro-links{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin:28px 0}.space-primary,.space-secondary{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:46px;border:0;border-radius:12px;padding:13px 20px;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .2s,background .2s;}.space-primary{background:#005bd6;color:white}.space-primary:hover{background:#004cb4;transform:translateY(-2px)}.space-secondary{color:var(--space-ink);background:var(--space-paper);border:1px solid var(--space-line)}.space-text-link{font-size:14px;color:var(--space-blue)}.space-date{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted);padding-top:12px}.space-art{height:350px;position:relative;background:#edf1f5;border-radius:28px 28px 88px 28px;overflow:hidden;}.space-art img{width:100%;height:100%;object-fit:cover;object-position:56% 60%}.art-caption{position:absolute;bottom:24px;left:24px;font-size:9px;letter-spacing:.16em;color:#45556b;font-weight:650;background:#edf1f5;padding:8px 10px;border-radius:5px}.space-journal{background:var(--space-paper);border:1px solid var(--space-line);border-radius:24px;padding:34px 38px;position:relative}.journal-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.journal-top h2{font-size:30px;line-height:1.2;margin:12px 0 25px}.journal-sync{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:12px;color:var(--muted)}.journal-sync button{min-height:32px;background:transparent;border:0;color:var(--space-blue);padding:5px 0;text-align:right;cursor:pointer}.journal-sync [data-state=error],.journal-sync [data-state=conflict]{color:#af3224}.journal-metrics{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:24px;border-bottom:1px solid var(--space-line);padding:0 0 26px}.journal-metrics>div{display:flex;flex-direction:column;gap:10px;border-right:1px solid var(--space-line)}.journal-metrics>div:last-child{border:0}.journal-metrics>div>span{font-size:13px}.journal-metrics strong{font-size:42px;font-weight:500;letter-spacing:-.045em;line-height:1.2}.journal-metrics strong b{font-weight:500}.journal-metrics small{font-size:11px;color:var(--muted);letter-spacing:0;font-weight:400}.journal-metrics strong small{font-size:15px}.journal-checkin button{width:fit-content}.journal-review{border-bottom:1px solid var(--space-line);padding:18px 0}.journal-review summary{display:flex;justify-content:space-between;align-items:center;min-height:36px;font-size:14px;cursor:pointer;list-style:none}.journal-review summary::-webkit-details-marker{display:none}.journal-review label{font-size:13px;display:block;margin:12px 0}.journal-review textarea{background:var(--surface);color:var(--fg);border:1px solid var(--space-line);border-radius:10px;resize:vertical;width:100%;padding:14px;font:inherit;font-size:14px;}.journal-review button{margin-top:10px}.journal-history-head{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);margin:20px 0 8px}.journal-history{display:grid;grid-template-columns:repeat(14,1fr);gap:5px}.journal-history>.space-empty{grid-column:1/-1}.history-day{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;padding:6px 2px;border:0;border-radius:8px;background:transparent;color:var(--fg-2);min-height:76px;cursor:pointer;font-size:11px}.history-day i{display:block;width:13px;background:#a8bedc;border-radius:4px}.history-day.checked i{background:#005bd6}.history-day:hover,.history-day:focus-visible{background:var(--surface)}.history-detail{font-size:12px;color:var(--muted);white-space:pre-line;margin-top:12px;line-height:1.7}.space-section-head{margin-bottom:28px}.space-section-head h2{font-size:36px;line-height:1.22;margin:12px 0}.space-section-head p{color:var(--muted);font-size:16px;line-height:1.7}.space-actions,.space-flex,.space-courses{padding-top:76px}.v26-home .tp-head,.v26-home .tp-nav,.v26-home .tp-stats,.v26-home .tp-bottom{display:none}.v26-home .task-panel{padding:0;border:0;background:transparent;box-shadow:none}.v26-home .tp-main{gap:22px;grid-template-columns:.9fr 1.1fr}.v26-home .tp-focus,.v26-home .tp-today{border:1px solid var(--space-line);background:var(--surface);border-radius:22px;padding:30px}.v26-home .tp-focus{background:#171717;color:#f3f6fb}.v26-home .tp-focus h2,.v26-home .tp-focus .tp-clock strong{color:#f3f6fb}.v26-home .tp-focus .tp-step,.v26-home .tp-focus .tp-focus-top,.v26-home .tp-focus .tp-clock span,.v26-home .tp-focus .tp-note{color:#b5b5b5}.v26-home .tp-focus .tp-clock{background:#242424}.v26-home .tp-focus .tp-clock strong{font-size:68px}.v26-home .tp-focus .tp-focus-bottom button,.v26-home .tp-focus .tp-focus-buttons button:nth-child(2){color:#e5e5e5;border-color:#737373}.v26-home .tp-focus .tp-focus-buttons button:first-child{background:#f5f5f5;color:#171717}.v26-home .tp-clock{padding:20px;margin:25px 0;border-radius:18px}.v26-home .tp-title{font-size:28px}.v26-home .tp-subtitle{font-size:12px;line-height:1.7}.v26-home .tp-footer{font-size:11px;text-align:left;padding:16px 0;color:var(--muted)}.v26-home .tp-add[open],.v26-home .tp-edit[open]{padding-top:16px}.v26-home .tp-add form input,.v26-home .tp-edit input,.v26-home .tp-add form select{min-height:44px}.v26-home .tp-focus-running,.v26-home .tp-clock{animation:none}.flex-layout{display:grid;grid-template-columns:320px 1fr;gap:45px;background:var(--space-paper);border-radius:24px;padding:36px;border:1px solid var(--space-line)}.flex-layout form{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;align-content:start}.flex-layout label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted)}.flex-layout input,.flex-layout select{width:100%;padding:10px;min-height:46px;border:1px solid var(--space-line);border-radius:10px;background:var(--surface);color:var(--fg);font-size:15px;color-scheme:light dark}.flex-layout form button,.flex-layout form p{grid-column:1/-1}.flex-layout form p{font-size:11px;color:var(--muted);line-height:1.8;margin:0}.flex-timeline{min-height:190px;max-height:510px;overflow:auto}.flex-timeline ol{list-style:none;padding:0;margin:0}.flex-timeline li{display:grid;grid-template-columns:85px 1fr;gap:15px;padding:15px 0;border-bottom:1px solid var(--space-line)}.flex-timeline time{font-size:13px;color:var(--space-blue);line-height:1.8;font-variant-numeric:tabular-nums}.flex-timeline time span{color:var(--muted)}.flex-timeline li>div{display:flex;flex-direction:column;gap:6px;font-size:14px}.flex-timeline small{font-size:11px;color:var(--muted)}.flex-timeline .timeline-break{font-size:12px;color:var(--muted)}.space-empty{font-size:13px;line-height:1.8;color:var(--muted);padding:14px 0}.space-warning{font-size:12px;color:#9c482b;line-height:1.8;margin-top:15px}.space-course-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.space-course-grid>a{display:block;overflow:hidden;border-radius:16px;border:1px solid var(--space-line);background:var(--surface);color:var(--fg);transition:transform .25s;text-decoration:none}.space-course-grid>a:hover{transform:translateY(-5px)}.space-course-grid img{width:100%;height:165px;object-fit:cover;display:block}.space-course-grid span{display:block;margin:22px 22px 13px;font-size:11px;color:var(--muted)}.space-course-grid h3{font-size:20px;margin:0 22px 18px;line-height:1.4;letter-spacing:-.025em}.space-course-grid p{font-size:11px;color:var(--muted);margin:0 22px 22px;display:flex;justify-content:space-between}.space-course-grid b{font-size:16px;color:var(--space-blue)}.space-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:45px;padding-top:30px;border-top:1px solid var(--space-line)}.space-tools a{display:block;color:var(--fg);text-decoration:none}.space-tools span{font-size:9px;letter-spacing:.12em;color:var(--muted)}.space-tools h3{font-size:18px;margin:12px 0;display:flex;justify-content:space-between}.space-tools b{font-weight:400;color:var(--space-blue)}.space-tools p{font-size:11px;color:var(--muted)}.voice-companion{position:fixed;z-index:45;bottom:22px;right:22px;display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--space-line);box-shadow:0 8px 30px #10244016;border-radius:18px;max-width:calc(100vw - 30px)}.voice-dot{width:8px;height:8px;background:#8dadd7;border-radius:50%;flex-shrink:0}.voice-companion>div:first-of-type{display:flex;flex-direction:column;gap:4px}.voice-companion strong{font-size:12px;color:var(--space-ink)}.voice-companion small{font-size:10px;color:var(--muted)}.voice-companion button{background:var(--space-paper);border:0;border-radius:9px;min-height:40px;padding:10px 12px;color:var(--space-blue);font-size:12px;cursor:pointer}.voice-companion button.is-joined{background:#e8f2e9;color:#26613e}.voice-companion a{display:grid;place-items:center;min-height:40px;min-width:24px;color:var(--muted)}.voice-companion [hidden]{display:none}.v26-home .site-top{bottom:110px}.v26-home .site-nav{box-shadow:none;border-bottom:1px solid var(--space-line)}.v26-home [hidden]{display:none}.learning-space button:disabled{opacity:.55;cursor:default}.learning-space :focus-visible,.voice-companion :focus-visible{outline:2px solid var(--space-blue);outline-offset:4px}.space-courses,.space-tools{content-visibility:auto;contain-intrinsic-size:auto 350px}html[data-theme=dark] .space-warning{color:#efb693}html[data-theme=dark] .journal-sync [data-state=error],html[data-theme=dark] .journal-sync [data-state=conflict]{color:#ffaca0}
@media(max-width:1000px){.space-intro{gap:30px}.space-art{height:320px}.space-course-grid{grid-template-columns:repeat(2,1fr)}.space-course-grid img{height:190px}.nav-menu{gap:16px}.journal-metrics{gap:15px}.flex-layout{gap:25px;grid-template-columns:280px 1fr}}
@media(max-width:820px){.learning-space{padding:0 24px 125px}.space-intro{grid-template-columns:1fr;gap:25px;padding:40px 0}.space-intro h1{font-size:50px}.space-intro-copy>p{font-size:17px}.space-art{height:240px;border-radius:22px 22px 60px 22px}.space-art img{object-position:50% 58%}.space-date{flex-direction:row;flex-wrap:wrap;gap:16px}.journal-top h2{font-size:27px}.space-journal{padding:27px 24px}.journal-metrics{grid-template-columns:1fr 1fr}.journal-metrics>div:nth-child(2){border:0}.journal-checkin{grid-column:1/-1;flex-direction:row!important;align-items:center;flex-wrap:wrap;border-top:1px solid var(--space-line)!important;padding-top:18px}.journal-checkin small{flex-basis:100%}.v26-home .tp-main{grid-template-columns:1fr}.flex-layout{grid-template-columns:1fr;padding:26px}.flex-layout form{grid-template-columns:repeat(2,1fr)}.space-actions,.space-flex,.space-courses{padding-top:50px}.space-section-head h2{font-size:30px}.space-tools{grid-template-columns:repeat(2,1fr)}.voice-companion{bottom:12px;right:12px;gap:9px;padding:10px 12px}.voice-companion button{min-height:44px}.voice-companion small{max-width:120px;line-height:1.4}.journal-sync button{min-height:44px}.history-day{min-height:76px}.journal-history{gap:1px}}
@media(max-width:480px){.learning-space{padding:0 18px 110px}.space-intro h1{font-size:46px}.space-intro-links{gap:15px}.space-intro-links .space-primary{padding:13px 17px}.space-text-link{font-size:12px}.space-journal{padding:24px 18px;border-radius:20px}.journal-sync{max-width:140px;text-align:right}.journal-top{gap:12px}.journal-top h2{font-size:25px}.journal-metrics strong{font-size:36px}.journal-metrics>div{gap:8px}.journal-history{grid-template-columns:repeat(7,1fr)}.history-day{min-height:68px}.journal-checkin button{padding:12px 17px}.v26-home .tp-focus,.v26-home .tp-today{padding:23px}.v26-home .tp-title{font-size:25px}.space-section-head h2{font-size:28px}.space-course-grid{gap:12px}.space-course-grid img{height:130px}.space-course-grid span{margin:15px 15px 10px;font-size:10px}.space-course-grid h3{margin:0 15px 15px;font-size:17px}.space-course-grid p{margin:0 15px 18px;font-size:10px}.voice-companion{left:12px;right:12px;max-width:none;justify-content:space-between}.voice-companion small{max-width:112px}.voice-companion [data-voice-mute]{font-size:10px;padding:8px}.voice-companion strong{font-size:11px}.voice-companion>div:first-of-type{min-width:0}.journal-history-head{font-size:10px}.history-detail{font-size:11px}}
@media(prefers-reduced-motion:reduce){.space-primary,.space-course-grid>a{transition:none}}

@media(min-width:821px){.space-intro{padding:40px 0;gap:48px}.space-intro h1{font-size:60px;margin:18px 0;line-height:1.08}.space-intro-copy>p{font-size:17px}.space-art{height:290px}.space-intro-links{margin:22px 0}.space-date{padding-top:0}.space-intro-copy>p{margin:0}}

/* On phones, daily records take priority over decorative hero art. */
@media(max-width:600px){.space-art{display:none}.space-intro{padding:30px 0}.space-intro h1{font-size:42px}.space-intro-copy>p{font-size:16px}.space-intro-links{margin:20px 0}.space-date{font-size:11px}}
.voice-companion [data-voice-audio]{display:none}

:root{--subject-math:#315a91;--subject-english:#674a9c;--subject-major:#9a4d0b;--subject-politics:#9d4846}html[data-theme=dark]{--subject-math:#94b6eb;--subject-english:#c4b2ef;--subject-major:#e8ae74;--subject-politics:#efb0a5}html[data-page=math]{--subject:var(--subject-math)}html[data-page=english]{--subject:var(--subject-english)}html[data-page=major]{--subject:var(--subject-major)}html[data-page=politics]{--subject:var(--subject-politics)}.page-hero h1,.unit-title{color:var(--subject,var(--fg))}

/* Single canonical palette after legacy layout rules. */
:root,html[data-theme="light"]{
 --bg:#faf9f6;--bg-2:#f1f0eb;--surface:#ffffff;--surface-2:#eeede7;--surface-3:#e4e3dc;
 --fg:#171717;--fg-2:#383838;--muted:#636363;--muted-2:#707070;
 --accent:#176b5b;--accent-hover:#115244;--accent-press:#176b5b;--accent-ink:#ffffff;
 --accent-soft:#e0eee5;--brand:#176b5b;--brand-ink:#ffffff;--ok:#297565;--warn:#945029;--danger:#b74b40;
 --ln-hair:#dedede;--ln-strong:#858585;--nav-bg:rgba(255,255,255,.96);
 --black:var(--fg);--black-2:var(--fg-2);--paper:var(--fg);--paper-2:var(--surface);--yellow:var(--accent);--yellow-deep:var(--accent-press);--red:var(--danger);--green:var(--ok);--line-d:var(--ln-hair);
 --font-sans:"Inter","Noto Sans SC VF","PingFang SC","Microsoft YaHei",sans-serif;
 --font-display:var(--font-sans);
 --font-mono:"Inter",ui-monospace,monospace;--font-body:var(--font-sans);
 --container:1160px;--container-wide:1280px;--max-width:1160px;--text-max:760px;--text-width:760px;--gutter:28px;
 --fs-body:17px;--fs-sm:15px;--fs-xs:13px;--fs-eyebrow:12px;--fs-hero:clamp(46px,5.6vw,76px);--fs-h1:clamp(34px,4.2vw,54px);--fs-h2:clamp(26px,3vw,38px);--fs-h3:23px;--fs-h4:19px;
 --r-sm:10px;--r-md:16px;--r-lg:24px;--r-xl:28px;--r-pill:999px;--nav-h:76px;--section-y:76px;
 --lh-body:1.7;--lh-title:1.3;--lh-display:1.2;--ls-display:-.025em;--ls-title:-.02em;
 --shadow-raised:0 12px 32px -20px rgba(23,46,64,.32);--shadow-hover:0 16px 32px -22px rgba(23,46,64,.35);--shadow-panel:none;
 color-scheme:light;
}
html[data-theme="dark"]{
 --bg:#000000;--bg-2:#0c0c0c;--surface:#171717;--surface-2:#242424;--surface-3:#303030;
 --fg:#f5f5f5;--fg-2:#d5d5d5;--muted:#b5b5b5;--muted-2:#a3a3a3;--ln-hair:#3d3d3d;--ln-strong:#737373;
 --accent:#8cd8b6;--accent-hover:#b0e7cd;--accent-press:#8cd8b6;--accent-ink:#08281c;--accent-soft:#142a20;--brand:#8cd8b6;--nav-bg:rgba(0,0,0,.96);
 --ok:#87c5ae;--warn:#edb791;--danger:#f0a499;--shadow-raised:0 18px 30px -22px #000;--shadow-hover:0 20px 40px -22px #000;
 color-scheme:dark;
--brand-ink:#08281c;}

/* Audit 2026-10-24: shared brand, current location, no-script notice. */
.site-nav .brand-copy{font-family:var(--font-sans);letter-spacing:0}.nav-item>a.active:after{opacity:1;transform:scaleX(1)}.mega-list a[aria-current=page],.mobile-menu a[aria-current=page]{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.no-script-notice{margin:96px auto 0;padding:16px 24px;max-width:1000px;color:var(--fg);background:var(--surface);border:1px solid var(--ln-strong)}


/* Source: css/usability.css */
/* Cascade map: shared controls; study-workspace legacy; planner/calendar; responsive; reduced motion.
   .v26-home is still the active workspace.html shell, not unused homepage code. */
/* Shared semantic tokens and click-first study controls; neutral palette 2026-10-12. */
.nav-actions .nav-icon-btn{width:44px;height:44px;min-width:44px;min-height:44px}
.nav-actions .auth-trigger{min-width:44px;min-height:44px}
@media(max-width:380px){.nav-actions{gap:8px}.nav-inner{padding-inline:14px}.nav-actions .auth-float{font-size:0;min-width:50px;padding-inline:12px}.nav-actions .auth-float:after{content:"登录";font-size:13px}}
:root{--space-ink:var(--fg);--space-paper:var(--surface);--space-blue:var(--accent);--space-line:var(--ln-hair);--ln:var(--ln-hair)}
body{font-family:var(--font-sans);color:var(--fg);background:var(--bg);line-height:1.65}button,select,input,textarea{font:inherit}button,summary{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:active{transform:none}a,button{touch-action:manipulation}input[hidden]{display:none!important}
.site-nav,.nav-inner{height:64px;min-height:64px}.nav-item>a{padding:22px 0;font-size:13px}.nav-mega,.mobile-menu{top:64px}.nav-search-btn,.ae-theme-toggle,.nav-burger{min-width:44px;min-height:44px}.nav-inner{max-width:1240px}.nav-logo .site-logo-icon{width:32px;height:32px}.nav-menu{gap:24px}.site-footer{padding-bottom:120px}.page-hero{min-height:320px;padding-top:70px;padding-bottom:60px}.page-hero h1{font-size:clamp(32px,4vw,52px)}.page-art img{opacity:.45}.page-localnav{top:64px}.nr-toolbar button{min-height:44px}.nr-toolbar{max-width:calc(100vw - 20px)}
/* Active study workspace */
.v26-home .learning-space{max-width:1240px;padding:0 32px 130px}.v26-home .space-intro{grid-template-columns:1fr 1fr;gap:48px;padding:40px 0 32px;align-items:center}.v26-home .space-intro h1{font-size:clamp(36px,4vw,52px);line-height:1.22;letter-spacing:-.04em;margin:12px 0 16px}.v26-home .space-intro-copy>p{font-size:17px;line-height:1.8;max-width:34em}.v26-home .space-kicker{font-size:12px;letter-spacing:.03em;color:var(--muted)}.v26-home .space-art{height:285px;border-radius:20px;overflow:hidden;box-shadow:none;background:#e7ebef}.v26-home .space-art img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s}.v26-home .space-art:before,.v26-home .space-art:after,.art-caption{display:none}.v26-home .space-intro-links{gap:12px;flex-wrap:wrap}.space-primary,.space-secondary{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:12px;font-size:15px}.space-primary{background:var(--accent-press);color:var(--accent-ink)}.v26-home .space-date{font-size:13px;margin-top:20px;color:var(--muted)}.space-text-link{min-height:44px;padding:9px}.space-section-nav{top:64px;gap:8px;background:var(--nav-bg);backdrop-filter:blur(16px);padding:8px 0;margin:0 0 28px;border-top:0;border-bottom:1px solid var(--ln-hair)}.space-section-nav a{font-size:14px;min-height:44px;padding:10px 16px}.learning-space>section[id]{scroll-margin-top:134px}.v26-home .space-section-head h2{font-size:28px;letter-spacing:-.03em}.v26-home .space-section-head{margin-bottom:18px}.v26-home .space-actions{padding-top:0}.v26-home .task-panel:empty{min-height:500px}.v26-home .tp-head,.v26-home .tp-nav,.v26-home .tp-bottom{display:none}.v26-home .tp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:16px;border:1px solid var(--ln-hair);background:var(--surface);border-radius:16px;margin-bottom:20px}.v26-home .tp-stats>div{padding:4px 16px;min-width:0}.v26-home .tp-stats strong{font-size:27px}.v26-home .tp-stats>div>span,.v26-home .tp-stats small{font-size:12px;color:var(--muted)}.v26-home .tp-stats button{min-height:44px;background:var(--surface-2);border:1px solid var(--ln-hair);color:var(--fg);border-radius:10px}
.v26-home .tp-main{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:20px}.v26-home .tp-focus{position:relative;top:auto;border-radius:20px;background:#171717;box-shadow:none;padding:28px;color:#fff}.v26-home .tp-focus:before{display:none}.v26-home .tp-focus .tp-title{color:#fff;font-size:23px;margin-top:18px}.v26-home .tp-focus p{color:#d5d5d5;line-height:1.8}.v26-home .tp-focus-top small{color:#d5d5d5}.v26-home .tp-clock{width:168px;height:168px;margin:20px auto}.v26-home .tp-focus-buttons{gap:10px;flex-wrap:wrap}.v26-home .tp-focus-buttons button{min-height:48px;border-radius:12px;font-size:14px;flex:1;white-space:nowrap}.v26-home .tp-focus-bottom button{min-height:44px;font-size:13px;color:#d5d5d5;padding:8px}.v26-home .tp-today{border-radius:20px;box-shadow:none;padding:25px;min-width:0}.v26-home .tp-task{grid-template-columns:44px minmax(0,1fr) 44px 44px;gap:8px;padding:10px 0}.tp-check{width:44px;min-height:44px;display:grid;place-items:center}.tp-check input{width:22px;height:22px}.tp-pick{min-height:44px;text-align:left;line-height:1.65;overflow-wrap:anywhere}.tp-defer,.tp-task-menu summary{min-width:44px;min-height:44px}.tp-task-menu>div{top:44px;min-width:180px}.tp-task-menu button{font-size:14px;min-height:44px}.tp-add summary,.tp-edit summary,.tp-deferred summary{min-height:48px;padding:12px 0;font-size:14px}.tp-add form>div{flex-wrap:wrap}.tp-add input,.tp-add select,.tp-edit input,.tp-edit select{min-height:48px;border:1px solid var(--ln-strong);border-radius:10px;padding:8px 12px;background:var(--surface);color:var(--fg)}.tp-add select#tpDuration{width:126px}.tp-edit select{width:100%}.tp-add button,.tp-edit button{min-height:48px;border-radius:10px}.tp-quick-add{margin:10px 0 15px;display:flex;gap:8px;flex-wrap:wrap}.tp-quick-add button{min-height:44px;border:1px solid var(--ln-hair);background:var(--surface-2);color:var(--fg);padding:8px 12px;border-radius:10px;font-size:13px}.tp-quick-add button:hover{background:var(--accent-soft);border-color:var(--accent)}.tp-footer{font-size:12px;padding-top:16px}.tp-undo span{white-space:normal}.tp-undo button{min-height:44px}.study-focus-bar{bottom:22px}.study-focus-dialog{background:var(--surface);border-color:var(--ln-strong)}
.study-planner{padding-top:48px}.planner-heading h2{font-size:28px;line-height:1.4}.planner-heading p{font-size:14px}.planner-toolbar button,.planner-filters button{min-width:44px;min-height:44px}.planner-filters{flex-wrap:wrap}.planner-workspace{border-radius:20px;border:1px solid var(--ln-hair);box-shadow:none;background:var(--surface)}.planner-next-deadline{background:var(--accent-soft);border:1px solid var(--ln-hair);color:var(--fg)}.agenda-item{grid-template-columns:64px minmax(0,1fr) 76px}.agenda-item>button{min-height:44px;min-width:70px;font-size:12px;border-radius:10px}.planner-cell{min-height:80px}.calendar-preview{font-size:10px}.agenda-item summary{min-height:44px}.agenda-footer button{min-height:48px;padding:10px 16px}.sprint-notes{font-size:14px}.sprint-notes summary{min-height:48px}.sprint-notes details p,.sprint-notes li{font-size:14px;line-height:1.8}.v26-home .space-journal{margin-top:48px;border-radius:20px;box-shadow:none;border:1px solid var(--ln-hair);padding:28px}.v26-home .journal-top h2{font-size:28px}.journal-sync button{min-height:44px;font-size:13px}.journal-metrics>div>small{font-size:12px}.journal-review summary{min-height:48px}.journal-review label{font-size:14px}.journal-review textarea{font-size:16px;border-color:var(--ln-strong)}.journal-history{overflow-x:auto;display:flex;gap:6px;min-width:0;padding:4px}.history-day{flex:0 0 45px;border-radius:8px;min-height:76px}.history-detail{white-space:pre-line;font-size:14px}
/* Vocabulary records */
.memo-records{padding-top:28px;margin-top:28px;border-top:1px solid var(--ln-hair)}.memo-head{gap:16px;flex-wrap:wrap}.memo-head h3{font-size:24px}.memo-head button,.memo-controls button,.memo-search-row>button,.memo-pagination button{min-height:44px;padding:9px 14px;border-radius:10px;border:1px solid var(--ln-strong);background:var(--surface);color:var(--fg);font-size:14px}.memo-head>div:last-child{display:flex;gap:8px}.memo-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.memo-controls>label{display:flex;align-items:center;gap:12px;font-size:14px}.memo-controls .choice-date-trigger{background:var(--surface-2);font-variant-numeric:tabular-nums}.memo-history{display:flex;gap:8px;overflow:auto;padding:8px 0 16px}.memo-history button{flex:0 0 auto;min-height:44px;border-radius:10px;font-size:13px;padding:8px 14px}.memo-metrics{border:1px solid var(--ln-hair);border-radius:14px;background:var(--surface-2);padding:18px}.memo-metrics strong{font-size:21px}.memo-metrics span,.memo-metrics small{font-size:12px;color:var(--muted)}#memoStatus{font-size:13px;color:var(--muted)}#memoDetails>summary,.memo-help>summary{min-height:48px;padding:12px 0;font-size:15px}.memo-filter-section{display:flex;align-items:flex-start;gap:16px;margin:12px 0}.memo-filter-section>span{flex:0 0 65px;font-size:13px;padding-top:10px;color:var(--muted)}.memo-chips{display:flex;flex-wrap:wrap;gap:8px}.memo-chips button{border:1px solid var(--ln-strong);background:var(--surface);color:var(--fg);border-radius:10px;min-height:44px;padding:8px 12px;font-size:13px}.memo-chips button[aria-pressed=true],.memo-history button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.memo-search-row{display:flex;align-items:end;gap:12px;margin-top:18px}.memo-search-row label{flex:1;font-size:13px;color:var(--muted)}.memo-search input{min-height:48px;font-size:16px;width:100%;border-radius:10px;border:1px solid var(--ln-strong);background:var(--surface);color:var(--fg);padding:10px 12px;margin-top:7px}#memoWordCount{font-size:13px;color:var(--muted);margin:18px 0 10px}.memo-table{max-height:none;overflow:auto;border-radius:12px;border:1px solid var(--ln-hair)}.memo-table table{width:100%;font-size:14px;border-collapse:collapse}.memo-table th{background:var(--surface-2);font-weight:500;color:var(--muted)}.memo-table td,.memo-table th{padding:12px;text-align:left;border-bottom:1px solid var(--ln-hair)}.memo-table td:first-child{font-weight:600;color:var(--fg)}.memo-table tr[data-feedback=FORGET] td:nth-child(3){color:#ac3434}.memo-table tr[data-feedback=VAGUE] td:nth-child(3){color:#8b530f}html[data-theme=dark] .memo-table tr[data-feedback=FORGET] td:nth-child(3){color:#ffabab}html[data-theme=dark] .memo-table tr[data-feedback=VAGUE] td:nth-child(3){color:#f7ca83}.memo-pagination{display:flex;gap:16px;align-items:center;justify-content:center;margin:18px 0}.memo-pagination span{font-size:13px}.memo-help{border-top:1px solid var(--ln-hair);font-size:13px;color:var(--muted)}.memo-help p{line-height:1.8}.choice-empty{padding:20px;background:var(--surface-2);border-radius:12px;color:var(--muted);font-size:14px}
/* Accessible date chooser */
.choice-date-trigger{min-height:44px;border:1px solid var(--ln-strong);background:var(--surface);color:var(--fg);border-radius:10px;padding:8px 14px;font-size:14px}.choice-calendar{max-width:calc(100vw - 12px);position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid var(--ln-strong);border-radius:20px;background:var(--surface);color:var(--fg);padding:20px;box-shadow:0 24px 80px #0004}.choice-calendar::backdrop{background:#000000b3;backdrop-filter:blur(4px)}.choice-calendar header{display:flex;align-items:center;justify-content:space-between;gap:12px}.choice-calendar h2{font-size:20px;margin:0}.choice-calendar button{min-width:44px;min-height:44px;border:1px solid var(--ln-hair);border-radius:10px;background:var(--surface-2);color:var(--fg);font-size:16px}.choice-calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:20px 0}.choice-calendar-toolbar label{font-size:12px;color:var(--muted)}.choice-calendar select{display:block;min-height:44px;border:1px solid var(--ln-strong);border-radius:8px;background:var(--surface);color:var(--fg);font-size:14px;max-width:110px}.choice-calendar-week,.choice-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.choice-calendar-week{font-size:12px;text-align:center;color:var(--muted);margin-bottom:8px}.choice-calendar-days button{padding:2px;min-width:0;font-variant-numeric:tabular-nums}.choice-calendar-days button[aria-pressed=true]{background:var(--accent-press);color:var(--accent-ink)}.choice-calendar-days button[aria-current=date]{border:2px solid var(--accent)}.choice-calendar footer{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.choice-calendar footer button{font-size:14px;padding:8px 16px}
/* Workspace course links */
.v26-home .space-courses,.v26-home .space-tools{content-visibility:visible}.space-course-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.space-course-grid>a{border:1px solid var(--ln-hair);border-radius:16px;background:var(--surface);overflow:hidden}.space-course-grid img{height:155px;object-fit:contain;padding:30px;background:var(--surface-2);box-sizing:border-box}.space-course-grid h3{font-size:20px;line-height:1.6}.space-course-grid span,.space-course-grid p{font-size:13px}.space-tools{gap:20px}.space-tools span{font-size:11px}.space-tools p{font-size:13px}.voice-companion{background:var(--surface);border-color:var(--ln-strong);padding:8px 12px;gap:8px;bottom:20px}.voice-companion small{display:none}.voice-companion button{min-width:44px;min-height:44px;font-size:13px}.voice-companion a{min-width:44px;min-height:44px}.voice-companion strong{font-size:13px}.v26-home .site-top{bottom:95px}html[data-theme=dark] .space-course-grid img{filter:brightness(1.25)}
/* Responsive overrides */
@media(max-width:1000px){.nav-menu{gap:16px}.v26-home .tp-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.space-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.v26-home .learning-space{padding:0 20px 150px}.v26-home .space-intro{grid-template-columns:1fr;gap:20px;padding-top:25px}.v26-home .space-intro h1{font-size:36px}.v26-home .space-intro-copy>p{font-size:15px}.v26-home .space-art{display:block;height:175px}.space-section-nav{top:64px;gap:4px}.space-section-nav a{font-size:13px;padding:10px 12px}.v26-home .tp-main{grid-template-columns:1fr}.v26-home .tp-focus{padding:24px}.v26-home .tp-today{padding:20px}.v26-home .tp-stats>div{padding:2px 8px;border:0}.v26-home .space-journal{padding:22px 18px}.journal-metrics strong{font-size:32px}.journal-top{gap:18px;flex-wrap:wrap}.journal-sync{align-items:flex-start}.planner-workspace{grid-template-columns:1fr}.planner-heading{gap:18px}.planner-heading h2{font-size:25px}.calendar-preview{display:none}.planner-cell{min-height:58px}.agenda-item{grid-template-columns:52px minmax(0,1fr) 70px;gap:8px}.agenda-item summary b{font-size:13px}.agenda-item summary small{font-size:11px}.sprint-notes{padding:18px}.study-focus-bar{bottom:88px;left:12px;width:calc(100vw - 24px)}.memo-filter-section{display:block}.memo-filter-section>span{display:block;margin-bottom:6px;padding-top:0}.memo-metrics{grid-template-columns:1fr;gap:12px}.memo-metrics>div{display:flex;justify-content:space-between;gap:12px}.memo-search-row{align-items:stretch;flex-direction:column}.memo-search-row>button{align-self:flex-start}.memo-table{overflow:visible;border:0}.memo-table table,.memo-table tbody{display:block;min-width:0}.memo-table thead{display:none}.memo-table tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ln-hair);border-radius:12px;padding:12px;margin:10px 0;gap:6px;background:var(--surface)}.memo-table td{border:0;display:block;padding:3px 0;font-size:13px;overflow-wrap:anywhere;white-space:normal}.memo-table td:first-child{grid-column:1/-1;font-size:20px;padding-bottom:8px}.memo-table td:not(:first-child):before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;margin-bottom:2px}.space-tools{grid-template-columns:1fr 1fr}.voice-companion{bottom:12px;right:12px;left:auto;max-width:calc(100vw - 24px)}.v26-home .site-top{bottom:142px}.page-hero{padding:45px 24px 110px;min-height:330px}}
@media(max-width:420px){.v26-home .learning-space{padding-left:14px;padding-right:14px}.v26-home .tp-task{grid-template-columns:44px minmax(0,1fr) 44px 44px;gap:4px}.tp-check,.tp-defer,.tp-task-menu summary{min-width:44px;width:44px;min-height:44px}.space-course-grid{gap:10px}.space-course-grid span,.space-course-grid h3,.space-course-grid p{margin-left:14px;margin-right:14px}.space-course-grid h3{font-size:17px}.memo-chips button{padding:8px 10px}.choice-calendar{width:calc(100vw - 12px);padding:10px}.choice-calendar-days,.choice-calendar-week{gap:3px}.choice-calendar-days button{min-height:44px}}
/* Reduced motion */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:350px){.choice-calendar{padding:6px}.choice-calendar-days,.choice-calendar-week{gap:0}.v26-home .tp-today{padding:16px}.choice-calendar-toolbar{gap:4px}.choice-calendar select{max-width:88px}}

/* Theme audit: focus controls use theme surfaces, including light mode. */
.v26-home .tp-focus{background:var(--accent-soft);--fg:inherit;--fg-2:inherit;--muted:inherit;--accent:inherit;--surface:inherit;--ln-hair:inherit;--ln-strong:inherit;color:inherit;border:1px solid var(--ln-hair)}
.v26-home .tp-focus .tp-title,.v26-home .tp-focus p,.v26-home .tp-focus-top small,.v26-home .tp-focus-bottom button{color:var(--fg)}
.v26-home .tp-focus-buttons button:first-child{background:var(--accent-press);border-color:var(--accent-press);color:var(--accent-ink)}
.v26-home .tp-focus-buttons button:last-child{color:var(--fg);border-color:var(--ln-strong)}
.focus-running .tp-focus-top i{background:var(--ok)}


/* Source: css/home-v2.css */
@font-face{font-family:'Cabinet Grotesk';src:url("/css/fonts/cabinet-grotesk-variable.woff2") format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Study Serif';src:url("/css/fonts/study-serif-subset.ttf") format('truetype');font-weight:600;font-display:swap}
:is(.home-page,.resources-page){--font-sans:'Cabinet Grotesk','Noto Sans SC VF','Microsoft YaHei',sans-serif;--font-display:'Study Serif','Songti SC','SimSun',serif;font-family:var(--font-sans)}
:is(.home-page,.resources-page) .nav-inner{max-width:1440px;padding-inline:40px}
:is(.home-page,.resources-page) .nav-icon-btn,:is(.home-page,.resources-page) .auth-avatar{border-radius:8px}
:is(.home-page,.resources-page) :is(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:5px}
:is(.home-page,.resources-page) button{cursor:pointer}
:is(.home-page,.resources-page) a:active{opacity:.78}
.subject-math{color:var(--subject-math)}
.subject-english{color:var(--subject-english)}
.subject-major{color:var(--subject-major)}
.subject-politics{color:var(--subject-politics)}
@media(max-width:820px){:is(.home-page,.resources-page) .nav-inner{padding-inline:20px}}
.home-shell,.home-footer{width:min(1280px,calc(100% - 80px));margin-inline:auto}.home-shell{overflow:clip}.study-hero{text-align:center;padding:64px 0 24px}.home-date{font-size:13px;color:var(--muted);margin:0 0 28px}.study-hero h1{font:600 clamp(54px,7vw,102px)/1.22 var(--font-display);letter-spacing:-.04em;margin:0;max-width:1280px;text-wrap:balance}.inline-book{display:inline-block;width:1.1em;height:.62em;color:var(--accent);vertical-align:.05em;margin:0 .05em}.inline-book svg{width:100%;height:100%}.hero-description{font-size:16px;line-height:1.9;color:var(--fg-2);margin:28px auto 0;max-width:42em}.home-actions{display:flex;justify-content:center;gap:12px;margin-top:26px;flex-wrap:wrap}.home-actions a{min-height:48px;padding:12px 28px;display:inline-flex;align-items:center;border-radius:6px;text-decoration:none;font-size:15px;font-weight:600;transition:background .2s,color .2s;box-sizing:border-box}.home-primary{background:var(--accent-press);color:var(--accent-ink)}.home-primary:hover{background:var(--accent-hover);color:var(--accent-ink)}.home-secondary{background:var(--surface-2);color:var(--fg)}.home-secondary:hover{background:var(--surface-3);color:var(--fg)}.home-account{font-size:12px;color:var(--muted);min-height:22px;margin:18px 0 0;line-height:1.8}.hero-manuscript{max-width:1100px;margin:16px auto 0;transform-origin:50% 60%}.hero-manuscript img{display:block;width:100%;height:auto;max-height:340px;object-fit:contain}.hero-manuscript figcaption{font-size:12px;color:var(--muted);margin:4px 0 20px}html[data-theme=dark] .hero-manuscript img{filter:brightness(.8)}

.countdown-band{display:grid;grid-template-columns:1fr 1.3fr .7fr;gap:24px;align-items:center;padding:72px 24px 76px;border-bottom:1px solid var(--ln-hair)}.countdown-copy h2{font-size:38px;line-height:1.5;margin:0 0 18px}.countdown-copy p{font-size:15px;margin:0 0 8px;color:var(--fg-2)}.countdown-copy strong{font-family:'Cabinet Grotesk';color:var(--accent)}.countdown-copy [data-exam-label]{color:var(--muted);font-size:12px}.physics-stage{height:230px;position:relative;touch-action:pan-y;cursor:crosshair;color:var(--accent)}.physics-stage canvas{display:block;width:100%;height:100%}.physics-fallback{position:absolute;inset:0;display:grid;place-items:center;font:700 180px/1 'Cabinet Grotesk',sans-serif;pointer-events:none;font-variant-numeric:tabular-nums}.physics-stage[data-rendered=true] .physics-fallback{visibility:hidden}.physics-stage[data-static=true] canvas{visibility:hidden}.physics-stage[data-static=true] .physics-fallback{visibility:visible}.countdown-controls{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.countdown-controls button{min-height:44px;min-width:104px;border:1px solid var(--ln-strong);border-radius:6px;background:transparent;color:var(--fg);padding:8px 16px;font-size:13px}.countdown-controls button:hover{background:var(--accent-soft);border-color:var(--accent)}.countdown-controls button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.countdown-controls p{font-size:12px;color:var(--muted);line-height:1.8;max-width:16em;margin:4px 0 0}
.study-index{padding:128px 0 100px;display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:start}.index-heading h2{font-size:clamp(36px,4vw,52px);line-height:1.4;margin:0 0 24px}.index-heading p{font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:22px}.index-heading>a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);text-underline-offset:6px;font-size:14px}.index-entries{min-width:0}.index-entries>a{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;border-top:1px solid var(--ln-hair);color:var(--fg);text-decoration:none;background:var(--bg);transform-origin:50% 0}.index-entries>a:last-child{border-bottom:1px solid var(--ln-hair)}.index-entries h3{font-family:var(--font-sans);font-weight:600;font-size:26px;margin:0 0 9px}.index-entries p{font-size:13px;line-height:1.8;color:var(--muted);margin:0;max-width:26em}.entry-graphic{width:132px;flex:none;overflow:hidden}.entry-graphic img{width:100%;height:90px;object-fit:contain;transition:transform .6s}.index-entries>a:hover img{transform:scale(1.08)}.index-entries>a:hover h3{color:var(--accent)}
.home-tools{padding:30px 0 100px}.home-tools>h2{font-size:36px;line-height:1.5;margin:0 0 36px}.tool-links{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:16px}.tool-links>a{position:relative;overflow:hidden;min-height:306px;border-radius:8px;background:var(--bg-2);border:1px solid var(--ln-hair);padding:30px;text-decoration:none;color:var(--fg);transition:border-color .2s;box-sizing:border-box}.tool-links>a:hover{border-color:var(--accent)}.tool-links h3{font-family:var(--font-sans);font-size:25px;margin:0 0 16px}.tool-links p{font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 26px}.tool-links>a>span{font-size:14px;color:var(--accent);display:inline-flex;min-height:44px;align-items:center;text-decoration:underline;text-underline-offset:6px}.tool-library{grid-column:span 6}.tool-focus,.tool-chat{grid-column:span 3}.mini-books{display:flex;position:absolute;right:18px;bottom:-28px;transform:rotate(-12deg)}.mini-books i{font-style:normal;writing-mode:vertical-rl;width:54px;height:156px;background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent);padding:20px 16px;box-sizing:border-box;font-size:12px;transition:transform .5s}.mini-books i:nth-child(2){transform:translateY(-14px);color:var(--subject-major);border-color:var(--subject-major);background:var(--surface-2)}.mini-books i:nth-child(3){transform:translateY(-28px);color:var(--subject-math);border-color:var(--subject-math);background:var(--surface)}.tool-library:hover .mini-books i{transform:translateY(-34px)}.focus-dial{height:58px;width:58px;border:2px solid var(--subject-major);border-radius:50%;margin-bottom:30px;position:relative}.focus-dial:after{content:'';position:absolute;width:2px;height:20px;left:26px;top:7px;background:var(--subject-major);transform:rotate(32deg);transform-origin:bottom;transition:transform .6s}.tool-focus:hover .focus-dial:after{transform:rotate(80deg)}.voice-lines{height:58px;display:flex;align-items:center;gap:6px;margin-bottom:30px}.voice-lines i{width:5px;border-radius:3px;height:18px;background:var(--subject-english);transition:transform .5s}.voice-lines i:nth-child(2n){height:44px}.voice-lines i:nth-child(3n){height:30px}.tool-chat:hover .voice-lines i:nth-child(odd){transform:scaleY(1.6)}
.study-path{padding:48px 0 100px;border-top:1px solid var(--ln-hair)}.path-header{display:flex;align-items:center;justify-content:space-between;gap:24px}.path-header h2{font-size:36px;margin:0}.path-controls{display:flex;gap:14px;align-items:center}.path-controls button{min-width:44px;min-height:44px;border-radius:50%;background:var(--surface-2);border:1px solid var(--ln-hair);color:var(--fg);font-size:20px}.path-controls p{font-size:14px;color:var(--muted);margin:0}.path-sheet{max-width:800px;margin:44px auto 0;padding:36px 42px;background:var(--accent-soft);border-left:3px solid var(--accent)}.path-caption{font-size:13px;color:var(--accent)}.path-sheet h3{font-size:34px;line-height:1.5;margin:16px 0}.path-sheet p{font-size:15px;color:var(--fg-2);margin-bottom:20px}.path-sheet a{min-height:44px;display:inline-flex;align-items:center;color:var(--accent);font-size:14px;text-underline-offset:6px}.home-finale{text-align:center;padding:54px 0 100px}.home-finale h2{font-size:clamp(38px,5vw,60px);line-height:1.5;margin:0 0 28px}.home-finale a{min-height:48px;display:inline-flex;align-items:center;padding:12px 32px;background:var(--accent-press);color:var(--accent-ink);border-radius:6px;text-decoration:none;font-size:16px}.home-finale a:hover{background:var(--accent-hover);color:var(--accent-ink)}.home-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0 32px;border-top:1px solid var(--ln-hair)}.home-footer a{color:var(--fg-2);font-size:14px;text-decoration:none;display:inline-flex;min-height:44px;align-items:center}.home-footer nav{display:flex;gap:24px}.home-footer small{color:var(--muted);font-size:12px}.home-page .site-top{display:none}
@media(max-width:1000px){.study-hero h1{font-size:72px}.study-index{gap:50px}.tool-library{grid-column:span 12}.tool-focus,.tool-chat{grid-column:span 6}.tool-links>a{min-height:250px}.mini-books{right:50px}.countdown-band{padding-inline:0;gap:16px}}
@media(max-width:720px){.home-shell,.home-footer{width:calc(100% - 40px)}.study-hero{padding-top:36px}.home-date{margin-bottom:24px}.study-hero h1{font-size:clamp(32px,8vw,54px);line-height:1.45;letter-spacing:-.04em}.hero-description{font-size:14px;margin-top:22px}.home-actions a{font-size:14px;padding-inline:20px}.home-account{font-size:12px;max-width:25em;margin-inline:auto}.hero-manuscript{margin-top:24px;width:120%;margin-left:-10%}.hero-manuscript figcaption{font-size:11px}.countdown-band{grid-template-columns:1fr 1fr;padding:48px 0 44px;gap:12px}.countdown-copy h2{font-size:28px;margin-bottom:14px}.countdown-copy p{font-size:13px}.physics-stage{height:160px}.physics-fallback{font-size:126px}.countdown-controls{grid-column:1/-1;display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;margin-top:18px}.countdown-controls button{min-width:0;font-size:12px;padding:8px 10px}.countdown-controls p{font-size:11px;line-height:1.6;margin:0}.study-index{display:block;padding:64px 0 54px}.index-heading{margin-bottom:26px}.index-heading h2{font-size:34px}.index-heading p{font-size:14px}.index-entries>a{gap:18px;padding:22px 0}.index-entries h3{font-size:22px}.entry-graphic{width:90px}.entry-graphic img{height:70px}.index-entries p{font-size:12px}.home-tools{padding:16px 0 56px}.home-tools>h2{font-size:26px;margin-bottom:24px}.tool-links{gap:12px}.tool-links>a{padding:24px;min-height:270px}.tool-links h3{font-size:22px}.tool-links p{font-size:13px}.tool-focus,.tool-chat{grid-column:span 12;min-height:190px!important;padding-left:114px!important}.tool-focus .focus-dial,.tool-chat .voice-lines{position:absolute;left:26px;top:30px}.mini-books{right:14px;bottom:-38px;opacity:.8}.mini-books i{width:40px;padding-inline:10px}.tool-library p{max-width:15em}.study-path{padding:32px 0 50px}.path-header{gap:12px;flex-wrap:wrap}.path-header h2{font-size:28px}.path-sheet{padding:26px 22px;margin-top:26px}.path-sheet h3{font-size:28px}.path-sheet p{font-size:14px}.home-finale{padding:38px 0 60px}.home-finale h2{font-size:38px}.home-footer{flex-wrap:wrap;gap:12px}.home-footer nav{gap:18px}.home-footer small{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.hero-manuscript,.index-heading,.index-entries>a{transform:none!important}.entry-graphic img,.mini-books i,.focus-dial:after,.voice-lines i{transition:none;transform:none!important}}




/* Four original academic motifs. No shared ic-* badges or text-glyph fallback. */
.subject-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:12px 0;border-block:1px solid var(--ln-hair)}
.subject-strip>.subject-link{display:flex;align-items:center;justify-content:center;gap:18px;min-height:86px;padding:8px 12px;border-radius:6px;text-decoration:none;color:var(--fg-2);background:transparent}
.subject-strip .subject-art{display:block;flex:0 0 64px;width:64px;height:64px;color:var(--motif-ink);overflow:visible;transition:transform .3s cubic-bezier(.2,.65,.3,1)}
.subject-strip .subject-label{font:500 17px/1.5 var(--font-sans);letter-spacing:.04em;white-space:nowrap;color:inherit}
.subject-link[data-subject=math]{--motif-ink:var(--subject-math)}.subject-link[data-subject=english]{--motif-ink:var(--subject-english)}.subject-link[data-subject=major]{--motif-ink:var(--subject-major)}.subject-link[data-subject=politics]{--motif-ink:var(--subject-politics)}
.subject-art :is(path,circle,polygon){vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.subject-art :is(.motif-axis,.motif-line){fill:none;stroke:currentColor;stroke-width:1.6}
.subject-art .motif-guide{fill:none;stroke:currentColor;stroke-width:.7;opacity:.24}
.subject-art .motif-detail{fill:none;stroke:currentColor;stroke-width:1.05;opacity:.7}
.subject-art .motif-wash{fill:currentColor;fill-opacity:.1;stroke:none}
.subject-art .motif-paper{fill:var(--bg);stroke:currentColor;stroke-width:1.4}
.subject-art .motif-dot{fill:currentColor;stroke:none}
.subject-art .motif-gear{fill:currentColor;fill-opacity:.13;stroke:currentColor;stroke-width:1.5}
.subject-art .motif-gear-secondary{fill:var(--bg);stroke:currentColor;stroke-width:1.5}
.subject-art .motif-leaf-line{fill:none;stroke:currentColor;stroke-width:1.1;opacity:.65}
.subject-art .motif-leaf{fill:currentColor;fill-opacity:.35;stroke:none}
.subject-strip>.subject-link:hover{color:var(--fg);background:transparent}.subject-link:hover .subject-art{transform:translateY(-2px)}
.subject-strip>.subject-link:focus-visible{outline:2px solid var(--motif-ink);outline-offset:-2px}
@media(max-width:720px){.subject-strip{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 0;gap:6px 0}.subject-strip>.subject-link{justify-content:flex-start;gap:12px;min-height:72px;padding:8px 10px}.subject-strip .subject-art{width:52px;height:52px;flex-basis:52px}.subject-strip .subject-label{font-size:16px}}
@media(prefers-reduced-motion:reduce){.subject-strip .subject-art{transition:none}.subject-link:hover .subject-art{transform:none}}

