/* ==========================================================================
   西游记课堂页 · 主题色板 + 字体体系（课堂页 + 课程编辑器预览**共用**一份）
   --------------------------------------------------------------------------
   ⚠️ 本文件由 `python tools/gen_xy_themes.py` **自动生成**，不要手改。
      改配色请改 tools/xy_theme_palettes.py，再跑一次生成器。

   为什么是生成而不是手写：16 套 × 84 个变量 = 1344 行，手写漏一个变量
   就会串到别套主题上（比如漏了 --xy-sub-bg，下半屏还是上一套的底色）。
   现在「已认可的那 6 套」在 CURATED 里原样冻结，「新增的 10 套」只给
   几个旋钮由 expand() 展开 —— 结构天然一致，加主题只加一行数据。

   设计语言（老师给的深色参考图，逐像素取过色）：
     底   #340D0E（深酒红）→ #05070A（近黑），**是一层有方向的渐变光晕**，
          不是纯色 —— 纯色底永远显得平、显得土，这是'有设计感'的来源。
     块   #681312 酒红，高亮词/正确答案压这一块
     字   #CAA34B 古金，音标与强调字用它；其余全是白到灰的阶梯
     ⛔ 只用两个彩色（--xy-wine 做块、--xy-gold 做字），多一个色立刻乱。
   字体三分工：英文衬线（--f-serif）· 中文无衬线（--f-sans）·
              音标等宽（--f-mono）。

   用法：`<html data-xytheme="wine">`。没设属性时用最上面 `html{...}`
        的默认值（= wine），所以 JS 没跑起来页面也不会变成白板。

   ⛔ 新增主题：改 tools/xy_theme_palettes.py 的 NEW，跑生成器。
      下拉菜单的清单会自动跟着变（同源，不可能对不上）。
   ========================================================================== */

/* ============ 默认（酒红夜读）============ */
html{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 7% 0%,#3A1011 0%,#230C0E 26%,#0C0E12 62%,#05070A 100%);
  --phv-chip-bg:rgba(255,236,214,.07);
  --phv-chip-line:rgba(202,163,75,.18);
  --phv-ink:#EFE7E4;
  --phv-let-bg:rgba(202,163,75,.20);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(202,163,75,.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#B09C99;
  --phv-panel-bg:linear-gradient(180deg,rgba(255,236,214,.075),rgba(255,236,214,.03));
  --phv-panel-line:rgba(202,163,75,.22);
  --phv-pop-bg:rgba(20,12,15,.985);
  --phv-pop-line:rgba(202,163,75,.24);
  --phv-sym-bg:#FCF8F2;
  --phv-sym-fg:#2A1A18;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(255,236,214,.5);
  --wb-bg:rgba(255,236,214,.065);
  --wb-empty:#93856C;
  --wb-line:rgba(202,163,75,.20);
  --wb-mean:#D8CBB6;
  --wb-phon-bg:rgba(202,163,75,.18);
  --wb-phon-fg:#E5C98A;
  --wb-phon-lb:rgba(229,201,138,.72);
  --wb-phon-line:rgba(202,163,75,.34);
  --wb-phon-on-bg:rgba(229,201,138,.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#F5E5C0;
  --wb-phon-on-line:rgba(229,201,138,.52);
  --wb-phon-on-ring:rgba(229,201,138,.44);
  --wb-word:#FCF3E6;
  --wc-bg:#FDFBF8;
  --wc-chip-bg:rgba(202,163,75,0.14);
  --wc-chip-fg:#6A5A36;
  --wc-cn:#352F39;
  --wc-ink:#29171C;
  --wc-line:rgba(202,163,75,0.55);
  --wc-ph:#615333;
  --wc-sep:rgba(202,163,75,0.22);
  --wc-sub:#7C7C6D;
  --xy-accent:#CAA34B;
  --xy-bar:#140C0F;
  --xy-bar-line:#2A1518;
  --xy-btn:#241519;
  --xy-btn-hi:#2F1C20;
  --xy-btn-hi-line:#6B3A32;
  --xy-btn-line:#452725;
  --xy-card:rgba(28,17,20,.72);
  --xy-card-line:rgba(202,163,75,.20);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(202,163,75,.42);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#7C6B69;
  --xy-field:#1C1115;
  --xy-field-hi:#26161A;
  --xy-field-line:#39201F;
  --xy-gold:#CAA34B;
  --xy-mut:#B09C99;
  --xy-note-bg:rgba(58,40,16,.80);
  --xy-note-ct:#CAA34B;
  --xy-note-fg:#F2E4C6;
  --xy-note-line:rgba(202,163,75,.40);
  --xy-note-mute:#9E8A64;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#1B1416;
  --xy-opt-wrong-line:#5A403E;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(202,163,75,.34);
  --xy-page-bg:radial-gradient(132% 124% at 7% 0%,#3E1011 0%,#260C0E 22%,#0D0E13 58%,#05070A 100%);
  --xy-sh:0,0,0;
  --xy-stage:#05070A;
  --xy-sub-bg:linear-gradient(180deg,#170C0F 0%,#0A0D12 100%);
  --xy-sub-cn:#DFE7E0;
  --xy-sub-cn-dim:#9C9490;
  --xy-sub-en:#FFFFFF;
  --xy-sub-hl:#681312;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#EFE7E4;
  --xy-wine:#681312;
}

/* ============ 酒红夜读（默认）—— 深酒红渐到近黑 + 古金；就是参考图那套。半暗教室、晚自习 ============ */
html[data-xytheme="wine"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 7% 0%,#3A1011 0%,#230C0E 26%,#0C0E12 62%,#05070A 100%);
  --phv-chip-bg:rgba(255,236,214,.07);
  --phv-chip-line:rgba(202,163,75,.18);
  --phv-ink:#EFE7E4;
  --phv-let-bg:rgba(202,163,75,.20);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(202,163,75,.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#B09C99;
  --phv-panel-bg:linear-gradient(180deg,rgba(255,236,214,.075),rgba(255,236,214,.03));
  --phv-panel-line:rgba(202,163,75,.22);
  --phv-pop-bg:rgba(20,12,15,.985);
  --phv-pop-line:rgba(202,163,75,.24);
  --phv-sym-bg:#FCF8F2;
  --phv-sym-fg:#2A1A18;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(255,236,214,.5);
  --wb-bg:rgba(255,236,214,.065);
  --wb-empty:#93856C;
  --wb-line:rgba(202,163,75,.20);
  --wb-mean:#D8CBB6;
  --wb-phon-bg:rgba(202,163,75,.18);
  --wb-phon-fg:#E5C98A;
  --wb-phon-lb:rgba(229,201,138,.72);
  --wb-phon-line:rgba(202,163,75,.34);
  --wb-phon-on-bg:rgba(229,201,138,.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#F5E5C0;
  --wb-phon-on-line:rgba(229,201,138,.52);
  --wb-phon-on-ring:rgba(229,201,138,.44);
  --wb-word:#FCF3E6;
  --wc-bg:#FDFBF8;
  --wc-chip-bg:rgba(202,163,75,0.14);
  --wc-chip-fg:#6A5A36;
  --wc-cn:#352F39;
  --wc-ink:#29171C;
  --wc-line:rgba(202,163,75,0.55);
  --wc-ph:#615333;
  --wc-sep:rgba(202,163,75,0.22);
  --wc-sub:#7C7C6D;
  --xy-accent:#CAA34B;
  --xy-bar:#140C0F;
  --xy-bar-line:#2A1518;
  --xy-btn:#241519;
  --xy-btn-hi:#2F1C20;
  --xy-btn-hi-line:#6B3A32;
  --xy-btn-line:#452725;
  --xy-card:rgba(28,17,20,.72);
  --xy-card-line:rgba(202,163,75,.20);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(202,163,75,.42);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#7C6B69;
  --xy-field:#1C1115;
  --xy-field-hi:#26161A;
  --xy-field-line:#39201F;
  --xy-gold:#CAA34B;
  --xy-mut:#B09C99;
  --xy-note-bg:rgba(58,40,16,.80);
  --xy-note-ct:#CAA34B;
  --xy-note-fg:#F2E4C6;
  --xy-note-line:rgba(202,163,75,.40);
  --xy-note-mute:#9E8A64;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#1B1416;
  --xy-opt-wrong-line:#5A403E;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(202,163,75,.34);
  --xy-page-bg:radial-gradient(132% 124% at 7% 0%,#3E1011 0%,#260C0E 22%,#0D0E13 58%,#05070A 100%);
  --xy-sh:0,0,0;
  --xy-stage:#05070A;
  --xy-sub-bg:linear-gradient(180deg,#170C0F 0%,#0A0D12 100%);
  --xy-sub-cn:#DFE7E0;
  --xy-sub-cn-dim:#9C9490;
  --xy-sub-en:#FFFFFF;
  --xy-sub-hl:#681312;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#EFE7E4;
  --xy-wine:#681312;
}

/* ============ 深蓝星空（星空）—— 深蓝夜空 + 星点微光，最安静；晚自习、看长课文不累眼 ============ */
html[data-xytheme="starry"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#1B3A66 0%,#0E2038 27%,#070E1B 63%,#03070D 100%);
  --phv-chip-bg:rgba(156,200,255,0.07);
  --phv-chip-line:rgba(156,200,255,0.18);
  --phv-ink:#E9EFF8;
  --phv-let-bg:rgba(156,200,255,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(156,200,255,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#9CA2AD;
  --phv-panel-bg:linear-gradient(180deg,rgba(156,200,255,0.075),rgba(156,200,255,0.03));
  --phv-panel-line:rgba(156,200,255,0.22);
  --phv-pop-bg:rgba(8,16,31,0.985);
  --phv-pop-line:rgba(156,200,255,0.24);
  --phv-sym-bg:#FAFCFF;
  --phv-sym-fg:#151E28;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(184,215,255,0.5);
  --wb-bg:rgba(156,200,255,0.065);
  --wb-empty:#787E8A;
  --wb-line:rgba(156,200,255,0.2);
  --wb-mean:#BCC2CC;
  --wb-phon-bg:rgba(156,200,255,0.18);
  --wb-phon-fg:#BEDBFF;
  --wb-phon-lb:rgba(190,219,255,0.72);
  --wb-phon-line:rgba(156,200,255,0.34);
  --wb-phon-on-bg:rgba(190,219,255,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#DBEBFF;
  --wb-phon-on-line:rgba(190,219,255,0.52);
  --wb-phon-on-ring:rgba(190,219,255,0.44);
  --wb-word:#E1EBF9;
  --wc-bg:#FBFDFF;
  --wc-chip-bg:rgba(156,200,255,0.14);
  --wc-chip-fg:#546D90;
  --wc-cn:#28394C;
  --wc-ink:#142639;
  --wc-line:rgba(156,200,255,0.55);
  --wc-ph:#4C6484;
  --wc-sep:rgba(156,200,255,0.22);
  --wc-sub:#6E87A3;
  --xy-accent:#9CC8FF;
  --xy-bar:#091222;
  --xy-bar-line:#0C192E;
  --xy-btn:#0A1426;
  --xy-btn-hi:#0B182C;
  --xy-btn-hi-line:#466185;
  --xy-btn-line:#0D1C33;
  --xy-card:rgba(10,20,37,0.72);
  --xy-card-line:rgba(156,200,255,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(156,200,255,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#737A85;
  --xy-field:#0A1527;
  --xy-field-hi:#0C182C;
  --xy-field-line:#0D1C33;
  --xy-gold:#9CC8FF;
  --xy-mut:#9CA2AD;
  --xy-note-bg:rgba(40,55,77,0.84);
  --xy-note-ct:#9CC8FF;
  --xy-note-fg:#DEEAF9;
  --xy-note-line:rgba(156,200,255,0.4);
  --xy-note-mute:#8A909B;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#091324;
  --xy-opt-wrong-line:#0F2039;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(156,200,255,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#1B3A66 0%,#0E2038 24%,#070E1B 60%,#03070D 100%);
  --xy-sh:0,0,0;
  --xy-stage:#03070D;
  --xy-sub-bg:linear-gradient(180deg,#091222 0%,#070E1B 100%);
  --xy-sub-cn:#CED4DD;
  --xy-sub-cn-dim:#868C97;
  --xy-sub-en:#FBFDFF;
  --xy-sub-hl:#1E4A7A;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#E9EFF8;
  --xy-wine:#1E4A7A;
}

/* ============ 深海夜读（安静）—— 深海蓝渐层，冷而静；想要安静氛围时用 ============ */
html[data-xytheme="navy"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 9% 0%,#12335F 0%,#0E2543 26%,#0A1728 62%,#060E18 100%);
  --phv-chip-bg:rgba(214,236,255,.07);
  --phv-chip-line:rgba(127,209,255,.18);
  --phv-ink:#E6EFF9;
  --phv-let-bg:rgba(168,203,232,.20);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(168,203,232,.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#9FB6CE;
  --phv-panel-bg:linear-gradient(180deg,rgba(214,236,255,.075),rgba(214,236,255,.03));
  --phv-panel-line:rgba(127,209,255,.22);
  --phv-pop-bg:rgba(10,20,34,.985);
  --phv-pop-line:rgba(127,209,255,.24);
  --phv-sym-bg:#F4F9FE;
  --phv-sym-fg:#0C2233;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(214,236,255,.5);
  --wb-bg:rgba(214,236,255,.065);
  --wb-empty:#7E96AE;
  --wb-line:rgba(127,209,255,.20);
  --wb-mean:#C6D8E8;
  --wb-phon-bg:rgba(168,203,232,.18);
  --wb-phon-fg:#BBD9F0;
  --wb-phon-lb:rgba(187,217,240,.72);
  --wb-phon-line:rgba(168,203,232,.34);
  --wb-phon-on-bg:rgba(187,217,240,.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#DCEBF8;
  --wb-phon-on-line:rgba(187,217,240,.52);
  --wb-phon-on-ring:rgba(187,217,240,.44);
  --wb-word:#F4F9FE;
  --wc-bg:#FAFDFF;
  --wc-chip-bg:rgba(127,209,255,0.14);
  --wc-chip-fg:#457290;
  --wc-cn:#28394C;
  --wc-ink:#142639;
  --wc-line:rgba(127,209,255,0.55);
  --wc-ph:#3F6884;
  --wc-sep:rgba(127,209,255,0.22);
  --wc-sub:#658AA3;
  --xy-accent:#7FD1FF;
  --xy-bar:#0C1725;
  --xy-bar-line:#1B2E45;
  --xy-btn:#16263E;
  --xy-btn-hi:#1E3350;
  --xy-btn-hi-line:#3E639A;
  --xy-btn-line:#2A4568;
  --xy-card:rgba(16,30,49,.70);
  --xy-card-line:rgba(127,209,255,.18);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(127,209,255,.42);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#6F88A6;
  --xy-field:#132238;
  --xy-field-hi:#1A2C46;
  --xy-field-line:#243A57;
  --xy-gold:#7FD1FF;
  --xy-mut:#9FB6CE;
  --xy-note-bg:rgba(20,44,68,.80);
  --xy-note-ct:#7FD1FF;
  --xy-note-fg:#DCEAF8;
  --xy-note-line:rgba(127,209,255,.36);
  --xy-note-mute:#89A3BF;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#16222F;
  --xy-opt-wrong-line:#4A5C72;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(127,209,255,.34);
  --xy-page-bg:radial-gradient(132% 124% at 9% 0%,#123463 0%,#0E2645 24%,#0A1A2C 60%,#07101C 100%);
  --xy-sh:0,0,0;
  --xy-stage:#04070C;
  --xy-sub-bg:linear-gradient(180deg,#0D1B2C 0%,#070F1A 100%);
  --xy-sub-cn:#D9E6F4;
  --xy-sub-cn-dim:#8FA6BE;
  --xy-sub-en:#FFFFFF;
  --xy-sub-hl:#1E4A7A;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#E3ECF7;
  --xy-wine:#1E4A7A;
}

/* ============ 银河（银河）—— 靛蓝底 + 一线银白，像看银河；投影在墙上很吃得住 ============ */
html[data-xytheme="galaxy"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#2A2A5E 0%,#171736 27%,#0B0B1C 63%,#050510 100%);
  --phv-chip-bg:rgba(201,201,240,0.07);
  --phv-chip-line:rgba(201,201,240,0.18);
  --phv-ink:#EDEDF7;
  --phv-let-bg:rgba(201,201,240,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(201,201,240,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#A0A0AD;
  --phv-panel-bg:linear-gradient(180deg,rgba(201,201,240,0.075),rgba(201,201,240,0.03));
  --phv-panel-line:rgba(201,201,240,0.22);
  --phv-pop-bg:rgba(13,13,31,0.985);
  --phv-pop-line:rgba(201,201,240,0.24);
  --phv-sym-bg:#FCFCFE;
  --phv-sym-fg:#1B1B27;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(216,216,244,0.5);
  --wb-bg:rgba(201,201,240,0.065);
  --wb-empty:#7C7C8A;
  --wb-line:rgba(201,201,240,0.2);
  --wb-mean:#C0C0CB;
  --wb-phon-bg:rgba(201,201,240,0.18);
  --wb-phon-fg:#DBDBF5;
  --wb-phon-lb:rgba(219,219,245,0.72);
  --wb-phon-line:rgba(201,201,240,0.34);
  --wb-phon-on-bg:rgba(219,219,245,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#EBEBFA;
  --wb-phon-on-line:rgba(219,219,245,0.52);
  --wb-phon-on-ring:rgba(219,219,245,0.44);
  --wb-word:#E9E9F6;
  --wc-bg:#FDFDFE;
  --wc-chip-bg:rgba(201,201,240,0.14);
  --wc-chip-fg:#6A6E88;
  --wc-cn:#2D364C;
  --wc-ink:#1C2239;
  --wc-line:rgba(201,201,240,0.55);
  --wc-ph:#60647E;
  --wc-sep:rgba(201,201,240,0.22);
  --wc-sub:#7B879F;
  --xy-accent:#C9C9F0;
  --xy-bar:#0E0E23;
  --xy-bar-line:#13132D;
  --xy-btn:#0F0F25;
  --xy-btn-hi:#12122B;
  --xy-btn-hi-line:#5D5D7D;
  --xy-btn-line:#151531;
  --xy-card:rgba(15,15,37,0.72);
  --xy-card-line:rgba(201,201,240,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(201,201,240,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#777785;
  --xy-field:#101027;
  --xy-field-hi:#12122B;
  --xy-field-line:#151531;
  --xy-gold:#C9C9F0;
  --xy-mut:#A0A0AD;
  --xy-note-bg:rgba(53,53,75,0.84);
  --xy-note-ct:#C9C9F0;
  --xy-note-fg:#E8E8F6;
  --xy-note-line:rgba(201,201,240,0.4);
  --xy-note-mute:#8E8E9B;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#0F0F24;
  --xy-opt-wrong-line:#171736;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(201,201,240,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#2A2A5E 0%,#171736 24%,#0B0B1C 60%,#050510 100%);
  --xy-sh:0,0,0;
  --xy-stage:#050510;
  --xy-sub-bg:linear-gradient(180deg,#0E0E23 0%,#0B0B1C 100%);
  --xy-sub-cn:#D2D2DD;
  --xy-sub-cn-dim:#8A8A97;
  --xy-sub-en:#FDFDFE;
  --xy-sub-hl:#3A3A78;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#EDEDF7;
  --xy-wine:#3A3A78;
}

/* ============ 极光（极光）—— 墨绿底色上压一道青绿光，冷而不硬；连着上两节也不刺眼 ============ */
html[data-xytheme="aurora"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#12463E 0%,#0C2B27 27%,#071815 63%,#040C0B 100%);
  --phv-chip-bg:rgba(111,227,196,0.07);
  --phv-chip-line:rgba(111,227,196,0.18);
  --phv-ink:#E2F4EF;
  --phv-let-bg:rgba(111,227,196,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(111,227,196,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#98A9A5;
  --phv-panel-bg:linear-gradient(180deg,rgba(111,227,196,0.075),rgba(111,227,196,0.03));
  --phv-panel-line:rgba(111,227,196,0.22);
  --phv-pop-bg:rgba(8,26,23,0.985);
  --phv-pop-line:rgba(111,227,196,0.24);
  --phv-sym-bg:#F8FEFC;
  --phv-sym-fg:#13221F;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(151,235,213,0.5);
  --wb-bg:rgba(111,227,196,0.065);
  --wb-empty:#748682;
  --wb-line:rgba(111,227,196,0.2);
  --wb-mean:#B6C8C3;
  --wb-phon-bg:rgba(111,227,196,0.18);
  --wb-phon-fg:#A0EDD8;
  --wb-phon-lb:rgba(160,237,216,0.72);
  --wb-phon-line:rgba(111,227,196,0.34);
  --wb-phon-on-bg:rgba(160,237,216,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#CBF5EA;
  --wb-phon-on-line:rgba(160,237,216,0.52);
  --wb-phon-on-ring:rgba(160,237,216,0.44);
  --wb-word:#D6F2EB;
  --wc-bg:#F9FEFD;
  --wc-chip-bg:rgba(111,227,196,0.14);
  --wc-chip-fg:#3D7A72;
  --wc-cn:#263D44;
  --wc-ink:#112C2D;
  --wc-line:rgba(111,227,196,0.55);
  --wc-ph:#38706A;
  --wc-sep:rgba(111,227,196,0.22);
  --wc-sub:#608F92;
  --xy-accent:#6FE3C4;
  --xy-bar:#081D19;
  --xy-bar-line:#0A2420;
  --xy-btn:#091E1B;
  --xy-btn-hi:#09221E;
  --xy-btn-hi-line:#337263;
  --xy-btn-line:#0B2722;
  --xy-card:rgba(8,30,26,0.72);
  --xy-card-line:rgba(111,227,196,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(111,227,196,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#70827E;
  --xy-field:#091F1C;
  --xy-field-hi:#0A231E;
  --xy-field-line:#0B2722;
  --xy-gold:#6FE3C4;
  --xy-mut:#98A9A5;
  --xy-note-bg:rgba(30,69,60,0.84);
  --xy-note-ct:#6FE3C4;
  --xy-note-fg:#D2F2E9;
  --xy-note-line:rgba(111,227,196,0.4);
  --xy-note-mute:#869893;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#081E1A;
  --xy-opt-wrong-line:#0B2A25;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(111,227,196,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#12463E 0%,#0C2B27 24%,#071815 60%,#040C0B 100%);
  --xy-sh:0,0,0;
  --xy-stage:#040C0B;
  --xy-sub-bg:linear-gradient(180deg,#081D19 0%,#071815 100%);
  --xy-sub-cn:#C8DAD5;
  --xy-sub-cn-dim:#82938F;
  --xy-sub-en:#F9FEFD;
  --xy-sub-hl:#12604F;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#E2F4EF;
  --xy-wine:#12604F;
}

/* ============ 深海（深海）—— 墨蓝绿 + 珊瑚青，像潜到水下；色温低，眼睛放松 ============ */
html[data-xytheme="ocean"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#0E3A4A 0%,#0A2632 27%,#06161E 63%,#030B10 100%);
  --phv-chip-bg:rgba(102,214,232,0.07);
  --phv-chip-line:rgba(102,214,232,0.18);
  --phv-ink:#E3F2F6;
  --phv-let-bg:rgba(102,214,232,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(102,214,232,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#98A7AD;
  --phv-panel-bg:linear-gradient(180deg,rgba(102,214,232,0.075),rgba(102,214,232,0.03));
  --phv-panel-line:rgba(102,214,232,0.22);
  --phv-pop-bg:rgba(6,24,32,0.985);
  --phv-pop-line:rgba(102,214,232,0.24);
  --phv-sym-bg:#F7FDFE;
  --phv-sym-fg:#131F22;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(145,225,238,0.5);
  --wb-bg:rgba(102,214,232,0.065);
  --wb-empty:#74848A;
  --wb-line:rgba(102,214,232,0.2);
  --wb-mean:#B7C6CB;
  --wb-phon-bg:rgba(102,214,232,0.18);
  --wb-phon-fg:#9AE4F0;
  --wb-phon-lb:rgba(154,228,240,0.72);
  --wb-phon-line:rgba(102,214,232,0.34);
  --wb-phon-on-bg:rgba(154,228,240,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#C7F0F7;
  --wb-phon-on-line:rgba(154,228,240,0.52);
  --wb-phon-on-ring:rgba(154,228,240,0.44);
  --wb-word:#D6EFF5;
  --wc-bg:#F9FDFE;
  --wc-chip-bg:rgba(102,214,232,0.14);
  --wc-chip-fg:#387484;
  --wc-cn:#263A47;
  --wc-ink:#112831;
  --wc-line:rgba(102,214,232,0.55);
  --wc-ph:#346A7A;
  --wc-sep:rgba(102,214,232,0.22);
  --wc-sub:#5E8B9C;
  --xy-accent:#66D6E8;
  --xy-bar:#071A22;
  --xy-bar-line:#081F29;
  --xy-btn:#071B24;
  --xy-btn-hi:#081E28;
  --xy-btn-hi-line:#2E6A77;
  --xy-btn-line:#09222C;
  --xy-card:rgba(7,27,36,0.72);
  --xy-card-line:rgba(102,214,232,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(102,214,232,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#708086;
  --xy-field:#071C25;
  --xy-field-hi:#081E28;
  --xy-field-line:#09222C;
  --xy-gold:#66D6E8;
  --xy-mut:#98A7AD;
  --xy-note-bg:rgba(27,64,74,0.84);
  --xy-note-ct:#66D6E8;
  --xy-note-fg:#D2EEF4;
  --xy-note-line:rgba(102,214,232,0.4);
  --xy-note-mute:#86969B;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#071A23;
  --xy-opt-wrong-line:#092430;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(102,214,232,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#0E3A4A 0%,#0A2632 24%,#06161E 60%,#030B10 100%);
  --xy-sh:0,0,0;
  --xy-stage:#030B10;
  --xy-sub-bg:linear-gradient(180deg,#071A22 0%,#06161E 100%);
  --xy-sub-cn:#C8D8DC;
  --xy-sub-cn-dim:#829197;
  --xy-sub-en:#F9FDFE;
  --xy-sub-hl:#12505E;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#E3F2F6;
  --xy-wine:#12505E;
}

/* ============ 墨绿护眼（久上）—— 墨绿底 + 嫩绿点缀；连堂上两节，眼睛最不容易累 ============ */
html[data-xytheme="moss"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#173A28 0%,#11281C 28%,#0B1712 64%,#070E0A 100%);
  --phv-chip-bg:rgba(214,242,224,.065);
  --phv-chip-line:rgba(139,217,168,.16);
  --phv-ink:#E6F2E9;
  --phv-let-bg:rgba(139,217,168,.18);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(139,217,168,.3);
  --phv-line:rgba(255,255,255,.12);
  --phv-mut:#9CBAA7;
  --phv-panel-bg:linear-gradient(180deg,rgba(214,242,224,.075),rgba(214,242,224,.03));
  --phv-panel-line:rgba(139,217,168,.20);
  --phv-pop-bg:rgba(10,20,15,.985);
  --phv-pop-line:rgba(139,217,168,.22);
  --phv-sym-bg:#F4FBF6;
  --phv-sym-fg:#10261B;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(214,242,224,.5);
  --wb-bg:rgba(214,242,224,.06);
  --wb-empty:#7B9486;
  --wb-line:rgba(139,217,168,.18);
  --wb-mean:#C3D8CA;
  --wb-phon-bg:rgba(139,217,168,.16);
  --wb-phon-fg:#A8E0BE;
  --wb-phon-lb:rgba(168,224,190,.72);
  --wb-phon-line:rgba(139,217,168,.32);
  --wb-phon-on-bg:rgba(168,224,190,.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#DCF3E5;
  --wb-phon-on-line:rgba(168,224,190,.52);
  --wb-phon-on-ring:rgba(168,224,190,.44);
  --wb-word:#F1F9F3;
  --wc-bg:#FAFDFC;
  --wc-chip-bg:rgba(139,217,168,0.14);
  --wc-chip-fg:#4B7664;
  --wc-cn:#283C41;
  --wc-ink:#142A28;
  --wc-line:rgba(139,217,168,0.55);
  --wc-ph:#456C5D;
  --wc-sep:rgba(139,217,168,0.22);
  --wc-sub:#698C89;
  --xy-accent:#8BD9A8;
  --xy-bar:#0E1A14;
  --xy-bar-line:#1C3126;
  --xy-btn:#14291F;
  --xy-btn-hi:#1D3628;
  --xy-btn-hi-line:#3B6650;
  --xy-btn-line:#294A38;
  --xy-card:rgba(14,28,21,.70);
  --xy-card-line:rgba(139,217,168,.18);
  --xy-edge:rgba(255,255,255,.05);
  --xy-edge-hi:rgba(255,255,255,.15);
  --xy-edge-hi-line:rgba(139,217,168,.40);
  --xy-edge-line:rgba(255,255,255,.09);
  --xy-faint:#6D8A79;
  --xy-field:#12241B;
  --xy-field-hi:#193024;
  --xy-field-line:#24412F;
  --xy-gold:#8BD9A8;
  --xy-mut:#9CBAA7;
  --xy-note-bg:rgba(44,38,14,.80);
  --xy-note-ct:#D6C078;
  --xy-note-fg:#F0E7C9;
  --xy-note-line:rgba(200,178,90,.38);
  --xy-note-mute:#968C72;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#16211B;
  --xy-opt-wrong-line:#4A6156;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(139,217,168,.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#173826 0%,#11281C 26%,#0B1712 62%,#070E0A 100%);
  --xy-sh:0,0,0;
  --xy-stage:#050A07;
  --xy-sub-bg:linear-gradient(180deg,#0E1F16 0%,#070E0A 100%);
  --xy-sub-cn:#DCEDE1;
  --xy-sub-cn-dim:#8AA696;
  --xy-sub-en:#FFFFFF;
  --xy-sub-hl:#1E5A3C;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#E1EFE5;
  --xy-wine:#1E5A3C;
}

/* ============ 竹影（竹影）—— 墨绿底 + 竹青，清清爽爽；夏天上好用 ============ */
html[data-xytheme="bamboo"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#1E4026 0%,#122A19 27%,#0A180F 63%,#050C08 100%);
  --phv-chip-bg:rgba(166,217,106,0.07);
  --phv-chip-line:rgba(166,217,106,0.18);
  --phv-ink:#ECF5E6;
  --phv-let-bg:rgba(166,217,106,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(166,217,106,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#9FAA9D;
  --phv-panel-bg:linear-gradient(180deg,rgba(166,217,106,0.075),rgba(166,217,106,0.03));
  --phv-panel-line:rgba(166,217,106,0.22);
  --phv-pop-bg:rgba(11,26,16,0.985);
  --phv-pop-line:rgba(166,217,106,0.24);
  --phv-sym-bg:#FBFDF8;
  --phv-sym-fg:#182119;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(191,228,148,0.5);
  --wb-bg:rgba(166,217,106,0.065);
  --wb-empty:#7B867A;
  --wb-line:rgba(166,217,106,0.2);
  --wb-mean:#BFC9BB;
  --wb-phon-bg:rgba(166,217,106,0.18);
  --wb-phon-fg:#C4E69D;
  --wb-phon-lb:rgba(196,230,157,0.72);
  --wb-phon-line:rgba(166,217,106,0.34);
  --wb-phon-on-bg:rgba(196,230,157,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#DFF1C9;
  --wb-phon-on-line:rgba(196,230,157,0.52);
  --wb-phon-on-ring:rgba(196,230,157,0.44);
  --wb-word:#E5F2DA;
  --wc-bg:#FBFDF9;
  --wc-chip-bg:rgba(166,217,106,0.14);
  --wc-chip-fg:#587645;
  --wc-cn:#2A3C3F;
  --wc-ink:#172A25;
  --wc-line:rgba(166,217,106,0.55);
  --wc-ph:#516C41;
  --wc-sep:rgba(166,217,106,0.22);
  --wc-sub:#718C77;
  --xy-accent:#A6D96A;
  --xy-bar:#0C1C11;
  --xy-bar-line:#0F2215;
  --xy-btn:#0D1E12;
  --xy-btn-hi:#0E2114;
  --xy-btn-hi-line:#4C6D38;
  --xy-btn-line:#102516;
  --xy-card:rgba(13,29,18,0.72);
  --xy-card-line:rgba(166,217,106,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(166,217,106,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#768276;
  --xy-field:#0D1E13;
  --xy-field-hi:#0F2114;
  --xy-field-line:#102516;
  --xy-gold:#A6D96A;
  --xy-mut:#9FAA9D;
  --xy-note-bg:rgba(44,66,35,0.84);
  --xy-note-ct:#A6D96A;
  --xy-note-fg:#E2F1D5;
  --xy-note-line:rgba(166,217,106,0.4);
  --xy-note-mute:#8D988C;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#0C1D12;
  --xy-opt-wrong-line:#122818;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(166,217,106,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#1E4026 0%,#122A19 24%,#0A180F 60%,#050C08 100%);
  --xy-sh:0,0,0;
  --xy-stage:#050C08;
  --xy-sub-bg:linear-gradient(180deg,#0C1C11 0%,#0A180F 100%);
  --xy-sub-cn:#D1DACC;
  --xy-sub-cn-dim:#899487;
  --xy-sub-en:#FBFDF9;
  --xy-sub-hl:#2A5A32;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#ECF5E6;
  --xy-wine:#2A5A32;
}

/* ============ 纯黑影院（关灯）—— 近纯黑 + 一点暖金；完全关灯的放映室最合适 ============ */
html[data-xytheme="ink"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 10% 0%,#1B1B20 0%,#111114 32%,#09090B 66%,#000000 100%);
  --phv-chip-bg:rgba(255,244,214,.065);
  --phv-chip-line:rgba(232,184,75,.16);
  --phv-ink:#F0F0F2;
  --phv-let-bg:rgba(232,184,75,.18);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(232,184,75,.3);
  --phv-line:rgba(255,255,255,.12);
  --phv-mut:#A3A7AF;
  --phv-panel-bg:linear-gradient(180deg,rgba(255,244,214,.075),rgba(255,244,214,.03));
  --phv-panel-line:rgba(232,184,75,.20);
  --phv-pop-bg:rgba(10,10,12,.985);
  --phv-pop-line:rgba(232,184,75,.22);
  --phv-sym-bg:#F8F4EA;
  --phv-sym-fg:#1A1710;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(255,244,214,.5);
  --wb-bg:rgba(255,244,214,.06);
  --wb-empty:#7B7F87;
  --wb-line:rgba(232,184,75,.18);
  --wb-mean:#C9CBD1;
  --wb-phon-bg:rgba(232,184,75,.16);
  --wb-phon-fg:#EBCB86;
  --wb-phon-lb:rgba(235,203,134,.72);
  --wb-phon-line:rgba(232,184,75,.32);
  --wb-phon-on-bg:rgba(235,203,134,.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#F5E4B8;
  --wb-phon-on-line:rgba(235,203,134,.52);
  --wb-phon-on-ring:rgba(235,203,134,.44);
  --wb-word:#FAF2E2;
  --wc-bg:#FEFCF8;
  --wc-chip-bg:rgba(232,184,75,0.14);
  --wc-chip-fg:#7A6536;
  --wc-cn:#38303A;
  --wc-ink:#2E191D;
  --wc-line:rgba(232,184,75,0.55);
  --wc-ph:#6E5D33;
  --wc-sep:rgba(232,184,75,0.22);
  --wc-sub:#85826D;
  --xy-accent:#E8B84B;
  --xy-bar:#0B0B0D;
  --xy-bar-line:#1C1C20;
  --xy-btn:#1A1A1F;
  --xy-btn-hi:#242429;
  --xy-btn-hi-line:#46464F;
  --xy-btn-line:#303038;
  --xy-card:rgba(18,18,21,.72);
  --xy-card-line:rgba(232,184,75,.18);
  --xy-edge:rgba(255,255,255,.05);
  --xy-edge-hi:rgba(255,255,255,.15);
  --xy-edge-hi-line:rgba(232,184,75,.40);
  --xy-edge-line:rgba(255,255,255,.09);
  --xy-faint:#71757D;
  --xy-field:#141418;
  --xy-field-hi:#1E1E24;
  --xy-field-line:#2A2A31;
  --xy-gold:#E8B84B;
  --xy-mut:#A3A7AF;
  --xy-note-bg:rgba(48,36,12,.80);
  --xy-note-ct:#E8B84B;
  --xy-note-fg:#F5E9CE;
  --xy-note-line:rgba(232,184,75,.40);
  --xy-note-mute:#9C9078;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#161619;
  --xy-opt-wrong-line:#4C4C55;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(232,184,75,.34);
  --xy-page-bg:radial-gradient(132% 124% at 10% 0%,#1A1A1F 0%,#111114 32%,#0A0A0C 66%,#000000 100%);
  --xy-sh:0,0,0;
  --xy-stage:#000000;
  --xy-sub-bg:linear-gradient(180deg,#0C0C0F 0%,#000000 100%);
  --xy-sub-cn:#E2E3E6;
  --xy-sub-cn-dim:#8C8F95;
  --xy-sub-en:#FFFFFF;
  --xy-sub-hl:#7A1A14;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#EDEDEF;
  --xy-wine:#7A1A14;
}

/* ============ 紫水晶（紫调）—— 暗紫底 + 淡紫辉光，安静但有质感；适合文学课 ============ */
html[data-xytheme="amethyst"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#3A2358 0%,#22143A 27%,#110A1E 63%,#080410 100%);
  --phv-chip-bg:rgba(201,168,240,0.07);
  --phv-chip-line:rgba(201,168,240,0.18);
  --phv-ink:#F0E8FA;
  --phv-let-bg:rgba(201,168,240,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(201,168,240,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#A49DAF;
  --phv-panel-bg:linear-gradient(180deg,rgba(201,168,240,0.075),rgba(201,168,240,0.03));
  --phv-panel-line:rgba(201,168,240,0.22);
  --phv-pop-bg:rgba(19,11,33,0.985);
  --phv-pop-line:rgba(201,168,240,0.24);
  --phv-sym-bg:#FCFBFE;
  --phv-sym-fg:#1F1828;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(216,192,244,0.5);
  --wb-bg:rgba(201,168,240,0.065);
  --wb-empty:#80798C;
  --wb-line:rgba(201,168,240,0.2);
  --wb-mean:#C3BCCE;
  --wb-phon-bg:rgba(201,168,240,0.18);
  --wb-phon-fg:#DBC6F5;
  --wb-phon-lb:rgba(219,198,245,0.72);
  --wb-phon-line:rgba(201,168,240,0.34);
  --wb-phon-on-bg:rgba(219,198,245,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#EBE0FA;
  --wb-phon-on-line:rgba(219,198,245,0.52);
  --wb-phon-on-ring:rgba(219,198,245,0.44);
  --wb-word:#ECE2F9;
  --wc-bg:#FDFCFE;
  --wc-chip-bg:rgba(201,168,240,0.14);
  --wc-chip-fg:#6A5D88;
  --wc-cn:#30334C;
  --wc-ink:#211E39;
  --wc-line:rgba(201,168,240,0.55);
  --wc-ph:#60567E;
  --wc-sep:rgba(201,168,240,0.22);
  --wc-sub:#7B7D9F;
  --xy-accent:#C9A8F0;
  --xy-bar:#150C24;
  --xy-bar-line:#1C102D;
  --xy-btn:#170E26;
  --xy-btn-hi:#1A102B;
  --xy-btn-hi-line:#624E7D;
  --xy-btn-line:#1E1231;
  --xy-card:rgba(22,13,38,0.72);
  --xy-card-line:rgba(201,168,240,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(201,168,240,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#7C7588;
  --xy-field:#180E27;
  --xy-field-hi:#1A102B;
  --xy-field-line:#1E1231;
  --xy-gold:#C9A8F0;
  --xy-mut:#A49DAF;
  --xy-note-bg:rgba(57,45,76,0.84);
  --xy-note-ct:#C9A8F0;
  --xy-note-fg:#EBDFF9;
  --xy-note-line:rgba(201,168,240,0.4);
  --xy-note-mute:#928B9E;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#160D25;
  --xy-opt-wrong-line:#211435;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(201,168,240,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#3A2358 0%,#22143A 24%,#110A1E 60%,#080410 100%);
  --xy-sh:0,0,0;
  --xy-stage:#080410;
  --xy-sub-bg:linear-gradient(180deg,#150C24 0%,#110A1E 100%);
  --xy-sub-cn:#D5CDE0;
  --xy-sub-cn-dim:#8E8699;
  --xy-sub-en:#FDFCFE;
  --xy-sub-hl:#4E2C7A;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#F0E8FA;
  --xy-wine:#4E2C7A;
}

/* ============ 暮色（暮色）—— 靛紫天 + 一抹残霞橘，黄昏教室那种柔和感 ============ */
html[data-xytheme="dusk"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#4A2545 0%,#2A1730 27%,#150B1A 63%,#0A050D 100%);
  --phv-chip-bg:rgba(240,168,104,0.07);
  --phv-chip-line:rgba(240,168,104,0.18);
  --phv-ink:#F3E7EF;
  --phv-let-bg:rgba(240,168,104,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(240,168,104,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#A89CA7;
  --phv-panel-bg:linear-gradient(180deg,rgba(240,168,104,0.075),rgba(240,168,104,0.03));
  --phv-panel-line:rgba(240,168,104,0.22);
  --phv-pop-bg:rgba(24,12,28,0.985);
  --phv-pop-line:rgba(240,168,104,0.24);
  --phv-sym-bg:#FEFBF7;
  --phv-sym-fg:#25191E;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(244,192,146,0.5);
  --wb-bg:rgba(240,168,104,0.065);
  --wb-empty:#847984;
  --wb-line:rgba(240,168,104,0.2);
  --wb-mean:#C7BBC4;
  --wb-phon-bg:rgba(240,168,104,0.18);
  --wb-phon-fg:#F5C69B;
  --wb-phon-lb:rgba(245,198,155,0.72);
  --wb-phon-line:rgba(240,168,104,0.34);
  --wb-phon-on-bg:rgba(245,198,155,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#FAE0C8;
  --wb-phon-on-line:rgba(245,198,155,0.52);
  --wb-phon-on-ring:rgba(245,198,155,0.44);
  --wb-word:#F3E1E2;
  --wc-bg:#FEFCF9;
  --wc-chip-bg:rgba(240,168,104,0.14);
  --wc-chip-fg:#7E5D44;
  --wc-cn:#363443;
  --wc-ink:#291E2C;
  --wc-line:rgba(240,168,104,0.55);
  --wc-ph:#725640;
  --wc-sep:rgba(240,168,104,0.22);
  --wc-sub:#877D76;
  --xy-accent:#F0A868;
  --xy-bar:#1A0E1E;
  --xy-bar-line:#231225;
  --xy-btn:#1C0F20;
  --xy-btn-hi:#211123;
  --xy-btn-hi-line:#774F42;
  --xy-btn-line:#261328;
  --xy-card:rgba(28,14,32,0.72);
  --xy-card-line:rgba(240,168,104,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(240,168,104,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#807580;
  --xy-field:#1D0F21;
  --xy-field-hi:#211124;
  --xy-field-line:#261328;
  --xy-gold:#F0A868;
  --xy-mut:#A89CA7;
  --xy-note-bg:rgba(69,46,43,0.84);
  --xy-note-ct:#F0A868;
  --xy-note-fg:#F3DEDC;
  --xy-note-line:rgba(240,168,104,0.4);
  --xy-note-mute:#968B96;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#1B0E1F;
  --xy-opt-wrong-line:#2A152B;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(240,168,104,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#4A2545 0%,#2A1730 24%,#150B1A 60%,#0A050D 100%);
  --xy-sh:0,0,0;
  --xy-stage:#0A050D;
  --xy-sub-bg:linear-gradient(180deg,#1A0E1E 0%,#150B1A 100%);
  --xy-sub-cn:#D8CDD5;
  --xy-sub-cn-dim:#918691;
  --xy-sub-en:#FEFCF9;
  --xy-sub-hl:#6B2F4A;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#F3E7EF;
  --xy-wine:#6B2F4A;
}

/* ============ 炉火（炉火）—— 深褐近黑 + 炉火橙，暖得像壁炉；冬天/夜晚很舒服 ============ */
html[data-xytheme="ember"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#4A2310 0%,#2A160C 27%,#150C07 63%,#0A0503 100%);
  --phv-chip-bg:rgba(240,160,60,0.07);
  --phv-chip-line:rgba(240,160,60,0.18);
  --phv-ink:#F7EBDC;
  --phv-let-bg:rgba(240,160,60,0.2);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(240,160,60,0.32);
  --phv-line:rgba(255,255,255,.13);
  --phv-mut:#AA9F94;
  --phv-panel-bg:linear-gradient(180deg,rgba(240,160,60,0.075),rgba(240,160,60,0.03));
  --phv-panel-line:rgba(240,160,60,0.22);
  --phv-pop-bg:rgba(24,13,7,0.985);
  --phv-pop-line:rgba(240,160,60,0.24);
  --phv-sym-bg:#FEFAF5;
  --phv-sym-fg:#281A12;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(244,187,115,0.5);
  --wb-bg:rgba(240,160,60,0.065);
  --wb-empty:#867C72;
  --wb-line:rgba(240,160,60,0.2);
  --wb-mean:#CABEB1;
  --wb-phon-bg:rgba(240,160,60,0.18);
  --wb-phon-fg:#F5C07E;
  --wb-phon-lb:rgba(245,192,126,0.72);
  --wb-phon-line:rgba(240,160,60,0.34);
  --wb-phon-on-bg:rgba(245,192,126,0.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#FADCB8;
  --wb-phon-on-line:rgba(245,192,126,0.52);
  --wb-phon-on-ring:rgba(245,192,126,0.44);
  --wb-word:#F6E4CC;
  --wc-bg:#FEFBF7;
  --wc-chip-bg:rgba(240,160,60,0.14);
  --wc-chip-fg:#7E592E;
  --wc-cn:#383539;
  --wc-ink:#2E201C;
  --wc-line:rgba(240,160,60,0.55);
  --wc-ph:#72522D;
  --wc-sep:rgba(240,160,60,0.22);
  --wc-sub:#877B69;
  --xy-accent:#F0A03C;
  --xy-bar:#1A0E08;
  --xy-bar-line:#231209;
  --xy-btn:#1C0F08;
  --xy-btn-hi:#211109;
  --xy-btn-hi-line:#774B1E;
  --xy-btn-line:#26130A;
  --xy-card:rgba(28,15,8,0.72);
  --xy-card-line:rgba(240,160,60,0.2);
  --xy-edge:rgba(255,255,255,.055);
  --xy-edge-hi:rgba(255,255,255,.16);
  --xy-edge-hi-line:rgba(240,160,60,0.4);
  --xy-edge-line:rgba(255,255,255,.10);
  --xy-faint:#81776D;
  --xy-field:#1D1008;
  --xy-field-hi:#211109;
  --xy-field-line:#26130A;
  --xy-gold:#F0A03C;
  --xy-mut:#AA9F94;
  --xy-note-bg:rgba(69,45,19,0.84);
  --xy-note-ct:#F0A03C;
  --xy-note-fg:#F6E0C6;
  --xy-note-line:rgba(240,160,60,0.4);
  --xy-note-mute:#988D83;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#1B0F08;
  --xy-opt-wrong-line:#2A150B;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(240,160,60,0.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#4A2310 0%,#2A160C 24%,#150C07 60%,#0A0503 100%);
  --xy-sh:0,0,0;
  --xy-stage:#0A0503;
  --xy-sub-bg:linear-gradient(180deg,#1A0E08 0%,#150C07 100%);
  --xy-sub-cn:#DCD0C2;
  --xy-sub-cn-dim:#94897E;
  --xy-sub-en:#FEFBF7;
  --xy-sub-hl:#7A3410;
  --xy-sub-hl-fg:#FFFFFF;
  --xy-txt:#F7EBDC;
  --xy-wine:#7A3410;
}

/* ============ 古籍暖褐（古典）—— 暖褐像旧书卷；西游记这种古典题材有代入感 ============ */
html[data-xytheme="scroll"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 8% 0%,#3E2E18 0%,#2A2013 28%,#1A150E 64%,#100D08 100%);
  --phv-chip-bg:rgba(255,236,196,.07);
  --phv-chip-line:rgba(232,184,75,.18);
  --phv-ink:#F5EADA;
  --phv-let-bg:rgba(232,184,75,.20);
  --phv-let-fg:#FFFFFF;
  --phv-let-hi:rgba(232,184,75,.32);
  --phv-line:rgba(232,184,75,.18);
  --phv-mut:#C4B294;
  --phv-panel-bg:linear-gradient(180deg,rgba(255,236,196,.08),rgba(255,236,196,.03));
  --phv-panel-line:rgba(232,184,75,.24);
  --phv-pop-bg:rgba(28,22,15,.985);
  --phv-pop-line:rgba(232,184,75,.26);
  --phv-sym-bg:#FBF3E2;
  --phv-sym-fg:#2A2115;
  --phv-sym-hi:#FFFFFF;
  --phv-sym-line:rgba(255,236,196,.5);
  --wb-bg:rgba(255,236,196,.065);
  --wb-empty:#9C8C71;
  --wb-line:rgba(232,184,75,.20);
  --wb-mean:#DACBAE;
  --wb-phon-bg:rgba(232,184,75,.18);
  --wb-phon-fg:#EDD49B;
  --wb-phon-lb:rgba(237,212,155,.72);
  --wb-phon-line:rgba(232,184,75,.34);
  --wb-phon-on-bg:rgba(237,212,155,.28);
  --wb-phon-on-fg:#FFFFFF;
  --wb-phon-on-lb:#F7E8C4;
  --wb-phon-on-line:rgba(237,212,155,.52);
  --wb-phon-on-ring:rgba(237,212,155,.44);
  --wb-word:#FBF1DE;
  --wc-bg:#FEFCF8;
  --wc-chip-bg:rgba(232,184,75,0.14);
  --wc-chip-fg:#7A6536;
  --wc-cn:#38363A;
  --wc-ink:#2E221D;
  --wc-line:rgba(232,184,75,0.55);
  --wc-ph:#6E5D33;
  --wc-sep:rgba(232,184,75,0.22);
  --wc-sub:#85826D;
  --xy-accent:#E8B84B;
  --xy-bar:#1C1610;
  --xy-bar-line:#3A2E1E;
  --xy-btn:#2E2418;
  --xy-btn-hi:#3D2F1F;
  --xy-btn-hi-line:#7A6138;
  --xy-btn-line:#57452F;
  --xy-card:rgba(38,30,20,.72);
  --xy-card-line:rgba(232,184,75,.22);
  --xy-edge:rgba(255,255,255,.05);
  --xy-edge-hi:rgba(255,255,255,.15);
  --xy-edge-hi-line:rgba(232,184,75,.42);
  --xy-edge-line:rgba(255,255,255,.09);
  --xy-faint:#93846A;
  --xy-field:#241C13;
  --xy-field-hi:#2F2518;
  --xy-field-line:#443628;
  --xy-gold:#E8B84B;
  --xy-mut:#C4B294;
  --xy-note-bg:rgba(64,48,20,.80);
  --xy-note-ct:#E8B84B;
  --xy-note-fg:#F7ECD2;
  --xy-note-line:rgba(232,184,75,.45);
  --xy-note-mute:#A2957A;
  --xy-opt-bg:rgba(0,0,0,.6);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#262019;
  --xy-opt-wrong-line:#6B5A42;
  --xy-optk-bg:rgba(0,0,0,.8);
  --xy-optk-line:rgba(232,184,75,.34);
  --xy-page-bg:radial-gradient(132% 124% at 8% 0%,#3E2E17 0%,#2A2013 26%,#1A150E 62%,#100D08 100%);
  --xy-sh:0,0,0;
  --xy-stage:#0A0806;
  --xy-sub-bg:linear-gradient(180deg,#241C12 0%,#130F09 100%);
  --xy-sub-cn:#EDE0C8;
  --xy-sub-cn-dim:#A6977A;
  --xy-sub-en:#FFF6E2;
  --xy-sub-hl:#7A3A16;
  --xy-sub-hl-fg:#FFF6E2;
  --xy-txt:#F3E7D2;
  --xy-wine:#7A3A16;
}

/* ============ 暖白纸感（明亮）—— 暖米白，不刺眼；灯全开、投影很亮的时候用它 ============ */
html[data-xytheme="paper"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 12% 0%,#FFFFFF 0%,#FAF6EE 40%,#EFE8DB 100%);
  --phv-chip-bg:#F7F2E8;
  --phv-chip-line:#E8DFCE;
  --phv-ink:#2A251D;
  --phv-let-bg:#EBE2D2;
  --phv-let-fg:#4A4131;
  --phv-let-hi:#DFD4BF;
  --phv-line:#E0D6C4;
  --phv-mut:#7A6E5C;
  --phv-panel-bg:linear-gradient(180deg,rgba(255,253,248,.97),rgba(243,236,224,.97));
  --phv-panel-line:rgba(255,255,255,.95);
  --phv-pop-bg:rgba(255,253,248,.99);
  --phv-pop-line:#E4DAC8;
  --phv-sym-bg:#FFFFFF;
  --phv-sym-fg:#26303A;
  --phv-sym-hi:#F1ECE1;
  --phv-sym-line:#E4DAC8;
  --wb-bg:#FDFAF3;
  --wb-empty:#93876F;
  --wb-line:#EBE2D0;
  --wb-mean:#4E4638;
  --wb-phon-bg:#F1EADC;
  --wb-phon-fg:#5A5140;
  --wb-phon-lb:#8C8069;
  --wb-phon-line:#E2D8C4;
  --wb-phon-on-bg:#F1E9D9;
  --wb-phon-on-fg:#2E2A22;
  --wb-phon-on-lb:#4A4131;
  --wb-phon-on-line:#DED2BA;
  --wb-phon-on-ring:#CDBFA2;
  --wb-word:#26303A;
  --wc-bg:linear-gradient(180deg,#FFFFFF 0%,#FAF6EE 100%);
  --wc-chip-bg:#F3ECDF;
  --wc-chip-fg:#4A4131;
  --wc-cn:#33393F;
  --wc-ink:#26303A;
  --wc-line:#E3D9C7;
  --wc-ph:#A8701E;
  --wc-sep:#EFE7D8;
  --wc-sub:#6E6350;
  --xy-accent:#A8701E;
  --xy-bar:#E7E0D3;
  --xy-bar-line:#CFC5B3;
  --xy-btn:#EFE8DA;
  --xy-btn-hi:#E6DCC8;
  --xy-btn-hi-line:#B9AB93;
  --xy-btn-line:#D3C8B6;
  --xy-card:rgba(255,255,255,.84);
  --xy-card-line:rgba(120,90,40,.20);
  --xy-edge:rgba(60,48,32,.05);
  --xy-edge-hi:rgba(60,48,32,.12);
  --xy-edge-hi-line:rgba(60,48,32,.26);
  --xy-edge-line:rgba(60,48,32,.10);
  --xy-faint:#9A8F7E;
  --xy-field:#F7F3EB;
  --xy-field-hi:#EDE7DB;
  --xy-field-line:#C9BFAE;
  --xy-gold:#A8701E;
  --xy-mut:#6B6152;
  --xy-note-bg:rgba(255,246,226,.94);
  --xy-note-ct:#9A6B12;
  --xy-note-fg:#4A3E22;
  --xy-note-line:rgba(196,150,50,.42);
  --xy-note-mute:#A2967C;
  --xy-opt-bg:rgba(38,30,20,.86);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#4A4335;
  --xy-opt-wrong-line:#8C8271;
  --xy-optk-bg:rgba(24,18,10,.92);
  --xy-optk-line:rgba(120,90,40,.34);
  --xy-page-bg:radial-gradient(132% 124% at 12% 0%,#FDFAF4 0%,#F4EFE5 38%,#E9E2D5 100%);
  --xy-sh:90,75,55;
  --xy-stage:#1A1510;
  --xy-sub-bg:linear-gradient(180deg,#FDFAF3 0%,#F5EFE3 100%);
  --xy-sub-cn:#5A5244;
  --xy-sub-cn-dim:#8B8271;
  --xy-sub-en:#2A251D;
  --xy-sub-hl:#E4C77E;
  --xy-sub-hl-fg:#33260A;
  --xy-txt:#332C22;
  --xy-wine:#9E2B22;
}

/* ============ 晨光（明亮）—— 暖白 + 淡粉金，像清晨的教室；灯全开、投影亮的时候用它 ============ */
html[data-xytheme="dawn"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 12% 0%,#FFF6EE 0%,#FBEADF 40%,#F3DCD2 100%);
  --phv-chip-bg:#FAF1ED;
  --phv-chip-line:#D4BFB5;
  --phv-ink:#33261F;
  --phv-let-bg:#F8ECE6;
  --phv-let-fg:#5F3024;
  --phv-let-hi:#F5E3DB;
  --phv-line:#C9B4AB;
  --phv-mut:#87766E;
  --phv-panel-bg:linear-gradient(180deg,rgba(255,255,255,0.97),rgba(250,234,225,0.97));
  --phv-panel-line:rgba(255,255,255,.95);
  --phv-pop-bg:rgba(254,253,252,0.99);
  --phv-pop-line:#CDB8AE;
  --phv-sym-bg:#FFFFFF;
  --phv-sym-fg:#331F1D;
  --phv-sym-hi:#FAEAE1;
  --phv-sym-line:#D0BBB2;
  --wb-bg:#FEFBFA;
  --wb-empty:#938178;
  --wb-line:#D0BBB2;
  --wb-mean:#5D4E46;
  --wb-phon-bg:#FAEFEB;
  --wb-phon-fg:#6B3426;
  --wb-phon-lb:#8B7A71;
  --wb-phon-line:#D4BFB5;
  --wb-phon-on-bg:#F7E8E2;
  --wb-phon-on-fg:#33261F;
  --wb-phon-on-lb:#33261F;
  --wb-phon-on-line:#B9A59C;
  --wb-phon-on-ring:#A6938A;
  --wb-word:#582F24;
  --wc-bg:linear-gradient(180deg,#FFFFFF 0%,#FCF5F2 100%);
  --wc-chip-bg:#F9EDE8;
  --wc-chip-fg:#623125;
  --wc-cn:#522E23;
  --wc-ink:#33261F;
  --wc-line:#CDB8AE;
  --wc-ph:#C4762A;
  --wc-sep:#F7E7E0;
  --wc-sub:#78685F;
  --xy-accent:#C4762A;
  --xy-bar:#E7D1C7;
  --xy-bar-line:#CDB8AE;
  --xy-btn:#FBF4F2;
  --xy-btn-hi:#FDFAF9;
  --xy-btn-hi-line:#A6938A;
  --xy-btn-line:#C5B0A7;
  --xy-card:rgba(255,252,249,0.86);
  --xy-card-line:rgba(196,118,42,0.24);
  --xy-edge:rgba(51,38,31,0.05);
  --xy-edge-hi:rgba(51,38,31,0.12);
  --xy-edge-hi-line:rgba(196,118,42,0.5);
  --xy-edge-line:rgba(51,38,31,0.1);
  --xy-faint:#9F8C83;
  --xy-field:#FBEDE4;
  --xy-field-hi:#EDD7CD;
  --xy-field-line:#BDA9A0;
  --xy-gold:#C4762A;
  --xy-mut:#7C6B63;
  --xy-note-bg:rgba(249,230,199,0.95);
  --xy-note-ct:#C4762A;
  --xy-note-fg:#6B3426;
  --xy-note-line:rgba(196,118,42,0.46);
  --xy-note-mute:#97857C;
  --xy-opt-bg:rgba(88,47,36,0.86);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#B9A59C;
  --xy-opt-wrong-line:#8F7D75;
  --xy-optk-bg:rgba(51,38,31,0.92);
  --xy-optk-line:rgba(196,118,42,0.44);
  --xy-page-bg:radial-gradient(132% 124% at 12% 0%,#FFF6EE 0%,#FBEADF 38%,#F3DCD2 100%);
  --xy-sh:90,75,55;
  --xy-stage:#665C58;
  --xy-sub-bg:linear-gradient(180deg,#FEFCFA 0%,#FAF1ED 100%);
  --xy-sub-cn:#76665E;
  --xy-sub-cn-dim:#AA978E;
  --xy-sub-en:#17110E;
  --xy-sub-hl:#E1B8B0;
  --xy-sub-hl-fg:#803928;
  --xy-txt:#33261F;
  --xy-wine:#B0442E;
}

/* ============ 沙丘（明亮）—— 米砂底 + 陶土色，柔和不反光；比纯白护眼得多 ============ */
html[data-xytheme="sand"]{
  --f-mono:"Consolas","SF Mono","Roboto Mono",Menlo,"Courier New",monospace;
  --f-sans:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --f-serif:"Noto Serif SC","Source Han Serif SC",Georgia,Cambria,"Times New Roman",serif;
  --phv-bg:radial-gradient(130% 122% at 12% 0%,#FBF5E8 0%,#F0E6D2 40%,#E3D6BC 100%);
  --phv-chip-bg:#F4EFE4;
  --phv-chip-line:#C7BAA2;
  --phv-ink:#322A1C;
  --phv-let-bg:#F0E8DA;
  --phv-let-fg:#513520;
  --phv-let-hi:#E9DEC9;
  --phv-line:#BCB099;
  --phv-mut:#807662;
  --phv-panel-bg:linear-gradient(180deg,rgba(255,255,255,0.97),rgba(240,231,212,0.97));
  --phv-panel-line:rgba(255,255,255,.95);
  --phv-pop-bg:rgba(253,253,251,0.99);
  --phv-pop-line:#C0B49C;
  --phv-sym-bg:#FFFFFF;
  --phv-sym-fg:#2B201C;
  --phv-sym-hi:#F0E7D4;
  --phv-sym-line:#C3B79F;
  --wb-bg:#FCFAF7;
  --wb-empty:#8A806C;
  --wb-line:#C3B79F;
  --wb-mean:#59503F;
  --wb-phon-bg:#F2EDE1;
  --wb-phon-fg:#5A3821;
  --wb-phon-lb:#837966;
  --wb-phon-line:#C7BAA2;
  --wb-phon-on-bg:#EDE4D3;
  --wb-phon-on-fg:#322A1C;
  --wb-phon-on-lb:#322A1C;
  --wb-phon-on-line:#AEA28C;
  --wb-phon-on-ring:#9C917C;
  --wb-word:#4C3420;
  --wc-bg:linear-gradient(180deg,#FFFFFF 0%,#F7F4EC 100%);
  --wc-chip-bg:#F0EADC;
  --wc-chip-fg:#533621;
  --wc-cn:#48321F;
  --wc-ink:#322A1C;
  --wc-line:#C0B49C;
  --wc-ph:#9A6B22;
  --wc-sep:#ECE3D1;
  --wc-sub:#726856;
  --xy-accent:#9A6B22;
  --xy-bar:#D8CCB2;
  --xy-bar-line:#C0B49C;
  --xy-btn:#F7F3EB;
  --xy-btn-hi:#FBF9F6;
  --xy-btn-hi-line:#9C917C;
  --xy-btn-line:#B9AD96;
  --xy-card:rgba(254,252,247,0.86);
  --xy-card-line:rgba(154,107,34,0.24);
  --xy-edge:rgba(50,42,28,0.05);
  --xy-edge-hi:rgba(50,42,28,0.12);
  --xy-edge-hi-line:rgba(154,107,34,0.5);
  --xy-edge-line:rgba(50,42,28,0.1);
  --xy-faint:#958A76;
  --xy-field:#F3EAD9;
  --xy-field-hi:#DED1B7;
  --xy-field-line:#B1A68F;
  --xy-gold:#9A6B22;
  --xy-mut:#756B59;
  --xy-note-bg:rgba(245,229,198,0.95);
  --xy-note-ct:#9A6B22;
  --xy-note-fg:#5A3821;
  --xy-note-line:rgba(154,107,34,0.46);
  --xy-note-mute:#8E836F;
  --xy-opt-bg:rgba(76,52,32,0.86);
  --xy-opt-fg:#FFFFFF;
  --xy-opt-wrong:#AEA28C;
  --xy-opt-wrong-line:#877D69;
  --xy-optk-bg:rgba(50,42,28,0.92);
  --xy-optk-line:rgba(154,107,34,0.44);
  --xy-page-bg:radial-gradient(132% 124% at 12% 0%,#FBF5E8 0%,#F0E6D2 38%,#E3D6BC 100%);
  --xy-sh:90,75,55;
  --xy-stage:#5F5A4F;
  --xy-sub-bg:linear-gradient(180deg,#FCFBF8 0%,#F4EFE4 100%);
  --xy-sub-cn:#706654;
  --xy-sub-cn-dim:#A0957F;
  --xy-sub-en:#16130D;
  --xy-sub-hl:#D3BAAD;
  --xy-sub-hl-fg:#693E23;
  --xy-txt:#322A1C;
  --xy-wine:#8A4A28;
}
