/* =============================================================
   SQB PULSE —— 主题包
   -------------------------------------------------------------
   载入顺序：pulse.css（结构与排版） → theme.css（本文件，只覆盖颜色变量）
   生效方式：<html data-theme="国庆主题id">，由后台「主题皮肤」页写入 settings.site_theme
   新增主题：① 这里加一段 [data-theme="id"] ② app/Models/Theme.php 注册元数据
   ============================================================= */

/* ⚠️ 2026-10-27 全站可读性总审：18 个主题的「底色 vs 四级文字」逐项算了 WCAG 对比度，
   发现三处**历史遗留**的不达标（与本次改动无关），已修正为达标值：
     · deepspace  --dim  #5a6788(3.62) → #6f7b97(4.81)   暗底 → 弱层级该提亮
     · qingming   --muted #5f7d76(4.18) → #4a615c(6.21)  浅底 → 弱层级该压暗
                  --dim   #95ada8(2.22) → #61716d(4.79)
     · mourning   --dim   #9aa0a8(2.39) → #686c71(4.80)
   现在 18/18 全部 ≥4.5。以后改任何主题的 --ink 系列，请照此再算一遍。 */

/* 视觉层总序（整改 #14：把整套皮肤的「单一事实源 / 加载顺序」写在这里，避免再陷入特异性战争）：
   1) pulse.css       结构与排版 + 全部语义变量（:root 里定义，唯一事实源）
   2) theme.css       本文件，只覆盖颜色类语义变量（[data-theme="id"]），不写 !important
   3) fx.css          视觉增强层（开关 site_fx），纯动效/光效类，不碰语义变量
   4) ui-flat.css     扁平化覆盖层（开关 ui_flat），仅改圆角/阴影/按钮观感
   5) partnership.css 渠道合作页专属，⚠️ 必须排在所有通用层之后（同特异性靠顺序定胜负）
   规则：任何「颜色/字号」一律走 pulse.css 的语义变量，主题只在 (2) 覆盖变量；
        严禁在 (3)(4)(5) 用整文件 !important 覆盖变量 —— 真要覆盖就改 (2) 的变量值。 */

/* 顶栏一级菜单墨色：pulse.css 默认给「源站深藏青 #002742」，但页面**总是**带
   data-theme 属性（默认 dawn），所以不能写成 `[data-theme]{...}` —— 那会把默认主题
   的深藏青也一起覆盖回 --ink，等于白改。只有「换过主题」时才需要跟着主文字色走，
   否则国庆红/端午绿主题的顶栏会留在一块死板的深藏青上，与整站配色打架。
   放在所有主题段之前：与各 [data-theme="id"] 同特异性，靠载入顺序取胜。 */
html:not([data-theme="dawn"]){ --nav-ink:var(--ink); }

/* =============================================================
   bold 通用底座 —— 所有「大面积实色底」主题共用
   -------------------------------------------------------------
   历史：这套规则最早是为 deepspace（暗色）写的；国庆做红底时又被整套复制了一遍，
        两份几乎逐行相同，等于把「一个 bug 修两遍、漏一遍」变成常态。
   现在每个 bold 主题只须提供 7 个色值 token，由这里统一生成 ——
        不会再出现「某个组件忘了改、在该主题下脏成一片」。

   触发方式：<html data-theme="x" data-tone="bold">，data-tone 由 Theme::tone() 输出。

   每个 bold 主题必须提供的 token（缺了会用到下面的兜底值，不会失效）：
     --d1-rgb / --d2-rgb / --d3-rgb  底色由浅到深的三档 RGB 通道（蒙版/阴影/页脚/滚动条）
     --halo-rgb   天光高光      --ring-rgb  描边与微光
     --warm-rgb   暖反射光      --btn-ink   金底按钮上的深字色

   为什么用 RGB 通道而不是整串 rgba：r/g/b 三个数字能被 rgb(var(--x)/alpha)
   在不同透明度上反复复用，一个色只需声明一次；写成死 rgba，换个主题就要整段誊抄。

   ⚠️ deepspace 被 :not() 排除：它还留着自己那份副本（额外改了 canvas / aurora / noise），
      本轮为免回归风险不动它，将来可照此收敛。
   ============================================================= */
html[data-tone="bold"]:not([data-theme="deepspace"]) .cosmos{
  background:radial-gradient(120% 80% at 12% -10%,rgb(var(--halo-rgb,255 206 110)/.30),transparent 58%),
             linear-gradient(180deg,var(--bg),var(--bg-2));
}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard::after{
  background:linear-gradient(180deg,rgb(var(--d1-rgb,74 7 16)/.30),rgb(var(--d2-rgb,58 6 12)/.78) 46%,rgb(var(--d3-rgb,45 5 10)/.95));
}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard--plate::after{
  background:linear-gradient(180deg,rgb(var(--d1-rgb,74 7 16)/0) 30%,rgb(var(--d2-rgb,58 6 12)/.86) 64%,rgb(var(--d3-rgb,45 5 10)/.96) 100%);
}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard__bg{opacity:.46}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard:hover .casecard__bg{opacity:.58}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard h3{color:var(--ink);text-shadow:0 2px 18px rgb(var(--d3-rgb,45 5 10)/.92)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard p{color:var(--ink-2);text-shadow:0 2px 14px rgb(var(--d3-rgb,45 5 10)/.88)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard__cat{color:var(--accent)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .casecard--plate .casecard__bg{opacity:1}
/* 数字：白到主题金，强调色自动跟随主题 */
html[data-tone="bold"]:not([data-theme="deepspace"]) .metric b .counter{
  background:linear-gradient(180deg,#ffffff,var(--gold,var(--brand)));
  -webkit-background-clip:text;background-clip:text;
}
/* 客户 Logo 墙：深底会吞掉深色 logo，用暖白描边勾出轮廓 */
html[data-tone="bold"]:not([data-theme="deepspace"]) .lgcell img{
  filter:drop-shadow(0 0 2px rgba(255,255,255,.62)) drop-shadow(0 0 9px rgb(var(--warm-rgb,255 190 120)/.38));
  opacity:.95;
}
html[data-tone="bold"]:not([data-theme="deepspace"]) .lgcell__a:hover img{
  filter:drop-shadow(0 0 3px rgba(255,255,255,.88)) drop-shadow(0 0 14px rgb(var(--warm-rgb,255 190 120)/.58));
  opacity:1;
}
/* 设备截图框保持白底：这是「图里的内容」，不该跟着主题变暗 */
html[data-tone="bold"]:not([data-theme="deepspace"]) .device__media{background:linear-gradient(180deg,#ffffff 0%,#f4f7fc 62%,#e8edf7 100%)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .vstage__frame{
  box-shadow:0 0 0 7px rgba(255,255,255,.05),
             0 48px 96px -32px rgb(var(--halo-rgb,255 206 110)/.60),
             0 0 90px -30px rgb(var(--warm-rgb,255 190 120)/.45);
}
/* 主视觉：pulse.css 默认那圈蓝紫光环压在深底上非常脏，统一换成主题自己的光色 */
html[data-tone="bold"]:not([data-theme="deepspace"]) .hero__halo{
  background:radial-gradient(circle,rgb(var(--halo-rgb,255 206 110)/.20),rgb(var(--halo-rgb,255 206 110)/.13) 38%,transparent 66%);
}
html[data-tone="bold"]:not([data-theme="deepspace"]) .hero__ring{border-color:rgb(var(--ring-rgb,255 224 150)/.32)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .hero__ring--2{border-color:rgb(var(--ring-rgb,255 224 150)/.20)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .hero__ring--1::after{box-shadow:0 0 18px 4px rgb(var(--ring-rgb,255 224 150)/.62)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .hero__ring--2::after{box-shadow:0 0 20px 5px rgb(var(--warm-rgb,255 190 120)/.60)}
/* 页脚：透明渐变会把文字落在实色底上，给一块实底让深浅关系回到同一层 */
html[data-tone="bold"]:not([data-theme="deepspace"]) .footer{
  background:linear-gradient(180deg,rgb(var(--d2-rgb,58 6 12)/.30),rgb(var(--d3-rgb,45 5 10)/.92));
  border-top-color:var(--line-2);
}
/* 按钮：pulse.css 那套是按「浅底 + 深字」写的，深底主题整套反相后必然失效，必须翻过来。
   · .btn--primary 原本 = 品牌渐变 + 白字，但渐变末端常是亮金，白字只剩约 2:1；
     改成「金底 + 深字」，在满屏实色底上也是最跳的一颗。
   · .btn--dark 原本 background:var(--ink) + color:#fff，反相后 --ink 变暖白，
     直接退化成白底白字彻底隐形；改成浅底深字。 */
html[data-tone="bold"]:not([data-theme="deepspace"]) .btn--primary{
  background:linear-gradient(100deg,var(--gold,var(--brand)) 0%,var(--brand-2,var(--brand)) 52%,var(--accent-2,var(--brand)) 100%);
  color:var(--btn-ink,#7d0d18);
  box-shadow:0 16px 34px -16px rgb(var(--d3-rgb,45 5 10)/.55);
}
html[data-tone="bold"]:not([data-theme="deepspace"]) .btn--primary::after{background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55),transparent 80%)}
html[data-tone="bold"]:not([data-theme="deepspace"]) .btn--dark{background:rgba(255,253,252,.94);color:var(--btn-ink,#7d0d18)}
html[data-tone="bold"]:not([data-theme="deepspace"]) ::selection{background:rgb(var(--ring-rgb,255 224 150)/.40);color:rgb(var(--d3-rgb,45 5 10))}
html[data-tone="bold"]:not([data-theme="deepspace"]) ::-webkit-scrollbar-track{background:rgb(var(--d1-rgb,74 7 16))}
html[data-tone="bold"]:not([data-theme="deepspace"]) ::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--brand-3,var(--brand)),var(--gold,var(--brand)));
  border-color:rgb(var(--d1-rgb,74 7 16));
}

/* -------------------------------------------------------------
   1) dawn —— 晨曦白（默认基线，变量在 pulse.css 里定义，此处仅兜底）
   ------------------------------------------------------------- */
[data-theme="dawn"]{
  --ribbon:linear-gradient(90deg,var(--brand),var(--brand-2) 45%,var(--brand-3) 75%,#e0509a);
}

/* -------------------------------------------------------------
   2) national —— 国庆节 · 国旗红 + 五星金   【tone: bold · 大面积实红底】
   -------------------------------------------------------------
   ⚠️ 本主题是「深底」形态，与其余近白主题不是同一套：
     · --bg / --bg-2 / --bg-3 全部为实色红（不再是 #fff 级近白），
       由 .cosmos 固定层全屏铺开，访客一进站就踩在大面积红底上；
     · 因为大量 section 本身透明、文字直接压在 --bg 上，
       整套文字变量必须同步反相（--ink 转暖白），否则深红字配红底等于不可读；
     · --bg-3 是「卡片实底」，只取比 --bg 亮一档的红，保持卡片层次但不跳回白；
     · 下面那组覆写，是把 pulse.css 里**写死的蓝紫光效**换成红金。
       （这些地方不读变量，只能按选择器针对性换色，清单照抄自 deepspace，
        它早已把「暗色主题要补丁哪些组件」跑过一遍。）
     新增/调整本主题时牢记：动 --bg 的深浅，就要同步检查 --ink 系列的可读性。
   ------------------------------------------------------------- */
[data-theme="national"]{
  --bg:#b51226; --bg-2:#8b0a1a; --bg-3:#9c0f22;
  --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.10);
  --surface-3:rgba(255,255,255,.06);
  --line:rgba(255,214,150,.18); --line-2:rgba(255,214,150,.32); --line-3:rgba(255,214,150,.50);
  /* 四级文字按「压在最亮的一档 #b51226 上」校准 WCAG AA（≥4.5:1）：
     ink 6.68 / ink-2 5.79 / muted 5.10 / dim 4.60 —— 间距 0.89 / 0.69 / 0.50，层次拉得开。
     因为 --bg-2、--bg-3 都刻意比 --bg 深，文字压到渐层深区、卡片上只会更安全（ink 达 9.54 / 8.21）。
     ⚠️ 曾改用标准国旗正红 #c8102e（L=0.1285），结果四级被挤进 4.5~5.8 的窄缝，肉眼几乎分不出层级；
        收深到 #b51226（L=0.1040）才腾出层次空间 —— 底色不是越亮越好。
        若把 --bg 调亮，必须重算这四级并压缩目标对比度差。 */
  --ink:#fffcfb; --ink-2:#f5eae8; --muted:#ecdbd8; --dim:#e6cfcb;
  /* 强调色必须是「金」而不是「红」——红已经是背景了。
     #ff5a52 这类亮红压在 #b51226 上只有 ~2.3:1，而 --brand 大量服务于
     .nav__link:hover / .mega 面板 / .link-arrow:hover，等于鼠标一悬停文字就消失。
     取淡金 #ffe08a 后是 5.29:1。想改这里务必先算对比度。 */
  --brand:#ffe08a; --brand-2:#ffd25c; --brand-3:#ffb347;
  --accent:#ffe08a; --accent-2:#ffb347; --gold:#ffdc7a;
  --grad:linear-gradient(100deg,#c8102e 0%,#e8452c 34%,#f0a41c 68%,#ffd24a 100%);
  --grad-soft:linear-gradient(100deg,rgba(255,180,80,.16),rgba(240,164,28,.14));
  --nav-bg:rgba(58,5,12,.80); --sheet-bg:rgba(45,4,10,.95);
  --mega-bg:#6b0e17;                    /* 国庆：顶栏大面板外框（深红实底） */
  --mega-band:rgba(255,255,255,.06);    /* 国庆：面板内容区（比外框亮一档） */
  --mega-pill:transparent;              /* 国庆：三级药丸（透明底 + 细边） */
  --mega-head-bg:rgba(255,255,255,.10); /* 国庆：二级悬停药丸 / 占位瓦片底 */
  --mega-head-bg-on:rgba(255,180,80,.18);/* 国庆：二级/三级悬停激活（淡金） */
  --overlay:rgba(26,3,7,.88); --media-bg:#3d050c;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.90);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.72);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.86);
  --ribbon:linear-gradient(90deg,#c8102e 0 62%,#ffd24a 62% 100%);

  /* ---- 四个非颜色维度（变量定义见 pulse.css 的「非颜色差异维度」段） ---- */
  /* ① 形状：收方一点。国庆讲庄重规整，圆角全站缩到 0.72 倍
        （22px→15.8px / 14px→10.1px），跟春节的喜庆圆润拉开。 */
  --radius-mul:.72;
  /* ② 光晕：pulse.css 默认的三团是蓝 / 紫 / 粉，压在红旗底上会把红洗成脏紫。
        换成金 / 橙 / 深红三团，背景才有「礼花映天」的暖意。
        ⚠️ 这是历史遗留缺陷：mourning / deepspace 早就自己覆写了 .cosmos__aurora，
           其余主题一直吃默认蓝紫，只有变成深红底后才暴露。 */
  --aura-a:rgba(255,196,92,.34); --aura-b:rgba(255,124,64,.24); --aura-c:rgba(122,10,26,.42);
  --aura-op:.62;
  /* ③ 纹理：五星 + 金点的散点平铺，近看有细节、远看只是质感 */
  --bg-texture:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170'%3E%3Cg fill='%23ffd98a'%3E%3Cpath d='M22 6l3.5 7.2 7.9 1.1-5.7 5.6 1.3 7.9L22 24.6 15.1 28l1.3-7.9-5.7-5.6 7.9-1.1z'/%3E%3Ccircle cx='104' cy='44' r='2'/%3E%3Ccircle cx='146' cy='112' r='1.5'/%3E%3Ccircle cx='62' cy='132' r='1.7'/%3E%3Ccircle cx='128' cy='26' r='1.2'/%3E%3C/g%3E%3C/svg%3E");
  --tex-op:.20; --tex-size:170px 170px;
  /* ④ 质感：网格转金色并压弱，颗粒加重让红底不发「塑料感」 */
  --grid-op:.26; --grid-line:rgba(255,214,150,.14); --noise-op:.05;

  /* ---- bold 底座 token：供本文件顶部「bold 通用底座」消费 ----
     原先贴在这里的那份逐组件覆写清单已上提到共享底座，本主题只留色值。 */
  --d1-rgb:74 7 16; --d2-rgb:58 6 12; --d3-rgb:45 5 10;
  --halo-rgb:255 206 110; --ring-rgb:255 224 150; --warm-rgb:255 190 120; --btn-ink:#7d0d18;
}
/* -------------------------------------------------------------
   3) party —— 建党节 · 党旗红金
   ------------------------------------------------------------- */
[data-theme="party"]{
  --bg:#9a0f22; --bg-2:#6f0b18; --bg-3:#7e0c1c;
  --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.10);
  --surface-3:rgba(255,255,255,.06);
  --line:rgba(255,230,158,.18); --line-2:rgba(255,230,158,.32); --line-3:rgba(255,230,158,.50);
  /* 四级文字按目标对比度 6.70 / 5.80 / 5.10 / 4.60 反解，
     三档底色刻意做成 --bg 最亮，文字压到渐层深区或卡片上只会更安全。 */
  --ink:#f2e0e1; --ink-2:#ebced2; --muted:#e5bfc3; --dim:#e0b3b9;
  --brand:#ffe08a; --brand-2:#ffd45c; --brand-3:#ffb347;
  --accent:#ffe08a; --accent-2:#ffb347; --gold:#ffd45c;
  --grad:linear-gradient(100deg,#9a0f22 0%,#ff8246 34%,#ffd45c 70%,#fff3cf 100%);
  --grad-soft:linear-gradient(100deg,rgba(255,214,130,.16),rgba(255,230,158,.14));
  --nav-bg:rgba(49,5,11,.80); --sheet-bg:rgba(38,4,8,.95);
  --mega-bg:#6f0b18; --mega-band:rgba(255,255,255,.06); --mega-pill:transparent;
  --mega-head-bg:rgba(255,255,255,.10); --mega-head-bg-on:rgba(255,230,158,.18);
  --overlay:rgba(38,4,8,.88); --media-bg:#31050b;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.90);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.72);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.86);
  --ribbon:linear-gradient(90deg,#b4141c 0 58%,#d4af37 58% 100%);

  /* ---- bold 底座 token：供本文件顶部「bold 通用底座」消费 ---- */
  --d1-rgb:63 6 14; --d2-rgb:49 5 11; --d3-rgb:38 4 8;
  --halo-rgb:255 214 130; --ring-rgb:255 230 158; --warm-rgb:255 190 120; --btn-ink:#41060e;

  /* ---- 四个非颜色差异维度（变量定义见 pulse.css「非颜色差异维度」段） ---- */
  --radius-mul:.85;
  --aura-a:rgba(255,200,96,.30); --aura-b:rgba(255,130,70,.24); --aura-c:rgba(118,8,26,.46); --aura-op:.62;
  --bg-texture:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27170%27%20height%3D%27170%27%3E%3Cg%20fill%3D%27%23ffd98a%27%3E%3Cpath%20d%3D%27M22%206l3.5%207.2%207.9%201.1-5.7%205.6%201.3%207.9L22%2024.6%2015.1%2028l1.3-7.9-5.7-5.6%207.9-1.1z%27%2F%3E%3Ccircle%20cx%3D%27104%27%20cy%3D%2744%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%27146%27%20cy%3D%27112%27%20r%3D%271.5%27%2F%3E%3Ccircle%20cx%3D%2762%27%20cy%3D%27132%27%20r%3D%271.7%27%2F%3E%3Ccircle%20cx%3D%27128%27%20cy%3D%2726%27%20r%3D%271.2%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --tex-op:.20; --tex-size:170px 170px;
  --grid-op:.24; --grid-line:rgba(255,220,158,.14); --noise-op:.05;
}

/* -------------------------------------------------------------
   4) army —— 建军节 · 军旗红 + 橄榄绿 + 八一金
   ------------------------------------------------------------- */
[data-theme="army"]{
  --bg:#e4e9e1; --bg-2:#cfd7ca; --bg-3:#f3f5f2;
  --surface:rgba(255,255,255,.84); --surface-2:rgba(255,255,255,.96);
  --surface-3:rgba(75,107,58,.06);
  --line:rgba(64,92,50,.16); --line-2:rgba(64,92,50,.28); --line-3:rgba(64,92,50,.40);
  --ink:#272827; --ink-2:#3e403d; --muted:#525451; --dim:#626561;
  --brand:#b4141e; --brand-2:#8c5a12; --brand-3:#4b6b3a;
  --accent:#4b6b3a; --accent-2:#d9a520; --gold:#c8901a;
  --grad:linear-gradient(100deg,#a8121c 0%,#c2452a 40%,#d9a520 74%,#7f9a4a 100%);
  --grad-soft:linear-gradient(100deg,rgba(168,18,28,.12),rgba(75,107,58,.14));
  --shadow-card:0 22px 50px -30px rgba(40,60,30,.32);
  --shadow-soft:0 10px 30px -18px rgba(40,60,30,.26);
  --shadow-drop:0 40px 80px -40px rgba(40,60,30,.32);
  --ribbon:linear-gradient(90deg,#a8121c 0 40%,#d9a520 40% 66%,#4b6b3a 66% 100%);
}

/* -------------------------------------------------------------
   5) mourning —— 悼念日 · 素白肃穆（全站去色）
   ------------------------------------------------------------- */
[data-theme="mourning"]{
  --bg:#f3f4f5; --bg-2:#e8e9eb; --bg-3:#ffffff;
  --surface:rgba(255,255,255,.86); --surface-2:rgba(255,255,255,.97);
  --surface-3:rgba(20,22,26,.05);
  --line:rgba(20,22,26,.14); --line-2:rgba(20,22,26,.26); --line-3:rgba(20,22,26,.38);
  --ink:#15171b; --ink-2:#3d4148; --muted:#6b7079; --dim:#686c71;
  --brand:#4a4f57; --brand-2:#6b7079; --brand-3:#2c3037;
  --accent:#5a6068; --accent-2:#4a4f57; --gold:#6b7079;
  --grad:linear-gradient(100deg,#2c3037 0%,#4a4f57 52%,#7c828b 100%);
  --grad-soft:linear-gradient(100deg,rgba(44,48,55,.10),rgba(107,112,121,.10));
  --nav-bg:rgba(255,255,255,.88);
  --shadow-card:0 22px 50px -32px rgba(20,22,26,.30);
  --shadow-soft:0 10px 30px -18px rgba(20,22,26,.26);
  --shadow-drop:0 40px 80px -44px rgba(20,22,26,.32);
  --ribbon:linear-gradient(90deg,#2c3037,#6b7079,#2c3037);
}
/* 去色：只作用于图片与视频，避免整页 filter 破坏固定定位与吸顶 */
html[data-theme="mourning"] img,
html[data-theme="mourning"] video{filter:grayscale(1) contrast(.96)}
html[data-theme="mourning"] .cosmos__aurora,
html[data-theme="mourning"] .pointer-glow,
html[data-theme="mourning"] .scanline,
html[data-theme="mourning"] .vstage__scan{display:none}
html[data-theme="mourning"] .hero__ring,
html[data-theme="mourning"] .portal__ring{border-color:rgba(20,22,26,.14)}

/* -------------------------------------------------------------
   6) teacher —— 教师节 · 桃李春晖（暖橙 + 常青绿）
   ------------------------------------------------------------- */
[data-theme="teacher"]{
  --bg:#f5e4d9; --bg-2:#efd3c0; --bg-3:#faf3ee;
  --surface:rgba(255,255,255,.84); --surface-2:rgba(255,255,255,.96);
  --surface-3:rgba(176,102,40,.06);
  --line:rgba(150,92,36,.16); --line-2:rgba(150,92,36,.28); --line-3:rgba(150,92,36,.40);
  --ink:#2a2725; --ink-2:#433e3b; --muted:#59524e; --dim:#6a625e;
  --brand:#d9702a; --brand-2:#e59a3c; --brand-3:#2f8f5b;
  --accent:#2f8f5b; --accent-2:#2f8f5b; --gold:#c8901a;
  --grad:linear-gradient(100deg,#d9702a 0%,#e59a3c 46%,#f0c46a 72%,#2f8f5b 100%);
  --grad-soft:linear-gradient(100deg,rgba(217,112,42,.12),rgba(47,143,91,.10));
  --shadow-card:0 22px 50px -30px rgba(140,80,20,.30);
  --shadow-soft:0 10px 30px -18px rgba(140,80,20,.26);
  --shadow-drop:0 40px 80px -40px rgba(140,80,20,.32);
  --ribbon:linear-gradient(90deg,#d9702a,#f0c46a 50%,#2f8f5b);
}

/* -------------------------------------------------------------
   7) dragon —— 端午节 · 青艾粽叶
   ------------------------------------------------------------- */
[data-theme="dragon"]{
  --bg:#dceae5; --bg-2:#c2dad2; --bg-3:#eff6f3;
  --surface:rgba(255,255,255,.84); --surface-2:rgba(255,255,255,.96);
  --surface-3:rgba(31,122,90,.06);
  --line:rgba(31,97,74,.16); --line-2:rgba(31,97,74,.28); --line-3:rgba(31,97,74,.40);
  --ink:#252827; --ink-2:#3c403e; --muted:#4f5453; --dim:#5f6563;
  --brand:#1f7a5a; --brand-2:#3f9d5f; --brand-3:#8a6b2f;
  --accent:#8a6b2f; --accent-2:#1f7a5a; --gold:#a8842a;
  --grad:linear-gradient(100deg,#166b4e 0%,#2f9a63 44%,#7fae4a 70%,#c8a44a 100%);
  --grad-soft:linear-gradient(100deg,rgba(31,122,90,.12),rgba(200,164,74,.12));
  --shadow-card:0 22px 50px -30px rgba(24,80,60,.30);
  --shadow-soft:0 10px 30px -18px rgba(24,80,60,.26);
  --shadow-drop:0 40px 80px -40px rgba(24,80,60,.32);
  --ribbon:linear-gradient(90deg,#166b4e,#3f9d5f 55%,#c8a44a);
}

/* -------------------------------------------------------------
   8) midautumn —— 中秋节 · 月白金桂 + 夜蓝
   ------------------------------------------------------------- */
[data-theme="midautumn"]{
  --bg:#101d47; --bg-2:#0c1533; --bg-3:#0d183a;
  --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.10);
  --surface-3:rgba(255,255,255,.06);
  --line:rgba(186,206,255,.18); --line-2:rgba(186,206,255,.32); --line-3:rgba(186,206,255,.50);
  /* 四级文字按目标对比度 6.70 / 5.80 / 5.10 / 4.60 反解，
     三档底色刻意做成 --bg 最亮，文字压到渐层深区或卡片上只会更安全。 */
  --ink:#a1a6b5; --ink-2:#949aac; --muted:#8a90a3; --dim:#81889d;
  --brand:#ffd75c; --brand-2:#f0c34e; --brand-3:#c9a63a;
  --accent:#ffd75c; --accent-2:#c9a63a; --gold:#f0c34e;
  --grad:linear-gradient(100deg,#101d47 0%,#3e56be 34%,#f0c34e 70%,#fff3cf 100%);
  --grad-soft:linear-gradient(100deg,rgba(150,180,255,.16),rgba(186,206,255,.14));
  --nav-bg:rgba(5,9,23,.80); --sheet-bg:rgba(4,7,18,.95);
  --mega-bg:#0c1533; --mega-band:rgba(255,255,255,.06); --mega-pill:transparent;
  --mega-head-bg:rgba(255,255,255,.10); --mega-head-bg-on:rgba(186,206,255,.18);
  --overlay:rgba(4,7,18,.88); --media-bg:#050917;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.90);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.72);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.86);
  --ribbon:linear-gradient(90deg,#1f3a6e 0 55%,#c99a12 55% 100%);

  /* ---- bold 底座 token：供本文件顶部「bold 通用底座」消费 ---- */
  --d1-rgb:7 12 29; --d2-rgb:5 9 23; --d3-rgb:4 7 18;
  --halo-rgb:150 180 255; --ring-rgb:186 206 255; --warm-rgb:255 214 140; --btn-ink:#070c1e;

  /* ---- 四个非颜色差异维度（变量定义见 pulse.css「非颜色差异维度」段） ---- */
  --radius-mul:1.15;
  --aura-a:rgba(120,156,255,.30); --aura-b:rgba(62,86,190,.24); --aura-c:rgba(26,42,110,.46); --aura-op:.62;
  --bg-texture:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27190%27%20height%3D%27190%27%3E%3Cg%20fill%3D%27%23ffe9a8%27%3E%3Ccircle%20cx%3D%2746%27%20cy%3D%2746%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%27120%27%20cy%3D%2738%27%20r%3D%271.6%27%2F%3E%3Ccircle%20cx%3D%2788%27%20cy%3D%27128%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%27160%27%20cy%3D%27112%27%20r%3D%271.5%27%2F%3E%3Ccircle%20cx%3D%2730%27%20cy%3D%27150%27%20r%3D%271.4%27%2F%3E%3Ccircle%20cx%3D%27150%27%20cy%3D%27160%27%20r%3D%271.8%27%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%27M104%2088a22%2022%200%20100%2030%2026%2026%200%20010-30z%27%20fill%3D%27%23ffe9a8%27%20opacity%3D%27.55%27%2F%3E%3C%2Fsvg%3E");
  --tex-op:.22; --tex-size:190px 190px;
  --grid-op:.30; --grid-line:rgba(186,206,255,.14); --noise-op:.04;
}

/* -------------------------------------------------------------
   9) spring —— 春节 · 中国红 + 明黄
   ------------------------------------------------------------- */
[data-theme="spring"]{
  --bg:#a3101f; --bg-2:#750c16; --bg-3:#860d19;
  --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.10);
  --surface-3:rgba(255,255,255,.06);
  --line:rgba(255,226,150,.18); --line-2:rgba(255,226,150,.32); --line-3:rgba(255,226,150,.50);
  /* 四级文字按目标对比度 6.70 / 5.80 / 5.10 / 4.60 反解，
     三档底色刻意做成 --bg 最亮，文字压到渐层深区或卡片上只会更安全。 */
  --ink:#f7e9e9; --ink-2:#f0d7d8; --muted:#eac7ca; --dim:#e5bbbe;
  --brand:#ffd75c; --brand-2:#ffcf49; --brand-3:#ffc06b;
  --accent:#ffd75c; --accent-2:#ffc06b; --gold:#ffcf49;
  --grad:linear-gradient(100deg,#a3101f 0%,#ff7846 34%,#ffcf49 70%,#fff3cf 100%);
  --grad-soft:linear-gradient(100deg,rgba(255,206,110,.16),rgba(255,226,150,.14));
  --nav-bg:rgba(52,5,10,.80); --sheet-bg:rgba(41,4,8,.95);
  --mega-bg:#750c16; --mega-band:rgba(255,255,255,.06); --mega-pill:transparent;
  --mega-head-bg:rgba(255,255,255,.10); --mega-head-bg-on:rgba(255,226,150,.18);
  --overlay:rgba(41,4,8,.88); --media-bg:#34050a;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.90);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.72);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.86);
  --ribbon:linear-gradient(90deg,#c8102e 0 55%,#e8b62c 55% 100%);

  /* ---- bold 底座 token：供本文件顶部「bold 通用底座」消费 ---- */
  --d1-rgb:67 7 13; --d2-rgb:52 5 10; --d3-rgb:41 4 8;
  --halo-rgb:255 206 110; --ring-rgb:255 226 150; --warm-rgb:255 176 92; --btn-ink:#44070d;

  /* ---- 四个非颜色差异维度（变量定义见 pulse.css「非颜色差异维度」段） ---- */
  --radius-mul:1.35;
  --aura-a:rgba(255,190,90,.30); --aura-b:rgba(255,120,70,.24); --aura-c:rgba(128,8,22,.46); --aura-op:.62;
  --bg-texture:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27150%27%20height%3D%27150%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23ffcf49%27%20stroke-width%3D%271.6%27%3E%3Ccircle%20cx%3D%2738%27%20cy%3D%2738%27%20r%3D%2715%27%2F%3E%3Crect%20x%3D%2734%27%20y%3D%2734%27%20width%3D%278%27%20height%3D%278%27%2F%3E%3Ccircle%20cx%3D%27112%27%20cy%3D%2796%27%20r%3D%2715%27%2F%3E%3Crect%20x%3D%27108%27%20y%3D%2792%27%20width%3D%278%27%20height%3D%278%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23ffcf49%27%20opacity%3D%27.55%27%3E%3Ccircle%20cx%3D%2786%27%20cy%3D%2726%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%27112%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%27132%27%20cy%3D%2740%27%20r%3D%271.6%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --tex-op:.20; --tex-size:150px 150px;
  --grid-op:.24; --grid-line:rgba(255,214,150,.14); --noise-op:.05;
}

/* -------------------------------------------------------------
   10) lantern —— 元宵节 · 灯火团圆
   ------------------------------------------------------------- */
[data-theme="lantern"]{
  --bg:#9e3312; --bg-2:#72250d; --bg-3:#822a0f;
  --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.10);
  --surface-3:rgba(255,255,255,.06);
  --line:rgba(255,226,168,.18); --line-2:rgba(255,226,168,.32); --line-3:rgba(255,226,168,.50);
  /* 四级文字按目标对比度 6.70 / 5.80 / 5.10 / 4.60 反解，
     三档底色刻意做成 --bg 最亮，文字压到渐层深区或卡片上只会更安全。 */
  --ink:#fcf6f4; --ink-2:#f3e4e0; --muted:#ecd5ce; --dim:#e6c9c0;
  --brand:#ffd08a; --brand-2:#ffc46b; --brand-3:#ffbf95;
  --accent:#ffd08a; --accent-2:#ffbf95; --gold:#ffc46b;
  --grad:linear-gradient(100deg,#9e3312 0%,#ff803c 34%,#ffc46b 70%,#fff3cf 100%);
  --grad-soft:linear-gradient(100deg,rgba(255,190,120,.16),rgba(255,226,168,.14));
  --nav-bg:rgba(51,16,6,.80); --sheet-bg:rgba(40,13,4,.95);
  --mega-bg:#72250d; --mega-band:rgba(255,255,255,.06); --mega-pill:transparent;
  --mega-head-bg:rgba(255,255,255,.10); --mega-head-bg-on:rgba(255,226,168,.18);
  --overlay:rgba(40,13,4,.88); --media-bg:#331006;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.90);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.72);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.86);
  --ribbon:linear-gradient(90deg,#d3232a 0 50%,#f0b23c 50% 100%);

  /* ---- bold 底座 token：供本文件顶部「bold 通用底座」消费 ---- */
  --d1-rgb:65 21 7; --d2-rgb:51 16 6; --d3-rgb:40 13 4;
  --halo-rgb:255 190 120; --ring-rgb:255 226 168; --warm-rgb:255 150 80; --btn-ink:#421508;

  /* ---- 四个非颜色差异维度（变量定义见 pulse.css「非颜色差异维度」段） ---- */
  --radius-mul:1.25;
  --aura-a:rgba(255,186,110,.30); --aura-b:rgba(255,128,60,.24); --aura-c:rgba(120,30,10,.46); --aura-op:.62;
  --bg-texture:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27160%27%20height%3D%27160%27%3E%3Cg%20stroke%3D%27%23ffc46b%27%20stroke-width%3D%271.5%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M40%2020v10%27%2F%3E%3Cellipse%20cx%3D%2740%27%20cy%3D%2744%27%20rx%3D%2713%27%20ry%3D%2715%27%2F%3E%3Cpath%20d%3D%27M40%2059v6%27%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D%27%23ffc46b%27%20stroke-width%3D%271.4%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M112%20100v10%27%2F%3E%3Cellipse%20cx%3D%27112%27%20cy%3D%27124%27%20rx%3D%2713%27%20ry%3D%2715%27%2F%3E%3Cpath%20d%3D%27M112%20139v6%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23ffc46b%27%20opacity%3D%27.5%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2790%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%27130%27%20cy%3D%2724%27%20r%3D%271.8%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --tex-op:.20; --tex-size:160px 160px;
  --grid-op:.24; --grid-line:rgba(255,216,168,.14); --noise-op:.05;
}

/* -------------------------------------------------------------
   11) qingming —— 清明节 · 烟雨青
   ------------------------------------------------------------- */
[data-theme="qingming"]{
  --bg:#f3f8f7; --bg-2:#e5efee; --bg-3:#ffffff;
  --surface:rgba(255,255,255,.86); --surface-2:rgba(255,255,255,.97);
  --surface-3:rgba(42,92,84,.06);
  --line:rgba(42,92,84,.14); --line-2:rgba(42,92,84,.26); --line-3:rgba(42,92,84,.38);
  --ink:#152622; --ink-2:#2f4c46; --muted:#4a615c; --dim:#61716d;
  --brand:#3d7c6f; --brand-2:#5a9c8c; --brand-3:#8fa9a0;
  --accent:#3d7c6f; --accent-2:#5a9c8c; --gold:#8a9a6a;
  --grad:linear-gradient(100deg,#356f63 0%,#5a9c8c 52%,#9ab4a8 100%);
  --grad-soft:linear-gradient(100deg,rgba(53,111,99,.12),rgba(154,180,168,.14));
  --shadow-card:0 22px 50px -30px rgba(30,70,62,.28);
  --shadow-soft:0 10px 30px -18px rgba(30,70,62,.24);
  --shadow-drop:0 40px 80px -40px rgba(30,70,62,.30);
  --ribbon:linear-gradient(90deg,#356f63,#9ab4a8);

  /* ---- 非颜色维度：斜雨丝 + 压到极弱的网格 + 加重颗粒 —— 往「烟雨」走，不是换绿 ---- */
  --radius-mul:1.25;
  --aura-a:rgba(61,124,111,.26); --aura-b:rgba(90,156,140,.20); --aura-c:rgba(143,169,160,.16);
  --aura-op:.42;
  --bg-texture:repeating-linear-gradient(115deg,transparent 0 26px,rgba(61,124,111,.13) 26px 27px);
  --tex-op:1; --tex-size:auto;
  --grid-op:.16; --grid-line:rgba(53,111,99,.07); --noise-op:.055;  /* 颗粒最重：模拟雨雾噪点 */
}

/* -------------------------------------------------------------
   12) labor —— 劳动节 · 奋斗红 + 藏青
   ------------------------------------------------------------- */
[data-theme="labor"]{
  --bg:#f7e4e4; --bg-2:#f0caca; --bg-3:#fbf3f3;
  --surface:rgba(255,255,255,.84); --surface-2:rgba(255,255,255,.96);
  --surface-3:rgba(28,42,80,.05);
  --line:rgba(28,42,80,.14); --line-2:rgba(28,42,80,.26); --line-3:rgba(28,42,80,.38);
  --ink:#2b2828; --ink-2:#443f3f; --muted:#595252; --dim:#6b6363;
  --brand:#c22b2b; --brand-2:#1c2a50; --brand-3:#e0602c;
  --accent:#1c2a50; --accent-2:#c22b2b; --gold:#c8901a;
  --grad:linear-gradient(100deg,#c22b2b 0%,#d9532c 46%,#2b3a66 100%);
  --grad-soft:linear-gradient(100deg,rgba(194,43,43,.12),rgba(28,42,80,.12));
  --shadow-card:0 22px 50px -30px rgba(24,34,70,.30);
  --shadow-soft:0 10px 30px -18px rgba(24,34,70,.26);
  --shadow-drop:0 40px 80px -40px rgba(24,34,70,.32);
  --ribbon:linear-gradient(90deg,#c22b2b,#2b3a66);
}

/* -------------------------------------------------------------
   13) children —— 儿童节 · 烂漫彩
   ------------------------------------------------------------- */
[data-theme="children"]{
  --bg:#ffe5ce; --bg-2:#ffdaba; --bg-3:#fff3e9;
  --surface:rgba(255,255,255,.86); --surface-2:rgba(255,255,255,.97);
  --surface-3:rgba(255,107,61,.06);
  --line:rgba(58,90,140,.14); --line-2:rgba(58,90,140,.24); --line-3:rgba(58,90,140,.36);
  --ink:#2d2824; --ink-2:#473f39; --muted:#5c534b; --dim:#6f6359;
  --brand:#ff6b3d; --brand-2:#21a1e0; --brand-3:#ffb020;
  --accent:#21a1e0; --accent-2:#28c07a; --gold:#ffb020;
  --grad:linear-gradient(100deg,#ff6b3d 0%,#ffb020 34%,#28c07a 64%,#21a1e0 100%);
  --grad-soft:linear-gradient(100deg,rgba(255,107,61,.14),rgba(33,161,224,.12));
  --shadow-card:0 22px 50px -30px rgba(60,90,140,.26);
  --shadow-soft:0 10px 30px -18px rgba(60,90,140,.22);
  --shadow-drop:0 40px 80px -40px rgba(60,90,140,.28);
  --ribbon:linear-gradient(90deg,#ff6b3d,#ffb020 30%,#28c07a 62%,#21a1e0);

  /* ---- 非颜色维度：全站最圆 + 彩色波点 + 四彩光晕，一眼「儿童」 ---- */
  --radius-mul:1.7;              /* 22px→37.4px，卡片/按钮/标签全部圆成玩具感 */
  --aura-a:rgba(255,107,61,.26); --aura-b:rgba(33,161,224,.20); --aura-c:rgba(40,192,122,.16);
  --aura-op:.55;
  --bg-texture:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cg%3E%3Ccircle cx='18' cy='18' r='4' fill='%23ff6b3d'/%3E%3Ccircle cx='88' cy='52' r='3' fill='%2321a1e0'/%3E%3Ccircle cx='44' cy='96' r='3.4' fill='%238ab04a'/%3E%3Ccircle cx='116' cy='118' r='2.6' fill='%23ffb020'/%3E%3Ccircle cx='124' cy='16' r='2' fill='%23d6457f'/%3E%3C/g%3E%3C/svg%3E");
  --tex-op:.30; --tex-size:140px 140px;
  --grid-op:0; --noise-op:.012;   /* 儿童不要网格，太「工程」 */
}

/* -------------------------------------------------------------
   14) qixi —— 七夕 · 星河粉
   ------------------------------------------------------------- */
[data-theme="qixi"]{
  --bg:#3d1035; --bg-2:#2c0c26; --bg-3:#320d2b;
  --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.10);
  --surface-3:rgba(255,255,255,.06);
  --line:rgba(255,200,226,.18); --line-2:rgba(255,200,226,.32); --line-3:rgba(255,200,226,.50);
  /* 四级文字按目标对比度 6.70 / 5.80 / 5.10 / 4.60 反解，
     三档底色刻意做成 --bg 最亮，文字压到渐层深区或卡片上只会更安全。 */
  --ink:#b6a3b1; --ink-2:#ab97a6; --muted:#a28c9d; --dim:#9b8396;
  --brand:#ffc0dc; --brand-2:#ff9ec8; --brand-3:#c07ce8;
  --accent:#ffc0dc; --accent-2:#c07ce8; --gold:#ff9ec8;
  --grad:linear-gradient(100deg,#3d1035 0%,#b464e6 34%,#ff9ec8 70%,#fff3cf 100%);
  --grad-soft:linear-gradient(100deg,rgba(255,150,205,.16),rgba(255,200,226,.14));
  --nav-bg:rgba(20,5,17,.80); --sheet-bg:rgba(15,4,13,.95);
  --mega-bg:#2c0c26; --mega-band:rgba(255,255,255,.06); --mega-pill:transparent;
  --mega-head-bg:rgba(255,255,255,.10); --mega-head-bg-on:rgba(255,200,226,.18);
  --overlay:rgba(15,4,13,.88); --media-bg:#140511;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.90);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.72);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.86);
  --ribbon:linear-gradient(90deg,#d6457f 0 50%,#8a5cf6 50% 100%);

  /* ---- bold 底座 token：供本文件顶部「bold 通用底座」消费 ---- */
  --d1-rgb:25 7 22; --d2-rgb:20 5 17; --d3-rgb:15 4 13;
  --halo-rgb:255 150 205; --ring-rgb:255 200 226; --warm-rgb:255 170 200; --btn-ink:#1a0716;

  /* ---- 四个非颜色差异维度（变量定义见 pulse.css「非颜色差异维度」段） ---- */
  --radius-mul:1.5;
  --aura-a:rgba(255,140,200,.30); --aura-b:rgba(180,100,230,.24); --aura-c:rgba(92,18,78,.46); --aura-op:.62;
  --bg-texture:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27150%27%20height%3D%27150%27%3E%3Cg%20fill%3D%27%23ffb3d2%27%3E%3Cpath%20d%3D%27M40%2034c-5-6-13-3-13%204%200%207%208%2012%2013%2017%205-5%2013-10%2013-17%200-7-8-10-13-4z%27%20opacity%3D%27.8%27%2F%3E%3Ccircle%20cx%3D%27104%27%20cy%3D%2740%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2760%27%20cy%3D%27104%27%20r%3D%271.8%27%2F%3E%3Ccircle%20cx%3D%27126%27%20cy%3D%27112%27%20r%3D%272.2%27%2F%3E%3Ccircle%20cx%3D%2730%27%20cy%3D%27136%27%20r%3D%271.5%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --tex-op:.20; --tex-size:150px 150px;
  --grid-op:.26; --grid-line:rgba(255,200,226,.14); --noise-op:.05;
}

/* -------------------------------------------------------------
   15) chongyang —— 重阳节 · 茱萸金 + 秋叶橙
   ------------------------------------------------------------- */
[data-theme="chongyang"]{
  --bg:#f2e6d3; --bg-2:#ead7b9; --bg-3:#f9f4eb;
  --surface:rgba(255,255,255,.86); --surface-2:rgba(255,255,255,.97);
  --surface-3:rgba(150,100,20,.06);
  --line:rgba(150,100,20,.16); --line-2:rgba(150,100,20,.28); --line-3:rgba(150,100,20,.40);
  --ink:#2a2724; --ink-2:#423f3a; --muted:#57534c; --dim:#69635b;
  --brand:#c47a1a; --brand-2:#a8842a; --brand-3:#7a8f3a;
  --accent:#7a8f3a; --accent-2:#c47a1a; --gold:#c8901a;
  --grad:linear-gradient(100deg,#c47a1a 0%,#d9a520 44%,#a8a03a 72%,#7a8f3a 100%);
  --grad-soft:linear-gradient(100deg,rgba(196,122,26,.12),rgba(122,143,58,.12));
  --shadow-card:0 22px 50px -30px rgba(120,80,20,.28);
  --shadow-soft:0 10px 30px -18px rgba(120,80,20,.24);
  --shadow-drop:0 40px 80px -40px rgba(120,80,20,.30);
  --ribbon:linear-gradient(90deg,#c47a1a,#7a8f3a);
}

/* -------------------------------------------------------------
   16) newyear —— 元旦 · 万象更新
   ------------------------------------------------------------- */
[data-theme="newyear"]{
  --bg:#1b1046; --bg-2:#130c32; --bg-3:#160d39;
  --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.10);
  --surface-3:rgba(255,255,255,.06);
  --line:rgba(214,200,255,.18); --line-2:rgba(214,200,255,.32); --line-3:rgba(214,200,255,.50);
  /* 四级文字按目标对比度 6.70 / 5.80 / 5.10 / 4.60 反解，
     三档底色刻意做成 --bg 最亮，文字压到渐层深区或卡片上只会更安全。 */
  --ink:#a39eb3; --ink-2:#9792aa; --muted:#8e88a2; --dim:#86809c;
  --brand:#ffd75c; --brand-2:#ffcf49; --brand-3:#a98cff;
  --accent:#ffd75c; --accent-2:#a98cff; --gold:#ffcf49;
  --grad:linear-gradient(100deg,#1b1046 0%,#ff788c 34%,#ffcf49 70%,#fff3cf 100%);
  --grad-soft:linear-gradient(100deg,rgba(190,170,255,.16),rgba(214,200,255,.14));
  --nav-bg:rgba(9,5,22,.80); --sheet-bg:rgba(7,4,18,.95);
  --mega-bg:#130c32; --mega-band:rgba(255,255,255,.06); --mega-pill:transparent;
  --mega-head-bg:rgba(255,255,255,.10); --mega-head-bg-on:rgba(214,200,255,.18);
  --overlay:rgba(7,4,18,.88); --media-bg:#090516;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.90);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.72);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.86);
  --ribbon:linear-gradient(90deg,#d7263d 0 34%,#a33fd6 34% 67%,#3f6ff6 67% 100%);

  /* ---- bold 底座 token：供本文件顶部「bold 通用底座」消费 ---- */
  --d1-rgb:11 7 29; --d2-rgb:9 5 22; --d3-rgb:7 4 18;
  --halo-rgb:190 170 255; --ring-rgb:214 200 255; --warm-rgb:255 190 120; --btn-ink:#0b071d;

  /* ---- 四个非颜色差异维度（变量定义见 pulse.css「非颜色差异维度」段） ---- */
  --radius-mul:1;
  --aura-a:rgba(190,160,255,.30); --aura-b:rgba(255,120,140,.24); --aura-c:rgba(70,40,150,.46); --aura-op:.62;
  --bg-texture:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27140%27%20height%3D%27140%27%3E%3Cg%3E%3Crect%20x%3D%2718%27%20y%3D%2718%27%20width%3D%279%27%20height%3D%279%27%20fill%3D%27%23ff7a8a%27%20transform%3D%27rotate%2824%2022%2022%29%27%2F%3E%3Crect%20x%3D%2772%27%20y%3D%2744%27%20width%3D%277%27%20height%3D%277%27%20fill%3D%27%23ffd75e%27%20transform%3D%27rotate%28-18%2075%2047%29%27%2F%3E%3Crect%20x%3D%27116%27%20y%3D%2722%27%20width%3D%278%27%20height%3D%278%27%20fill%3D%27%237aa8ff%27%20transform%3D%27rotate%2838%20120%2026%29%27%2F%3E%3Crect%20x%3D%2744%27%20y%3D%2794%27%20width%3D%277%27%20height%3D%277%27%20fill%3D%27%239de08a%27%20transform%3D%27rotate%28-32%2047%2097%29%27%2F%3E%3Crect%20x%3D%27104%27%20y%3D%27104%27%20width%3D%279%27%20height%3D%279%27%20fill%3D%27%23c48cff%27%20transform%3D%27rotate%2816%20108%20108%29%27%2F%3E%3Crect%20x%3D%2722%27%20y%3D%27128%27%20width%3D%276%27%20height%3D%276%27%20fill%3D%27%23ffb36b%27%20transform%3D%27rotate%28-8%2025%20131%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --tex-op:.22; --tex-size:140px 140px;
  --grid-op:.30; --grid-line:rgba(214,200,255,.14); --noise-op:.04;
}

/* -------------------------------------------------------------
   17) arbor —— 植树节 · 春林绿
   ------------------------------------------------------------- */
[data-theme="arbor"]{
  --bg:#dbebe0; --bg-2:#c3decc; --bg-3:#eff6f1;
  --surface:rgba(255,255,255,.86); --surface-2:rgba(255,255,255,.97);
  --surface-3:rgba(30,110,70,.06);
  --line:rgba(30,110,70,.14); --line-2:rgba(30,110,70,.26); --line-3:rgba(30,110,70,.38);
  --ink:#262826; --ink-2:#3c403d; --muted:#4f5551; --dim:#5f6561;
  --brand:#2e8b57; --brand-2:#5cb85c; --brand-3:#a8c840;
  --accent:#2e8b57; --accent-2:#8ab04a; --gold:#c8901a;
  --grad:linear-gradient(100deg,#1f7a4a 0%,#43a463 46%,#8ab04a 78%,#c8d060 100%);
  --grad-soft:linear-gradient(100deg,rgba(31,122,74,.12),rgba(138,176,74,.12));
  --shadow-card:0 22px 50px -30px rgba(24,80,52,.28);
  --shadow-soft:0 10px 30px -18px rgba(24,80,52,.24);
  --shadow-drop:0 40px 80px -40px rgba(24,80,52,.30);
  --ribbon:linear-gradient(90deg,#1f7a4a,#8ab04a);
}

/* -------------------------------------------------------------
   18) deepspace —— 深空（暗色，保留给需要夜间氛围的场景）
   ------------------------------------------------------------- */
[data-theme="deepspace"]{
  --bg:#03050c; --bg-2:#060a15; --bg-3:#080d1c;
  --surface:rgba(255,255,255,.04); --surface-2:rgba(255,255,255,.07);
  --surface-3:rgba(255,255,255,.05);
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16); --line-3:rgba(255,255,255,.35);
  --ink:#eaf0ff; --ink-2:#b9c6e6; --muted:#7e8eb4; --dim:#6f7b97;
  --brand:#2b8bff; --brand-2:#6f6bff; --brand-3:#a25cff;
  --accent:#4fe3ff; --accent-2:#7dffc4; --gold:#ffcc66;
  --grad:linear-gradient(100deg,#2b8bff 0%,#6f6bff 26%,#a25cff 52%,#d24fd2 74%,#ff5f9e 100%);
  --grad-soft:linear-gradient(100deg,rgba(43,139,255,.16),rgba(154,107,255,.14),rgba(224,79,176,.13));
  --nav-bg:rgba(4,7,15,.72); --sheet-bg:rgba(3,5,12,.94);
  --mega-bg:#141b2e;                  /* 深空：面板外框底（深灰蓝实底） */
  --mega-band:rgba(255,255,255,.06);  /* 深空：内容区底（比外框亮一档） */
  --mega-pill:transparent;            /* 深空：三级药丸（透明底 + 细边） */
  --mega-head-bg:rgba(255,255,255,.10);/* 深空：二级悬停药丸 / 占位瓦片底 */
  --mega-head-bg-on:rgba(120,160,255,.16);/* 深空：二级/三级悬停激活 */
  --overlay:rgba(2,4,10,.86); --media-bg:#05080f;
  --shadow-card:0 24px 70px -34px rgba(0,0,0,.9);
  --shadow-soft:0 18px 50px -30px rgba(0,0,0,.75);
  --shadow-drop:0 44px 96px -36px rgba(0,0,0,.88);
  --ribbon:linear-gradient(90deg,#2b8bff,#9a6bff,#ff5f9e);

  /* ---- 非颜色维度：冷淡科技感，压直角 + 星点阵 ---- */
  --radius-mul:.85;              /* 深空偏硬朗：全息面板的直角感 */
  /* ⚠️ 网格（.cosmos__grid）是全屏 fixed 层，会盖在所有内容之上。
     基线版 deepspace 根本没设这三个变量，走的是 pulse.css 默认
     --grid-op:.5 / --grid-line:rgba(43,107,255,.055)（几乎看不见）。
     2026-10-27 本轮误加 --grid-op:.85 + 亮蓝网格线 → 整屏罩着一层浅网格，
     内容全被网纹干扰（站长 2026-10-27 报）。这里改回「几乎看不见」：
     保留一点点星图暗示（比基线略强一点点），但绝不能盖住正文。 */
  --grid-op:0; --grid-line:rgba(120,160,255,.05); --noise-op:0;
  /* 2026-10-27 用户要求：深空主题不要网格线、也不要点阵，干净纯深色。
     网格/星点阵/噪点三层 opacity 全置 0；保留 .cosmos canvas 动态星空与 .cosmos__aurora 极光作为深空氛围。 */
  --bg-texture:radial-gradient(rgba(160,200,255,.30) 1px,transparent 1.2px);
  --tex-op:0; --tex-size:52px 52px;
}
html[data-theme="deepspace"] .cosmos canvas{display:block}
html[data-theme="deepspace"] .cosmos__aurora{mix-blend-mode:screen;opacity:.55}
html[data-theme="deepspace"] .cosmos__noise{mix-blend-mode:overlay;opacity:.05}
html[data-theme="deepspace"] .casecard::after{
  background:linear-gradient(180deg,rgba(4,7,15,.34),rgba(4,7,15,.80) 46%,rgba(4,7,15,.96));
}
html[data-theme="deepspace"] .casecard--plate::after{
  background:linear-gradient(180deg,rgba(4,7,15,0) 30%,rgba(4,7,15,.90) 64%,rgba(4,7,15,.98) 100%);
}
html[data-theme="deepspace"] .casecard__bg{opacity:.42}
html[data-theme="deepspace"] .casecard:hover .casecard__bg{opacity:.55}
html[data-theme="deepspace"] .casecard h3{color:var(--ink);text-shadow:0 2px 18px rgba(3,5,12,.9)}
html[data-theme="deepspace"] .casecard p{color:var(--ink-2);text-shadow:0 2px 14px rgba(3,5,12,.85)}
html[data-theme="deepspace"] .casecard__cat{color:var(--accent)}
html[data-theme="deepspace"] .casecard--plate .casecard__bg{opacity:1}
html[data-theme="deepspace"] .metric b .counter{background:linear-gradient(180deg,#ffffff,#93a9dc);-webkit-background-clip:text;background-clip:text}
html[data-theme="deepspace"] .aura__cell img{filter:grayscale(1) brightness(2.4);opacity:.7}
/* 客户 Logo 墙：深空暗色主题下，深色/黑色 logo 会糊在近黑底（#03050c）上。
   解决：白色 drop-shadow 勾出轮廓 + 淡蓝外发光提亮，保留品牌原色（不涂成纯白）。
   若想要更极简的「纯白剪影」效果，把下面两处 filter 换成 brightness(0) invert(1) 即可。 */
html[data-theme="deepspace"] .lgcell img{
  filter:drop-shadow(0 0 2px rgba(255,255,255,.6)) drop-shadow(0 0 9px rgba(120,160,255,.35));
  opacity:.95;
}
html[data-theme="deepspace"] .lgcell__a:hover img{
  filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 0 14px rgba(120,160,255,.55));
  opacity:1;
}
/* 深空是动态星空/极光背景：渐隐改用 pulse.css 里的 mask-image（alpha 渐变）统一处理，
   透出动态背景自然融合，无需在此单独覆盖；旧版「background:none 关闭色块遮罩」已不再需要。 */
html[data-theme="deepspace"] .device__media{background:linear-gradient(180deg,#ffffff 0%,#f4f7fc 62%,#e8edf7 100%)}
html[data-theme="deepspace"] .vstage__frame{box-shadow:0 0 0 7px rgba(255,255,255,.05),0 48px 96px -32px rgba(43,139,255,.78),0 0 90px -30px rgba(162,92,255,.6)}
html[data-theme="deepspace"] ::-webkit-scrollbar-track{background:#04070f}
html[data-theme="deepspace"] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#2b8bff,#9a6bff);border-color:#04070f}
