@charset "UTF-8";
/* 词卷 V5「星穹观测台」布局层 —— 效果图 release-packages/v5-design/ 的实现
   ★ 铁律：所有选择器都以 html.ws-v5 打头。没挂载 = 这一层等于不存在。
   ★ V5.2（2026-09-25 业主拍板）：所有主题都挂 ws-v5，纸墨浅/纸墨深不再豁免；一键返回旧版 = ws_ui_v5='off' 时本层等于不存在。
   ★ 铁律：颜色全部走站点既有主题令牌（--paper/--card/--ink/--accent/--terra/--amber/--rose/--solid…），不写死十六进制。
   ★ 判分键(.grade)、主按钮的**配色**沿用站点 V6.7.13 调好的 --solid/--on-accent/--on-rose，
     V5 只改尺寸与形状，绝不重新推导对比度。
   ★ 为什么满屏 !important：站点已有 09-supreme / 10-ws-v5-mobile-nav / 12-ws-onb / 15-ws-ios
     以及 index.html 里的 V6.7.18 布局层，对 nav / header / .card.hero / #study 都是 !important。
     照这个楼里的规矩，V5 只能用「html.ws-v5 三连 + !important」把布局抢回来（颜色仍走令牌）。 */

/* ==================== 1. 令牌桥接（V5.2 · 主题旋钮；V7.0.0 起 7 个主题，四个换色至尊已下架） ====================
   ★ 全部走主题令牌，SVG/渐变里也不写死色值（唯一例外：手卷轴头金属 --v5-roller，它是插画材质）。
   ★ 对比度实测（release-packages/v5-design/audit/audit-themes.json，2026-09-25）：
     --v5-ink-3 = ink 48% 当时十个主题全部不过 4.5:1 → 各主题按实测单独覆盖；
     「强调色/金色当文字」在三个浅色主题不过线 → 另立 --v5-accent-ink / --v5-gold-ink 两个「文字专用」令牌。
   ★ 站点没有 --ok / --warn（V5.2 时十个主题都没定义；像素街机自带 --ok/--warn），--mint 只有 supreme 有 → --v5-ok/--v5-warn 必须带回退链。
   ★ V5.2 起**所有主题**都挂 ws-v5（业主 2026-09-25 拍板），一键返回旧版 = localStorage.ws_ui_v5='off'。 */
html.ws-v5{
  /* 光 / 星空 / 纸纹：默认 = 星穹至尊（深色） */
  --v5-glow:1;                 /* 发光强度：只有手卷 + 主按钮用 */
  --v5-sky:1;                  /* body 色晕 / 星空强度 */
  --v5-grain:.35;              /* 手卷纸面纤维纹理强度（与光分开：纸墨浅要有纹理但无光） */
  /* 面 */
  --v5-paper:var(--paper);
  --v5-panel:color-mix(in srgb,var(--card) 94%,var(--paper));
  --v5-panel-2:color-mix(in srgb,var(--card) 80%,var(--paper));
  --v5-line:color-mix(in srgb,var(--ink) 12%,transparent);
  --v5-line-2:color-mix(in srgb,var(--ink) 22%,transparent);
  /* 字（深色主题实测：58% 才过 4.5） */
  --v5-ink:var(--ink);
  --v5-ink-2:color-mix(in srgb,var(--ink) 70%,var(--paper));
  --v5-ink-3:color-mix(in srgb,var(--ink) 58%,var(--paper));
  /* 强调 */
  --v5-accent:var(--accent);
  --v5-accent-ink:var(--accent);                                   /* 强调色当「文字」时用这个（浅色主题会压深） */
  --v5-on-accent:var(--on-accent,#fff);
  --v5-accent-soft:color-mix(in srgb,var(--accent) 12%,var(--card));
  --v5-accent-line:color-mix(in srgb,var(--accent) 45%,transparent);
  --v5-gold:var(--amber,#d9a93c);                                  /* 填色/渐变用 */
  --v5-gold-ink:var(--amber,#d9a93c);                              /* 金色当「文字」时用这个 */
  --v5-roller:#c9a04a;                                              /* 手卷轴头金属（插画材质，唯一写死色） */
  --v5-ok:var(--ok,var(--mint,var(--accent)));
  --v5-warn:var(--warn,var(--terra,#c0392b));
  /* 形 */
  --v5-r:14px;--v5-r-sm:10px;--v5-r-pill:999px;--v5-cut:12px;
  --v5-shadow:0 1px 2px color-mix(in srgb,var(--ink) 6%,transparent),0 10px 30px -18px color-mix(in srgb,var(--ink) 28%,transparent);
  --v5-ease:cubic-bezier(.2,.8,.2,1);
  --v5-rail:92px;--v5-top:62px;
  /* 字阶（§3，桌面值；手机在文件末尾只覆盖变量，不覆盖组件） */
  --v5-fs-eyebrow:12px;--v5-fs-caption:12px;   /* V7.0.0：眉题 11 → 12（任何字 ≥ 12px；手机 20 号同值） */
  --v5-fs-body:14px;--v5-fs-body-lg:15px;--v5-fs-title:17px;
  --v5-fs-section:22px;--v5-fs-page:28px;--v5-fs-display:44px;--v5-fs-word:60px;
  --v5-chip-h:34px;--v5-btn-h:44px;--v5-btn-h-lg:48px;--v5-cal-h:40px;
  --v5-tech:'Barlow Condensed','DIN Alternate','Oswald','PingFang SC',var(--cjk);
  --v5-word:'Fraunces','Iowan Old Style','Georgia',serif;
  /* 现有实现沿用的描边 / 玻璃 / 遮罩令牌（深色默认；新组件不再用 hair/fill/glass，逐步淘汰） */
  --v5-hair:color-mix(in srgb,var(--accent) 20%,var(--line));
  --v5-hair-2:color-mix(in srgb,var(--accent) 42%,var(--line));
  --v5-fill:color-mix(in srgb,var(--accent) 7%,transparent);
  --v5-fill-2:color-mix(in srgb,var(--accent) 15%,transparent);
  --v5-glass-a:var(--v5-panel);
  --v5-glass-b:var(--v5-panel-2);
  --v5-veil:color-mix(in srgb,var(--ink) 55%,transparent);
  --v5-accent-2:var(--terra);
}
/* ---- 至尊·星穹 supreme：--card 是 rgba(18,26,36,.72)，派生面半透明 → 用它自己的不透明令牌 ---- */
html.ws-v5[data-theme="supreme"]{
  --v5-glow:1;--v5-sky:1;
  --v5-panel:var(--bg-elevated,#0E141D);
  --v5-panel-2:var(--bg-secondary,#090D14);
}
/* ---- 极简深 minimal-dark ---- */
html.ws-v5[data-theme="minimal-dark"]{--v5-glow:0;--v5-sky:0;--v5-grain:0;}
/* ---- 纸墨深 dark：墨夜少星；ink-3 60%（≈4.8） ---- */
html.ws-v5[data-theme="dark"]{
  --v5-glow:0;--v5-sky:0;--v5-grain:.5;
  --v5-ink-3:color-mix(in srgb,var(--ink) 60%,var(--paper));
  --v5-hair:color-mix(in srgb,var(--accent) 16%,var(--line));
  --v5-hair-2:color-mix(in srgb,var(--accent) 34%,var(--line));
}
/* ---- 纸墨浅 light：宣纸无星空、无发光；手卷靠纹理不靠光。ink-3 66% / 金字 60% ---- */
html.ws-v5[data-theme="light"]{
  --v5-glow:0;--v5-sky:0;--v5-grain:.9;
  --v5-ink-3:color-mix(in srgb,var(--ink) 66%,var(--paper));
  --v5-gold-ink:color-mix(in srgb,var(--amber) 60%,var(--ink));
  --v5-hair:color-mix(in srgb,var(--ink) 12%,var(--line));
  --v5-hair-2:color-mix(in srgb,var(--accent) 52%,var(--line));
  --v5-veil:color-mix(in srgb,var(--ink) 46%,transparent);
}
/* ---- 云阶白卷 minimal-light：ink-3 62% / accent 文字压 15% / 金字 65%（此主题 --amber 是青蓝） ---- */
html.ws-v5[data-theme="minimal-light"]{
  --v5-glow:0;--v5-sky:0;--v5-grain:0;
  --v5-ink-3:color-mix(in srgb,var(--ink) 62%,var(--paper));
  --v5-accent-ink:color-mix(in srgb,var(--accent) 85%,var(--ink));
  --v5-gold-ink:color-mix(in srgb,var(--amber) 65%,var(--ink));
  --v5-hair:color-mix(in srgb,var(--ink) 12%,var(--line));
  --v5-hair-2:color-mix(in srgb,var(--accent) 52%,var(--line));
  --v5-veil:color-mix(in srgb,var(--ink) 46%,transparent);
}
/* ---- 桃桃猫卷 cute-pink：accent 当文字必须 44% 配方（5.7）；ink-3 70%；金字 40%；面用 --card-strong ---- */
html.ws-v5[data-theme="cute-pink"]{
  --v5-glow:.35;--v5-sky:.25;--v5-grain:.5;
  --v5-panel:var(--card-strong,#fff1f5);
  --v5-ink-2:color-mix(in srgb,var(--ink) 82%,var(--paper));   /* V7.0.0：默认 70% 在面板上只有 4.46 → 82%（面板 6.30 / 浅粉 accent-soft 5.66） */
  --v5-ink-3:color-mix(in srgb,var(--ink) 74%,var(--paper));
  --v5-accent-ink:color-mix(in srgb,var(--accent) 44%,var(--ink));
  --v5-gold-ink:color-mix(in srgb,var(--amber) 40%,var(--ink));
  --v5-hair:color-mix(in srgb,var(--ink) 12%,var(--line));
  --v5-hair-2:color-mix(in srgb,var(--accent) 52%,var(--line));
  --v5-veil:color-mix(in srgb,var(--ink) 46%,transparent);
}
/* ---- 像素街机 pixel（V7.0.0 旗舰，规范 release-packages/v7-pixel/DESIGN-PIXEL.md）：
   不要星空、不要光、不要纸纹（扫描线 + 点阵由 index.html 的 body::before/::after 画，静态）；面板全部不透明硬边线。
   对比度实测（2026-09-27，真实底色）：ink-3 = --ink-faint 在 card 上 5.81 / card-strong 5.23 / accent-soft 5.30；
   ink-2 = --ink-soft 9.63；accent 当字 card 5.61 / card-strong 5.05 / accent-soft 5.11；金字 --amber 11.99；
   主按钮深字 --on-accent 在洋红上 6.40（提亮 8% 的 hover 面上 6.79）。 ---- */
html.ws-v5[data-theme="pixel"]{
  --v5-glow:0;--v5-sky:0;--v5-grain:0;
  --v5-panel:var(--card);
  --v5-panel-2:var(--card-strong);
  --v5-line:var(--line);
  --v5-line-2:var(--line-strong);
  --v5-ink-2:var(--ink-soft);
  --v5-ink-3:var(--ink-faint);
  --v5-accent-ink:var(--accent);
  --v5-accent-soft:var(--accent-soft);
  --v5-accent-line:color-mix(in srgb,var(--accent) 70%,var(--line));
  --v5-gold-ink:var(--amber);
  --v5-hair:var(--line);
  --v5-hair-2:var(--line-strong);
  /* 数字字体口径（V7.0.0 业主拍板，与 20 号手机层、26 号旧版同一套）：
     · ≥16px 的数字 = Press Start 2P（--px-num，字号只取 16 / 24 / 32，字重 400；同一格里的汉字落到系统字）；
     · <16px 的数字 = 系统字（--v5-tech 在像素主题下 = --px-sys，所有走 --v5-tech 的小数字自动回系统字）；
     · Pixelify（--px-text）只给英文单词（学习页词头、手卷上的下一个词）。实测 Pixelify 的数字 5≈S、2≈e、7 顶横太短。 */
  --px-display:"WS Pixel Display","WS Pixel",ui-monospace,monospace;
  --px-text:"WS Pixel","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --px-sys:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
  --px-num:"WS Pixel Display",-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
  --v5-tech:var(--px-sys);
  --v5-word:var(--px-text);
  /* 字阶：任何字 ≥ 12px（§0），眉题从 11 提到 12；英文词头桌面 40（§5 规定 40–48；Pixelify 的 1 像素 = 1/10 em，40 正好整像素对齐，48 会糊边）。手机 34 见下 */
  --v5-fs-eyebrow:12px;--v5-fs-word:40px;
}
@media(max-width:768px){
  html.ws-v5[data-theme="pixel"]{--v5-fs-word:34px;}
}
/* ---- 海盐汽水 soda（V7.0.0，release-packages/v7-themes/DESIGN-SODA-FOREST.md §2.1）：不要星空 / 光晕 / 纸纹；两个面都是不透明 hex，直接指过去。
   对比度实测（contrast-output.md）：ink-3 = --ink-faint 最差 4.81（paper-2）；accent 当字 4.82（accent-soft）；
   金字 = 柠檬 × 珊瑚 × 墨 = #8E642D（直接混墨会发橄榄绿）5.24；主按钮白字 5.53（hover 压深 6.11）。 ---- */
html.ws-v5[data-theme="soda"]{
  --v5-glow:0;--v5-sky:0;--v5-grain:0;
  --v5-panel:var(--card);--v5-panel-2:var(--card-strong);
  --v5-ink-2:var(--ink-soft);--v5-ink-3:var(--ink-faint);
  --v5-accent-ink:var(--accent);
  --v5-gold-ink:color-mix(in srgb,var(--amber) 40%,color-mix(in srgb,var(--terra) 40%,var(--ink)));
  --v5-hair:color-mix(in srgb,var(--ink) 12%,var(--line));--v5-hair-2:color-mix(in srgb,var(--accent) 52%,var(--line));
  --v5-veil:color-mix(in srgb,var(--ink) 46%,transparent);
  --v5-fs-eyebrow:12px;
  --v5-tech:ui-rounded,"SF Pro Rounded","Avenir Next","Segoe UI Variable Display","Segoe UI",var(--cjk);
  --v5-word:ui-rounded,"SF Pro Rounded","Avenir Next","Segoe UI Variable Display","Segoe UI",var(--cjk);
  --v5-roller:#9FD3E4;                                      /* 手卷轴杆 = 海玻璃（门唯一允许的 hex） */
}
/* ---- 森林书屋 forest：无光无星空，书页纸纹 .6；ink-3 = --ink-faint 最差 4.73；金字 = 琥珀 48% × 墨 = #6C5324 6.83 ---- */
html.ws-v5[data-theme="forest"]{
  --v5-glow:0;--v5-sky:0;--v5-grain:.6;
  --v5-panel:var(--card);--v5-panel-2:var(--card-strong);
  --v5-ink-2:var(--ink-soft);--v5-ink-3:var(--ink-faint);
  --v5-accent-ink:var(--accent);
  --v5-gold-ink:color-mix(in srgb,var(--amber) 48%,var(--ink));
  --v5-hair:color-mix(in srgb,var(--ink) 12%,var(--line));--v5-hair-2:color-mix(in srgb,var(--accent) 52%,var(--line));
  --v5-veil:color-mix(in srgb,var(--ink) 46%,transparent);
  --v5-fs-eyebrow:12px;
  --v5-tech:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,var(--cjk);
  --v5-word:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --v5-roller:#8A6038;                                      /* 胡桃木轴 */
}
/* 使用规则：
   · accent 当文字（eyebrow / 文字按钮 / tag 字 / 强调数字）一律 color:var(--v5-accent-ink)；填色/描边/进度/圆环用 var(--v5-accent)。
   · 金色小字一律 var(--v5-gold-ink)；轴头渐变用 var(--v5-roller) 派生。
   · 三级文字（日期数字、caption、时间戳）一律 var(--v5-ink-3)，不要再自己写 color-mix 百分比。
   · 光：filter:drop-shadow(0 0 calc(12px * var(--v5-glow)) …)（clip-path 会裁掉 box-shadow）；纸纹：opacity:calc(.12 * var(--v5-grain))。
   · 主按钮不许再叠半透明或渐变提亮（minimal-light / cute-pink 的 on-accent 只有 4.6 无余量）。 */

/* ==================== 1.5 组件（§5.1 类名契约；不带任何 media，手机层直接复用） ==================== */
html.ws-v5 *:focus-visible{outline:2px solid var(--v5-accent);outline-offset:2px;}
/* 卡片 */
html.ws-v5 .v5-card{
  position:relative;background:var(--v5-panel);border:1px solid var(--v5-line);border-radius:var(--v5-r);
  box-shadow:var(--v5-shadow-soft);padding:20px;color:var(--v5-ink);
}
/* ui-polish-v4.css:55 在桌面（≥769）用 :where([class*="card"],[class*="panel"],[class*="modal"]) 给「类名里含 card」的元素一律加阴影。
   V5 的 .v5-card__head / __title / __act 类名里也含 card → 被误伤成一条条带阴影的浅色横条（日历卡头实测）。显式归零（:where 特异性为 0，这里必赢）。 */
html.ws-v5 [class*="v5-card__"]{box-shadow:none;}
html.ws-v5 .v5-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 14px;}
html.ws-v5 .v5-card__head > div{min-width:0;}
html.ws-v5 .v5-eyebrow{
  display:block;font-size:var(--v5-fs-eyebrow);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--v5-accent-ink);line-height:1.2;margin:0 0 4px;
}
html.ws-v5 .v5-card__title{font-size:var(--v5-fs-title);font-weight:600;line-height:1.25;margin:0;color:var(--v5-ink);}
html.ws-v5 .v5-card__act{flex:none;font-size:var(--v5-fs-caption);color:var(--v5-accent-ink);text-decoration:none;white-space:nowrap;line-height:1.4;padding-top:2px;}
html.ws-v5 .v5-card__act:hover{text-decoration:underline;}
/* 页头（非首页） */
html.ws-v5 .v5-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 20px;}
html.ws-v5 .v5-pagehead__title{font-size:var(--v5-fs-page);font-weight:700;line-height:1.2;margin:0;color:var(--v5-ink);}
html.ws-v5 .v5-pagehead__sub{font-size:var(--v5-fs-body);color:var(--v5-ink-3);margin:6px 0 0;line-height:1.5;}
html.ws-v5 .v5-pagehead__act{flex:none;}
/* 按钮：三种，一屏只有一个主按钮 */
html.ws-v5 .v5-btn-primary,
html.ws-v5 .v5-btn,
html.ws-v5 .v5-btn-ghost{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--v5-btn-h);padding:0 18px;font-size:var(--v5-fs-body-lg);font-weight:600;line-height:1;font-family:inherit;
  border-radius:var(--v5-r-sm);cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:transform var(--v5-dur) var(--v5-ease),background-color var(--v5-dur-fast),color var(--v5-dur-fast),border-color var(--v5-dur-fast),filter var(--v5-dur-fast);
}
html.ws-v5 .v5-btn-primary{
  background:var(--v5-accent);color:var(--v5-on-accent);border:0;border-radius:var(--v5-r-btn);
  clip-path:var(--v5-btn-clip);box-shadow:var(--v5-shadow-soft);
  filter:drop-shadow(0 0 calc(12px * var(--v5-glow)) color-mix(in srgb,var(--accent) 45%,transparent));
}
html.ws-v5 .v5-btn-primary:hover{transform:var(--v5-lift);filter:brightness(1.06) drop-shadow(0 0 calc(14px * var(--v5-glow)) color-mix(in srgb,var(--accent) 50%,transparent));}
html.ws-v5 .v5-btn-primary:active{transform:var(--v5-press);transition-duration:var(--v5-dur-fast);}
html.ws-v5 .v5-btn:active,html.ws-v5 .v5-chip:active{transform:var(--v5-press);}
html.ws-v5 .v5-btn-primary.is-lg{min-height:var(--v5-btn-h-lg);padding:0 22px;width:100%;}
html.ws-v5 .v5-btn{background:transparent;color:var(--v5-ink);border:1px solid var(--v5-line-2);min-height:40px;}
html.ws-v5 .v5-btn:hover{background:var(--v5-accent-soft);border-color:var(--v5-accent-line);}
html.ws-v5 .v5-btn-ghost{background:transparent;color:var(--v5-accent-ink);border:0;padding:0 8px;min-height:36px;}
html.ws-v5 .v5-btn-ghost:hover{text-decoration:underline;}
html.ws-v5 .v5-btn-primary:disabled,html.ws-v5 .v5-btn:disabled{opacity:.5;cursor:not-allowed;filter:none;}
/* 药丸：全站所有断点同一尺寸（只通过变量变） */
html.ws-v5 .v5-chip{
  display:inline-flex;align-items:center;gap:6px;height:var(--v5-chip-h);padding:0 12px;box-sizing:border-box;
  border-radius:var(--v5-r-chip);border:1px solid var(--v5-line);background:var(--v5-panel);
  color:var(--v5-ink-2);font-size:var(--v5-fs-body);font-weight:500;line-height:1;font-family:inherit;white-space:nowrap;flex:none;cursor:pointer;
  text-decoration:none;transition:background-color var(--v5-dur-fast),border-color var(--v5-dur-fast),color var(--v5-dur-fast),transform var(--v5-dur) var(--v5-ease);
}
html.ws-v5 .v5-chip:hover{border-color:var(--v5-accent-line);color:var(--v5-ink);transform:var(--v5-lift);}
html.ws-v5 .v5-chip.is-on{background:var(--v5-accent-soft);border-color:var(--v5-accent-line);color:var(--v5-accent-ink);}
html.ws-v5 .v5-chip.is-accent{color:var(--v5-accent-ink);}
html.ws-v5 .v5-chip.is-gold{color:var(--v5-gold-ink);border-color:color-mix(in srgb,var(--v5-gold) 40%,transparent);}
html.ws-v5 .v5-chip > svg,html.ws-v5 .v5-chip > img{width:14px;height:14px;flex:none;}
html.ws-v5 .v5-chiprow{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 0;}
html.ws-v5 .v5-chiprow::-webkit-scrollbar{display:none;}
/* 数字 */
html.ws-v5 .v5-stat{display:flex;flex-direction:column;gap:4px;min-width:0;}
html.ws-v5 .v5-stat__num{font:700 var(--v5-fs-display)/1 var(--v5-tech);font-variant-numeric:tabular-nums;color:var(--v5-ink);letter-spacing:.01em;}
html.ws-v5 .v5-stat__num small{font-size:.5em;font-weight:600;color:var(--v5-ink-3);margin-left:2px;}
html.ws-v5 .v5-stat__label{font-size:var(--v5-fs-caption);color:var(--v5-ink-3);line-height:1.3;}
html.ws-v5 .v5-stat-row{display:flex;align-items:stretch;gap:0;}
html.ws-v5 .v5-stat-row > .v5-stat{flex:1;padding:0 16px;border-left:1px solid var(--v5-line);}
html.ws-v5 .v5-stat-row > .v5-stat:first-child{padding-left:0;border-left:0;}
/* 进度条 */
html.ws-v5 .v5-bar{position:relative;height:6px;border-radius:var(--v5-r-pill);background:var(--v5-line);overflow:hidden;}
html.ws-v5 .v5-bar__fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:var(--v5-accent);transition:width var(--v5-dur-slow) var(--v5-ease);}
/* 标签 */
html.ws-v5 .v5-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--v5-r-sm);font-size:var(--v5-fs-eyebrow);font-weight:600;letter-spacing:.02em;background:var(--v5-accent-soft);color:var(--v5-accent-ink);white-space:nowrap;}
html.ws-v5 .v5-tag.is-ok{background:color-mix(in srgb,var(--v5-ok) 14%,var(--card));color:color-mix(in srgb,var(--v5-ok) 70%,var(--ink));}
html.ws-v5 .v5-tag.is-warn{background:color-mix(in srgb,var(--v5-warn) 14%,var(--card));color:color-mix(in srgb,var(--v5-warn) 70%,var(--ink));}
/* 内联提示卡（绑定手机号 / 邀请 / 试用到期）：永远在内容流里，绝不 fixed */
html.ws-v5 .v5-notice{
  position:static!important;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin:0 0 16px;
  background:var(--v5-panel);border:1px solid var(--v5-line);border-radius:var(--v5-r);box-shadow:none;
  width:auto!important;max-width:none!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;transform:none!important;z-index:auto!important;
}
html.ws-v5 .v5-notice__icon{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--v5-accent-soft);color:var(--v5-accent-ink);}
html.ws-v5 .v5-notice__body{flex:1;min-width:0;}
html.ws-v5 .v5-notice__body b,html.ws-v5 .v5-notice__title{display:block;font-size:var(--v5-fs-body-lg);font-weight:600;color:var(--v5-ink);line-height:1.3;}
html.ws-v5 .v5-notice__body p,html.ws-v5 .v5-notice__text{margin:4px 0 0;font-size:var(--v5-fs-body);color:var(--v5-ink-2);line-height:1.5;}
html.ws-v5 .v5-notice__acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px;}
html.ws-v5 .v5-notice__acts .v5-btn-primary{min-height:36px;padding:0 14px;font-size:var(--v5-fs-body)!important;}
html.ws-v5 .v5-notice__acts .v5-btn-ghost{font-size:var(--v5-fs-body)!important;}
html.ws-v5 .v5-notice__close{flex:none;width:32px;height:32px;border:0;background:transparent;color:var(--v5-ink-3);font-size:var(--v5-fs-title);line-height:1;cursor:pointer;border-radius:var(--v5-r-sm);}
html.ws-v5 .v5-notice__close:hover{background:var(--v5-accent-soft);color:var(--v5-ink);}
/* 日历 · 星图（§6）：绝不复用旧 .done */
html.ws-v5 .v5-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:2px;overflow:visible;}
html.ws-v5 .v5-cal__dow{text-align:center;font-size:var(--v5-fs-eyebrow);font-weight:600;letter-spacing:.06em;color:var(--v5-ink-3);height:24px;line-height:24px;}
html.ws-v5 .v5-cal__day{position:relative;height:var(--v5-cal-h);display:grid;place-items:center;overflow:visible;}
html.ws-v5 .v5-cal__num{
  position:relative;z-index:1;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  font:500 var(--v5-fs-caption)/1 var(--v5-tech);font-variant-numeric:tabular-nums;color:var(--v5-ink-3);
  max-width:none!important;margin:0!important;
}
html.ws-v5 .v5-cal__day.is-out .v5-cal__num{opacity:.35;}
html.ws-v5 .v5-cal__day.is-done .v5-cal__num{background:var(--v5-mark-soft);color:var(--v5-mark-ink);font-weight:700;}
html.ws-v5 .v5-cal__day.is-done .v5-cal__num::after{content:"";position:absolute;left:50%;bottom:2px;width:8px;height:8px;margin-left:-4px;background:var(--v5-mark-color);-webkit-mask:var(--v5-mark-done) center/contain no-repeat;mask:var(--v5-mark-done) center/contain no-repeat;}
html.ws-v5 .v5-cal__day.is-today .v5-cal__num{box-shadow:0 0 0 1.5px var(--v5-accent);color:var(--v5-ink);}
html.ws-v5 .v5-cal__day.is-today.is-done .v5-cal__num{color:var(--v5-accent-ink);}
html.ws-v5 .v5-cal__day.is-link-next::after{content:"";position:absolute;top:50%;left:calc(50% + 16px);right:calc(-50% + 16px);height:2px;margin-top:-1px;background:var(--v5-accent-line);z-index:0;}
html.ws-v5 .v5-cal__day.is-empty{visibility:hidden;}
/* 弹层基座（22-ws-v5-overlays.css 在此之上扩展） */
html.ws-v5 .v5-dialog{
  background:var(--v5-panel);border:1px solid var(--v5-line);border-radius:calc(var(--v5-r) + 4px);box-shadow:var(--v5-shadow);
  width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;color:var(--v5-ink);
}
html.ws-v5 .v5-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 12px;}
html.ws-v5 .v5-dialog__head h2,html.ws-v5 .v5-dialog__head h3{margin:0;font-size:var(--v5-fs-title);font-weight:600;line-height:1.3;font-family:inherit;}
html.ws-v5 .v5-dialog__close{flex:none;width:36px;height:36px;border:0;border-radius:var(--v5-r-sm);background:transparent;color:var(--v5-ink-3);font-size:var(--v5-fs-section);line-height:1;cursor:pointer;}
html.ws-v5 .v5-dialog__close:hover{background:var(--v5-accent-soft);color:var(--v5-ink);}
html.ws-v5 .v5-dialog__body{padding:0 20px 16px;overflow:auto;font-size:var(--v5-fs-body);line-height:1.6;color:var(--v5-ink-2);min-height:0;}
html.ws-v5 .v5-dialog__acts{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--v5-line);flex:none;}
html.ws-v5 .v5-sheet{border-radius:22px 22px 0 0;width:100%;max-width:none;max-height:88vh;padding-bottom:env(safe-area-inset-bottom,0);}
html.ws-v5 .v5-sheet__grip{width:36px;height:4px;border-radius:2px;background:var(--v5-line-2);margin:10px auto 0;}
html.ws-v5 .v5-sheet .v5-dialog__acts{flex-direction:column-reverse;}
html.ws-v5 .v5-sheet .v5-dialog__acts > *{width:100%;}
html.ws-v5 .v5-menu{
  position:absolute;z-index:1100;min-width:200px;padding:6px;background:var(--v5-panel);border:1px solid var(--v5-line);
  border-radius:var(--v5-r);box-shadow:var(--v5-shadow);color:var(--v5-ink);
}
html.ws-v5 .v5-menu__item{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px;border-radius:var(--v5-r-sm);font-size:var(--v5-fs-body);color:var(--v5-ink);cursor:pointer;background:transparent;border:0;width:100%;text-align:left;font-family:inherit;}
html.ws-v5 .v5-menu__item:hover{background:var(--v5-accent-soft);}
html.ws-v5 .v5-menu__item.is-danger{color:var(--v5-warn);}
html.ws-v5 .v5-menu__item kbd{margin-left:auto;font:500 var(--v5-fs-eyebrow)/1 var(--v5-tech);color:var(--v5-ink-3);border:1px solid var(--v5-line);border-radius:4px;padding:3px 5px;}
html.ws-v5 .v5-menu__sep{height:1px;background:var(--v5-line);margin:6px 4px;}
html.ws-v5 .v5-toast{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1200;height:40px;display:inline-flex;align-items:center;padding:0 16px;
  border-radius:var(--v5-r-pill);background:var(--v5-ink);color:var(--v5-paper);font-size:var(--v5-fs-body);box-shadow:var(--v5-shadow);white-space:nowrap;max-width:calc(100vw - 32px);
}
@media(prefers-reduced-motion:reduce){
  html.ws-v5 .v5-btn-primary,html.ws-v5 .v5-btn,html.ws-v5 .v5-chip,html.ws-v5 .v5-bar__fill{transition:none;}
}
/* 手机：只覆盖变量，不覆盖组件 */
@media(max-width:768px){
  html.ws-v5{
    --v5-fs-section:20px;--v5-fs-page:24px;--v5-fs-display:34px;--v5-fs-word:40px;
    --v5-chip-h:32px;--v5-btn-h:44px;--v5-btn-h-lg:52px;--v5-cal-h:44px;
  }
  html.ws-v5 .v5-card{padding:16px;}
  html.ws-v5 .v5-toast{bottom:calc(72px + env(safe-area-inset-bottom,0));}
}

/* ==================== 1.6 主题性格（§2.1）====================
   同一套布局、同一套组件类，形状 / 动效 / 纹样 / 标记四个维度按主题各走各的。
   组件只消费这里的令牌；主题专属装饰规则集中在本节，每个主题一个块。
   业主原话：「每个主题有每个主题的特色，不能只是换了个颜色组合；星穹棱角分明科技风，猫猫就得软软的圆角、动效跟猫有关。」
   ★ 一个主题只做一个签名动效，其余走通用令牌；全部尊重 prefers-reduced-motion。
   ★ 纹样/标记是 SVG data-URI：标记走 mask（颜色由 background 决定），纹样是装饰底纹（alpha ≤ .08，颜色按主题固定属正常）。 */
html.ws-v5{
  /* 形（覆盖第 1 节的通用值：性格优先） */
  --v5-r:12px;--v5-r-sm:8px;--v5-r-btn:0px;--v5-r-chip:999px;
  --v5-btn-clip:polygon(var(--v5-cut) 0,100% 0,100% calc(100% - var(--v5-cut)),calc(100% - var(--v5-cut)) 100%,0 100%,0 var(--v5-cut));
  --v5-hero-clip:polygon(var(--v5-cut) 0,calc(100% - var(--v5-cut)) 0,100% var(--v5-cut),100% calc(100% - var(--v5-cut)),calc(100% - var(--v5-cut)) 100%,var(--v5-cut) 100%,0 calc(100% - var(--v5-cut)),0 var(--v5-cut));
  /* 动 */
  --v5-ease:cubic-bezier(.2,.8,.2,1);--v5-ease-in:cubic-bezier(.4,0,1,1);
  --v5-dur-fast:120ms;--v5-dur:180ms;--v5-dur-slow:320ms;
  --v5-press:scale(.98);--v5-lift:translateY(-1px);
  --v5-enter:v5-enter-tech;
  /* 纹 / 标记 */
  --v5-motif:none;--v5-motif-size:240px;
  --v5-mark-color:var(--v5-accent);--v5-mark-soft:var(--v5-accent-soft);--v5-mark-ink:var(--v5-accent-ink);
  --v5-mark-done:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 0l1.4 3.6L10 5 6.4 6.4 5 10 3.6 6.4 0 5l3.6-1.4z'/%3E%3C/svg%3E");
  --v5-shadow-soft:var(--v5-shadow);
}
/* ---- 星穹 supreme：观测台·科技。细网格纹样；入场 = 切角展开（clip-path 斜向揭开）；签名 = 主按钮扫光 + 卡片微倾 ---- */
html.ws-v5[data-theme="supreme"]{
  --v5-motif:linear-gradient(color-mix(in srgb,var(--accent) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 4%,transparent) 1px,transparent 1px);
  --v5-motif-size:48px 48px;
  --v5-enter:v5-enter-cut;
}
/* ---- 极简 minimal-light / minimal-dark：克制，无切角，只有淡入 ---- */
html.ws-v5[data-theme="minimal-light"],
html.ws-v5[data-theme="minimal-dark"]{
  --v5-r:10px;--v5-r-sm:8px;--v5-r-btn:10px;--v5-btn-clip:none;--v5-hero-clip:none;
  --v5-ease:cubic-bezier(.25,.1,.25,1);--v5-dur-fast:100ms;--v5-dur:120ms;--v5-dur-slow:200ms;
  --v5-press:none;--v5-lift:none;--v5-enter:v5-enter-fade;--v5-motif:none;
  --v5-mark-done:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Ccircle cx='5' cy='5' r='4'/%3E%3C/svg%3E");
}
/* ---- 桃桃猫卷 cute-pink：软·猫。全圆角、厚软阴影、弹簧动效、肉球标记、猫耳头像 ---- */
html.ws-v5[data-theme="cute-pink"]{
  --v5-r:22px;--v5-r-sm:14px;--v5-r-btn:999px;--v5-btn-clip:none;--v5-hero-clip:none;
  --v5-ease:cubic-bezier(.34,1.56,.64,1);--v5-ease-in:cubic-bezier(.36,0,.66,-.56);
  --v5-dur-fast:160ms;--v5-dur:260ms;--v5-dur-slow:420ms;
  --v5-press:scale(.94);--v5-lift:translateY(-2px);--v5-enter:v5-enter-soft;
  --v5-shadow-soft:0 2px 4px color-mix(in srgb,var(--ink) 5%,transparent),0 14px 34px -14px color-mix(in srgb,var(--accent) 35%,transparent);
  --v5-mark-done:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cellipse cx='5' cy='6.9' rx='2.7' ry='2.2'/%3E%3Ccircle cx='1.9' cy='4.1' r='1.15'/%3E%3Ccircle cx='3.9' cy='2.2' r='1.15'/%3E%3Ccircle cx='6.1' cy='2.2' r='1.15'/%3E%3Ccircle cx='8.1' cy='4.1' r='1.15'/%3E%3C/svg%3E");
  --v5-motif:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'%3E%3Cg fill='%23e27ea5' fill-opacity='.07'%3E%3Cg transform='translate(22 26) rotate(-18) scale(2.6)'%3E%3Cellipse cx='5' cy='6.9' rx='2.7' ry='2.2'/%3E%3Ccircle cx='1.9' cy='4.1' r='1.15'/%3E%3Ccircle cx='3.9' cy='2.2' r='1.15'/%3E%3Ccircle cx='6.1' cy='2.2' r='1.15'/%3E%3Ccircle cx='8.1' cy='4.1' r='1.15'/%3E%3C/g%3E%3Cg transform='translate(104 96) rotate(22) scale(2.6)'%3E%3Cellipse cx='5' cy='6.9' rx='2.7' ry='2.2'/%3E%3Ccircle cx='1.9' cy='4.1' r='1.15'/%3E%3Ccircle cx='3.9' cy='2.2' r='1.15'/%3E%3Ccircle cx='6.1' cy='2.2' r='1.15'/%3E%3Ccircle cx='8.1' cy='4.1' r='1.15'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");--v5-motif-size:160px;
}
/* ---- 纸墨浅 light / 纸墨深 dark：纸·墨·印。方角小圆像印章，墨晕淡入，盖章式按压 ---- */
html.ws-v5[data-theme="light"],
html.ws-v5[data-theme="dark"]{
  /* 业主 2026-09-26：「两个经典主题还是改成圆角气泡」→ 形状回到圆角 + 药丸气泡；纸墨的性格留在纸纹、墨晕淡入、盖章按压上 */
  --v5-r:14px;--v5-r-sm:10px;--v5-r-btn:999px;--v5-r-chip:999px;--v5-btn-clip:none;--v5-hero-clip:none;
  --v5-ease:ease;--v5-dur-fast:120ms;--v5-dur:200ms;--v5-dur-slow:300ms;
  --v5-press:scale(.97);--v5-lift:none;--v5-enter:v5-enter-ink;
  /* 印：外圈一道印边 + 中心一粒印泥（evenodd 挖空），不是极简那种实心圆点 */
  --v5-mark-done:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath fill-rule='evenodd' d='M5 .3a4.7 4.7 0 1 1 0 9.4A4.7 4.7 0 0 1 5 .3zm0 1.5a3.2 3.2 0 1 0 0 6.4 3.2 3.2 0 0 0 0-6.4z'/%3E%3Ccircle cx='5' cy='5' r='1.9'/%3E%3C/svg%3E");
}
/* 纸墨浅 = 朱印；纸墨深 = 金印（§2.1 日历打卡标记） */
html.ws-v5[data-theme="light"]{--v5-mark-color:var(--terra);--v5-mark-soft:color-mix(in srgb,var(--terra) 12%,var(--card));--v5-mark-ink:var(--v5-ink);}
html.ws-v5[data-theme="dark"]{--v5-mark-color:var(--v5-gold);--v5-mark-soft:color-mix(in srgb,var(--v5-gold) 14%,var(--card));--v5-mark-ink:var(--v5-ink);}
/* ---- 像素街机 pixel：8-bit 街机，高级克制而不是霓虹（DESIGN-PIXEL.md §3–§4）。
   像素单位 P = 3px：圆角全 0，「圆」由两级台阶切角表现（小元件 3/6px、大面板 6/12px）；动效一律 steps()（约 12 帧/秒），
   按下 = 整颗沉 1P；桌面 hover 只提亮不位移；入场像老游戏逐行刷出；打卡标记 = 7×7 金色像素星；阴影一律硬边。
   纹样 = sprites.json 的 12px 点阵（令牌照规范给出）；但 index.html 的 body::before 已经把同一张点阵固定铺满全屏，
   .wrap 再按令牌铺一层会随滚动错位叠出双点 → 第 7 节把 .wrap 这一处消费方关掉（令牌留给以后的层用）。
   签名 = 首页手卷上的像素桃桃猫卷（第 7 节）。 ---- */
html.ws-v5[data-theme="pixel"]{
  --v5-r:0px;--v5-r-sm:0px;--v5-r-btn:0px;--v5-r-chip:0px;--v5-r-pill:0px;--v5-cut:6px;
  --v5-btn-clip:polygon(0 6px,3px 6px,3px 3px,6px 3px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 3px,calc(100% - 3px) 3px,calc(100% - 3px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 3px) calc(100% - 6px),calc(100% - 3px) calc(100% - 3px),calc(100% - 6px) calc(100% - 3px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 3px),3px calc(100% - 3px),3px calc(100% - 6px),0 calc(100% - 6px));
  --v5-hero-clip:polygon(0 12px,6px 12px,6px 6px,12px 6px,12px 0,calc(100% - 12px) 0,calc(100% - 12px) 6px,calc(100% - 6px) 6px,calc(100% - 6px) 12px,100% 12px,100% calc(100% - 12px),calc(100% - 6px) calc(100% - 12px),calc(100% - 6px) calc(100% - 6px),calc(100% - 12px) calc(100% - 6px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 6px),6px calc(100% - 6px),6px calc(100% - 12px),0 calc(100% - 12px));
  --v5-ease:steps(4,end);--v5-ease-in:steps(4,end);
  --v5-dur-fast:120ms;--v5-dur:200ms;--v5-dur-slow:360ms;
  --v5-press:translateY(3px);--v5-lift:none;--v5-enter:v5-enter-pixel;
  --v5-motif:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' shape-rendering='crispEdges'><rect x='0' y='0' width='1' height='1' fill='%238A94C8' fill-opacity='.18'/></svg>");--v5-motif-size:12px 12px;
  --v5-mark-done:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 7' shape-rendering='crispEdges'><rect x='3' y='0' width='1' height='1' fill='%23000'/><rect x='2' y='1' width='1' height='1' fill='%23000'/><rect x='3' y='1' width='1' height='1' fill='%23000'/><rect x='4' y='1' width='1' height='1' fill='%23000'/><rect x='0' y='2' width='1' height='1' fill='%23000'/><rect x='1' y='2' width='1' height='1' fill='%23000'/><rect x='2' y='2' width='1' height='1' fill='%23000'/><rect x='3' y='2' width='1' height='1' fill='%23000'/><rect x='4' y='2' width='1' height='1' fill='%23000'/><rect x='5' y='2' width='1' height='1' fill='%23000'/><rect x='6' y='2' width='1' height='1' fill='%23000'/><rect x='1' y='3' width='1' height='1' fill='%23000'/><rect x='2' y='3' width='1' height='1' fill='%23000'/><rect x='3' y='3' width='1' height='1' fill='%23000'/><rect x='4' y='3' width='1' height='1' fill='%23000'/><rect x='5' y='3' width='1' height='1' fill='%23000'/><rect x='2' y='4' width='1' height='1' fill='%23000'/><rect x='3' y='4' width='1' height='1' fill='%23000'/><rect x='4' y='4' width='1' height='1' fill='%23000'/><rect x='1' y='5' width='1' height='1' fill='%23000'/><rect x='2' y='5' width='1' height='1' fill='%23000'/><rect x='4' y='5' width='1' height='1' fill='%23000'/><rect x='5' y='5' width='1' height='1' fill='%23000'/><rect x='1' y='6' width='1' height='1' fill='%23000'/><rect x='5' y='6' width='1' height='1' fill='%23000'/></svg>");
  --v5-mark-color:var(--amber);--v5-mark-soft:var(--card-strong);--v5-mark-ink:var(--v5-ink);
  --v5-shadow:var(--shadow);--v5-shadow-soft:var(--shadow);
  --v5-roller:#FFD447;
  /* 素材：release-packages/v7-pixel/sprites.json（make-sprites.cjs 生成）原样照抄，勿手改、勿重画 */
  --px-cat-idle:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14' shape-rendering='crispEdges'><rect x='2' y='0' width='1' height='1' fill='%231B1530'/><rect x='3' y='0' width='1' height='1' fill='%231B1530'/><rect x='12' y='0' width='1' height='1' fill='%231B1530'/><rect x='13' y='0' width='1' height='1' fill='%231B1530'/><rect x='1' y='1' width='1' height='1' fill='%231B1530'/><rect x='2' y='1' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='1' width='1' height='1' fill='%23FF8FB8'/><rect x='4' y='1' width='1' height='1' fill='%231B1530'/><rect x='11' y='1' width='1' height='1' fill='%231B1530'/><rect x='12' y='1' width='1' height='1' fill='%23FF8FB8'/><rect x='13' y='1' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='1' width='1' height='1' fill='%231B1530'/><rect x='1' y='2' width='1' height='1' fill='%231B1530'/><rect x='2' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='2' width='1' height='1' fill='%23FF8FB8'/><rect x='5' y='2' width='1' height='1' fill='%231B1530'/><rect x='6' y='2' width='1' height='1' fill='%231B1530'/><rect x='7' y='2' width='1' height='1' fill='%231B1530'/><rect x='8' y='2' width='1' height='1' fill='%231B1530'/><rect x='9' y='2' width='1' height='1' fill='%231B1530'/><rect x='10' y='2' width='1' height='1' fill='%231B1530'/><rect x='11' y='2' width='1' height='1' fill='%23FF8FB8'/><rect x='12' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='2' width='1' height='1' fill='%231B1530'/><rect x='1' y='3' width='1' height='1' fill='%231B1530'/><rect x='2' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='5' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='6' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='7' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='8' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='9' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='10' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='11' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='12' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='3' width='1' height='1' fill='%231B1530'/><rect x='0' y='4' width='1' height='1' fill='%231B1530'/><rect x='1' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='4' width='1' height='1' fill='%231B1530'/><rect x='0' y='5' width='1' height='1' fill='%231B1530'/><rect x='1' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='5' width='1' height='1' fill='%231B1530'/><rect x='0' y='6' width='1' height='1' fill='%231B1530'/><rect x='1' y='6' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='6' width='1' height='1' fill='%23FFFFFF'/><rect x='5' y='6' width='1' height='1' fill='%231B1530'/><rect x='6' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='6' width='1' height='1' fill='%23FFFFFF'/><rect x='11' y='6' width='1' height='1' fill='%231B1530'/><rect x='12' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='6' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='6' width='1' height='1' fill='%231B1530'/><rect x='0' y='7' width='1' height='1' fill='%231B1530'/><rect x='1' y='7' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='7' width='1' height='1' fill='%231B1530'/><rect x='5' y='7' width='1' height='1' fill='%231B1530'/><rect x='6' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='7' width='1' height='1' fill='%231B1530'/><rect x='11' y='7' width='1' height='1' fill='%231B1530'/><rect x='12' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='7' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='7' width='1' height='1' fill='%231B1530'/><rect x='0' y='8' width='1' height='1' fill='%231B1530'/><rect x='1' y='8' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='8' width='1' height='1' fill='%23FF8FB8'/><rect x='4' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='8' width='1' height='1' fill='%231B1530'/><rect x='8' y='8' width='1' height='1' fill='%231B1530'/><rect x='9' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='8' width='1' height='1' fill='%23FF8FB8'/><rect x='13' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='8' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='8' width='1' height='1' fill='%231B1530'/><rect x='0' y='9' width='1' height='1' fill='%231B1530'/><rect x='1' y='9' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='9' width='1' height='1' fill='%231B1530'/><rect x='7' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='9' width='1' height='1' fill='%231B1530'/><rect x='10' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='9' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='9' width='1' height='1' fill='%231B1530'/><rect x='1' y='10' width='1' height='1' fill='%231B1530'/><rect x='2' y='10' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='10' width='1' height='1' fill='%231B1530'/><rect x='8' y='10' width='1' height='1' fill='%231B1530'/><rect x='9' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='10' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='10' width='1' height='1' fill='%231B1530'/><rect x='1' y='11' width='1' height='1' fill='%231B1530'/><rect x='2' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='11' width='1' height='1' fill='%231B1530'/><rect x='2' y='12' width='1' height='1' fill='%231B1530'/><rect x='3' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='5' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='6' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='7' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='8' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='9' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='10' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='11' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='12' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='12' width='1' height='1' fill='%231B1530'/><rect x='3' y='13' width='1' height='1' fill='%231B1530'/><rect x='4' y='13' width='1' height='1' fill='%231B1530'/><rect x='5' y='13' width='1' height='1' fill='%231B1530'/><rect x='6' y='13' width='1' height='1' fill='%231B1530'/><rect x='7' y='13' width='1' height='1' fill='%231B1530'/><rect x='8' y='13' width='1' height='1' fill='%231B1530'/><rect x='9' y='13' width='1' height='1' fill='%231B1530'/><rect x='10' y='13' width='1' height='1' fill='%231B1530'/><rect x='11' y='13' width='1' height='1' fill='%231B1530'/><rect x='12' y='13' width='1' height='1' fill='%231B1530'/></svg>");
  --px-cat-blink:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14' shape-rendering='crispEdges'><rect x='2' y='0' width='1' height='1' fill='%231B1530'/><rect x='3' y='0' width='1' height='1' fill='%231B1530'/><rect x='12' y='0' width='1' height='1' fill='%231B1530'/><rect x='13' y='0' width='1' height='1' fill='%231B1530'/><rect x='1' y='1' width='1' height='1' fill='%231B1530'/><rect x='2' y='1' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='1' width='1' height='1' fill='%23FF8FB8'/><rect x='4' y='1' width='1' height='1' fill='%231B1530'/><rect x='11' y='1' width='1' height='1' fill='%231B1530'/><rect x='12' y='1' width='1' height='1' fill='%23FF8FB8'/><rect x='13' y='1' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='1' width='1' height='1' fill='%231B1530'/><rect x='1' y='2' width='1' height='1' fill='%231B1530'/><rect x='2' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='2' width='1' height='1' fill='%23FF8FB8'/><rect x='5' y='2' width='1' height='1' fill='%231B1530'/><rect x='6' y='2' width='1' height='1' fill='%231B1530'/><rect x='7' y='2' width='1' height='1' fill='%231B1530'/><rect x='8' y='2' width='1' height='1' fill='%231B1530'/><rect x='9' y='2' width='1' height='1' fill='%231B1530'/><rect x='10' y='2' width='1' height='1' fill='%231B1530'/><rect x='11' y='2' width='1' height='1' fill='%23FF8FB8'/><rect x='12' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='2' width='1' height='1' fill='%231B1530'/><rect x='1' y='3' width='1' height='1' fill='%231B1530'/><rect x='2' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='5' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='6' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='7' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='8' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='9' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='10' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='11' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='12' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='3' width='1' height='1' fill='%231B1530'/><rect x='0' y='4' width='1' height='1' fill='%231B1530'/><rect x='1' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='4' width='1' height='1' fill='%231B1530'/><rect x='0' y='5' width='1' height='1' fill='%231B1530'/><rect x='1' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='5' width='1' height='1' fill='%231B1530'/><rect x='0' y='6' width='1' height='1' fill='%231B1530'/><rect x='1' y='6' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='6' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='6' width='1' height='1' fill='%231B1530'/><rect x='0' y='7' width='1' height='1' fill='%231B1530'/><rect x='1' y='7' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='7' width='1' height='1' fill='%231B1530'/><rect x='4' y='7' width='1' height='1' fill='%231B1530'/><rect x='5' y='7' width='1' height='1' fill='%231B1530'/><rect x='6' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='7' width='1' height='1' fill='%231B1530'/><rect x='11' y='7' width='1' height='1' fill='%231B1530'/><rect x='12' y='7' width='1' height='1' fill='%231B1530'/><rect x='13' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='7' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='7' width='1' height='1' fill='%231B1530'/><rect x='0' y='8' width='1' height='1' fill='%231B1530'/><rect x='1' y='8' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='8' width='1' height='1' fill='%23FF8FB8'/><rect x='4' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='8' width='1' height='1' fill='%231B1530'/><rect x='8' y='8' width='1' height='1' fill='%231B1530'/><rect x='9' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='8' width='1' height='1' fill='%23FF8FB8'/><rect x='13' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='8' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='8' width='1' height='1' fill='%231B1530'/><rect x='0' y='9' width='1' height='1' fill='%231B1530'/><rect x='1' y='9' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='9' width='1' height='1' fill='%231B1530'/><rect x='7' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='9' width='1' height='1' fill='%231B1530'/><rect x='10' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='9' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='9' width='1' height='1' fill='%231B1530'/><rect x='1' y='10' width='1' height='1' fill='%231B1530'/><rect x='2' y='10' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='10' width='1' height='1' fill='%231B1530'/><rect x='8' y='10' width='1' height='1' fill='%231B1530'/><rect x='9' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='10' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='10' width='1' height='1' fill='%231B1530'/><rect x='1' y='11' width='1' height='1' fill='%231B1530'/><rect x='2' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='11' width='1' height='1' fill='%231B1530'/><rect x='2' y='12' width='1' height='1' fill='%231B1530'/><rect x='3' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='5' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='6' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='7' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='8' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='9' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='10' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='11' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='12' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='12' width='1' height='1' fill='%231B1530'/><rect x='3' y='13' width='1' height='1' fill='%231B1530'/><rect x='4' y='13' width='1' height='1' fill='%231B1530'/><rect x='5' y='13' width='1' height='1' fill='%231B1530'/><rect x='6' y='13' width='1' height='1' fill='%231B1530'/><rect x='7' y='13' width='1' height='1' fill='%231B1530'/><rect x='8' y='13' width='1' height='1' fill='%231B1530'/><rect x='9' y='13' width='1' height='1' fill='%231B1530'/><rect x='10' y='13' width='1' height='1' fill='%231B1530'/><rect x='11' y='13' width='1' height='1' fill='%231B1530'/><rect x='12' y='13' width='1' height='1' fill='%231B1530'/></svg>");
  --px-cat-happy:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14' shape-rendering='crispEdges'><rect x='2' y='0' width='1' height='1' fill='%231B1530'/><rect x='3' y='0' width='1' height='1' fill='%231B1530'/><rect x='12' y='0' width='1' height='1' fill='%231B1530'/><rect x='13' y='0' width='1' height='1' fill='%231B1530'/><rect x='1' y='1' width='1' height='1' fill='%231B1530'/><rect x='2' y='1' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='1' width='1' height='1' fill='%23FF8FB8'/><rect x='4' y='1' width='1' height='1' fill='%231B1530'/><rect x='11' y='1' width='1' height='1' fill='%231B1530'/><rect x='12' y='1' width='1' height='1' fill='%23FF8FB8'/><rect x='13' y='1' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='1' width='1' height='1' fill='%231B1530'/><rect x='1' y='2' width='1' height='1' fill='%231B1530'/><rect x='2' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='2' width='1' height='1' fill='%23FF8FB8'/><rect x='5' y='2' width='1' height='1' fill='%231B1530'/><rect x='6' y='2' width='1' height='1' fill='%231B1530'/><rect x='7' y='2' width='1' height='1' fill='%231B1530'/><rect x='8' y='2' width='1' height='1' fill='%231B1530'/><rect x='9' y='2' width='1' height='1' fill='%231B1530'/><rect x='10' y='2' width='1' height='1' fill='%231B1530'/><rect x='11' y='2' width='1' height='1' fill='%23FF8FB8'/><rect x='12' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='2' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='2' width='1' height='1' fill='%231B1530'/><rect x='1' y='3' width='1' height='1' fill='%231B1530'/><rect x='2' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='5' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='6' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='7' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='8' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='9' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='10' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='11' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='12' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='3' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='3' width='1' height='1' fill='%231B1530'/><rect x='0' y='4' width='1' height='1' fill='%231B1530'/><rect x='1' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='4' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='4' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='4' width='1' height='1' fill='%231B1530'/><rect x='0' y='5' width='1' height='1' fill='%231B1530'/><rect x='1' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='5' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='5' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='5' width='1' height='1' fill='%231B1530'/><rect x='0' y='6' width='1' height='1' fill='%231B1530'/><rect x='1' y='6' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='6' width='1' height='1' fill='%231B1530'/><rect x='5' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='6' width='1' height='1' fill='%231B1530'/><rect x='12' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='6' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='6' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='6' width='1' height='1' fill='%231B1530'/><rect x='0' y='7' width='1' height='1' fill='%231B1530'/><rect x='1' y='7' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='7' width='1' height='1' fill='%231B1530'/><rect x='4' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='7' width='1' height='1' fill='%231B1530'/><rect x='6' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='7' width='1' height='1' fill='%231B1530'/><rect x='11' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='7' width='1' height='1' fill='%231B1530'/><rect x='13' y='7' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='7' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='7' width='1' height='1' fill='%231B1530'/><rect x='0' y='8' width='1' height='1' fill='%231B1530'/><rect x='1' y='8' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='8' width='1' height='1' fill='%23FF8FB8'/><rect x='4' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='8' width='1' height='1' fill='%231B1530'/><rect x='8' y='8' width='1' height='1' fill='%231B1530'/><rect x='9' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='8' width='1' height='1' fill='%23FF8FB8'/><rect x='13' y='8' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='8' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='8' width='1' height='1' fill='%231B1530'/><rect x='0' y='9' width='1' height='1' fill='%231B1530'/><rect x='1' y='9' width='1' height='1' fill='%23B9BED6'/><rect x='2' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='3' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='9' width='1' height='1' fill='%231B1530'/><rect x='6' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='9' width='1' height='1' fill='%231B1530'/><rect x='11' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='9' width='1' height='1' fill='%23F2F4FF'/><rect x='14' y='9' width='1' height='1' fill='%23B9BED6'/><rect x='15' y='9' width='1' height='1' fill='%231B1530'/><rect x='1' y='10' width='1' height='1' fill='%231B1530'/><rect x='2' y='10' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='4' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='10' width='1' height='1' fill='%231B1530'/><rect x='7' y='10' width='1' height='1' fill='%231B1530'/><rect x='8' y='10' width='1' height='1' fill='%231B1530'/><rect x='9' y='10' width='1' height='1' fill='%231B1530'/><rect x='10' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='10' width='1' height='1' fill='%23F2F4FF'/><rect x='13' y='10' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='10' width='1' height='1' fill='%231B1530'/><rect x='1' y='11' width='1' height='1' fill='%231B1530'/><rect x='2' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='3' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='5' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='6' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='7' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='8' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='9' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='10' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='11' y='11' width='1' height='1' fill='%23F2F4FF'/><rect x='12' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='11' width='1' height='1' fill='%23B9BED6'/><rect x='14' y='11' width='1' height='1' fill='%231B1530'/><rect x='2' y='12' width='1' height='1' fill='%231B1530'/><rect x='3' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='4' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='5' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='6' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='7' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='8' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='9' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='10' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='11' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='12' y='12' width='1' height='1' fill='%23B9BED6'/><rect x='13' y='12' width='1' height='1' fill='%231B1530'/><rect x='3' y='13' width='1' height='1' fill='%231B1530'/><rect x='4' y='13' width='1' height='1' fill='%231B1530'/><rect x='5' y='13' width='1' height='1' fill='%231B1530'/><rect x='6' y='13' width='1' height='1' fill='%231B1530'/><rect x='7' y='13' width='1' height='1' fill='%231B1530'/><rect x='8' y='13' width='1' height='1' fill='%231B1530'/><rect x='9' y='13' width='1' height='1' fill='%231B1530'/><rect x='10' y='13' width='1' height='1' fill='%231B1530'/><rect x='11' y='13' width='1' height='1' fill='%231B1530'/><rect x='12' y='13' width='1' height='1' fill='%231B1530'/></svg>");
  --px-coin:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'><rect x='1' y='0' width='1' height='1' fill='%23FFD447'/><rect x='2' y='0' width='1' height='1' fill='%23FFD447'/><rect x='3' y='0' width='1' height='1' fill='%23FFD447'/><rect x='0' y='1' width='1' height='1' fill='%23FFD447'/><rect x='1' y='1' width='1' height='1' fill='%23FFD447'/><rect x='2' y='1' width='1' height='1' fill='%23FFFFFF'/><rect x='3' y='1' width='1' height='1' fill='%23FFD447'/><rect x='4' y='1' width='1' height='1' fill='%23FFD447'/><rect x='0' y='2' width='1' height='1' fill='%23FFD447'/><rect x='1' y='2' width='1' height='1' fill='%23FFD447'/><rect x='2' y='2' width='1' height='1' fill='%23FFFFFF'/><rect x='3' y='2' width='1' height='1' fill='%23FFD447'/><rect x='4' y='2' width='1' height='1' fill='%23FFD447'/><rect x='0' y='3' width='1' height='1' fill='%23FFD447'/><rect x='1' y='3' width='1' height='1' fill='%23FFD447'/><rect x='2' y='3' width='1' height='1' fill='%23FFFFFF'/><rect x='3' y='3' width='1' height='1' fill='%23FFD447'/><rect x='4' y='3' width='1' height='1' fill='%23FFD447'/><rect x='1' y='4' width='1' height='1' fill='%23FFD447'/><rect x='2' y='4' width='1' height='1' fill='%23FFD447'/><rect x='3' y='4' width='1' height='1' fill='%23FFD447'/></svg>");
  /* 像素件的配方（第 7 节用）：
     描边面板 = 切角 + inset 3px 描边 + 四个角内侧各补 1 格（两级台阶处 inset 描边会断开一格，补上才是完整的像素圆角框）；
     街机按键 = 底部 6px「侧面」+ 顶边 1P 高光，按下侧面缩到 3px；次按键 / 芯片 = card-strong 面 + 3px 线色侧面。 */
  --px-corners:linear-gradient(var(--line),var(--line)) left 3px top 3px/3px 3px no-repeat,linear-gradient(var(--line),var(--line)) right 3px top 3px/3px 3px no-repeat,linear-gradient(var(--line),var(--line)) left 3px bottom 3px/3px 3px no-repeat,linear-gradient(var(--line),var(--line)) right 3px bottom 3px/3px 3px no-repeat;
  --px-corners-hi:linear-gradient(var(--accent),var(--accent)) left 3px top 3px/3px 3px no-repeat,linear-gradient(var(--accent),var(--accent)) right 3px top 3px/3px 3px no-repeat,linear-gradient(var(--accent),var(--accent)) left 3px bottom 3px/3px 3px no-repeat,linear-gradient(var(--accent),var(--accent)) right 3px bottom 3px/3px 3px no-repeat;
  --px-ol:inset 0 0 0 3px var(--line);
  --px-ol-hi:inset 0 0 0 3px var(--accent);
  --px-hi:color-mix(in srgb,var(--ink) 10%,transparent);
  --px-lo:color-mix(in srgb,var(--paper-2) 80%,transparent);
  --px-side:color-mix(in srgb,var(--accent) 55%,var(--paper-2));
  --px-face-hover:color-mix(in srgb,var(--accent) 92%,var(--ink));
  --px-key:inset 0 -6px 0 var(--px-side),inset 0 3px 0 color-mix(in srgb,var(--ink) 22%,transparent);
  --px-key-down:inset 0 -3px 0 var(--px-side),inset 0 3px 0 color-mix(in srgb,var(--ink) 22%,transparent);
  --px-cap:inset 0 -3px 0 var(--line),inset 0 3px 0 var(--px-hi);
  --px-cap-on:inset 0 -3px 0 color-mix(in srgb,var(--accent) 55%,var(--paper-2)),inset 0 3px 0 var(--px-hi);
  /* 分格 EXP 条：每格 9px + 3px 缝（空格暗、亮格绿） */
  --px-exp:repeating-linear-gradient(90deg,var(--ok) 0 9px,transparent 9px 12px);
  --px-exp-empty:repeating-linear-gradient(90deg,color-mix(in srgb,var(--line) 70%,var(--paper-2)) 0 9px,transparent 9px 12px);
}
/* ---- 海盐汽水：玻璃 · 气泡 · 液面。全圆胶囊按钮、气泡芯片、浮起入场；打卡 = 皇冠瓶盖；签名 = 主按钮按下冒泡（17 号 onFizz） ---- */
html.ws-v5[data-theme="soda"]{
  --v5-r:18px;--v5-r-sm:12px;--v5-r-btn:999px;--v5-r-chip:999px;--v5-cut:0px;--v5-btn-clip:none;--v5-hero-clip:none;
  --v5-ease:cubic-bezier(.22,1,.36,1);--v5-ease-in:cubic-bezier(.55,0,1,.45);
  --v5-dur-fast:140ms;--v5-dur:220ms;--v5-dur-slow:420ms;
  --v5-press:scale(.965);--v5-lift:translateY(-1px);--v5-enter:v5-enter-float;
  --v5-mark-color:var(--accent);--v5-mark-soft:var(--accent-soft);--v5-mark-ink:var(--v5-accent-ink);
  --v5-shadow:0 1px 2px color-mix(in srgb,var(--ink) 5%,transparent),0 14px 30px -18px color-mix(in srgb,var(--accent) 38%,transparent);
  --v5-shadow-soft:var(--sd-hi),var(--v5-shadow);
  --v5-motif:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><g fill='none' stroke='%2308709A' stroke-opacity='.07' stroke-width='1.2'><circle cx='26' cy='34' r='7'/><circle cx='46' cy='56' r='3.5'/><circle cx='120' cy='24' r='4.5'/><circle cx='152' cy='98' r='9'/><circle cx='90' cy='130' r='5'/><circle cx='32' cy='152' r='3'/><circle cx='134' cy='162' r='2.5'/></g></svg>");--v5-motif-size:180px 180px;
  --v5-mark-done:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill-rule='evenodd' d='M10 1.05Q11.57 -.43 12.64 1.45Q14.58 .49 15.04 2.61Q17.18 2.27 17 4.42Q19.14 4.72 18.33 6.73Q20.29 7.65 18.92 9.33Q20.52 10.79 18.73 11.99Q19.82 13.85 17.75 14.47Q18.25 16.58 16.09 16.56Q15.94 18.72 13.88 18.06Q13.11 20.08 11.33 18.85Q10 20.55 8.67 18.85Q6.89 20.08 6.12 18.06Q4.06 18.72 3.91 16.56Q1.75 16.58 2.25 14.48Q.18 13.85 1.27 11.99Q-.52 10.79 1.08 9.33Q-.29 7.65 1.67 6.73Q.86 4.72 3 4.42Q2.82 2.27 4.96 2.61Q5.42 .49 7.36 1.45Q8.43 -.43 10 1.05ZM3.1 10a6.9 6.9 0 1 0 13.8 0a6.9 6.9 0 1 0-13.8 0ZM4.4 10a5.6 5.6 0 1 0 11.2 0a5.6 5.6 0 1 0-11.2 0Z'/></svg>");
  /* 配方令牌（第 9 节用） */
  --sd-hi:inset 0 1px 0 color-mix(in srgb,var(--card) 92%,transparent);
  --sd-glass:color-mix(in srgb,var(--accent) 6%,var(--card));
  --sd-glass-line:color-mix(in srgb,var(--accent) 14%,var(--line));
  --sd-ring:color-mix(in srgb,var(--cyan) 62%,var(--card));
  --sd-gloss:linear-gradient(180deg,color-mix(in srgb,var(--on-accent) 13%,transparent),transparent 46%);
  --sd-key:inset 0 1px 0 color-mix(in srgb,var(--on-accent) 30%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--accent) 70%,var(--ink)),0 10px 20px -14px color-mix(in srgb,var(--accent) 80%,transparent);
  --sd-cap-solid:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M10 1.05Q11.57 -.43 12.64 1.45Q14.58 .49 15.04 2.61Q17.18 2.27 17 4.42Q19.14 4.72 18.33 6.73Q20.29 7.65 18.92 9.33Q20.52 10.79 18.73 11.99Q19.82 13.85 17.75 14.47Q18.25 16.58 16.09 16.56Q15.94 18.72 13.88 18.06Q13.11 20.08 11.33 18.85Q10 20.55 8.67 18.85Q6.89 20.08 6.12 18.06Q4.06 18.72 3.91 16.56Q1.75 16.58 2.25 14.48Q.18 13.85 1.27 11.99Q-.52 10.79 1.08 9.33Q-.29 7.65 1.67 6.73Q.86 4.72 3 4.42Q2.82 2.27 4.96 2.61Q5.42 .49 7.36 1.45Q8.43 -.43 10 1.05Z'/></svg>");
  --sd-cap-rim:inset 0 0 0 4px color-mix(in srgb,var(--accent) 86%,var(--ink)),inset 0 0 0 5.5px color-mix(in srgb,var(--on-accent) 35%,transparent);
  --sd-wave-v:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='16' viewBox='0 0 6 16'><path d='M0 0H3C5.6 2 5.6 6 3 8C.4 10 .4 14 3 16H0Z'/></svg>");
  --sd-wave-h:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='10' viewBox='0 0 80 10'><path d='M0 5C13 1 27 1 40 5S67 9 80 5V10H0Z'/></svg>");
  --sd-liquid:radial-gradient(circle at 30% 64%,color-mix(in srgb,var(--card) 55%,transparent) 0 1px,transparent 1.5px) 0 0/37px 100% repeat-x,
              radial-gradient(circle at 70% 38%,color-mix(in srgb,var(--card) 40%,transparent) 0 .8px,transparent 1.2px) 13px 0/53px 100% repeat-x,var(--accent);
}
/* ---- 森林书屋：原木 · 书页 · 叶。木牌主按钮、书签芯片、纸页入场；打卡 = 叶印；签名 = 完成时落叶 + 翻页（18 号 S/F 节） ---- */
html.ws-v5[data-theme="forest"]{
  --v5-r:10px;--v5-r-sm:8px;--v5-r-btn:8px;--v5-r-chip:4px;--v5-cut:0px;--v5-btn-clip:none;--v5-hero-clip:none;
  --v5-ease:cubic-bezier(.3,.7,.2,1);--v5-ease-in:cubic-bezier(.5,0,.75,0);
  --v5-dur-fast:140ms;--v5-dur:240ms;--v5-dur-slow:460ms;
  --v5-press:translateY(1px);--v5-lift:none;--v5-enter:v5-enter-page;
  --v5-mark-color:var(--accent);--v5-mark-soft:color-mix(in srgb,var(--leaf) 20%,var(--card));--v5-mark-ink:var(--ink);
  --v5-shadow:0 1px 0 color-mix(in srgb,var(--wood-deep) 10%,transparent),0 12px 26px -20px color-mix(in srgb,var(--wood-deep) 55%,transparent);
  --v5-shadow-soft:var(--v5-shadow);
  --v5-motif:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='120'><g fill='none' stroke='%237A5535' stroke-opacity='.06' stroke-width='1'><path d='M0 14C50 8 90 22 140 16S210 8 240 14'/><path d='M0 38C60 32 100 46 150 40S220 32 240 38'/><path d='M0 66C40 60 70 74 120 70C150 67 170 58 200 62C220 64 232 66 240 66'/><path d='M0 94C55 88 105 102 160 96S225 88 240 94'/><ellipse cx='172' cy='70' rx='9' ry='3.2'/></g></svg>");--v5-motif-size:240px 120px;
  --v5-mark-done:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill-rule='evenodd' d='M3 17C2.4 9.2 8.6 3 17 3C17.6 10.8 11.2 17.2 3 17ZM5.2 14.2L14.2 5.2L14.8 5.8L5.8 14.8Z'/><path d='M3.3 16.2L4 16.9L1.7 19.2L1 18.5Z'/></svg>");
  /* 配方令牌（第 10 节用） */
  --fs-wood-face:color-mix(in srgb,var(--wood) 32%,var(--card));
  --fs-wood-edge:color-mix(in srgb,var(--wood) 55%,var(--wood-deep));
  --fs-bookmark:color-mix(in srgb,var(--accent) 14%,var(--card));
  --fs-grain:repeating-linear-gradient(180deg,color-mix(in srgb,var(--ink) 4%,transparent) 0 1px,transparent 1px 4px,color-mix(in srgb,var(--ink) 2.5%,transparent) 4px 5px,transparent 5px 9px);
  --fs-grain-on:repeating-linear-gradient(180deg,color-mix(in srgb,var(--on-accent) 4%,transparent) 0 1px,transparent 1px 4px,color-mix(in srgb,var(--on-accent) 2%,transparent) 4px 5px,transparent 5px 9px);
  --fs-key:inset 0 1px 0 color-mix(in srgb,var(--on-accent) 16%,transparent),inset 0 -3px 0 color-mix(in srgb,var(--accent) 62%,var(--ink)),0 6px 14px -10px color-mix(in srgb,var(--wood-deep) 70%,transparent);
  --fs-key-down:inset 0 1px 0 color-mix(in srgb,var(--on-accent) 12%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--accent) 62%,var(--ink));
  --fs-plank:inset 0 -2px 0 var(--fs-wood-edge),inset 0 1px 0 color-mix(in srgb,var(--card) 60%,transparent);
  --fs-ribbon-clip:polygon(0 0,100% 0,calc(100% - 7px) 50%,100% 100%,0 100%);
  --fs-tail-clip:polygon(0 0,100% 0,100% 100%,50% calc(100% - 6px),0 100%);
  --fs-pages:0 1px 0 var(--line),0 3px 0 -1px var(--card-strong),0 4px 0 -1px var(--line-strong),0 6px 0 -2px var(--card-strong),0 7px 0 -2px var(--line);
  --fs-leaf:var(--v5-mark-done);
  --fs-vine:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='14' viewBox='0 0 28 14'><path d='M0 7C7 3.6 21 10.4 28 7' fill='none' stroke='%23000' stroke-width='1.6'/><path d='M7.5 5.9C7.9 3 10.4 1.4 13.2 1.6C12.6 4.3 10.4 6 7.5 5.9Z'/><path d='M20.5 8.1C20.1 11 17.6 12.6 14.8 12.4C15.4 9.7 17.6 8 20.5 8.1Z'/></svg>");
  --fs-groove:radial-gradient(circle,color-mix(in srgb,var(--ink-faint) 40%,transparent) 0 1px,transparent 1.5px) 0 50%/9px 100% repeat-x,var(--paper-2);
}
/* 纹样只要 index.html 的 body::before 那一层（它已经把同一张小泡 / 顺纹固定铺满全屏；.wrap 再铺一层会随滚动错位、叠出双层，同像素街机） */
html.ws-v5[data-theme="soda"] .wrap,
html.ws-v5[data-theme="forest"] .wrap{background-image:none;}
/* ---- 入场 keyframes（按 --v5-enter 选） ---- */
@keyframes v5-enter-tech{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes v5-enter-soft{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes v5-enter-ink{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}
@keyframes v5-enter-cut{from{opacity:.2;clip-path:polygon(0 0,0% 0,0 0%,0 0)}to{opacity:1;clip-path:polygon(0 0,200% 0,0 200%,0 0)}}
@keyframes v5-enter-fade{from{opacity:0}to{opacity:1}}
@keyframes v5-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}}
@keyframes v5-sweep{from{transform:translateX(-140%) skewX(-18deg)}to{transform:translateX(240%) skewX(-18deg)}}
/* 像素街机：像老游戏逐行刷出来（每段 3 帧，帧函数写在关键帧里，不吃外面的 --v5-ease） */
@keyframes v5-enter-pixel{0%{opacity:0;clip-path:inset(0 0 100% 0);animation-timing-function:steps(3,end)}50%{opacity:1;clip-path:inset(0 0 50% 0);animation-timing-function:steps(3,end)}100%{opacity:1;clip-path:inset(0)}}
/* 海盐汽水 / 森林书屋（DESIGN-SODA-FOREST.md §2.3）：只动 transform / opacity */
@keyframes v5-enter-float{0%{opacity:0;transform:translateY(14px)}70%{opacity:1;transform:translateY(-2px)}100%{opacity:1;transform:none}}
@keyframes v5-enter-page{from{opacity:0;transform:perspective(1200px) rotateX(-5deg) translateY(6px);transform-origin:50% 0}to{opacity:1;transform:none}}
@keyframes v5sd-slosh{from{transform:translateY(0)}to{transform:translateY(-16px)}}
@keyframes v5sd-fizz{0%{opacity:0;transform:translate3d(0,6px,0) scale(.35)}18%{opacity:1}100%{opacity:0;transform:translate3d(var(--dx,0),var(--dy,-40px),0) scale(1)}}
@keyframes v5sd-cap-pop{0%{opacity:0;transform:translateY(26px) rotate(-120deg) scale(.55)}55%{opacity:1;transform:translateY(-10px) rotate(12deg) scale(1.04)}78%{transform:translateY(2px) rotate(-4deg) scale(.99)}100%{opacity:1;transform:none}}
@keyframes v5sd-rise{0%{opacity:0;transform:translate3d(0,8px,0)}14%{opacity:1}40%{transform:translate3d(-5px,-130px,0)}70%{opacity:.9;transform:translate3d(4px,-260px,0)}100%{opacity:0;transform:translate3d(-3px,-380px,0)}}
@keyframes v5sd-rise-b{0%{opacity:0;transform:translate3d(0,8px,0)}16%{opacity:1}45%{transform:translate3d(6px,-140px,0)}75%{opacity:.85;transform:translate3d(-4px,-270px,0)}100%{opacity:0;transform:translate3d(3px,-390px,0)}}
@keyframes v5sd-pop{from{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(3.2)}}
@keyframes v5fs-unfurl{from{opacity:0;transform:rotate(-70deg) scale(.2)}to{opacity:1;transform:none}}
@keyframes v5fs-flip{0%{transform:perspective(2400px) rotateY(0);opacity:1}55%{opacity:1}100%{transform:perspective(2400px) rotateY(-176deg);opacity:0}}
@keyframes v5fs-seal{from{opacity:0;transform:scale(.86) rotate(-6deg)}to{opacity:1;transform:none}}
@keyframes v5fs-fall-a{0%{opacity:0;transform:translate(0,-40px) rotate(-30deg)}12%{opacity:1}35%{transform:translate(22px,70px) rotate(20deg)}60%{transform:translate(-8px,170px) rotate(-18deg)}85%{opacity:1;transform:translate(16px,270px) rotate(28deg)}100%{opacity:0;transform:translate(6px,330px) rotate(40deg)}}
@keyframes v5fs-fall-b{0%{opacity:0;transform:translate(0,-40px) rotate(40deg)}12%{opacity:1}38%{transform:translate(-24px,80px) rotate(-12deg)}64%{transform:translate(10px,180px) rotate(24deg)}88%{opacity:1;transform:translate(-14px,280px) rotate(-20deg)}100%{opacity:0;transform:translate(-6px,340px) rotate(-34deg)}}
@keyframes v5fs-swing{0%{opacity:0;transform:translateY(-30px) rotate(-12deg)}35%{opacity:1;transform:rotate(7deg)}60%{transform:rotate(-3.5deg)}80%{transform:rotate(1.5deg)}100%{transform:none}}
/* 页面切换 = 一次入场（挂在 tab 视图上而不是每张卡：主脚本频繁 render 重写卡片，挂在卡上会一直闪） */
html.ws-v5 [id^="view-"].active{animation:var(--v5-enter) var(--v5-dur-slow) var(--v5-ease) backwards;}
/* 纹样：铺在内容壳上，永远在最底下 */
html.ws-v5 .wrap{background-image:var(--v5-motif);background-size:var(--v5-motif-size);}
/* ---- 签名动效（每主题一个） ---- */
/* 星穹（只此一家）：主按钮 hover 一道扫光。像素街机的签名是首页像素猫（见第 7 节），不继承这一条 */
html.ws-v5[data-theme="supreme"] .v5-btn-primary{position:relative;overflow:hidden;}
html.ws-v5[data-theme="supreme"] .v5-btn-primary::after{content:"";position:absolute;top:0;bottom:0;left:0;width:36%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--v5-on-accent) 35%,transparent),transparent);transform:translateX(-140%) skewX(-18deg);pointer-events:none;}
html.ws-v5[data-theme="supreme"] .v5-btn-primary:hover::after{animation:v5-sweep .7s var(--v5-ease) 1;}
/* D-dstar-02：旧美化层 ui-polish-v4 给星穹主题一套「主按钮呼吸光晕 wsSupremeGlow / 流光 wsPremiumFlow + body::after 极光 wsSupremeAurora」，
   :is(#startBtn) 带 id 权重。V5 下统一摘掉，签名动效只认上面那一条（V7.0.0 起 ^="supreme" 只剩星穹至尊一个主题） */
html.ws-v5.ws-v5[data-theme^="supreme"] body::after{animation:none!important;}
html.ws-v5.ws-v5[data-theme^="supreme"] :is(#startBtn#startBtn,#planStartBtn#planStartBtn,.btn-primary,.desktop-start,.v5-btn-primary,.learn-next,.mobile-start-btn,.mobile-plan-start-btn,.share-action.primary,.settings-primary-btn,.auth-modal-primary,.theme-preview-actions .primary,.reward-actions .primary){animation:none!important;}
/* 桃桃猫卷：头像长猫耳、底栏/侧栏切换摇尾、进度条末端小猫头 */
html.ws-v5[data-theme="cute-pink"] .v5-chip.is-avatar{overflow:visible;position:relative;}
html.ws-v5[data-theme="cute-pink"] .v5-chip.is-avatar::before,
html.ws-v5[data-theme="cute-pink"] .v5-chip.is-avatar::after{content:"";position:absolute;top:-6px;width:10px;height:10px;background:var(--v5-accent-soft);border:1px solid var(--v5-accent-line);border-radius:70% 70% 10% 10%;z-index:-1;}
html.ws-v5[data-theme="cute-pink"] .v5-chip.is-avatar::before{left:5px;transform:rotate(-14deg);}
html.ws-v5[data-theme="cute-pink"] .v5-chip.is-avatar::after{right:5px;transform:rotate(14deg);}
html.ws-v5[data-theme="cute-pink"] nav .active svg,
html.ws-v5[data-theme="cute-pink"] .v5-tabbar .active svg{animation:v5-wiggle .45s var(--v5-ease) 1;transform-origin:50% 90%;}
html.ws-v5[data-theme="cute-pink"] .v5-bar{overflow:visible;}
html.ws-v5[data-theme="cute-pink"] .v5-bar__fill{overflow:visible;}
html.ws-v5[data-theme="cute-pink"] .v5-bar__fill::after{content:"";position:absolute;right:-7px;top:50%;width:14px;height:14px;margin-top:-7px;background:var(--v5-accent);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l3 2.4h4L12 2v5.2A5 5 0 0 1 7 12a5 5 0 0 1-5-4.8z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l3 2.4h4L12 2v5.2A5 5 0 0 1 7 12a5 5 0 0 1-5-4.8z'/%3E%3C/svg%3E") center/contain no-repeat;}
/* 纸墨：主按钮像印章——按下先压、松开回弹，印泥色描边 */
html.ws-v5[data-theme="light"] .v5-btn-primary,
html.ws-v5[data-theme="dark"] .v5-btn-primary{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--v5-on-accent) 25%,transparent);}
/* 减少动态效果：全部只留 120ms 淡入 */
@media(prefers-reduced-motion:reduce){
  html.ws-v5{--v5-enter:v5-enter-fade;--v5-dur-slow:120ms;--v5-press:none;--v5-lift:none;}
  html.ws-v5[data-theme="supreme"] .v5-btn-primary:hover::after,
  html.ws-v5[data-theme="cute-pink"] nav .active svg,
  html.ws-v5[data-theme="cute-pink"] .v5-tabbar .active svg{animation:none;}
  /* 像素街机：性格块是 [data-theme] 权重，压得过上面那条 html.ws-v5 —— 必须自己再写一遍（入场只淡入、按下不沉、无位移） */
  html.ws-v5[data-theme="pixel"]{--v5-enter:v5-enter-fade;--v5-dur-slow:120ms;--v5-press:none;--v5-lift:none;}
  /* 海盐汽水 / 森林书屋（§2.6）：同理各写一遍；冒泡双保险（17 号也不生成）；液面 / 嫩叶停住（波形保留、叶子直接展开） */
  html.ws-v5[data-theme="soda"],html.ws-v5[data-theme="forest"]{--v5-enter:v5-enter-fade;--v5-dur-slow:120ms;--v5-press:none;--v5-lift:none;}
  html.ws-v5 .wsv5-fizz{display:none!important;}
  html.ws-v5[data-theme="soda"] :is(.v5-bar__fill,.tm-track i,.pbar i,.mp-fill,.wsv5-xp i,.streak-card-track i,.next-achievement-meter i,.stats-mini-bar i,.ach-progress i,.ws-ilad-track i,.wsv5p-bar i)::after{animation:none!important;}
  html.ws-v5[data-theme="forest"] :is(.v5-bar__fill,.tm-track i,.pbar i,.mp-fill,.wsv5-xp i,.streak-card-track i,.next-achievement-meter i,.stats-mini-bar i,.ach-progress i,.ws-ilad-track i,.wsv5p-bar i)::after{animation:none!important;opacity:1!important;transform:none!important;}
  html.ws-v5[data-theme="soda"] .wsv5-sway,html.ws-v5[data-theme="soda"] .wsv5-dust circle{animation:none!important;}
}

/* ==================== 2. 注入节点默认不出现 ====================
   桌面层在 ≥769px 生效（V7.0.0 起；769–1099 是第 8 节的缩窄版）；≤768 由 20/21（手机层）接管。注入节点（.wsv5）默认不显示。 */
html.ws-v5 .wsv5{display:none!important;}

/* ==================== 3. 桌面端 V5.2（§7）====================
   V5.2 做减法：普通面板一律 .v5-card 的样子（--v5-panel 底 / 1px --v5-line / 圆角 14 / --v5-shadow），
   没有切角、没有发丝渐变描边、没有角标、没有左色条、没有发光。
   切角只留两处：主按钮（.v5-btn-primary 形）与手卷（.wsv5-holo / 学习页星卷）；发光只有这两处。
   颜色只走 --v5-* 令牌；字号只走 --v5-fs-* 九档。 */
@media(min-width:769px){

/* ---------- 3.1 通用形：面板 / 分区标题 / 眉题 / 数字 ---------- */
html.ws-v5 .wsv5{display:block!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-hud,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-cut{
  position:relative!important;isolation:auto!important;clip-path:none!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;
  box-shadow:var(--v5-shadow)!important;color:var(--v5-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-hud::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-hud::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-cut::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-cut::after{content:none!important;display:none!important;}
/* 分区标题：section 22/700 + 一根 1px 线 + 右侧文字链 */
html.ws-v5 .wsv5-sec{display:flex!important;align-items:center;gap:14px;margin:16px 2px 0;}
html.ws-v5 .wsv5-sec h2{flex:none;font-family:var(--cjk);font-size:var(--v5-fs-section);font-weight:700;line-height:1.25;letter-spacing:0;color:var(--v5-ink);margin:0;}
html.ws-v5 .wsv5-sec .wsv5-line{flex:1;min-width:24px;height:1px;background:var(--v5-line);}
html.ws-v5 .wsv5-sec .wsv5-seclink{flex:none;background:none;border:0;padding:0;cursor:pointer;font:600 var(--v5-fs-body)/1.4 var(--cjk);color:var(--v5-accent-ink);}
html.ws-v5 .wsv5-sec .wsv5-seclink:hover{text-decoration:underline;}
/* 眉题：与 .v5-eyebrow 同一种（11/600/.08em），没有菱形、没有光 */
html.ws-v5 .wsv5-eyebrow{display:block;font-family:var(--cjk);font-weight:600;font-size:var(--v5-fs-eyebrow);letter-spacing:.08em;line-height:1.2;text-transform:uppercase;color:var(--v5-accent-ink);}
html.ws-v5 .wsv5-eyebrow::before{content:none;display:none;}
html.ws-v5 .wsv5-eyebrow.au{color:var(--v5-gold-ink);}
html.ws-v5 .wsv5-num{font-family:var(--v5-tech);font-weight:600;font-variant-numeric:tabular-nums;}

/* ---------- 3.2 壳：固定侧轨 + 固定顶栏 + 居中内容列（§4：max-width 1480） ---------- */
html.ws-v5 .wrap{background-color:transparent;}
html.ws-v5 body{
  background:
    radial-gradient(1100px 620px at 82% -14%,color-mix(in srgb,var(--v5-accent) calc(9% * var(--v5-sky)),transparent),transparent 60%),
    radial-gradient(800px 540px at 4% 110%,color-mix(in srgb,var(--v5-accent) calc(7% * var(--v5-sky)),transparent),transparent 58%),
    var(--v5-paper)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap{width:100%!important;max-width:none!important;margin:0!important;padding:96px 20px 32px 132px!important;box-sizing:border-box!important;}
/* 内容列：每个页面容器 + 站点页脚都收进 1480 的居中列；≥1800 两侧留白增长，卡片不再拉宽 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>.view,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>.ws-site-footer,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>.wsv5-foot{max-width:1480px!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important;}

/* 侧轨 = 原来的 body .wrap>nav：92px 圆角面板（按钮一个不少，只换形） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav{
  position:fixed!important;left:20px!important;right:auto!important;top:18px!important;bottom:20px!important;
  z-index:60!important;width:var(--v5-rail)!important;
  margin:0!important;padding:10px 0 8px!important;gap:2px!important;
  border:1px solid var(--v5-line)!important;border-right:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;
  box-shadow:var(--v5-shadow)!important;background:var(--v5-panel)!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;
  overflow-x:hidden!important;overflow-y:auto!important;clip-path:none!important;isolation:auto!important;
  scrollbar-width:none;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav::-webkit-scrollbar{width:0;height:0;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>.wsv5-bg{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]{
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  gap:3px!important;flex:0 0 auto!important;
  width:68px!important;min-height:0!important;height:auto!important;padding:8px 0 6px!important;margin:0!important;
  border:0!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;box-shadow:none!important;
  font-family:var(--cjk)!important;font-size:0!important;line-height:1.1!important;font-weight:600!important;
  color:var(--v5-ink-3)!important;text-align:center!important;white-space:normal!important;overflow:visible!important;
  position:relative;cursor:pointer;transition:color var(--v5-dur),background var(--v5-dur);text-shadow:none!important;
}
/* 图标：同一套 18px 线性图标（mask 走 currentColor，随主题令牌） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]::before{
  content:""!important;position:static!important;flex:none!important;width:20px!important;height:20px!important;
  display:block!important;font-size:0!important;line-height:0!important;margin:0!important;transform:none!important;opacity:1!important;
  background:currentColor!important;color:currentColor!important;
  -webkit-mask:var(--v5-ico) center/20px 20px no-repeat;mask:var(--v5-ico) center/20px 20px no-repeat;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]::after{
  display:block!important;margin:0!important;font-family:var(--cjk)!important;font-size:var(--v5-fs-eyebrow)!important;
  font-weight:600!important;line-height:1.2!important;color:currentColor!important;letter-spacing:.02em!important;
  white-space:nowrap!important;text-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]:hover{color:var(--v5-ink)!important;background:var(--v5-accent-soft)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab].active{
  color:var(--v5-accent-ink)!important;background:var(--v5-accent-soft)!important;
  border-color:transparent!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab].mobile-main-tab{display:flex!important;}
/* 侧轨按钮的短标签 + 图标（长句子塞不进 92px；原按钮与事件一个没动） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="home"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V20a1 1 0 0 1-1 1h-5v-6h-4v6H5a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="home"]::after{content:"\4eca\65e5"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="plan"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M9 15l2 2 4-4'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="plan"]::after{content:"\8ba1\5212"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="lib"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2z'/%3E%3Cpath d='M4 19a2 2 0 0 1 2-2h13M8 7h7'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="lib"]::after{content:"\8bcd\5e93"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="records"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13M8 12h13M8 18h13M3.5 6h.01M3.5 12h.01M3.5 18h.01'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="records"]::after{content:"\8bb0\5f55"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="stats"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 20v-8M11 20V4M17 20v-6M3 20h18'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="stats"]::after{content:"\7edf\8ba1"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="achievements"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5'/%3E%3Cpath d='M8.5 13.2 7 21l5-2.6L17 21l-1.5-7.8'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="achievements"]::after{content:"\6210\5c31"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="settings"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="settings"]::after{content:"\8bbe\7f6e"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="account"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="account"]::after{content:"\6211\7684"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="donate"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7.5l9 6 9-6'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="donate"]::after{content:"\53cd\9988"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="lectures"]{--v5-ico:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9.5 12 4.5l10 5-10 5z'/%3E%3Cpath d='M6 12v4.2c0 1.6 3 3 6 3s6-1.4 6-3V12M22 9.5V15'/%3E%3C/svg%3E");}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab="lectures"]::after{content:"\8bfe\5802"!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-mark{display:grid!important;place-items:center;width:44px;height:44px;margin:0 0 6px;flex:none;color:var(--v5-accent-ink);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-mark svg{width:30px;height:30px;filter:none;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-hr{flex:none;width:44px;height:1px;margin:6px 0;background:var(--v5-line);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-sp{flex:1 1 auto;min-height:6px;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all{
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;flex:none!important;height:auto!important;min-height:0!important;
  width:68px;padding:8px 0 6px;margin:0;
  border:0;background:transparent;border-radius:var(--v5-r-sm);color:var(--v5-accent-ink);
  font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk);cursor:pointer;letter-spacing:.02em;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all:hover{background:var(--v5-accent-soft);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all i{font-style:normal;font-size:var(--v5-fs-title);line-height:1;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all kbd{font:500 var(--v5-fs-eyebrow)/1 var(--v5-tech);color:var(--v5-ink-3);}
/* D-dstar-19：≥1632 宽时侧轨跟着内容列靠拢（内容列 1480 居中，侧轨放在它左缘外 20px），不再贴在屏幕最左、中间空出一大片 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav{left:max(20px,calc((100% - 1632px) / 2 + 20px))!important;}
@media(max-height:800px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav{padding:6px 0 6px!important;gap:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]{padding:5px 0 4px!important;gap:2px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]::before{width:18px!important;height:18px!important;-webkit-mask-size:18px 18px!important;mask-size:18px 18px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-mark{width:36px;height:36px;margin:0 0 2px;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-mark svg{width:26px;height:26px;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-hr{margin:3px 0;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-sp{min-height:2px;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all{padding:5px 0 4px;gap:2px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all kbd{display:none;}
}

/* 顶栏 = 原来的 header：62 高圆角面板；与内容列同宽同心（fixed + left/right + max-width 居中） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header{
  position:fixed!important;left:132px!important;right:20px!important;top:18px!important;bottom:auto!important;
  z-index:59!important;width:auto!important;max-width:1480px!important;height:var(--v5-top)!important;min-height:0!important;
  padding:0 10px 0 16px!important;margin:0 auto!important;box-sizing:border-box!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;background:var(--v5-panel)!important;
  display:flex!important;flex-direction:row!important;align-items:center!important;gap:12px!important;overflow:visible!important;
  clip-path:none!important;isolation:auto!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header::before{
  content:""!important;display:block!important;position:absolute!important;left:-14px!important;right:-14px!important;top:-19px!important;height:19px!important;
  background:linear-gradient(to bottom,var(--v5-paper) calc(100% - 6px),transparent)!important;pointer-events:none!important;z-index:-1!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;
}
/* 回到顶部时（内容还没滚到顶栏下）这条遮挡带没必要、还会在星空光晕上压出一道暗边 → 滚动驱动：滚过 24px 才淡入（不支持的浏览器一直显示） */
@supports (animation-timeline:scroll()){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header::before{animation:v5-band linear both;animation-timeline:scroll(root block);animation-range:0 24px;}
}
@keyframes v5-band{from{opacity:0}to{opacity:1}}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header>div:first-child{flex:none!important;display:flex!important;align-items:baseline!important;gap:10px!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .tagline{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .logo{
  display:flex!important;flex-direction:row-reverse!important;align-items:baseline!important;gap:6px!important;
  font-size:0!important;line-height:1!important;white-space:nowrap!important;margin:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .logo::before{font-family:var(--cjk)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:700!important;color:var(--v5-ink-2)!important;margin:0!important;line-height:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .logo::after{font-family:var(--v5-word)!important;font-size:var(--v5-fs-section)!important;font-weight:700!important;color:var(--v5-ink)!important;margin:0!important;line-height:1!important;letter-spacing:-.01em!important;}
/* 主题名：品牌旁一行 caption（不再是悬在药丸中间的裸文本） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .wsv5-themename{flex:none!important;font:500 var(--v5-fs-caption)/1 var(--cjk);color:var(--v5-ink-3);white-space:nowrap;letter-spacing:0;order:0;margin:0 0 0 2px;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions{
  position:static!important;left:auto!important;right:auto!important;top:auto!important;
  flex:1 1 auto!important;min-width:0!important;max-width:none!important;
  display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:nowrap!important;
  overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;padding:2px 0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions::-webkit-scrollbar{display:none;}
/* ★ 顶栏 chip 归一（§5）：所有带 id 的旧药丸 + JS 加的 .v5-chip，同高（--v5-chip-h）同字号（13/500）同基线同底色。
   规则不挂 media（在本 media 块外还有一份 id 兜底，见 3.2b）。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #desktopTopStreak#desktopTopStreak,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topRankBtn#topRankBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topShopBtn#topShopBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #installAppTop#installAppTop,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsModeChip#wsModeChip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #datechip#datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsV5RevertChip#wsV5RevertChip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions>button,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions>.datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions .v5-chip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .v5-chip-more,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .wsv5-beta{
  min-height:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;padding:0 12px!important;margin:0!important;box-sizing:border-box!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-pill)!important;box-shadow:none!important;
  background:var(--v5-panel-2)!important;color:var(--v5-ink-2)!important;background-image:none!important;
  font-family:var(--cjk)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;line-height:1!important;letter-spacing:0!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;flex:none!important;
  transform:none!important;text-shadow:none!important;white-space:nowrap!important;cursor:pointer;
  transition:border-color var(--v5-dur-fast),color var(--v5-dur-fast),background-color var(--v5-dur-fast)!important;
  opacity:1!important;   /* V7.0.0 第三轮：ui-polish-v4 的 IA-V1 把排行 / 商城 / 安装几颗压成 opacity:.78 → 二级墨在汽水 4.07、猫卷 3.98（按 opacity 叠色量）；新版 chip 统一不透明 */
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #desktopTopStreak#desktopTopStreak:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topRankBtn#topRankBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topShopBtn#topShopBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #installAppTop#installAppTop:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsModeChip#wsModeChip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #datechip#datechip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsV5RevertChip#wsV5RevertChip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions .v5-chip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .wsv5-beta:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;background:var(--v5-panel-2)!important;transform:none!important;}
/* 圆钮三颗：主题 / 铃铛 / 头像（34×34） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topAccountBtn#topAccountBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsThemeQuickBtn#wsThemeQuickBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsRqBell#wsRqBell{
  min-height:var(--v5-chip-h)!important;margin:0!important;box-sizing:border-box!important;
  border:1px solid var(--v5-line)!important;border-radius:50%!important;box-shadow:none!important;background:var(--v5-panel-2)!important;color:var(--v5-ink-2)!important;
  display:inline-flex!important;align-items:center!important;line-height:1!important;flex:none!important;transform:none!important;cursor:pointer;
  width:var(--v5-chip-h)!important;min-width:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;padding:0!important;justify-content:center!important;
  font-size:var(--v5-fs-body-lg)!important;overflow:hidden!important;position:relative!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topAccountBtn#topAccountBtn{font-size:0!important;}
/* V6.9.0 游客态：上面的圆钮 + font-size:0 是给登录后的头像写的，游客的「登录 / 注册」四个字被压成 0 像素（9/23 自查）。
   .is-guest 由 04 号 updateTopAccountButton 按登录态打：游客展开成带字 chip（同高、药丸圆角、强调色底），登录后照旧圆钮 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topAccountBtn#topAccountBtn.is-guest{
  width:auto!important;min-width:0!important;padding:0 12px!important;border-radius:var(--v5-r-pill)!important;overflow:visible!important;white-space:nowrap!important;gap:6px!important;
  font-size:var(--v5-fs-body)!important;font-weight:600!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;border-color:var(--v5-accent-line)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topAccountBtn#topAccountBtn.is-guest .top-account-avatar{display:none!important;}
/* 铃铛：圆钮不裁切，未读角标收进 chip 右上角并压在描边之上（原来 overflow:hidden 把角标切成一弯月牙） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsRqBell#wsRqBell{overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsRqBell#wsRqBell .ws-rq-dot{
  position:absolute!important;top:-5px!important;right:-6px!important;left:auto!important;bottom:auto!important;z-index:2!important;
  box-shadow:0 0 0 2px var(--v5-panel)!important;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box!important;
}
/* 猫卷：头像长一对猫耳（§2.1）。圆钮原本 overflow:hidden 把耳朵裁掉、耳朵 z-index:-1 又沉到顶栏底下 →
   不裁 + isolation 建本地层叠上下文，耳朵画在按钮底色之上、头像字之下，露出按钮上沿 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>header #topAccountBtn#topAccountBtn{overflow:visible!important;isolation:isolate!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>header #topAccountBtn#topAccountBtn::before,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>header #topAccountBtn#topAccountBtn::after{
  content:""!important;display:block!important;position:absolute!important;top:-5px!important;width:14px!important;height:15px!important;
  background:color-mix(in srgb,var(--v5-accent) 55%,var(--card))!important;border:0!important;border-radius:0!important;
  clip-path:polygon(10% 0,100% 64%,24% 100%)!important;transform-origin:40% 90%!important;
  z-index:-1!important;box-sizing:border-box!important;box-shadow:none!important;margin:0!important;opacity:1!important;
  transition:transform var(--v5-dur) var(--v5-ease)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>header #topAccountBtn#topAccountBtn::before{left:0!important;right:auto!important;transform:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>header #topAccountBtn#topAccountBtn::after{right:0!important;left:auto!important;transform:scaleX(-1)!important;}
/* hover：耳朵抖一下（猫卷「摇尾」同一族的小动作） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>header #topAccountBtn#topAccountBtn:hover::before{transform:rotate(-12deg)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>header #topAccountBtn#topAccountBtn:hover::after{transform:scaleX(-1) rotate(-12deg)!important;}
/* 安装词卷：去掉自带的 22px 强调色圆图标与 46 高 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #installAppTop#installAppTop.top-install-btn{min-height:var(--v5-chip-h)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #installAppTop#installAppTop.top-install-btn::before{width:auto!important;height:auto!important;background:none!important;color:inherit!important;font-weight:600!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topAccountBtn .top-account-welcome,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topAccountBtn .top-account-coin{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topAccountBtn .top-account-avatar{width:100%!important;height:100%!important;border-radius:inherit!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;display:grid!important;place-items:center!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;}
/* 金色只留一处：连胜 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #desktopTopStreak#desktopTopStreak,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions .v5-chip.is-gold{
  color:var(--v5-gold-ink)!important;border-color:color-mix(in srgb,var(--v5-gold) 40%,transparent)!important;background:var(--v5-panel-2)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #topShopBtn#topShopBtn{color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsModeChip#wsModeChip.in-class,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .header-actions .v5-chip.is-on{background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;color:var(--v5-accent-ink)!important;}
/* 「V5 · 切回旧版」：普通 chip（不再金底）；主题名 caption 排在品牌旁 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .wsv5-beta{order:0;}
/* 铃铛角标 = .v5-tag 的配色（站点 terra 底白字在至尊 1.7:1、猫卷 3.05:1 实测不过线） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #wsRqBell .ws-rq-dot,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .ws-rq-dot{
  background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;
  font-size:var(--v5-fs-eyebrow)!important;font-weight:700!important;line-height:16px!important;
  top:-4px!important;right:-4px!important;min-width:16px!important;height:16px!important;padding:0 4px!important;border-radius:var(--v5-r-pill)!important;
}
/* 铃铛的小红点 / 班级模式的圆点：只保证不撑高 chip */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header #wsModeChip .ws-mode-dot{width:8px!important;height:8px!important;border-radius:50%!important;background:var(--v5-accent)!important;flex:none!important;display:inline-block!important;}
/* 顶栏「更多」（JS 体折叠溢出 chip 用）：与 chip 同尺寸 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .v5-chip-more{
  min-height:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;padding:0 12px!important;margin:0!important;flex:none!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-panel-2)!important;color:var(--v5-ink-2)!important;
  font:500 var(--v5-fs-body)/1 var(--cjk)!important;display:inline-flex!important;align-items:center!important;gap:6px!important;cursor:pointer;
}

/* 侧栏底部那一组已搬到首页「社交·商城」细条与页脚：原容器空了，收起 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .desktop-side-footer{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .desktop-goal-card{display:none!important;}

/* 页脚一行（V5 注入的 .wsv5-foot；站点自己的 .ws-site-footer 也压成同一行 caption，二者只显示一个） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot{
  display:flex!important;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 6px 0!important;margin:8px 0 0!important;
  font-size:var(--v5-fs-caption);color:var(--v5-ink-3);line-height:1.5;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot button{
  border:0!important;background:none!important;box-shadow:none!important;padding:0!important;margin:0!important;
  width:auto!important;height:auto!important;min-height:0!important;
  font:500 var(--v5-fs-caption)/1.5 var(--cjk)!important;color:var(--v5-ink-2)!important;cursor:pointer;
  display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot button>span{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot button:hover{color:var(--v5-accent-ink)!important;text-decoration:underline;}
html.ws-v5 .wsv5-foot .wsv5-dot{opacity:.45;}
html.ws-v5 .wsv5-foot .wsv5-fsp{flex:1 1 auto;}
/* 站点页脚（含「班级信息 · 听写 打卡 周报 年级」关键词）在 V5 下全局收起：每页底部只留 V5 一行页脚 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>.ws-site-footer,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-site-footer{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>.wsv5-foot{max-width:1480px!important;margin:16px auto 0!important;}
/* 备案号：站点页脚里的 .ws-site-records 是法定信息，搬不了就在 V5 页脚里补一份（17 若把它搬进 .wsv5-foot 则原样显示） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot .ws-site-records{display:inline!important;font:inherit!important;color:inherit!important;margin:0!important;padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot .ws-site-records a{color:var(--v5-ink-2)!important;text-decoration:none!important;}

/* ---------- 3.3 首页 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active{
  display:flex!important;flex-direction:column!important;gap:16px!important;align-items:stretch!important;
  grid-template-columns:none!important;grid-template-areas:none!important;grid-template-rows:none!important;
}
/* ★ 首页各段一律清掉定位偏移：站点给 .card.hero 的是 position:sticky + top:118px，
   V5 把它改成 relative 后那个 top:118px 还在 —— 英雄区会整体下移 118px、正好盖住下面一段。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active>*{
  grid-area:auto!important;grid-column:auto!important;grid-row:auto!important;order:0!important;
  top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;inset:auto!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .mobile-home-shell{display:none!important;}

/* 3.3a 轮播（§7：高 220；帧内 eyebrow + 标题 + 两行 + 一排 chip；右侧要点一列 caption）
   站点自己的 V6.7.18 轮播布局是 !important 的，这里只钉高度、字阶与 chip 收纳。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero{
  position:relative!important;height:220px!important;min-height:0!important;max-height:220px!important;overflow:hidden!important;
  padding:0!important;margin:0!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
  clip-path:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .cat-mascot,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .paw-float{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-carousel{height:220px!important;min-height:0!important;max-height:220px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-slide{
  position:absolute!important;inset:0!important;height:220px!important;min-height:0!important;max-height:220px!important;
  display:grid!important;grid-template-columns:minmax(0,1fr) 320px!important;grid-template-rows:auto auto auto minmax(0,1fr)!important;
  column-gap:24px!important;row-gap:0!important;align-content:start!important;align-items:start!important;
  padding:20px 64px 18px 64px!important;margin:0!important;box-sizing:border-box!important;overflow:hidden!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-slide>*{min-width:0!important;grid-column:1!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .share-eyebrow{
  grid-row:1!important;font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;text-transform:uppercase!important;
  color:var(--v5-accent-ink)!important;background:none!important;padding:0!important;border:0!important;margin:0 0 6px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero h1,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero h2{
  grid-row:2!important;font-family:var(--cjk)!important;font-size:var(--v5-fs-section)!important;font-weight:700!important;line-height:1.25!important;
  color:var(--v5-ink)!important;margin:0 0 6px!important;letter-spacing:0!important;
  display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero h1 .hero-cn{font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink-2)!important;margin-left:4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-slide>p{
  grid-row:3!important;font-size:var(--v5-fs-body)!important;line-height:1.6!important;color:var(--v5-ink-2)!important;margin:0 0 10px!important;
  display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;max-width:none!important;
  max-height:none!important;   /* V7.0.0：index.html 内联 max-height:44px 比两行（44.8）矮 → 新版 line-clamp 只排得下一行（1100 宽实测）；行数交给 line-clamp */
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-slide>p b,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-slide>p strong{color:var(--v5-ink)!important;font-weight:600!important;}
/* 一排 chip：只留与该帧相关的（开始 / 安装 / 游戏三颗 / 连胜读数 / 币 在主按钮、顶栏、学完再玩、全部功能里各有一处，这里收起） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .share-actions{
  grid-row:4!important;align-self:end!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important;
  margin:0!important;padding:0!important;overflow:hidden!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>*{
  flex:none!important;height:var(--v5-chip-h)!important;min-height:var(--v5-chip-h)!important;padding:0 12px!important;margin:0!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-pill)!important;background:transparent!important;box-shadow:none!important;
  color:var(--v5-ink)!important;font:500 var(--v5-fs-body)/1 var(--cjk)!important;display:inline-flex!important;align-items:center!important;gap:6px!important;
  cursor:pointer;transform:none!important;text-shadow:none!important;white-space:nowrap!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>*:hover{border-color:var(--v5-accent-line)!important;background:var(--v5-accent-soft)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>.primary{color:var(--v5-accent-ink)!important;border-color:var(--v5-accent-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>#landingStart,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>#landingInstall,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>#heroStreakBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>#coinChip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>.ws-hero-game{display:none!important;}
/* D-rchk-01：晚间连胜保卫提醒 #wsStreakGuardD（04-main wsUpdateStreakGuard，20 点后 + 连胜≥3 + 今日未完成才插在 #heroStreakBtn 后面）。
   index.html 内联 .ws-streak-guard{display:block;width:100%} + 上面 >* 的 flex:none → 被撑成整行宽、右半截被 overflow:hidden 裁掉。
   这里按同排 chip 规格收回：宽度随内容、可收缩、太长就省略号；它是「开始学习」的入口，所以用 warn 色系提示而不是普通描边 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>.ws-streak-guard{
  display:block!important;flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;
  line-height:calc(var(--v5-chip-h) - 2px)!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:left!important;
  border-color:color-mix(in srgb,var(--v5-warn) 45%,transparent)!important;background:color-mix(in srgb,var(--v5-warn) 8%,transparent)!important;
  color:color-mix(in srgb,var(--v5-warn) 78%,var(--v5-ink))!important;font-weight:600!important;
  transition:background-color var(--v5-dur-fast),border-color var(--v5-dur-fast)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>.ws-streak-guard:hover{border-color:color-mix(in srgb,var(--v5-warn) 70%,transparent)!important;background:color-mix(in srgb,var(--v5-warn) 14%,transparent)!important;}
/* 提醒里最要紧的是「保住 N 天连胜」在句尾 —— 被省略掉就没意义了。所以提醒出现时它不收缩，改让同排最长的「30 秒了解」让位（省略号收短，入口仍在、点得到） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions:has(>.ws-streak-guard)>#landingTrial{
  display:block!important;flex:0 1 auto!important;min-width:64px!important;box-sizing:border-box!important;
  line-height:calc(var(--v5-chip-h) - 2px)!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
/* 右侧要点：三条改成一列 caption 列表（无卡片） */
@media(max-width:1439px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-slide{grid-template-columns:minmax(0,1fr) 250px!important;padding:18px 56px 16px 56px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-slide>p{-webkit-line-clamp:3!important;margin:0 0 8px!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-points,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .announcement-list,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .ad-hero-grid,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .usage-panel,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-quote-visual,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-achievement-list{
  grid-column:2!important;grid-row:1 / span 4!important;align-self:center!important;
  display:flex!important;flex-direction:column!important;gap:8px!important;margin:0!important;padding:0 0 0 20px!important;
  border:0!important;border-left:1px solid var(--v5-line)!important;background:none!important;box-shadow:none!important;max-height:184px!important;overflow:hidden!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-point,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .announcement-card,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-card{
  padding:0!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important;border-radius:0!important;
  font-size:var(--v5-fs-caption)!important;line-height:1.5!important;color:var(--v5-ink-3)!important;
  display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-point b,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .announcement-card b,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-card h3{display:block!important;font:600 var(--v5-fs-body)/1.4 var(--cjk)!important;color:var(--v5-ink)!important;margin:0!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-point{display:block!important;-webkit-line-clamp:unset!important;max-height:none!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-point b{display:inline!important;margin-right:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-point b::after{content:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-card p{margin:0!important;font-size:inherit!important;color:inherit!important;line-height:inherit!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-card .share-action{margin-top:6px!important;height:32px!important;min-height:32px!important;padding:0 12px!important;border:1px solid var(--v5-accent-line)!important;border-radius:var(--v5-r-pill)!important;background:transparent!important;color:var(--v5-accent-ink)!important;font:500 var(--v5-fs-body)/1 var(--cjk)!important;width:auto!important;align-self:flex-start!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .usage-panel{gap:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .usage-chart{height:84px!important;min-height:0!important;}
/* R-05：「学习动态」帧的 30 天柱状图。主脚本画的是 920×260 的 viewBox + preserveAspectRatio=none，塞进右列只剩 299×60 → 坐标字 3px 一排小点；
   外框还是旧版灰渐变。V5：图高 112（柱子照常按比例缩放），SVG 里缩成 3px 的坐标字收起，改成框底两个 12px 的端点标签（30 天前 / 今天）；
   外框走 --v5-panel-2 / --v5-line；30 天一分钟都没有时不画一排占位短柱，换一句说明。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-panel{justify-content:center!important;gap:12px!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart{
  position:relative!important;flex:none!important;width:100%!important;height:112px!important;min-height:0!important;max-height:none!important;align-self:stretch!important;
  box-sizing:border-box!important;padding:10px 12px 24px!important;margin:0!important;overflow:hidden!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;background-image:none!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart svg{width:100%!important;height:100%!important;display:block!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart .usage-label{display:none!important;}
/* 读数行：站点给 .usage-metric 钉了 25px 两行、.metric-box 25px 高 + overflow:hidden → 大数字被上下裁掉半截。V5 行高交给内容 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-metric{flex:none!important;grid-template-rows:none!important;grid-auto-rows:auto!important;height:auto!important;max-height:none!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-metric .metric-box{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart .usage-grid{stroke:var(--v5-line)!important;stroke-opacity:1!important;stroke-dasharray:none!important;vector-effect:non-scaling-stroke;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart .usage-axis{stroke:var(--v5-line-2)!important;stroke-opacity:1!important;vector-effect:non-scaling-stroke;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart .usage-bar{fill:var(--v5-accent)!important;opacity:.55!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart .usage-bar.active{fill:var(--v5-accent)!important;opacity:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart .usage-bar.empty{fill:var(--v5-line-2)!important;opacity:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart::after{position:absolute!important;bottom:5px!important;font:500 var(--v5-fs-caption)/1.3 var(--cjk)!important;color:var(--v5-ink-3)!important;pointer-events:none;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart::before{content:"30 \5929\524d"!important;left:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart::after{content:"\4eca\5929"!important;right:12px!important;color:var(--v5-accent-ink)!important;}
/* 空数据：一根有数的柱子都没有 → 收起图，框里一句话 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart:not(:has(.usage-bar:not(.empty))){display:flex!important;align-items:center!important;padding:12px 14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart:not(:has(.usage-bar:not(.empty))) svg{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart:not(:has(.usage-bar:not(.empty)))::after{content:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart:not(:has(.usage-bar:not(.empty)))::before{
  content:"\8fd1  30 \5929\8fd8\6ca1\6709\8bb0\5230\5b66\4e60\65f6\957f\3002\80cc\5b8c\4eca\5929\7684\8bcd\ff0c\8fd9\91cc\4f1a\957f\51fa\7b2c\4e00\6839\67f1\5b50\3002"!important;
  position:static!important;font-size:var(--v5-fs-body)!important;line-height:1.6!important;color:var(--v5-ink-2)!important;
}

html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .usage-metric{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .metric-box{padding:0!important;border:0!important;background:none!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .metric-box b{display:block!important;font:700 var(--v5-fs-section)/1 var(--v5-tech)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .metric-box span{display:block!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin-top:4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-quote-visual span{font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-quote-visual b{font:600 var(--v5-fs-body-lg)/1.5 var(--cjk)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-quote-visual i{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-quote-visual{border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-quote-visual::after{content:none!important;display:none!important;}
/* 第 6 帧「近期成就」：右栏面板。原来右栏规则写的是 .hero-achievement-list，站点真实类名是 .hero-achievement-panel →
   面板掉进左栏、和标题说明叠在一起、徽章压字（业主 2026-09-26 截图）。这里放右栏，列成最多 3 条紧凑行。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel{
  grid-column:2!important;grid-row:1 / span 4!important;align-self:center!important;
  position:static!important;inset:auto!important;transform:none!important;width:auto!important;max-width:none!important;height:auto!important;
  display:flex!important;flex-direction:column!important;gap:10px!important;margin:0!important;padding:0 0 0 20px!important;
  border:0!important;border-left:1px solid var(--v5-line)!important;border-radius:0!important;background:none!important;box-shadow:none!important;
  max-height:184px!important;overflow:hidden!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel-head{
  display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:8px!important;margin:0!important;padding:0!important;
  border:0!important;background:none!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel-head span{font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel-head b{font:500 var(--v5-fs-caption)/1.2 var(--cjk)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip{
  display:flex!important;flex-direction:column!important;gap:10px!important;grid-template-columns:none!important;
  margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;overflow:hidden!important;max-height:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip>.achievement-mini{
  display:grid!important;grid-template-columns:28px minmax(0,1fr)!important;grid-template-rows:auto auto!important;column-gap:10px!important;row-gap:1px!important;align-items:center!important;
  position:relative!important;margin:0!important;padding:0!important;min-height:0!important;height:auto!important;width:auto!important;
  border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;transform:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip>.achievement-mini:nth-child(n+4){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip>.achievement-mini::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip>.achievement-mini::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip .achievement-mini-medal{
  grid-column:1!important;grid-row:1 / span 2!important;width:28px!important;height:28px!important;min-width:0!important;margin:0!important;padding:0!important;
  position:relative!important;inset:auto!important;transform:none!important;display:grid!important;place-items:center!important;
  border-radius:50%!important;background:var(--v5-accent-soft)!important;border:0!important;box-shadow:none!important;font-size:var(--v5-fs-body)!important;line-height:1!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip .achievement-mini-medal::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip .achievement-mini-medal::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip .achievement-medal-lock{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip .achievement-medal-core{font-size:var(--v5-fs-body)!important;line-height:1!important;color:var(--v5-accent-ink)!important;transform:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip>.achievement-mini>b{
  grid-column:2!important;grid-row:1!important;font:600 var(--v5-fs-body)/1.3 var(--cjk)!important;color:var(--v5-ink)!important;margin:0!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip>.achievement-mini>small{
  grid-column:2!important;grid-row:2!important;font:400 var(--v5-fs-caption)/1.3 var(--cjk)!important;color:var(--v5-ink-3)!important;margin:0!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-strip>.achievement-mini.locked{opacity:.6!important;}
/* 箭头：34px 圆钮贴在两侧中线；指示点在右下角 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-arrow{
  position:absolute!important;top:50%!important;transform:translateY(-50%)!important;z-index:3!important;
  width:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;min-height:0!important;padding:0!important;margin:0!important;
  border:1px solid var(--v5-line)!important;border-radius:50%!important;background:var(--v5-panel)!important;box-shadow:none!important;
  color:var(--v5-ink-2)!important;font-size:var(--v5-fs-title)!important;line-height:1!important;display:grid!important;place-items:center!important;cursor:pointer;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-arrow.prev{left:14px!important;right:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-arrow.next{right:14px!important;left:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-arrow:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-dots{position:absolute!important;right:18px!important;bottom:12px!important;left:auto!important;top:auto!important;margin:0!important;display:flex!important;gap:6px!important;z-index:3!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-dots>*{width:6px!important;height:6px!important;border-radius:50%!important;background:var(--v5-line-2)!important;border:0!important;padding:0!important;margin:0!important;min-height:0!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .share-hero .hero-dots>.active{background:var(--v5-accent)!important;width:16px!important;border-radius:3px!important;}

/* 3.3b 英雄区（今日计划）：左 8 / 右 4（手卷 + 7 站轨道），普通卡片皮 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero{
  display:grid!important;grid-template-columns:minmax(0,2fr) minmax(0,1fr)!important;grid-template-rows:auto!important;
  column-gap:24px!important;row-gap:0!important;padding:20px 24px!important;margin:0!important;
  min-height:0!important;position:relative!important;overflow:hidden!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
  clip-path:none!important;isolation:auto!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>*{min-width:0!important;}
/* 右列：手卷 + 7 站轨道（唯一的发光物），普通网格项，高度跟左列走 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-holo{
  position:relative!important;grid-column:2!important;grid-row:1!important;align-self:stretch!important;
  top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;width:auto!important;min-height:300px!important;
  display:grid!important;place-items:center;min-width:0;padding:6px;overflow:hidden;
  background:var(--v5-panel-2)!important;border-radius:var(--v5-r)!important;clip-path:var(--v5-hero-clip);
}
/* 有切角的主题（clip 不是 none）圆角失效是正常的；猫卷再软一点：厚软阴影 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home .card.hero>.wsv5-holo{box-shadow:var(--v5-shadow-soft)!important;}
/* 左列：英雄区原有的节点全部收在这里（行距用 margin，不用 gap：嵌套 flex 的 gap 不进外层高度计算，第 4—8 轮实测） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL{
  grid-column:1!important;grid-row:1!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;
  gap:0!important;min-width:0!important;min-height:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .plan-head{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;
  align-items:end!important;column-gap:16px!important;row-gap:0!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .plan-head>div:first-child{display:contents!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .plan-head .kicker{grid-column:1!important;grid-row:1!important;align-self:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .plan-head #homeOpenFullPlan{grid-column:2!important;grid-row:1!important;justify-self:end!important;align-self:center!important;margin:0 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .plan-head h2#heroGreet{grid-column:1!important;grid-row:2!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .plan-head .plan-total{grid-column:2!important;grid-row:2!important;justify-self:end!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .kicker{
  display:block!important;margin:0 0 6px!important;font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;
  letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--v5-accent-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .kicker::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero h2#heroGreet{
  font-family:var(--cjk)!important;font-size:var(--v5-fs-section)!important;font-weight:700!important;line-height:1.25!important;
  letter-spacing:0!important;color:var(--v5-ink)!important;margin:0!important;box-shadow:none!important;background:none!important;
}
/* 问候语下那颗「查看完整计划表 ›」= 卡头右侧动作（JS 体标为 .v5-card__act）：一行 caption 文字链 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .home-plan-full,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home #homeOpenFullPlan{
  display:inline-flex!important;align-items:center!important;gap:4px!important;margin:6px 0 0!important;padding:0!important;min-height:0!important;height:auto!important;
  border:0!important;background:none!important;box-shadow:none!important;border-radius:0!important;
  color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-caption)/1.4 var(--cjk)!important;cursor:pointer;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home #homeOpenFullPlan span{font:inherit!important;color:inherit!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home #homeOpenFullPlan b{font:inherit!important;color:inherit!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home #homeOpenFullPlan:hover{text-decoration:underline;}
/* 日历卡：眉题「学习日历」已在，卡内的「打卡日历」标题行只留右侧「N 天连续」 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-title{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-head{justify-content:flex-end!important;margin:-30px 0 8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .plan-total{
  flex:none!important;min-width:0!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:2px!important;
  padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
  font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;text-align:right!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .plan-total span{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;order:2;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .plan-total b{font-family:var(--v5-tech)!important;font-size:var(--v5-fs-section)!important;font-weight:700!important;line-height:1!important;color:var(--v5-ink)!important;font-variant-numeric:tabular-nums;order:1;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .plan-total small{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;order:3;display:none!important;}
/* 词书行：一行，书名超出省略，右侧两个文字链 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .vocab-note{
  display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:nowrap!important;
  margin:0!important;padding:0!important;min-height:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;
  font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;min-width:0!important;line-height:1.5!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .vocab-note b{flex:none!important;color:var(--v5-ink)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .vocab-note>span{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .vocab-switch,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .vocab-share{
  flex:none!important;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;
  color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-caption)/1.5 var(--cjk)!important;cursor:pointer;white-space:nowrap!important;min-height:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .vocab-switch:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .vocab-share:hover{text-decoration:underline;}
/* 邀请提示条：一行线框条，不发光不填色 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .ws-invite-home{
  display:flex!important;align-items:center!important;gap:10px!important;width:100%!important;
  height:38px!important;min-height:38px!important;padding:0 12px!important;margin:0!important;box-sizing:border-box!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;box-shadow:none!important;
  color:var(--v5-ink-2)!important;font:500 var(--v5-fs-caption)/1 var(--cjk)!important;text-align:left!important;cursor:pointer;transform:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .ws-invite-home:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .ws-invite-home .ws-ihome-ico{flex:none!important;font-size:var(--v5-fs-body)!important;line-height:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .ws-invite-home .ws-ihome-text{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .ws-invite-home .ws-ihome-go{flex:none!important;color:var(--v5-accent-ink)!important;font-size:var(--v5-fs-body-lg)!important;}

/* 四个无框 .v5-stat 并排（竖线分隔）；站点第 5 格「已复习」本来就 display:none */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknums{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum{
  position:relative!important;overflow:visible!important;text-align:left!important;display:flex!important;flex-direction:column!important;gap:4px!important;
  min-height:0!important;padding:2px 16px!important;margin:0!important;
  border:0!important;border-left:1px solid var(--v5-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  color:var(--v5-ink)!important;min-width:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum:first-child{padding-left:0!important;border-left:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum .n{
  font-family:var(--v5-tech)!important;font-size:var(--v5-fs-display)!important;font-weight:700!important;line-height:1!important;
  color:var(--v5-ink)!important;margin:0!important;font-variant-numeric:tabular-nums;letter-spacing:.01em;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum .l{font-size:var(--v5-fs-caption)!important;font-weight:500!important;color:var(--v5-ink-3)!important;margin:0!important;line-height:1.3!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.newc,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.recallc,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.revc,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.donec{--v5-c:var(--v5-accent);}
/* 「即将解锁」格：标题字 + 一句 + 一根 4px 细条（金色只在这里的小字） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.achievementc{background:transparent!important;box-shadow:none!important;color:var(--v5-ink)!important;justify-content:flex-start!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.achievementc .n{font-family:var(--cjk)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-gold-ink)!important;line-height:1.25!important;margin-top:2px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.achievementc .l{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .next-achievement-meter{height:4px!important;margin-top:4px!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-line)!important;overflow:hidden!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .next-achievement-meter i{background:var(--v5-gold)!important;box-shadow:none!important;border-radius:inherit!important;display:block!important;height:100%!important;}
/* 到期复习：小标签「今天必做」= .v5-tag 的样子 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.revc::after{
  content:"\4eca\5929\5fc5\505a"!important;position:absolute!important;right:8px!important;top:0!important;
  display:inline-flex!important;align-items:center!important;height:22px!important;padding:0 8px!important;border-radius:6px!important;
  font:600 var(--v5-fs-eyebrow)/1 var(--cjk)!important;letter-spacing:.02em!important;
  color:var(--v5-accent-ink)!important;background:var(--v5-accent-soft)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.donec{display:none!important;}

/* 进度条：§5 高 6 / 轨 --v5-line / 填 accent / 圆角 999；无刻度无端点 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .today-meter{margin:0!important;padding:0!important;border:0!important;background:transparent!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .today-meter .tm-top{display:flex!important;justify-content:space-between!important;align-items:baseline!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin-bottom:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .tm-top b,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .today-meter b{color:var(--v5-ink)!important;font-weight:600!important;font-size:var(--v5-fs-caption)!important;font-family:var(--v5-tech)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tm-track{
  position:relative!important;height:6px!important;border-radius:var(--v5-r-pill)!important;overflow:hidden!important;border:0!important;
  background:var(--v5-line)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tm-track i{
  position:relative!important;display:block!important;height:100%!important;border-radius:inherit!important;
  background:var(--v5-accent)!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tm-track i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tm-track::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .today-eta{
  display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:12px!important;
  margin:0!important;padding:0!important;min-height:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;line-height:1.5!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .today-eta b{font-family:var(--v5-tech)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;line-height:1.1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .today-eta small{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
/* 「还需：新学 30 · …」与四格读数重复，收起（纯说明文字，不是入口） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .today-nudge{display:none!important;}

/* 唯一主按钮：.v5-btn-primary 形（accent 填充 / on-accent 字 / 48 高 / 切角 12 / 唯一发光） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero #startBtn{
  position:relative!important;overflow:visible!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;
  width:auto!important;min-width:260px!important;justify-self:start!important;align-self:flex-start!important;
  height:var(--v5-btn-h-lg)!important;min-height:var(--v5-btn-h-lg)!important;padding:0 26px!important;margin:16px 0 0!important;
  border:0!important;border-radius:var(--v5-r-btn)!important;font:600 var(--v5-fs-body-lg)/1 var(--cjk)!important;letter-spacing:.02em!important;
  background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;background-image:none!important;
  clip-path:var(--v5-btn-clip);
  box-shadow:var(--v5-shadow-soft)!important;text-shadow:none!important;
  filter:drop-shadow(0 0 calc(12px * var(--v5-glow)) color-mix(in srgb,var(--v5-accent) 45%,transparent));
  transition:transform var(--v5-dur) var(--v5-ease),filter var(--v5-dur-fast);
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero #startBtn::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero #startBtn:hover{transform:var(--v5-lift)!important;filter:brightness(1.06) drop-shadow(0 0 calc(14px * var(--v5-glow)) color-mix(in srgb,var(--v5-accent) 50%,transparent));}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero #startBtn:active{transform:var(--v5-press)!important;transition-duration:var(--v5-dur-fast)!important;}
/* 次要链接一条：三个文字链（完整计划表 / 调整强度 / 分享给朋友） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-herolinks{display:flex!important;align-items:center;gap:18px;flex-wrap:wrap;margin:10px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-herolinks button{
  border:0!important;background:none!important;padding:0!important;margin:0!important;cursor:pointer;font:500 var(--v5-fs-body)/1.5 var(--cjk)!important;color:var(--v5-ink-2)!important;
  display:inline-flex!important;align-items:center;gap:4px;min-height:0!important;box-shadow:none!important;border-radius:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-herolinks button:first-child{color:var(--v5-accent-ink)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-herolinks button:hover{color:var(--v5-accent-ink)!important;text-decoration:underline;}
/* 学后娱乐入口原本挂在英雄区里，V5 把它搬进「学完再玩一会」；英雄区这一格不再占位 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero .today-game-entries{display:none!important;}
/* ★ 左列的行距：必须用 margin 而不是 gap。这条要放在所有 .card.hero 子节点规则之后。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL>*+*{margin-top:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL>.vocab-note{margin-top:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL>.tasknums{margin-top:16px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL>.today-meter{margin-top:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL>.today-eta{margin-top:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL>#startBtn{margin:16px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .card.hero>.wsv5-heroL>.wsv5-herolinks{margin-top:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.vocab-note{margin-top:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.ws-invite-home{margin-top:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.tasknums{margin-top:18px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.today-meter{margin-top:16px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.today-eta{margin-top:8px!important;}
/* 「今天必做」标签不再顶着上方横条：贴在「到期复习」数字格右上角内侧 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.revc::after{top:2px!important;}

/* R-03：矮屏（1280×720 这类笔记本，高 ≤760）主按钮「开始今日计划」掉出首屏（707-755 > 720）。
   只在矮屏：轮播 220→176、帧内边距与段落收一行、今日计划卡内部行距收紧 → 主按钮整颗回到首屏。宽高充足的屏不受影响。
   V7.0.0：平板横屏 1024×768 / 窄窗口 1099×800 同样按矮屏处理（像素主题的 HUD 格更高，主按钮下沿 791 > 768）。 */
@media(min-width:769px) and (max-height:760px),(min-width:769px) and (max-width:1099px) and (max-height:800px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-carousel,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-slide{height:176px!important;max-height:176px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-slide{padding:14px 56px 12px 56px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-eyebrow{margin-bottom:4px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero h1,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero h2{margin-bottom:4px!important;-webkit-line-clamp:1!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-slide>p{-webkit-line-clamp:2!important;margin:0 0 6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-points,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .announcement-list,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-panel,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-quote-visual,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-list,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel{max-height:148px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-chart{height:84px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-points{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-point{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;line-height:18px!important;max-height:36px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-point b{line-height:18px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero{padding-top:16px!important;padding-bottom:16px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.vocab-note{margin-top:6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.ws-invite-home{margin-top:8px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.tasknums{margin-top:12px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.today-meter{margin-top:10px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>.today-eta{margin-top:4px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero>.wsv5-heroL>#startBtn{margin-top:12px!important;}
}
/* 星卷 + 7 站轨道（注入的内联 SVG，颜色全走令牌；这是首页唯一允许的发光物） */
html.ws-v5 .wsv5-holo svg{width:100%;height:100%;overflow:visible;}
html.ws-v5 .wsv5-sway{animation:wsv5Sway 9s ease-in-out infinite;transform-origin:50% 8%;}
@keyframes wsv5Sway{0%,100%{transform:rotate(-.3deg) translateY(0)}50%{transform:rotate(.3deg) translateY(-5px)}}
html.ws-v5 .wsv5-dust circle{animation:wsv5Dust 6s ease-in-out infinite;}
@keyframes wsv5Dust{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:.9;transform:translateY(-8px)}}
/* 轨道「当前站」脉冲环（首页星卷 + 学习页轨道，17 号注入）：原来是 SMIL 改 r 属性，每帧触发整页重排；
   改成 transform/opacity 动画（合成器跑，不排版）。半径 22 的环缩到 .77 ≈ 17、放到 1.36 ≈ 30，
   透明 .8→0→.8，与原 SMIL 的 linear 节奏一致。 */
html.ws-v5 .wsv5-pulse{animation:wsv5Pulse 2.2s linear infinite;transform-box:fill-box;transform-origin:center;}
@keyframes wsv5Pulse{0%,100%{transform:scale(.77);opacity:1}50%{transform:scale(1.36);opacity:0}}
/* 星点 ≤1px、密度减半、无流星：纸墨浅 --v5-sky=0 时完全不显示 */
html.ws-v5 .wsv5-dust{opacity:calc(.5 * var(--v5-sky));}
html.ws-v5 .wsv5-dust circle:nth-child(2n){display:none;}
html.ws-v5 .wsv5-dust circle{r:1;}

html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home :is(#finishLine,#capLine) b{font-family:var(--v5-tech)!important;font-weight:600!important;color:var(--v5-ink)!important;}
/* D-dstar-08 / D-ent-03：学习档案第三格原是整张「广告位招商」卡 → V5 下隐藏（节点不删；招商只留页脚一行），第三格换成 17 号注入的「近期成就」卡 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .calendar-ad-card{display:none!important;}
/* 3.3c 学完再玩一会：四张等高卡 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important;align-items:stretch!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4 .today-game-entries{display:contents!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4 .today-game-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-lvl{
  position:relative!important;isolation:auto!important;clip-path:none!important;
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:6px!important;
  width:auto!important;min-height:140px!important;height:auto!important;padding:18px 20px!important;margin:0!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
  font:600 var(--v5-fs-title)/1.25 var(--cjk)!important;color:var(--v5-ink)!important;text-align:left!important;cursor:pointer;
  transition:border-color var(--v5-dur-fast),transform var(--v5-dur) var(--v5-ease),box-shadow var(--v5-dur);transform:none!important;text-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4 .today-game-btn::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4 .today-game-btn::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4 .today-game-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-lvl:hover{border-color:var(--v5-accent-line)!important;transform:var(--v5-lift)!important;}
/* 星穹家族：卡片 hover 微倾 ≤2°（§2.1 签名之一）；猫卷：厚软阴影随之抬起 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="supreme"] body #view-home .wsv5-grid4 .today-game-btn:hover{transform:perspective(900px) rotateX(1.6deg) translateY(-1px)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home .wsv5-grid4 .today-game-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home #streakLine .streak-bubble:hover{box-shadow:0 4px 8px color-mix(in srgb,var(--ink) 6%,transparent),0 18px 40px -14px color-mix(in srgb,var(--accent) 45%,transparent)!important;}
html.ws-v5 .wsv5-grid4 .today-game-btn .wsv5-modsub{font:400 var(--v5-fs-body)/1.5 var(--cjk);color:var(--v5-ink-3);}
html.ws-v5 .wsv5-grid4 .today-game-btn .wsv5-modgo{margin-top:auto;padding-top:6px;font:600 var(--v5-fs-caption)/1.4 var(--cjk);letter-spacing:0;color:var(--v5-accent-ink);}
html.ws-v5 .wsv5-lvl .wsv5-lvtop{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;}
html.ws-v5 .wsv5-lvl .wsv5-lvtop .wsv5-num{font-size:var(--v5-fs-caption);font-weight:500;color:var(--v5-ink-3);}
html.ws-v5 .wsv5-lvl .wsv5-lvbig{font-family:var(--v5-tech);font-size:var(--v5-fs-display);font-weight:700;line-height:1;color:var(--v5-ink);font-variant-numeric:tabular-nums;}
html.ws-v5 .wsv5-lvl .wsv5-lvrow{display:flex;align-items:baseline;gap:10px;margin-top:2px;font-size:var(--v5-fs-caption);font-weight:400;color:var(--v5-ink-3);}
html.ws-v5 .wsv5-lvl .wsv5-lvrow b{color:var(--v5-ink);font-weight:600;}
html.ws-v5 .wsv5-xp{width:100%;height:6px;margin-top:8px;border-radius:var(--v5-r-pill);overflow:hidden;background:var(--v5-line);}
html.ws-v5 .wsv5-xp i{display:block;height:100%;border-radius:inherit;background:var(--v5-accent);box-shadow:none;}
html.ws-v5 .wsv5-achrow{
  display:flex;align-items:center;gap:10px;margin-top:auto;padding:10px 0 0;width:100%;
  border:0;border-top:1px solid var(--v5-line);background:none;cursor:pointer;text-align:left;font-family:inherit;
}
html.ws-v5 .wsv5-achrow .wsv5-badge{
  width:32px;height:32px;flex:none;display:grid;place-items:center;clip-path:none;border-radius:50%;
  background:var(--v5-accent-soft);color:var(--v5-accent-ink);font:600 var(--v5-fs-caption)/1 var(--v5-tech);
}
html.ws-v5 .wsv5-achrow b{display:block;font:600 var(--v5-fs-body)/1.35 var(--cjk);color:var(--v5-ink);}
html.ws-v5 .wsv5-achrow small{display:block;margin-top:2px;font-size:var(--v5-fs-caption);font-weight:400;color:var(--v5-ink-3);line-height:1.4;}

/* 3.3d 连胜状态：三张紧凑卡（标题 + 大数字 + 一句 + 进度） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-streakband{padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine{
  display:block!important;margin:0!important;padding:0!important;min-height:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  font-size:inherit!important;color:inherit!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-section-head{display:flex!important;align-items:center!important;gap:14px!important;margin:16px 2px 16px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-section-head strong{flex:none!important;font:700 var(--v5-fs-section)/1.25 var(--cjk)!important;letter-spacing:0!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-section-head::after{content:""!important;order:1;flex:1 1 auto;height:1px;background:var(--v5-line);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-rule-entry{order:2!important;flex:none!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-body)/1.4 var(--cjk)!important;cursor:pointer;display:inline-flex!important;align-items:center;gap:4px;padding:0!important;min-height:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-rule-entry:hover{text-decoration:underline;}
/* 连胜保护卡的家（原首页「社交·商城」细条撤掉后）：标题行里「规则」前面一颗 .v5-chip 同形的小药丸 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .wsv5-shieldlink{
  order:2!important;flex:none!important;display:inline-flex!important;align-items:center!important;gap:4px!important;
  height:var(--v5-chip-h)!important;padding:0 12px!important;margin:0!important;box-sizing:border-box!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-chip)!important;background:var(--v5-panel)!important;box-shadow:none!important;
  color:var(--v5-ink-2)!important;font:500 var(--v5-fs-body)/1 var(--cjk)!important;white-space:nowrap!important;cursor:pointer;
  transition:border-color var(--v5-dur-fast) var(--v5-ease),color var(--v5-dur-fast) var(--v5-ease),transform var(--v5-dur) var(--v5-ease)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .wsv5-shieldlink:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;transform:var(--v5-lift)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .wsv5-shieldlink:active{transform:var(--v5-press)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-bubbles{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important;margin:0!important;align-items:stretch!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-bubble{
  position:relative!important;isolation:auto!important;clip-path:none!important;display:flex!important;align-items:flex-start!important;gap:14px!important;
  padding:18px 20px!important;margin:0!important;min-height:0!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;text-align:left!important;
  color:var(--v5-ink)!important;cursor:pointer;transition:border-color var(--v5-dur-fast),transform var(--v5-dur) var(--v5-ease),box-shadow var(--v5-dur);transform:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-bubble::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-bubble::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-bubble:hover{border-color:var(--v5-accent-line)!important;transform:var(--v5-lift)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-icon{
  width:36px!important;height:36px!important;flex:none!important;display:grid!important;place-items:center!important;
  font-size:var(--v5-fs-title)!important;border-radius:50%!important;clip-path:none!important;
  background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-copy{flex:1 1 auto!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-copy b{display:block!important;font:500 var(--v5-fs-caption)/1.3 var(--cjk)!important;color:var(--v5-ink-3)!important;order:1;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-value{display:block!important;margin:0!important;font:700 var(--v5-fs-section)/1.15 var(--v5-tech)!important;color:var(--v5-ink)!important;order:2;font-variant-numeric:tabular-nums;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-copy small{display:block!important;margin:2px 0 0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;line-height:1.45!important;order:3;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-card-track{display:block!important;order:4;height:4px!important;margin:10px 0 0!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-line)!important;overflow:hidden!important;border:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-card-track i{display:block!important;height:100%!important;border-radius:inherit!important;background:var(--v5-accent)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-bubble.locked{opacity:.7!important;}

/* 3.3e 社交 · 商城细条：一张卡，六颗线框 .v5-btn（无金色填充） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip{display:flex!important;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 20px!important;}
html.ws-v5 .wsv5-strip .wsv5-eyebrow{flex:none;margin-right:6px;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip .wsv5-se{
  flex:1 1 0!important;min-width:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
  height:40px!important;min-height:40px!important;padding:0 12px!important;margin:0!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;cursor:pointer;
  background:transparent!important;box-shadow:none!important;
  font:600 var(--v5-fs-body)/1 var(--cjk)!important;color:var(--v5-ink)!important;text-align:center!important;
  transition:background var(--v5-dur-fast),border-color var(--v5-dur-fast);transform:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip .wsv5-se:hover{transform:none!important;background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip .wsv5-se.hot{background:transparent!important;box-shadow:none!important;color:var(--v5-ink)!important;border-color:var(--v5-line-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip .wsv5-se i{font-style:normal!important;font-size:var(--v5-fs-body-lg)!important;flex:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip .wsv5-se b{font-weight:600!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip .wsv5-se small{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip .wsv5-se>span{display:none!important;}

/* 3.3f 学习档案：掌握进度（环）/ 学习日历（星图）/ 广告位招商 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3{display:grid!important;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr)!important;gap:16px!important;align-items:stretch!important;}
/* 搬进 V5 容器的既有卡片身上还挂着旧版页面大网格的落位（.progress-card grid-row:3 + sticky 等），全部清掉 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3>*,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .desktop-calendar-card,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .calendar-ad-card,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4>*,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-streakband>*,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-strip>*{
  grid-area:auto!important;grid-column:auto!important;grid-row:auto!important;order:0!important;
  position:relative!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3>.card,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .desktop-calendar-card,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .calendar-ad-card{
  /* 站点给 .progress-card 的是 display:contents，必须抢回 block，否则环、三格、finish 三行会散架 */
  display:block!important;position:relative!important;isolation:auto!important;clip-path:none!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
  padding:20px!important;margin:0!important;min-height:0!important;color:var(--v5-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3>.card::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3>.card::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .desktop-calendar-card::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .desktop-calendar-card::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .calendar-ad-card::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3 .calendar-ad-card::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .home-calendar-stack{display:contents!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .desktop-calendar-card,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-card{display:block!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .desktop-card-title,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-card .ad-label{
  display:block!important;margin:0 0 12px!important;padding:0!important;
  font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--v5-accent-ink)!important;
  background:none!important;border:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .desktop-card-title::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-card .ad-label::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-card .ad-label{color:var(--v5-ink-3)!important;}
/* 学习档案第三格「近期成就」（17 号注入，替换原广告位招商卡） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid3>.wsv5-achcard{
  display:flex!important;flex-direction:column!important;gap:0!important;padding:20px!important;margin:0!important;min-width:0!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow-soft)!important;color:var(--v5-ink)!important;
}
html.ws-v5 .wsv5-achcard .v5-card__head{margin:0 0 12px;}
html.ws-v5 .wsv5-achcard .wsv5-achall{border:0;background:none;padding:2px 0 0;cursor:pointer;font-family:inherit;}
html.ws-v5 .wsv5-achcard .wsv5-achlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;}
html.ws-v5 .wsv5-achcard .wsv5-achlist li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--v5-line);min-width:0;}
html.ws-v5 .wsv5-achcard .wsv5-achlist li:first-child{border-top:0;padding-top:0;}
html.ws-v5 .wsv5-achcard .wsv5-achlist li>span:last-child{min-width:0;flex:1 1 auto;}
html.ws-v5 .wsv5-achcard .wsv5-badge{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--v5-accent-soft);color:var(--v5-accent-ink);font:600 var(--v5-fs-caption)/1 var(--v5-tech);}
html.ws-v5 .wsv5-achcard li.is-locked .wsv5-badge{background:var(--v5-panel-2);color:var(--v5-ink-3);}
html.ws-v5 .wsv5-achcard .wsv5-achlist b{display:block;font:600 var(--v5-fs-body)/1.35 var(--cjk);color:var(--v5-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
html.ws-v5 .wsv5-achcard .wsv5-achlist small{display:block;margin-top:2px;font-size:var(--v5-fs-caption);color:var(--v5-ink-3);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
html.ws-v5 .wsv5-achcard .wsv5-achnone{margin:0;font-size:var(--v5-fs-body);color:var(--v5-ink-3);line-height:1.6;}
html.ws-v5 .wsv5-achcard .wsv5-achnext{margin-top:auto;padding-top:12px;border-top:1px solid var(--v5-line);display:flex;flex-direction:column;gap:2px;min-width:0;}
html.ws-v5 .wsv5-achcard .wsv5-achnext span{font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk);letter-spacing:.08em;color:var(--v5-gold-ink);}
html.ws-v5 .wsv5-achcard .wsv5-achnext b{font:600 var(--v5-fs-body)/1.35 var(--cjk);color:var(--v5-ink);}
html.ws-v5 .wsv5-achcard .wsv5-achnext small{font-size:var(--v5-fs-caption);color:var(--v5-ink-3);line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
/* 掌握进度：环 + 两行 + 三个无框 stat */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .progwrap{display:flex!important;align-items:center!important;gap:18px!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .ring{width:96px!important;height:96px!important;flex:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .ring circle:first-child{stroke:var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .ring #ringFill{stroke:var(--v5-accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .ring text{font-family:var(--v5-tech)!important;fill:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .ring text:last-child{fill:var(--v5-ink-3)!important;font-size:13px!important;}   /* 104 单位的环画成 96px：13 → 12px（原 10 → 9.2px） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .progmeta{min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .progmeta .big{font:600 var(--v5-fs-title)/1.25 var(--cjk)!important;color:var(--v5-ink)!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .progmeta .sub{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin:4px 0 0!important;line-height:1.5!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .statrow{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;margin:16px 0 0!important;padding:14px 0 0!important;border-top:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .statrow .stat{padding:0 14px!important;border:0!important;border-left:1px solid var(--v5-line)!important;border-radius:0!important;background:none!important;box-shadow:none!important;min-height:0!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .statrow .stat:first-child{padding-left:0!important;border-left:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .statrow .v{font-family:var(--v5-tech)!important;font-size:var(--v5-fs-section)!important;font-weight:700!important;color:var(--v5-ink)!important;line-height:1!important;font-variant-numeric:tabular-nums;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .statrow .k{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin-top:4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .finish,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card #finishLine,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card #capLine{display:block!important;position:relative!important;margin-top:10px!important;padding:0!important;border:0!important;background:none!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;line-height:1.55!important;max-width:none!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .finish:empty,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card #finishLine:empty,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card #capLine:empty{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .finish::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .progress-card .finish b{color:var(--v5-ink)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-card h3{font:600 var(--v5-fs-title)/1.3 var(--cjk)!important;margin:0 0 6px!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-card p{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-3)!important;line-height:1.6!important;margin:0 0 14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-btn{
  height:40px!important;min-height:40px!important;padding:0 16px!important;margin:0!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;cursor:pointer;
  background:transparent!important;box-shadow:none!important;color:var(--v5-ink)!important;font:600 var(--v5-fs-body)/1 var(--cjk)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .calendar-ad-btn:hover{background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;}

/* 3.3g 日历 · 星图（§6）。JS 体把 #checkCalendar 渲染成 .v5-cal（1.5 节已定义）；
   这里只做两件事：① 站点旧标记（.cal-grid/.cal-day）在 JS 还没接管时也先按星图排；② 旧 .done 胶囊兜底。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .desktop-calendar-card .calendar,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #checkCalendar{display:block!important;margin:0!important;padding:0!important;border:0!important;background:none!important;}
/* 「N 天连续」和卡片眉题「学习日历」同一行、靠右（日历自己的「打卡日历」标题在 V5 下隐藏，避免一张卡两个标题） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-head{display:flex!important;align-items:center!important;justify-content:flex-end!important;margin:-29px 0 10px!important;padding:0!important;min-height:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-title{font:600 var(--v5-fs-body)/1.4 var(--cjk)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-meta{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:2px 0!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-week{height:24px!important;display:flex!important;align-items:center!important;justify-content:center!important;font:600 var(--v5-fs-eyebrow)/1 var(--cjk)!important;letter-spacing:.06em!important;color:var(--v5-ink-3)!important;border:0!important;background:none!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day{
  position:relative!important;height:var(--v5-cal-h)!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important;
  display:grid!important;place-items:center!important;border:0!important;border-radius:0!important;background:none!important;outline:0!important;box-shadow:none!important;
  font:500 var(--v5-fs-caption)/1 var(--v5-tech)!important;color:var(--v5-ink-3)!important;font-variant-numeric:tabular-nums;overflow:visible!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.blank{visibility:hidden!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day::before{content:"";position:absolute;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;z-index:0;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.done{color:var(--v5-accent-ink)!important;font-weight:700!important;z-index:1;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.done::before{background:var(--v5-accent-soft);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.done::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--v5-accent);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.today{color:var(--v5-ink)!important;font-weight:700!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.today::before{box-shadow:0 0 0 1.5px var(--v5-accent);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.today.done{color:var(--v5-accent-ink)!important;}
/* 同一行相邻两个打卡日之间的连线（旧标记兜底：用背景渐变各画半段，跨行不画：第 7 列不向右、第 1 列不向左）
   .cal-grid 的前 7 个孩子是星期头，所以第 7 列 = nth-child(7n)，第 1 列 = nth-child(7n+1) */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.done:has(+.cal-day.done):not(:nth-child(7n)){
  background:linear-gradient(var(--v5-accent-line),var(--v5-accent-line)) no-repeat left calc(50% + 16px) top 50% / calc(50% - 16px) 2px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.done+.cal-day.done:not(:nth-child(7n+1)){
  background:linear-gradient(var(--v5-accent-line),var(--v5-accent-line)) no-repeat left 0 top 50% / calc(50% - 16px) 2px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #checkCalendar .cal-day.done+.cal-day.done:has(+.cal-day.done):not(:nth-child(7n)):not(:nth-child(7n+1)){
  background:linear-gradient(var(--v5-accent-line),var(--v5-accent-line)) no-repeat left calc(50% + 16px) top 50% / calc(50% - 16px) 2px,
             linear-gradient(var(--v5-accent-line),var(--v5-accent-line)) no-repeat left 0 top 50% / calc(50% - 16px) 2px!important;
}
/* 旧 .done 胶囊兜底：index.html:699 的全局 .done{max-width:460px;margin:auto} 在 V5 下对日历格无效 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal .done,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal .v5-cal__day,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal .v5-cal__num{max-width:none!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal .v5-cal__day.done{background:none!important;border:0!important;outline:0!important;color:inherit!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal .v5-cal__day.today{outline:0!important;background:none!important;border:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal__head{display:flex!important;align-items:center!important;justify-content:space-between!important;margin:0 0 8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal__head b{font:600 var(--v5-fs-body)/1.4 var(--cjk)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-cal__head span{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}

/* 首页入场：按主题性格选 keyframes（--v5-enter），时长 / 曲线走令牌 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active>*{animation:var(--v5-enter) var(--v5-dur-slow) var(--v5-ease) backwards;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active>*:nth-child(2){animation-delay:40ms;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active>*:nth-child(3){animation-delay:80ms;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active>*:nth-child(n+4){animation-delay:120ms;}
/* 手卷插画的环境动效（摇曳 / 尘粒 / 当前站脉冲）：极简与纸墨只做淡入（§2.1「只有淡入」「墨晕」），其余主题按性格 */
html.ws-v5[data-theme="minimal-light"] .wsv5-sway,html.ws-v5[data-theme="minimal-dark"] .wsv5-sway,
html.ws-v5[data-theme="light"] .wsv5-sway,html.ws-v5[data-theme="dark"] .wsv5-sway,
html.ws-v5[data-theme="minimal-light"] .wsv5-dust circle,html.ws-v5[data-theme="minimal-dark"] .wsv5-dust circle,
html.ws-v5[data-theme="light"] .wsv5-dust circle,html.ws-v5[data-theme="dark"] .wsv5-dust circle{animation:none;}
html.ws-v5[data-theme="cute-pink"] .wsv5-sway{animation-duration:5s;animation-timing-function:var(--v5-ease);}

/* ---------- 3.4 「全部功能」面板（皮：圆角 18 卡；布局不变） ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask{
  position:fixed!important;inset:0!important;z-index:2000!important;display:none!important;place-items:center;
  background:var(--v5-veil);backdrop-filter:blur(4px);
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask.on{display:grid!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-panel{width:min(1120px,92vw);max-height:84vh;display:flex;flex-direction:column;overflow:hidden;border-radius:18px!important;padding:0!important;}
html.ws-v5 .wsv5-panel .wsv5-ph{display:flex;align-items:center;gap:12px;padding:18px 22px 12px;}
html.ws-v5 .wsv5-panel .wsv5-ph h2{flex:none;font:600 var(--v5-fs-title)/1.3 var(--cjk);color:var(--v5-ink);margin:0;}
html.ws-v5 .wsv5-search{flex:1;display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:var(--v5-r-sm);background:var(--v5-panel-2);border:1px solid var(--v5-line);}
html.ws-v5 .wsv5-search input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--v5-ink);font:500 var(--v5-fs-body)/1 var(--cjk);}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-search input,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-search input:focus,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-search input:focus-visible{
  background:transparent!important;background-image:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;outline:none!important;
  padding:0 2px!important;margin:0!important;height:100%!important;min-height:0!important;color:var(--v5-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-search:focus-within{border-color:var(--v5-accent-line)!important;box-shadow:0 0 0 3px var(--v5-accent-soft)!important;}
html.ws-v5 .wsv5-search kbd{font:500 var(--v5-fs-eyebrow)/1 var(--v5-tech);color:var(--v5-ink-3);padding:3px 6px;border-radius:4px;border:1px solid var(--v5-line);}
html.ws-v5 .wsv5-pbody{overflow:auto;padding:0 22px 20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 18px;}
html.ws-v5 .wsv5-pgroup h3{display:block;margin:0 0 8px;font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk);letter-spacing:.08em;text-transform:uppercase;color:var(--v5-accent-ink);}
html.ws-v5 .wsv5-pgroup h3::before{content:none;display:none;}
html.ws-v5 .wsv5-pgroup button{
  display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;margin:0;border:0;border-radius:8px;
  background:none;box-shadow:none;color:var(--v5-ink);font:500 var(--v5-fs-body)/1.3 var(--cjk);cursor:pointer;text-align:left;min-height:0;
}
html.ws-v5 .wsv5-pgroup button:hover{background:var(--v5-accent-soft);color:var(--v5-accent-ink);}
html.ws-v5 .wsv5-pgroup button small{margin-left:auto;font:500 var(--v5-fs-eyebrow)/1 var(--v5-tech);color:var(--v5-ink-3);}
html.ws-v5 .wsv5-pgroup.wsv5-hide,
html.ws-v5 .wsv5-pgroup button.wsv5-hide{display:none!important;}

/* ---------- 3.5 学习页（三栏 3 / 6 / 3，整页可滚） ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on{
  --v5-study-pb:32px;          /* 底部留白；卡底吸底作答区（#studyFoot）用它把自己的底铺到视口底边（见 3.5「搬进卡底」） */
  display:flex!important;flex-direction:column!important;gap:14px!important;padding:16px 20px var(--v5-study-pb)!important;
  overflow-y:auto!important;overflow-x:hidden!important;
  background:
    radial-gradient(1000px 560px at 80% -14%,color-mix(in srgb,var(--v5-accent) calc(9% * var(--v5-sky)),transparent),transparent 58%),
    var(--v5-paper)!important;
}
/* 顶部一条：58 高卡片 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on>.study-top{
  flex:none!important;display:flex!important;align-items:center!important;gap:10px!important;
  width:100%!important;max-width:1480px!important;margin:0 auto!important;box-sizing:border-box!important;
  height:58px!important;min-height:58px!important;padding:0 12px 0 8px!important;
  grid-template-columns:none!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-bottom:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  position:relative!important;isolation:auto!important;clip-path:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on>.study-top::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on>.study-top::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top #closeStudy#closeStudy,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top .x{
  flex:none!important;width:auto!important;height:var(--v5-chip-h)!important;min-height:var(--v5-chip-h)!important;padding:0 10px!important;
  border:0!important;border-radius:var(--v5-r-sm)!important;background:none!important;box-shadow:none!important;
  color:var(--v5-ink-2)!important;font:500 var(--v5-fs-body)/1 var(--cjk)!important;cursor:pointer;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top .x::before{content:"\2039"!important;font-size:var(--v5-fs-title)!important;margin-right:6px!important;line-height:1!important;position:static!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top #closeStudy#closeStudy:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top .x:hover{background:var(--v5-accent-soft)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-brand{flex:none!important;display:flex!important;flex-direction:column!important;justify-content:center!important;gap:2px!important;padding-left:10px!important;border-left:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-logo{font-family:var(--v5-word)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:700!important;color:var(--v5-ink)!important;white-space:nowrap!important;line-height:1.1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-path{font-size:var(--v5-fs-eyebrow)!important;font-weight:500!important;color:var(--v5-ink-3)!important;white-space:nowrap!important;line-height:1.2!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-path em{font-style:normal!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress{flex:none!important;display:flex!important;align-items:center!important;gap:10px!important;margin-left:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-progress-label{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress .pbar{
  position:relative!important;width:180px!important;height:6px!important;flex:none!important;
  border:0!important;border-radius:var(--v5-r-pill)!important;overflow:hidden!important;background:var(--v5-line)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress .pbar i{position:relative!important;display:block!important;height:100%!important;border-radius:inherit!important;background:var(--v5-accent)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress .pbar i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress .pbar::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress .pcount{font-family:var(--v5-tech)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;min-width:0!important;white-space:nowrap!important;font-variant-numeric:tabular-nums;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-meta{flex:none!important;display:flex!important;align-items:center!important;gap:8px!important;}
/* 顶栏 chip：与首页顶栏同一种（34 / 13 / 500） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top .study-metric,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top .study-focus-btn{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;flex:none!important;
  height:var(--v5-chip-h)!important;min-height:var(--v5-chip-h)!important;padding:0 12px!important;margin:0!important;box-sizing:border-box!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-panel-2)!important;box-shadow:none!important;
  font:500 var(--v5-fs-body)/1 var(--cjk)!important;color:var(--v5-ink-2)!important;white-space:nowrap!important;cursor:pointer;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top #studyTopStreak{color:var(--v5-gold-ink)!important;border-color:color-mix(in srgb,var(--v5-gold) 40%,transparent)!important;background:var(--v5-panel-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top .study-focus-btn:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-avatar{width:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;flex:none!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-body)/1 var(--cjk)!important;}

/* 三栏舞台：3 / 6 / 3，居中 1480，随内容长高、整页滚动 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-stage{
  flex:none!important;min-height:0!important;display:grid!important;
  width:100%!important;max-width:1480px!important;margin:0 auto!important;box-sizing:border-box!important;
  grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr)!important;gap:16px!important;align-items:start!important;
}
@media(max-width:1279px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-stage{grid-template-columns:minmax(0,3fr) minmax(0,7fr) minmax(0,3fr)!important;}
}
html.ws-v5 #study.on .wsv5-scol{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0;}
/* 两侧栏贴顶跟随（整页滚动时轨道与快捷键仍在视口内） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-scol.wsv5-left,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-scol.wsv5-right{position:sticky!important;top:0!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-p{
  padding:18px 20px!important;display:flex!important;flex-direction:column!important;min-height:0!important;
  position:relative!important;isolation:auto!important;clip-path:none!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-p::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-p::after{content:none!important;display:none!important;}
html.ws-v5 #study.on .wsv5-ph{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;flex:none;}
html.ws-v5 #study.on .wsv5-ph .wsv5-eyebrow{font-size:var(--v5-fs-eyebrow);letter-spacing:.08em;}
html.ws-v5 #study.on .wsv5-ph .wsv5-num{font-size:var(--v5-fs-caption);font-weight:500;color:var(--v5-ink-3);}
html.ws-v5 #study.on .wsv5-note{display:block;margin-top:12px;padding-top:10px;border-top:1px solid var(--v5-line);flex:none;font-size:var(--v5-fs-caption);color:var(--v5-ink-3);line-height:1.5;}
html.ws-v5 #study.on .wsv5-note::before{content:none;display:none;}

/* 左栏：今日航线 = 5 行紧凑表（标签 … 读数 + 4px 细轨），无左色条、无光 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.wsv5-p{flex:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress{
  display:flex!important;flex-direction:column!important;gap:0!important;flex:none!important;min-height:0!important;
  padding:0!important;margin:0!important;grid-template-columns:none!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mini-prog{
  position:relative!important;display:flex!important;flex-direction:column!important;justify-content:center!important;gap:6px!important;
  flex:none!important;min-height:0!important;height:auto!important;padding:9px 0!important;margin:0!important;overflow:visible!important;
  border:0!important;border-top:1px solid var(--v5-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  --v5-c:var(--v5-accent);
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mini-prog:first-child{border-top:0!important;padding-top:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mini-prog::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mini-prog::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mp-top{display:flex!important;align-items:baseline!important;gap:8px!important;justify-content:space-between!important;min-width:0!important;margin:0!important;line-height:1.2!important;}
/* 「到期复习」那一格：站点把原文案压成 font-size:0，再用 ::after 写「复习巩固」——不能把 font-size 改回去 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mp-label{font-family:var(--cjk)!important;font-weight:500!important;color:var(--v5-ink-2)!important;white-space:nowrap!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mini-prog:not(.review) .mp-label{font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mini-prog.review .mp-label::after{font-size:var(--v5-fs-body)!important;font-weight:500!important;color:var(--v5-ink-2)!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mp-count{font-family:var(--v5-tech)!important;font-size:var(--v5-fs-body-lg)!important;line-height:1!important;font-weight:600!important;color:var(--v5-ink)!important;white-space:nowrap!important;font-variant-numeric:tabular-nums!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mp-track{flex:none!important;height:4px!important;margin:0!important;border:0!important;border-radius:var(--v5-r-pill)!important;overflow:hidden!important;background:var(--v5-line)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mp-fill{border-radius:inherit!important;background:var(--v5-accent)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyProgress .mini-prog.estimate .mp-track{display:none!important;}
/* 左栏：当前词书 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBookStrip{
  display:flex!important;align-items:center!important;gap:12px!important;flex:none!important;
  width:auto!important;margin:0!important;padding:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  text-align:left!important;cursor:pointer;will-change:auto!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBookStrip .study-book-cover{
  width:40px!important;height:52px!important;flex:none!important;display:grid!important;place-items:center!important;
  border:1px solid var(--v5-line)!important;border-radius:3px 6px 6px 3px!important;
  background:var(--v5-accent-soft)!important;box-shadow:inset 3px 0 0 var(--v5-accent)!important;
  font:600 var(--v5-fs-body)/1 var(--cjk)!important;color:var(--v5-accent-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBookStrip .study-book-copy{flex:1 1 auto!important;min-width:0!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBookStrip .study-book-copy b{display:block!important;font:600 var(--v5-fs-body)/1.35 var(--cjk)!important;color:var(--v5-ink)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBookStrip .study-book-copy small{display:block!important;margin-top:2px!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBookStrip .study-book-change{flex:none!important;font:600 var(--v5-fs-caption)/1 var(--cjk)!important;color:var(--v5-accent-ink)!important;}
@media(max-width:1279px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBookStrip .study-book-change{display:none!important;}
}

/* 中栏：一张普通卡片承载 #studyBody；手卷只画在顶部的「舞台」带（词头 + 音标 + 发音）；释义区是一个面 + 分隔线 */
html.ws-v5 #study.on .wsv5-badges{display:none!important;}
/* overflow 用 clip 而不是 hidden：hidden 会把卡片变成 sticky 的滚动容器，卡底作答区就粘不到视口底（1366×768 实测主按钮不在首屏） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-card{
  position:relative!important;flex:none!important;min-height:0!important;overflow:clip!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-sheet{
  position:absolute!important;left:0!important;top:0!important;right:0!important;bottom:auto!important;
  width:100%!important;height:236px!important;z-index:0!important;pointer-events:none!important;
  filter:drop-shadow(0 0 calc(10px * var(--v5-glow)) color-mix(in srgb,var(--v5-accent) 30%,transparent));
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody{
  position:relative!important;inset:auto!important;z-index:1!important;
  display:flex!important;align-items:flex-start!important;justify-content:center!important;
  padding:0 clamp(32px,7%,64px) 24px!important;overflow:visible!important;min-height:0!important;height:auto!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody>*{margin-top:0!important;margin-bottom:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash{
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  width:100%!important;max-width:820px!important;margin:0 auto!important;padding:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;border-color:transparent!important;
  display:flex!important;flex-direction:column!important;align-items:stretch!important;text-align:left!important;
}
/* 舞台带：前两个 .center（状态标签 + 词头行/音标）合起来占 236px，居中 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.center{text-align:center!important;align-self:center!important;width:100%!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.center:first-child{padding-top:22px!important;height:22px!important;display:flex!important;justify-content:center!important;align-items:center!important;box-sizing:content-box!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.center:first-child .tag{
  display:inline-flex!important;align-items:center!important;height:22px!important;padding:0 8px!important;border-radius:6px!important;
  background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-eyebrow)/1 var(--cjk)!important;letter-spacing:.06em!important;border:0!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.center:nth-child(2){min-height:192px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;box-sizing:border-box!important;padding:6px 0 8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.center:first-child+.center{margin-top:0!important;}
/* 21-ws-v5-mobile.js 会把开头几个 .center 包进 .v5m-stage（桌面上也会）：那就是舞台带本身 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.v5m-stage{min-height:236px!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;text-align:center!important;padding:20px 0 16px!important;margin:0!important;background:none!important;border:0!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.v5m-stage>.center{padding:0!important;height:auto!important;min-height:0!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.v5m-stage>.center+.center{margin-top:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.v5m-stage .tag{display:inline-flex!important;align-items:center!important;height:22px!important;padding:0 8px!important;border-radius:6px!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-eyebrow)/1 var(--cjk)!important;letter-spacing:.06em!important;border:0!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.v5m-stage .study-hint,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .flash>.v5m-stage .memory-explain{text-align:left!important;width:100%!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .word{
  font-family:var(--v5-word)!important;font-weight:700!important;font-size:min(var(--v5-wfs,var(--v5-fs-word)),var(--v5-fs-word))!important;line-height:1.08!important;color:var(--v5-ink)!important;
  text-shadow:none!important;max-width:100%!important;overflow-wrap:anywhere!important;letter-spacing:-.01em!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-card[data-wfit="one"] #studyBody .word{white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-card[data-wfit="wrap"] #studyBody .word{white-space:normal!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .wordline{max-width:100%!important;min-width:0!important;display:inline-flex!important;align-items:center!important;gap:12px!important;justify-content:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .wordline .spk,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .wordline button{
  width:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;min-height:0!important;padding:0!important;margin:0!important;flex:none!important;
  border:1px solid var(--v5-line)!important;border-radius:50%!important;background:var(--v5-panel-2)!important;box-shadow:none!important;color:var(--v5-ink-2)!important;
  display:inline-grid!important;place-items:center!important;font-size:var(--v5-fs-body)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .ipa,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .ipa-slot,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .wordipa,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .word-ipa{margin-top:8px!important;font-size:var(--v5-fs-body-lg)!important;color:var(--v5-ink-2)!important;font-family:var(--cjk)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .word-ipa span,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .wordipa span{color:var(--v5-ink-2)!important;opacity:1!important;font-style:normal!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .word-ipa i,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .wordipa i{color:var(--v5-ink-3)!important;opacity:1!important;font-style:normal!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .hint-tap{font-size:var(--v5-fs-body)!important;line-height:1.5!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .word-ipa i,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .wordipa i{font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .study-hint-rows span,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .hint-aff,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .hint-gloss,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-sent-en,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def-body span{font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-main{font-size:var(--v5-fs-body-lg)!important;color:var(--v5-ink)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-tag{font-size:var(--v5-fs-eyebrow)!important;color:var(--v5-accent-ink)!important;border-color:var(--v5-accent-line)!important;border-radius:var(--v5-r-sm)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-exzh,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-sent-zh,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-zh{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .session-stat-row b{font-size:var(--v5-fs-body-lg)!important;}
/* 记忆钩子里的词缀高亮：站点用裸 --accent 当文字（猫卷 2.47:1）→ --v5-accent-ink */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .seg-affix{color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .seg-dot{color:var(--v5-ink-3)!important;}
/* 释义区：一个面，段落之间只用 1px 分隔线；去掉 .info / 记忆钩子 / 在线词典 / 英文思维的套框 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .memory-explain,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info>*,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .study-hint,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-endef,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def-body,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-box{
  background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;backdrop-filter:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info{
  width:100%!important;margin:0!important;padding:0!important;text-align:left!important;display:block!important;
  border-top:1px solid var(--v5-line)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info>*{display:block!important;margin:0!important;padding:14px 0!important;border-top:1px solid var(--v5-line)!important;font-size:var(--v5-fs-body-lg)!important;line-height:1.6!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info>*:first-child{border-top:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info .pos{display:inline-block!important;margin-right:8px!important;font:600 var(--v5-fs-caption)/1 var(--cjk)!important;color:var(--v5-accent-ink)!important;background:none!important;padding:0!important;border:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info .def{font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink)!important;line-height:1.5!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info .ex,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info .example{font-size:var(--v5-fs-body-lg)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info .tip{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .memory-explain{width:100%!important;max-width:none!important;/* V7.0.9 FB：说明挪进释义区后分隔线与其它行同宽 */margin:0!important;padding:12px 0!important;border-top:1px solid var(--v5-line)!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .memory-explain .memory-pill{display:inline-flex!important;align-items:center!important;height:22px!important;padding:0 8px!important;border-radius:6px!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-eyebrow)/1 var(--cjk)!important;border:0!important;margin-right:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .memory-explain .memory-copy{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;line-height:1.6!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .study-hint{padding:14px 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .study-hint-head{display:flex!important;align-items:center!important;gap:6px!important;font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--v5-accent-ink)!important;margin:0 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .study-hint-word{font:600 var(--v5-fs-body-lg)/1.5 var(--cjk)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .study-hint-rows,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .study-hint-tip{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;line-height:1.6!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def{padding:14px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0 0 6px!important;padding:0!important;border:0!important;background:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def-title{font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def-link{font:600 var(--v5-fs-caption)/1 var(--cjk)!important;color:var(--v5-accent-ink)!important;text-decoration:none!important;background:none!important;border:0!important;padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-def-body{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;line-height:1.6!important;padding:0!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-endef{margin:12px 0 0!important;padding:12px 0 0!important;border-top:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-eyebrow{font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--v5-ink-3)!important;margin:0 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-line{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;line-height:1.6!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .endef-zh{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin-top:4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-alt-links{display:flex!important;gap:14px!important;margin:8px 0 0!important;padding:0!important;font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-alt-links a{color:var(--v5-ink-3)!important;text-decoration:none!important;background:none!important;border:0!important;padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .online-alt-links a:hover{color:var(--v5-accent-ink)!important;text-decoration:underline!important;}
/* 释义区字形（D-rchk-05）：旧版 index.html 给 .ex / .dict-pos / .endef-pos 的是 Georgia 衬线斜体，V5 之前只改了字号和颜色 ——
   英英释义是 Georgia 斜体，它下面的中文（.endef-exzh 继承 .ex）和有道列表的「有道」被伪斜体成宋体。
   §3：Fraunces 衬线只给词头，中文一律系统黑体 → 这里一律无衬线正体；词性标签 caption 档 + 三级字色；EN 行正文 body 档。
   只管电脑宽度（≥769）：手机的释义区由 20-ws-v5-mobile.css 自己定。 */
@media(min-width:769px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody :is(.ex,.ws-endef-ex,.endef-tag,.endef-exzh,.endef-sent,.endef-sent-en,.endef-sent-zh,.dict-pos,.endef-pos){font-family:var(--cjk)!important;font-style:normal!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .info .ex.ws-endef-ex{font-size:var(--v5-fs-body)!important;}
  /* .dict-group>.dict-pos 写成两级：上面 .online-def-body span{font-size:body} 多一个元素选择器，单个类压不过它 */
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody :is(.dict-group>.dict-pos,.endef-pos){font-size:var(--v5-fs-caption)!important;font-weight:500!important;color:var(--v5-ink-3)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .dict-group{align-items:baseline!important;}
}
/* 中栏 = 竖向 flex：卡片 → 作答区（#studyFoot 摊平）→ 工具条；主按钮独占一行居中 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-mid{display:flex!important;flex-direction:column!important;gap:14px!important;align-items:stretch!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-mid>*{min-width:0!important;}
/* #studyFoot 同时带旧类 .foot-inner（max-width:560px + margin:auto 居中）；这里把 margin 归零了，所以 max-width 也必须放开，否则整块贴左（2026-09-26 居中排查：按钮偏左 61px） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot#studyFoot{display:flex!important;flex-direction:column!important;align-items:center!important;gap:14px!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;}
/* 搬进卡底（data-foot=in）时：粘在滚动容器底部，带一条不透明的底，滚过词典区时按钮不与文字叠
   ★ D-rchk-04：sticky 的 bottom 是从滚动容器（#study.on）的内容框算的，要扣掉它的 padding-bottom ——
     bottom:0 时作答区停在视口底上方 32px，下面留一条透明带，正文从带里透出来。
     所以 bottom 取负的容器留白，让不透明的底一直铺到视口底边；padding-bottom 同步加回（按钮位置不变）；
     margin-bottom 再减回去，使它在文档流里占的高度与原来一样（卡片滚到底 / 卡片矮不吸底时版面零变化），
     多出来的那段底被下面的工具条（.wsv5-keyrow）叠在上面 —— 工具条抬到 z-index:4，永远可见可点。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-card[data-foot="in"]>#studyFoot#studyFoot{
  position:sticky!important;bottom:calc(-1 * var(--v5-study-pb,32px))!important;z-index:3!important;box-sizing:border-box!important;
  padding:14px clamp(32px,7%,64px) calc(18px + var(--v5-study-pb,32px))!important;margin:8px 0 calc(-1 * var(--v5-study-pb,32px))!important;
  background:linear-gradient(to bottom,transparent,var(--v5-panel) 10px)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-card[data-foot="in"]>.wsv5-keyrow{position:relative!important;z-index:4!important;padding:0 0 16px!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot>.study-desktop-foot{display:contents!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot>*,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot>.study-desktop-foot>*{align-self:center!important;max-width:100%!important;margin:0!important;}
/* 主按钮：.v5-btn-primary 形（accent / on-accent / 48 高 / 切角 12 / 发光） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .show-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .learn-next{
  position:relative!important;overflow:visible!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;
  width:auto!important;min-width:320px!important;height:var(--v5-btn-h-lg)!important;min-height:var(--v5-btn-h-lg)!important;padding:0 28px!important;margin:0!important;
  border:0!important;border-radius:var(--v5-r-btn)!important;font:600 var(--v5-fs-body-lg)/1 var(--cjk)!important;letter-spacing:.02em!important;
  background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;background-image:none!important;text-shadow:none!important;
  clip-path:var(--v5-btn-clip);
  box-shadow:var(--v5-shadow-soft)!important;filter:drop-shadow(0 0 calc(12px * var(--v5-glow)) color-mix(in srgb,var(--v5-accent) 45%,transparent));
  transition:transform var(--v5-dur) var(--v5-ease),filter var(--v5-dur-fast);
}
/* ★ 主脚本用行内 display:none 藏「显示释义」/「记住了」（揭晓前后二选一），V5 不许把它抢成可见（发布门 4.10） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .show-btn[style*="display:none"],
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .show-btn[style*="display: none"],
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .learn-next[style*="display:none"],
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .learn-next[style*="display: none"]{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .show-btn::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .learn-next::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .show-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .learn-next:hover{filter:brightness(1.06) drop-shadow(0 0 calc(14px * var(--v5-glow)) color-mix(in srgb,var(--v5-accent) 50%,transparent));transform:var(--v5-lift)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .show-btn:active,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .learn-next:active{transform:var(--v5-press)!important;transition-duration:var(--v5-dur-fast)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .learn-next:disabled{opacity:.5!important;filter:none!important;}
/* ★ 千万不要给 .grades 写 display：主脚本靠内联 display:none 在揭晓前藏住判分键 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades{gap:14px!important;width:auto!important;max-width:100%!important;justify-content:center!important;grid-template-columns:none!important;}
/* 判分键：只改形与尺寸，配色沿用站点已调好的 .grade.forgot / .grade.good（对比度不重新推导） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade{
  flex:0 1 240px!important;width:240px!important;min-width:150px!important;min-height:64px!important;padding:12px 10px!important;
  border:0!important;border-radius:var(--v5-r-sm)!important;clip-path:none!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot>.grades[style*="grid"]{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:min(494px,100%)!important;gap:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot>.grades[style*="grid"] .grade{width:auto!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot>#undoPrevLearn{width:min(494px,100%)!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade .gt{font-size:var(--v5-fs-title)!important;font-weight:700!important;letter-spacing:.02em!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade .gd{font-size:var(--v5-fs-caption)!important;font-weight:500!important;margin-top:3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade{
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;white-space:normal!important;
  position:relative!important;transition:transform var(--v5-dur) var(--v5-ease),filter var(--v5-dur-fast),background-color var(--v5-dur-fast)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.good{
  background:var(--v5-accent)!important;background-image:none!important;color:var(--v5-on-accent)!important;
  border-radius:var(--v5-r-btn)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--v5-shadow-soft)!important;
  filter:drop-shadow(0 0 calc(12px * var(--v5-glow)) color-mix(in srgb,var(--v5-accent) 45%,transparent));
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.good .gt,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.good .gd{color:var(--v5-on-accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.good:hover{filter:brightness(1.06) drop-shadow(0 0 calc(14px * var(--v5-glow)) color-mix(in srgb,var(--v5-accent) 50%,transparent));transform:var(--v5-lift)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.forgot{
  background:transparent!important;background-image:none!important;color:var(--v5-ink)!important;
  border-radius:var(--v5-r-btn)!important;clip-path:none!important;box-shadow:inset 0 0 0 1px var(--v5-line-2)!important;filter:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.forgot .gt{color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.forgot .gd{color:var(--v5-ink-3)!important;opacity:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade.forgot:hover{background:var(--v5-accent-soft)!important;box-shadow:inset 0 0 0 1px var(--v5-accent-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot .grades .grade:active{transform:var(--v5-press)!important;}
/* 猫卷（r-btn 999）判分键 64 高的药丸太胖 → 用卡圆角 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #study.on #studyFoot .grades .grade{border-radius:var(--v5-r)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on>.study-body{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on>.study-foot{display:none!important;}
/* 次动作一行文字按钮：再听一遍 / 上一个词 / 全屏专注（+ 新词卡上的「已认识 · 跳过」） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow{
  display:flex!important;align-items:center!important;justify-content:center!important;gap:6px 18px!important;flex-wrap:wrap!important;
  align-self:center!important;max-width:100%!important;margin:-4px 0 0!important;padding:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>[data-k="spk"],
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow:has(#prevWordBtn)>[data-k="prev"],
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow:has(#studyFocusBtn)>[data-k="focus"]{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>button,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>#prevWordBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>#studyFocusBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot #skipKnown{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
  flex:none!important;width:auto!important;min-width:0!important;max-width:100%!important;height:36px!important;min-height:36px!important;
  padding:0 8px!important;margin:0!important;
  border:0!important;border-radius:var(--v5-r-sm)!important;outline-offset:2px;
  background:transparent!important;box-shadow:none!important;
  color:var(--v5-accent-ink)!important;font:500 var(--v5-fs-body)/1 var(--cjk)!important;letter-spacing:0!important;
  text-align:center!important;text-decoration:none!important;white-space:nowrap!important;opacity:1!important;
  cursor:pointer;transform:none!important;clip-path:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>button:hover:not(:disabled),
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot #skipKnown:hover{text-decoration:underline!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>button:disabled,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>#prevWordBtn:disabled{opacity:.45!important;cursor:not-allowed!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>#studyFocusBtn[aria-pressed="true"]{color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot #skipKnown{align-self:center!important;color:var(--v5-ink-2)!important;}
/* 键帽 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow kbd,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>#prevWordBtn::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot #skipKnown::after{
  display:inline-grid!important;place-items:center!important;min-width:18px!important;height:18px!important;padding:0 5px!important;margin:0!important;box-sizing:border-box!important;
  font:500 var(--v5-fs-eyebrow)/1 var(--v5-tech)!important;letter-spacing:.04em!important;border:1px solid var(--v5-line)!important;border-radius:4px!important;
  color:var(--v5-ink-3)!important;background:none!important;box-shadow:none!important;text-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-keyrow>#prevWordBtn::after{content:"←";}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyFoot #skipKnown::after{content:"S";}

/* 右栏：7 站轨道 + 小贴士 + 快捷键，三卡同宽 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-orbitcard{flex:none!important;}
html.ws-v5 #study.on .wsv5-orbit{flex:none;}
html.ws-v5 #study.on .wsv5-orbit svg{display:block;width:100%;height:auto;}
html.ws-v5 #study.on .wsv5-oft{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px;font-size:var(--v5-fs-caption);color:var(--v5-ink-3);}
html.ws-v5 #study.on .wsv5-oft b{font-family:var(--v5-tech);font-size:var(--v5-fs-body);color:var(--v5-ink);}
html.ws-v5 #study.on .wsv5-oft .d{opacity:.4;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside{
  display:flex!important;flex-direction:column!important;gap:14px!important;
  width:auto!important;flex:none!important;min-height:0!important;overflow:visible!important;
  align-self:stretch!important;position:relative!important;top:auto!important;
  padding:0!important;margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-side-card,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card{
  padding:18px 20px!important;margin:0!important;flex:none!important;
  position:relative!important;isolation:auto!important;clip-path:none!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-side-card::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-side-card::after,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-side-card h3,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card h3{
  display:block!important;margin:0 0 10px!important;padding:0!important;
  font:600 var(--v5-fs-eyebrow)/1.2 var(--cjk)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--v5-accent-ink)!important;
  border:0!important;background:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-side-card h3::before,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card h3::before{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-side-card p{font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;line-height:1.5!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .shortcut-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .shortcut-row{grid-template-columns:56px minmax(0,1fr)!important;gap:10px!important;align-items:center!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .shortcut-row kbd,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .shortcut-row>span:first-child{font:500 var(--v5-fs-eyebrow)/1 var(--v5-tech)!important;color:var(--v5-ink-3)!important;border:1px solid var(--v5-line)!important;border-radius:4px!important;padding:3px 5px!important;background:none!important;box-shadow:none!important;text-align:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .shortcut-row>span:last-child{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .session-stat-list,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card .session-stat-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;}
/* 「本次学习统计」：与今日航线同一张表的样子（名目 … 数值，Barlow tabular，不用衬线） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card .session-stat-row,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .session-stat-row{display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:8px!important;padding:8px 0!important;border:0!important;border-top:1px solid var(--v5-line)!important;background:none!important;font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card .session-stat-row:first-child,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .session-stat-row:first-child{border-top:0!important;padding-top:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card .session-stat-row span{min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card .session-stat-row b,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left>.study-side-card .session-stat-row strong,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .session-stat-row b,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .session-stat-row strong{font:600 var(--v5-fs-body-lg)/1 var(--v5-tech)!important;color:var(--v5-ink)!important;font-variant-numeric:tabular-nums;flex:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .prev-word-btn{width:100%!important;height:40px!important;min-height:40px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-ink)!important;font:600 var(--v5-fs-body)/1 var(--cjk)!important;box-shadow:none!important;margin:10px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-tip-list{gap:6px!important;margin:10px 0 0!important;padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .study-tip-list li{min-height:0!important;line-height:1.5!important;font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyAside .prev-word-note{margin:8px 0 0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}

/* 大屏（1920×1080 / 2560×1440）：学习页整体按比例放大，三栏不再只占屏幕中间一小块、下半屏空着（D-dstar-19 / D-dp-15） */
@media(min-width:1800px) and (min-height:1000px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on{zoom:1.14;}
}
@media(min-width:2200px) and (min-height:1300px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on{zoom:1.3;}
}
/* 全屏专注（主脚本挂的是 body.ws-focus）：只留卡片与作答键 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body.ws-focus #study.on .wsv5-stage{grid-template-columns:minmax(0,1fr)!important;max-width:960px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body.ws-focus #study.on .wsv5-scol.wsv5-left,
html.ws-v5.ws-v5.ws-v5.ws-v5 body.ws-focus #study.on .wsv5-scol.wsv5-right{display:none!important;}

/* ---------- 3.6 尊重「减少动态效果」 ---------- */
@media(prefers-reduced-motion:reduce){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active>*,
  html.ws-v5 .wsv5-sway,
  html.ws-v5 .wsv5-pulse,
  html.ws-v5 .wsv5-dust circle{animation:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home.active>*{opacity:1!important;transform:none!important;}
}

}
/* ==================== 3.2b 顶栏 chip 的 id 兜底（不挂任何 media）====================
   §5：所有断点同一尺寸。桌面块里那份带 media，这里再按 id 钉一次，保证 769–1099 与手机层复用时也是同一档。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #desktopTopStreak#desktopTopStreak,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #topRankBtn#topRankBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #topShopBtn#topShopBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #installAppTop#installAppTop,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #wsModeChip#wsModeChip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #datechip#datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #wsV5RevertChip#wsV5RevertChip,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header .wsv5-beta,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header .v5-chip{
  height:var(--v5-chip-h);min-height:var(--v5-chip-h);padding:0 12px;box-sizing:border-box;
  font-family:var(--cjk);font-size:var(--v5-fs-body);font-weight:500;line-height:1;letter-spacing:0;
  display:inline-flex;align-items:center;gap:6px;border-radius:var(--v5-r-pill);
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #wsThemeQuickBtn#wsThemeQuickBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #wsRqBell#wsRqBell,
html.ws-v5.ws-v5.ws-v5.ws-v5 body header #topAccountBtn#topAccountBtn{height:var(--v5-chip-h);min-height:var(--v5-chip-h);width:var(--v5-chip-h);min-width:var(--v5-chip-h);box-sizing:border-box;}

/* ==================== 4. 窄屏兜底 ====================
   V7.0.0 起桌面布局从 769 起生效（769–1099 的缩窄版在文件末尾第 8 节）；≤768 由 20/21 接管。 */

/* ==================== 4b. 「切回旧版」入口（V7.0.0，不挂 media）====================
   新做的主题（17 号 NEW_ONLY_THEMES：像素街机，第三轮加海盐汽水 / 森林书屋）没有旧版界面 →
   17 号在 <html> 上打 data-wsv5-norevert，这里把所有打了 .wsv5-revert-entry 的入口收起：
   顶栏「✦ V5 · 切回旧版」芯片、全部功能面板「✦ 一键切回旧版」、设置页分类轨底部「界面版本」整块（19 号）。
   两个 :not(#_) 只为抬优先级（顶栏芯片规则带两个 id）。 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-wsv5-norevert] body .wsv5-revert-entry:not(#_):not(#_){display:none!important;}

/* ==================== 5. 弹层可读性（桌面 + 手机都生效） ====================
   业主真机（2026-09-22）：完成页点开「科学引导」，背后完成页的字整片透上来、两层字叠在一起，
   顶部被状态栏压住，还能看见两颗 ×。逐个打开全站弹层实测（ov/ovprobe.mjs：同一弹层把背后藏掉，
   分别垫品红 / 纯绿底各截一张卡片区，两张图有差 = 卡片透光），根因只有两条：
   ① 卡片半透明：星穹至尊 --card = rgba(18,26,36,.72)（09 号第 10 行），background:var(--card) 的弹层卡片
      只有 72% 不透明（科学引导 / 公告 / 注册提示 / 商城 / 绑手机 / 模式切换）；V4.17 可读性层给
      .contact-dialog 家族的底色 --ws-readable-panel(-strong) 也是半透明（supreme .82/.92，
      其它主题 color-mix 百分比加起来只有 82%），完成页 / 连胜规则 / 断签挽回 / 分享等一整族都透。
   ② 遮罩「刷白」：科学引导 / 公告 / 注册提示 / 新手目标引导 / 引导完成 / 战报卡 / 扫码登录 / 单词问答 等遮罩用
      color-mix(var(--ink) N%,transparent) 做压暗——深色主题里 --ink 是近白色，于是成了一层灰白。
   修法（全部挂在 html.ws-v5 下，纸墨浅 / 纸墨深不挂 V5，一个像素不变）：
   · 遮罩统一走 --v5-veil：深色主题 = 纸色(近黑)再压黑、72% 不透明；浅色主题 = 墨色再压黑、46%。
     都是中性深色，属于遮罩的正当用法（不是写死颜色）。
   · 卡片统一垫不透明底：背景本来只是一个颜色的 → 改成「--card 叠在 --paper 上」（不透明主题里与原来
     完全一样）；本来带渐变图层的（.contact-dialog 家族等）→ 渐变原样保留，只把底色换成 --paper。
   · 手机：遮罩内边距让出刘海 / Home 条，卡片 max-height 同步扣掉，内容能滚到底。 */
html.ws-v5{
  --v5-veil:color-mix(in srgb,color-mix(in srgb,var(--paper) 50%,black) 72%,transparent);
}
html.ws-v5[data-theme="minimal-light"],
html.ws-v5[data-theme="cute-pink"],
html.ws-v5[data-theme="soda"],
html.ws-v5[data-theme="forest"]{
  --v5-veil:color-mix(in srgb,color-mix(in srgb,var(--ink) 60%,black) 46%,transparent);
}

/* 写法说明（本节通用）：选择器一律逐条展开、每条都以 html.ws-v5 打头（发布门按逗号切选择器逐条查前缀，
   也在经典主题下逐条 querySelector —— 写成 :is(a,b,c) 会被切成 ".b" 这样的裸片段，误判成「没加前缀 / 在经典主题命中」）。
   原来 :is() 里有 #id 参数，整组的权重都按 #id 算；展开后给只有类名的那几条补 :not(#_)（全站没有 id="_" 的元素，
   只加一个 id 的权重、不改匹配范围），:where() 里的部分不计权重 —— 每条的权重与展开前逐条相同，层叠结果不变。 */
/* 5.1 遮罩：真正的压暗（.auth-modal 在手机上是整页纸色登录页，不是遮罩，排除） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sci-ov:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-reg-modal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .contact-modal:where(:not(.auth-modal)):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-onb-done-modal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal.ws-card-modal,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal.ws-qr-modal,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrConfirmModal.ws-qr-modal,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wait-modal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wm-ask-mask:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-wxbind-mask:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .mobile-ach-modal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-rq-mask:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .web-share-modal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .completion-share-modal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .plan-full-modal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sheet-ov:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-cls-review-mask:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .cw-miss-ov:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb.ws-onb{
  background:var(--v5-veil)!important;
  -webkit-backdrop-filter:blur(6px)!important;
  backdrop-filter:blur(6px)!important;
  /* ui-polish-apple 的 .ws-apple-polish :where([class*="modal"]…) 本来是给卡片用的，却把遮罩本身也压成
     max-height:calc(100dvh - 36px - 安全区) + 圆角：遮罩底下 70px 没盖住，底栏和页面字直接露在外面 */
  max-height:none!important;max-width:none!important;border-radius:0!important;
}
/* 战报卡预览（#wsCardModal）被 ui-polish-v4 的 #id 规则钉在 z-index:6200，比手机底栏（.ws-v4-mobile-nav，9999）还低，
   底栏压在弹层上面。抬到与其它弹层同一档（14 号 --ws-z-modal-backdrop = 12000）。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal.ws-card-modal{z-index:12000!important;}

/* 5.2 卡片（背景原本只是一个颜色）：--card 叠在 --paper 上 = 不透明 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sci-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-reg-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .mobile-ach-modal-panel:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sheet:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet.ws-mode-sheet,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wm-ask-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-cls-review:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-wxbind-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-onb-done-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-card-dialog:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-qr-dialog:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-onb-card:not(#_){
  background:linear-gradient(var(--card),var(--card)),var(--paper)!important;
}
/* 新手目标引导卡的投影原来用 --ink 28%（深色主题里是一圈白雾），改成中性黑投影 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-card{box-shadow:0 24px 60px rgba(0,0,0,.4)!important;}
/* 5.3 卡片（原本就带渐变图层）：渐变不动，只把底色从透明换成 --paper */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .contact-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .theme-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .done-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .achievement-unlock-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .achievement-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .profile-center-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .policy-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .install-download-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .menu-panel-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wait-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .web-share-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .completion-share-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .plan-full-dialog,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-rq-panel{
  background-color:var(--paper)!important;
}

/* 5.4 科学引导：唯一一颗 ×，做成看得见、点得着的 36px 圆钮（原来是 13px 宽的灰字，贴在滚动内容上） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sci-card{
  border-color:var(--v5-hair-2)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.42)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sci-card .ws-sci-x{
  top:12px!important;right:12px!important;z-index:2!important;
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;
  display:grid!important;place-items:center!important;border-radius:999px!important;
  border:1px solid var(--v5-hair)!important;
  background:linear-gradient(var(--v5-fill),var(--v5-fill)),var(--paper)!important;
  color:var(--ink)!important;font-size:var(--v5-fs-section)!important;line-height:1!important;
}
/* 标题行给 × 让位（眉题很短，只让右侧） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sci-card .ws-sci-eyebrow{padding-right:44px!important;}

/* 5.4b 商城 / 成就详情（#mobileAchievementModal）的标题行：类名里带 "modal"，被 ui-polish-apple 的
   :where([class*="modal"]) 顺手加上 overflow:auto + 圆角；它又是纵向 flex 面板里的一项，于是被压扁成 45px
   （内容 70px）——标题贴底、× 圆钮只剩上半截。标题行不许被压、不做滚动容器；× 回到正圆。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-modal-head{
  flex:none!important;overflow:visible!important;max-height:none!important;border-radius:0!important;
}
/* 商城「兑换」按钮被输入框挤成两行（兑 / 换）：按钮不收缩、不折行，输入框允许收窄 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal #wsShopRedeemBtn{flex:none!important;white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal #wsShopCode{min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-close{
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important;
  display:grid!important;place-items:center!important;border-radius:999px!important;line-height:1!important;
}

/* 5.4c 其余弹层的 ×：手机上被 14 号 button{min-height:44px} 拉成 17×44 / 24×44 的竖胶囊（奖励面板 / 完整计划表 /
   分享面板 / 战报卡 / 扫码登录 / 公告与注册提示那一族），统一成 36px 正圆、有底色看得见。只改外形，不改位置和行为。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqClose,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullClose,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareClose,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #webShareClose,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardClose,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrClose,
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnbClose,
html.ws-v5.ws-v5.ws-v5.ws-v5 body :where(.ws-reg-card .ws-reg-close):not(#_){
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;
  display:inline-grid!important;place-items:center!important;flex:none!important;border-radius:999px!important;
  border:1px solid var(--v5-hair)!important;
  background:linear-gradient(var(--v5-fill),var(--v5-fill)),var(--paper)!important;
  color:var(--ink)!important;font-size:var(--v5-fs-title)!important;line-height:1!important;
}

/* 5.5 手机绑定提示条（#wsPhoneNudge）原来 z-index 12380，比所有弹层（12000 档）都高——
   完成页 / 更多功能 / 注册提示打开时，它压在卡片底部按钮上。降到弹层之下、页面与底栏之上：
   弹层开着时它在遮罩下面，关掉弹层它照常出现，入口不少。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge{z-index:11900!important;}
/* 但「完整计划表」(#planFullModal 在 #view-plan 里) 和「难词详情」(#hardWordModal 在 .wrap 里) 两个弹层
   不是 body 的直接子节点，被 ui-polish 给 body>* 的 position:relative;z-index:1 关进了 .wrap 的层叠上下文——
   body 上任何 z-index>1 的浮条都会压在它们上面，调 z-index 解决不了。弹层开着时把提示条先收起，关掉就回来。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body:has(#planFullModal.open) #wsPhoneNudge,
html.ws-v5.ws-v5.ws-v5.ws-v5 body:has(#planFullModal.on) #wsPhoneNudge,
html.ws-v5.ws-v5.ws-v5.ws-v5 body:has(#hardWordModal.on) #wsPhoneNudge,
html.ws-v5.ws-v5.ws-v5.ws-v5 body:has(.wsv5-mask:where(.on):not(#_)) #wsPhoneNudge{visibility:hidden!important;}
/* （桌面「全部功能」面板 .wsv5-mask 只有 z-index:2000，提示条同理浮在它的遮罩上，一并收起） */

/* 5.5b 桌面「全部功能」面板标题行那颗 ×：21 号给手机抽屉补的（.wsv5m-px），桌面也挂着，但只有手机样式——
   桌面上成了 12×19 的灰色小方块贴在 ESC 旁边。给它桌面外形（与搜索框同一套细描边），点击行为不变。 */
@media(min-width:769px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-ph .v5m-px{
    flex:none!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
    margin:0 -6px 0 0!important;padding:0!important;display:grid!important;place-items:center!important;cursor:pointer;
    border:0!important;border-radius:var(--v5-r-sm)!important;box-shadow:none!important;outline-offset:2px;
    background:transparent!important;background-image:none!important;color:var(--v5-ink-3)!important;
    font:400 var(--v5-fs-section)/1 var(--cjk)!important;text-shadow:none!important;transform:none!important;
  }
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-ph .v5m-px:hover{background:var(--v5-accent-soft)!important;color:var(--v5-ink)!important;}
}

/* 5.6 手机：让出刘海 / Home 条 */
@media(max-width:768px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sci-ov:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-reg-modal:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .contact-modal:where(:not(.auth-modal)):not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-onb-done-modal:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal.ws-card-modal,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal.ws-qr-modal,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrConfirmModal.ws-qr-modal,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wait-modal:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wm-ask-mask:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-wxbind-mask:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .mobile-ach-modal:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-rq-mask:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .web-share-modal:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .completion-share-modal:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .plan-full-modal:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-cls-review-mask:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .cw-miss-ov:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb.ws-onb{
    padding:calc(env(safe-area-inset-top,0px) + 12px) 12px calc(env(safe-area-inset-bottom,0px) + 12px)!important;
    box-sizing:border-box!important;
  }
  /* 新手引导卡在 12 号里是 max-height:calc(100dvh - 48px)（id 级），没扣刘海 / Home 条，卡片高了会钻进状态栏 */
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb.ws-onb .ws-onb-card{
    max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px)!important;
  }
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-sci-card,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-reg-card,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .mobile-ach-modal-panel,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .contact-dialog,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wait-dialog,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .web-share-dialog,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .completion-share-dialog,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-onb-done-card,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-card-dialog,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-qr-dialog,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .plan-full-dialog,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-rq-panel,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .wm-ask-card,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-cls-review,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-wxbind-card{
    max-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px)!important;
    max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px)!important;
  }
  /* 科学引导在 ≤768 另有 20 号 2.14c 节（#wsSciIntro，id 级特异性）接管尺寸 / 圆角 / ×，这里不重复写 */
  /* 模式切换在手机上是居中卡：原来靠 0 0 0 100vmax 的 --ink 扩散阴影当遮罩（深色主题里同样是刷白），
     遮罩交给 .ws-mode-mask 统一压暗，扩散阴影去掉 */
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet.ws-mode-sheet{box-shadow:0 18px 50px rgba(0,0,0,.34)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-mode-mask{background:var(--v5-veil)!important;}
  /* 浮动铃铛 #wsRqMBell 压「商城」药丸：由 20 号 2.3c 节统一收掉（手机首页那一组的职责），这里不重复写。 */
}

/* ==================== 6. 主题性格补全（不挂 media：电脑 / 手机同一套性格）==================== */
/* 6.1 D-dp-05：「只有手卷与主按钮发光」—— ui-polish-v4.css:2771 给读数加的 0 0 18px 主题色光晕，V5 下一律撤掉（纸墨深里粗体数字发糊） */
html.ws-v5 body :is(.tasknum .n,.today-meter b,.stat .v,.plan-total b,.coin-chip b,.mobile-ach-stat b,.v5-stat__num){text-shadow:none!important;}
/* 6.2 极简「纹样：无」：站点 body::before 的宣纸噪点 / 星点在极简主题下不出现 */
html.ws-v5[data-theme="minimal-light"] body::before,
html.ws-v5[data-theme="minimal-dark"] body::before{opacity:0!important;background-image:none!important;}
/* 6.3 极简 / 纸墨深：首页手卷轴头去掉金属渐变与外发光，改素色（M-b-15：极简不能和星穹一样金轴发光） */
html.ws-v5[data-theme="minimal-light"] .wsv5-holo .wsv5-rod,
html.ws-v5[data-theme="minimal-dark"] .wsv5-holo .wsv5-rod{fill:var(--v5-line-2);}
html.ws-v5[data-theme="minimal-light"] .wsv5-holo .wsv5-cap,
html.ws-v5[data-theme="minimal-dark"] .wsv5-holo .wsv5-cap{fill:var(--v5-ink-3);}
html.ws-v5[data-theme="minimal-light"] .wsv5-holo .wsv5-halo,
html.ws-v5[data-theme="minimal-dark"] .wsv5-holo .wsv5-halo,
html.ws-v5[data-theme="minimal-light"] .wsv5-holo .wsv5-orb,
html.ws-v5[data-theme="minimal-dark"] .wsv5-holo .wsv5-orb{display:none;}
/* 6.4 页脚链接（备案号）：与同一行其它灰色文字链同一种样子，不再是强调色 + 下划线（residual #12，桌面 + 手机） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot a,
html.ws-v5.ws-v5.ws-v5.ws-v5 body a.wsv5-icp{color:var(--v5-ink-2)!important;text-decoration:none!important;border:0!important;border-bottom:0!important;background:none!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-foot a:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5 body a.wsv5-icp:hover{color:var(--v5-accent-ink)!important;text-decoration:underline!important;}
/* 6.5 D-dp-06 猫卷：进度条末端一颗小猫头 —— 首页今日进度 / 等级 XP / 连胜卡 / 下一个成就、统计页小条、成就卡、邀请阶梯全部同一个签名。
   填充为 0 时不出猫头（压在轨道左端圆角上像缺口）。 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track){overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track)>i{position:relative!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track)>i::after{
  content:""!important;display:block!important;position:absolute!important;right:-7px!important;left:auto!important;top:50%!important;width:14px!important;height:14px!important;margin:-7px 0 0!important;
  background:var(--v5-accent)!important;border:0!important;border-radius:0!important;box-shadow:none!important;opacity:1!important;transform:none!important;animation:none!important;
  -webkit-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l3 2.4h4L12 2v5.2A5 5 0 0 1 7 12a5 5 0 0 1-5-4.8z'/%3E%3C/svg%3E") center/contain no-repeat!important;
  mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l3 2.4h4L12 2v5.2A5 5 0 0 1 7 12a5 5 0 0 1-5-4.8z'/%3E%3C/svg%3E") center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track,.v5-bar)>i:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"],[style*="width: 3%"],[style*="width:3%"])::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .v5-bar__fill:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"],[style*="width: 3%"],[style*="width:3%"])::after{display:none!important;}
/* 首页今日进度条（.tm-track > i.v5-bar__fill）原来被「无端点」规则 content:none 掉了 → 猫卷下放回猫头（上一条已写 content，这里只压过 #view-home#view-home 那条） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home#view-home .card.hero .tm-track i::after{content:""!important;display:block!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home#view-home .card.hero .tm-track i:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"],[style*="width: 3%"],[style*="width:3%"])::after{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home#view-home .card.hero .tm-track{overflow:visible!important;}
/* 6.6 D-dp-07 猫卷：连胜火花改猫爪（不用 emoji）。
   顶栏 / 学习页顶栏的连胜 chip：17 号把去掉 🔥 的文案写进 data-wsv5-txt（只加属性，文字节点不碰），这里藏原字、画肉球 + 显示该属性；
   首页连胜火花卡的图标 span 只有一个 🔥，直接换成肉球。 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]{font-size:0!important;gap:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::before{
  content:""!important;display:inline-block!important;flex:none!important;width:14px!important;height:14px!important;position:static!important;margin:0!important;
  background:currentColor!important;-webkit-mask:var(--v5-mark-done) center/contain no-repeat!important;mask:var(--v5-mark-done) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::after{
  content:attr(data-wsv5-txt)!important;display:inline!important;position:static!important;font-size:var(--v5-fs-body)!important;line-height:1!important;color:inherit!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon{font-size:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon::before{
  content:""!important;display:block!important;width:18px!important;height:18px!important;background:currentColor!important;
  -webkit-mask:var(--v5-mark-done) center/contain no-repeat!important;mask:var(--v5-mark-done) center/contain no-repeat!important;
}
/* 6.7 全部功能面板：游客不显示「退出登录」（17 号在打开面板时按登录态加 .wsv5-noauth；桌面与手机抽屉同一个面板） */
html.ws-v5 .wsv5-mask button.wsv5-noauth{display:none!important;}
/* 6.8 打卡连线跟随打卡标记颜色（纸墨浅朱 / 纸墨深金） */
html.ws-v5 .v5-cal__day.is-link-next::after{background:color-mix(in srgb,var(--v5-mark-color) 45%,transparent);}
/* 6.9 G-gate-03：全新游客首页（body.new-user-quiet-home，新人看到的第一屏）
   站点给安静首页的英雄卡与三张介绍卡都写了 760px 居中 → V5 下贴左 760、右边空一大片、介绍卡与英雄卡左缘不齐；
   站点用 visibility:hidden 藏掉的词书行与四格读数仍占着 70px 空位；「学完再玩一会」里游戏卡对新人是隐藏的，只剩一张 LV.1 等级卡孤零零贴在右边。 */
@media(min-width:769px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home .card.hero{max-width:none!important;width:auto!important;margin:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home#view-home .card.hero .wsv5-heroL>:is(.vocab-note,.tasknums){display:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home #wsQuietIntro{max-width:none!important;width:auto!important;margin:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home #wsQuietIntro .qi-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important;max-width:none!important;margin:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home #wsQuietIntro .qi-card{margin:0!important;max-width:none!important;background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:var(--v5-shadow-soft)!important;padding:18px 20px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home #wsQuietIntro .qi-card b{font:600 var(--v5-fs-title)/1.3 var(--cjk)!important;color:var(--v5-ink)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home #wsQuietIntro .qi-card p{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;line-height:1.6!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home #wsQuietIntro .qi-foot{text-align:left!important;margin:10px 2px 0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
  /* 手卷在安静首页别撑得比左列高一倍：右列收窄 + 限高（SVG 自己按比例缩） */
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home .card.hero{grid-template-columns:minmax(0,5fr) minmax(0,2fr)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home .card.hero>.wsv5-holo{min-height:0!important;max-height:300px!important;}
  /* 学习日历对新人是 visibility:hidden（站点安静首页）→ 不再占中间一格空位：学习档案两格并排 */
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home .wsv5-grid3 .desktop-calendar-card{display:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home .wsv5-grid3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home .wsv5-sec-play,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body.new-user-quiet-home #view-home .wsv5-grid4{display:none!important;}
}

/* D-dstar-09 学习页：「今日总进度 0/73」一屏出现 4 次（顶栏进度条、今日航线眉题读数、今日航线「今日进度」行、本次学习统计「今日总进度」行）。
   家 = 顶栏那条总进度；左栏只留分项（新学 / 当天回忆 / 复习巩固 / 预计时长）与本次会话（当前阶段 / 今日剩余 / 预计完成时间）。节点不删。 */
@media(min-width:769px){
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left .wsv5-ph>.wsv5-stageq,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left #studyProgress#studyProgress .mini-prog.total,
  html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-left #studySessionStats>.session-stat-row:nth-child(2){display:none!important;}
}

/* ==================== 7. 像素街机 pixel（V7.0.0 旗舰主题）====================
   规范 release-packages/v7-pixel/DESIGN-PIXEL.md；配方令牌在第 1.6 节（--px-*）。每一条都挂 [data-theme="pixel"]，别的主题一个像素不变。
   ★ 字体：两套像素字体只在本节 / 像素主题的令牌里被引用 —— @font-face 不被用到就不下载，别的主题零成本。中文永远系统字（像素字体里没有中文字形，自动回落）。
     V7.4.0（B9）：这里是新版界面唯一一处像素字体 @font-face（20 号那份已删；26 号旧版皮自留一份），删 / 改地址前先看 20 号 P0 与 index.html head 的 preload。
   ★ 常驻动画只有两个小元素：首页像素猫（眨眼 / 完成后蹦跳）、日历「今天」的光标闪烁；全是 steps()，全部尊重 reduced-motion（第 7.9 节）。
   ★ clip-path 切角会裁掉外阴影和伸出去的角标，所以描边 / 高光 / 侧面全用 inset；有东西伸出去的（顶栏整条、铃铛角标、日历星）不裁，
     改在四角补「底色格」假装切角（--px-notch-*）。 */
@font-face{font-family:"WS Pixel Display";src:url(/fonts/pixel/PressStart2P-latin.woff2) format("woff2");font-display:swap;}
@font-face{font-family:"WS Pixel";src:url(/fonts/pixel/PixelifySans-latin.woff2) format("woff2");font-weight:400 700;font-display:swap;}
html.ws-v5[data-theme="pixel"]{
  /* 小元件的一级台阶（22px 高的标签 / 键帽只切 1P，两级台阶在这么小的件上会吃掉字） */
  --px-clip-xs:polygon(0 3px,3px 3px,3px 0,calc(100% - 3px) 0,calc(100% - 3px) 3px,100% 3px,100% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,3px calc(100% - 3px),0 calc(100% - 3px));
  /* 不裁切的描边框：四条边 + 四角内侧各 1 格用背景层画（box-shadow 会盖住下面的底色格，所以这里不用 inset 描边） */
  --px-frame:linear-gradient(var(--line),var(--line)) left 6px top 0/calc(100% - 12px) 3px no-repeat,linear-gradient(var(--line),var(--line)) left 6px bottom 0/calc(100% - 12px) 3px no-repeat,linear-gradient(var(--line),var(--line)) left 0 top 6px/3px calc(100% - 12px) no-repeat,linear-gradient(var(--line),var(--line)) right 0 top 6px/3px calc(100% - 12px) no-repeat;
  /* 假切角：在四角的 3 个格子里补上「所在底面」的颜色（页面底 / 面板底各一套） */
  --px-notch-paper:linear-gradient(var(--paper),var(--paper)) left top/6px 3px no-repeat,linear-gradient(var(--paper),var(--paper)) left top/3px 6px no-repeat,linear-gradient(var(--paper),var(--paper)) right top/6px 3px no-repeat,linear-gradient(var(--paper),var(--paper)) right top/3px 6px no-repeat,linear-gradient(var(--paper),var(--paper)) left bottom/6px 3px no-repeat,linear-gradient(var(--paper),var(--paper)) left bottom/3px 6px no-repeat,linear-gradient(var(--paper),var(--paper)) right bottom/6px 3px no-repeat,linear-gradient(var(--paper),var(--paper)) right bottom/3px 6px no-repeat;
  --px-notch-panel:linear-gradient(var(--card),var(--card)) left top/6px 3px no-repeat,linear-gradient(var(--card),var(--card)) left top/3px 6px no-repeat,linear-gradient(var(--card),var(--card)) right top/6px 3px no-repeat,linear-gradient(var(--card),var(--card)) right top/3px 6px no-repeat,linear-gradient(var(--card),var(--card)) left bottom/6px 3px no-repeat,linear-gradient(var(--card),var(--card)) left bottom/3px 6px no-repeat,linear-gradient(var(--card),var(--card)) right bottom/6px 3px no-repeat,linear-gradient(var(--card),var(--card)) right bottom/3px 6px no-repeat;
  /* 键帽的侧面用背景层画（同样为了让假切角格压在上面）：底 3px 线色 */
  --px-cap-side:linear-gradient(var(--line),var(--line)) left bottom/100% 3px no-repeat;
  /* 像素点线（分隔线）：Chrome 的 dotted 边框画的是圆点，这里用 3px 方点的背景层；配 border-top:3px solid transparent 用 */
  --px-rule:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 6px) left top/100% 3px no-repeat border-box;
  --px-vrule:repeating-linear-gradient(180deg,var(--line) 0 3px,transparent 3px 6px) left top/3px 100% no-repeat border-box;
}
/* 点阵只要 body::before 那一层（第 1.6 节说明） */
html.ws-v5[data-theme="pixel"] .wrap{background-image:none;}

/* ---------- 7.1 组件（不挂 media：桌面 / 手机 / 弹层共用同一套像素件） ---------- */
/* 主按钮 = 洋红街机键：底部 6px 侧面 + 顶边 1P 高光；hover 面色提亮 8% 不位移；按下整颗沉 1P、侧面缩到 3px */
html.ws-v5[data-theme="pixel"] .v5-btn-primary{
  border-radius:0;clip-path:var(--v5-btn-clip);filter:none;box-shadow:var(--px-key);padding-bottom:6px;font-weight:700;letter-spacing:.04em;
  transition:transform var(--v5-dur-fast) var(--v5-ease),background-color var(--v5-dur-fast) var(--v5-ease);
}
html.ws-v5[data-theme="pixel"] .v5-btn-primary:hover{background:var(--px-face-hover);filter:none;}
html.ws-v5[data-theme="pixel"] .v5-btn-primary:active{box-shadow:var(--px-key-down);padding-bottom:3px;}
/* 次按钮 = card-strong 面 + 线色侧面 */
html.ws-v5[data-theme="pixel"] .v5-btn{border:0;background:var(--v5-panel-2);color:var(--v5-ink);clip-path:var(--v5-btn-clip);box-shadow:var(--px-cap);padding-bottom:3px;}
html.ws-v5[data-theme="pixel"] .v5-btn:hover{background:color-mix(in srgb,var(--v5-panel-2) 90%,var(--ink));}
html.ws-v5[data-theme="pixel"] .v5-btn:active{box-shadow:inset 0 3px 0 var(--px-hi);padding-bottom:0;}
/* 芯片 = 小键帽；数字走像素字 */
html.ws-v5[data-theme="pixel"] .v5-chip{border:0;background:var(--v5-panel-2);clip-path:var(--v5-btn-clip);box-shadow:var(--px-cap);padding-bottom:3px;}
html.ws-v5[data-theme="pixel"] .v5-chip:hover{background:color-mix(in srgb,var(--v5-panel-2) 90%,var(--ink));}
html.ws-v5[data-theme="pixel"] .v5-chip.is-on{background:var(--v5-accent-soft);box-shadow:var(--px-cap-on);}
html.ws-v5[data-theme="pixel"] .v5-tag{border-radius:0;clip-path:var(--px-clip-xs);}
html.ws-v5[data-theme="pixel"] .v5-stat-row > .v5-stat{border-left:3px solid transparent;background:var(--px-vrule);}
html.ws-v5[data-theme="pixel"] .v5-stat-row > .v5-stat:first-child{border-left:0;background:none;}
html.ws-v5[data-theme="pixel"] .v5-dialog__acts{border-top:3px solid transparent;background:var(--px-rule);}
html.ws-v5[data-theme="pixel"] .v5-menu__sep{height:3px;background:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 6px);}
html.ws-v5[data-theme="pixel"] :is(.v5-stat__num,.wsv5-num){-webkit-font-smoothing:none;}
/* 进度条 = 分格 EXP 条：轨道 paper-2 + 3px 描边，内槽里暗格打底、亮格是绿；宽度变化走 steps */
html.ws-v5[data-theme="pixel"] .v5-bar{height:12px;padding:3px;box-sizing:border-box;border-radius:0;background:var(--px-exp-empty) content-box,var(--paper-2);box-shadow:var(--px-ol);}
html.ws-v5[data-theme="pixel"] .v5-bar__fill{inset:3px auto 3px 3px;max-width:calc(100% - 6px);border-radius:0;background:var(--px-exp);}
/* 日历 · 关卡格：方格；打卡 = 右上角一颗 7×7 金色像素星（2 倍 14px）；今天 = 洋红描边格 + 一格闪烁光标 */
html.ws-v5[data-theme="pixel"] .v5-cal__num{border-radius:0;font-family:var(--cjk);font-weight:600;font-variant-numeric:tabular-nums;}
html.ws-v5[data-theme="pixel"] .v5-cal__day.is-done .v5-cal__num{background:var(--v5-mark-soft);color:var(--v5-ink);box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--amber) 32%,var(--card));}
html.ws-v5[data-theme="pixel"] .v5-cal__day.is-done .v5-cal__num::after{left:auto;right:-5px;top:-5px;bottom:auto;width:14px;height:14px;margin:0;}
html.ws-v5[data-theme="pixel"] .v5-cal__day.is-today .v5-cal__num{box-shadow:inset 0 0 0 3px var(--accent);color:var(--v5-ink);}
html.ws-v5[data-theme="pixel"] .v5-cal__day.is-today .v5-cal__num::before{content:"";position:absolute;left:50%;bottom:5px;width:9px;height:3px;margin-left:-4px;background:var(--accent);animation:px-caret 1s steps(1,end) infinite;}
html.ws-v5[data-theme="pixel"] .v5-cal__day.is-link-next::after{height:3px;margin-top:-1px;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--amber) 55%,var(--card)) 0 3px,transparent 3px 6px);}
@keyframes px-caret{50%{opacity:0}}
/* 7 站轨道「当前站」外框（17 号在像素下画方块，桌面右栏与手机学习页共用）：不做缩放脉冲，按 1 秒一闪 */
html.ws-v5[data-theme="pixel"] .wsv5-pulse{animation:px-caret 1s steps(1,end) infinite;transform:none;}
/* 弹层基座 / 菜单：描边切角面板（22 号在此之上扩展） */
html.ws-v5[data-theme="pixel"] .v5-dialog,
html.ws-v5[data-theme="pixel"] .v5-menu{border:0;border-radius:0;background:var(--px-corners),var(--v5-panel);box-shadow:var(--px-ol);clip-path:var(--v5-btn-clip);}
html.ws-v5[data-theme="pixel"] .v5-dialog__close{border-radius:0;clip-path:var(--v5-btn-clip);background:var(--v5-panel-2);box-shadow:var(--px-cap);}
html.ws-v5[data-theme="pixel"] .v5-menu__item{border-radius:0;}
html.ws-v5[data-theme="pixel"] .v5-menu__item:hover{background:var(--v5-accent-soft);color:var(--v5-ink);}
/* 提示条 = 黄底深字的「获得物品」像素条，左侧一枚像素币 */
html.ws-v5[data-theme="pixel"] .v5-toast{border-radius:0;background:var(--amber);color:var(--on-accent);clip-path:var(--v5-btn-clip);box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--amber) 55%,var(--paper-2));font-weight:700;padding-bottom:3px;}
@media(min-width:769px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #toast#toast#toast:not(#_){
    gap:9px!important;padding:0 18px 3px 14px!important;border-radius:0!important;
    background:var(--amber)!important;color:var(--on-accent)!important;font-weight:700!important;
    clip-path:var(--v5-btn-clip)!important;box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--amber) 55%,var(--paper-2)),inset 0 3px 0 color-mix(in srgb,var(--ink) 40%,transparent)!important;
    transition:opacity var(--v5-dur-fast) var(--v5-ease),transform var(--v5-dur-fast) var(--v5-ease)!important;
  }
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #toast#toast#toast:not(#_)::before{content:"";flex:none;width:15px;height:15px;background:var(--px-coin) center/contain no-repeat;}
}

/* ---------- 7.2 桌面壳（≥769）：顶栏 / 侧轨 / 顶栏芯片 ---------- */
@media(min-width:769px){
/* 侧轨：描边切角面板；选中项 = 洋红像素块（深字），切换时整块闪一下（2 帧） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav{
  border:0!important;border-right:0!important;border-radius:0!important;
  background:var(--px-corners),var(--v5-panel)!important;box-shadow:var(--px-ol)!important;clip-path:var(--v5-btn-clip)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav>button[data-tab]{border-radius:0!important;clip-path:var(--v5-btn-clip);transition:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav>button[data-tab]:hover{background:var(--v5-panel-2)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav>button[data-tab].active{
  background:var(--accent)!important;color:var(--on-accent)!important;
  box-shadow:inset 0 -3px 0 var(--px-side),inset 0 3px 0 color-mix(in srgb,var(--ink) 22%,transparent)!important;
  animation:px-sel var(--v5-dur) steps(2,end) 1;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav .wsv5-rail-mark{color:var(--accent);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav .wsv5-rail-hr{height:3px;background:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 6px);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav .wsv5-rail-all{border-radius:0;clip-path:var(--v5-btn-clip);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav .wsv5-rail-all:hover{background:var(--v5-panel-2);}
@keyframes px-sel{0%{filter:brightness(1.9)}100%{filter:none}}
/* 顶栏：不能裁（上方那条遮挡带是 ::before 画在框外的）→ 背景层画描边 + 假切角 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header{
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background:var(--px-frame),var(--px-corners),var(--px-notch-paper),var(--v5-panel)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header::before{background:var(--v5-paper)!important;}
/* 品牌：「Words Scroll」用 8×8 街机体（16px，8 的倍数），「词卷」系统字 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .logo::after{font-family:var(--px-display)!important;font-size:16px!important;font-weight:400!important;letter-spacing:0!important;color:var(--v5-ink)!important;-webkit-font-smoothing:none;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .wsv5-themename{color:var(--accent);}
/* 顶栏芯片 = 小键帽 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #desktopTopStreak#desktopTopStreak,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #topRankBtn#topRankBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #topShopBtn#topShopBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #installAppTop#installAppTop,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsModeChip#wsModeChip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #datechip#datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsV5RevertChip#wsV5RevertChip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .header-actions>button,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .header-actions>.datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .header-actions .v5-chip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .v5-chip-more,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .wsv5-beta,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #topAccountBtn#topAccountBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsThemeQuickBtn#wsThemeQuickBtn{
  border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;
  clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #desktopTopStreak#desktopTopStreak:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #topRankBtn#topRankBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #topShopBtn#topShopBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #installAppTop#installAppTop:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsModeChip#wsModeChip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #datechip#datechip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsV5RevertChip#wsV5RevertChip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .header-actions .v5-chip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .wsv5-beta:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsThemeQuickBtn#wsThemeQuickBtn:hover{background:color-mix(in srgb,var(--v5-panel-2) 88%,var(--ink))!important;color:var(--v5-ink)!important;}
/* 班级模式 / 选中芯片：洋红底色的键帽 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsModeChip#wsModeChip.in-class,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .header-actions .v5-chip.is-on{background:var(--v5-accent-soft)!important;box-shadow:var(--px-cap-on)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsModeChip .ws-mode-dot{border-radius:0!important;width:6px!important;height:6px!important;}
/* 头像：方形像素头像 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #topAccountBtn .top-account-avatar{border-radius:0!important;background:var(--v5-accent-soft)!important;color:var(--accent)!important;padding-bottom:3px!important;box-sizing:border-box!important;font-family:var(--cjk)!important;box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--accent) 40%,var(--paper-2)),inset 0 3px 0 var(--px-hi)!important;}
/* 游客「登录 / 注册」：洋红小键 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #topAccountBtn#topAccountBtn.is-guest{background:var(--accent)!important;color:var(--on-accent)!important;box-shadow:inset 0 -3px 0 var(--px-side)!important;font-family:var(--cjk)!important;}
/* 铃铛：未读角标伸出框外，不能裁 → 背景层画侧面 + 假切角（所在底面 = 顶栏面板色） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header #wsRqBell#wsRqBell{
  border:0!important;border-radius:0!important;clip-path:none!important;box-shadow:none!important;padding-bottom:3px!important;
  background:var(--px-notch-panel),var(--px-cap-side),var(--v5-panel-2)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body header #wsRqBell .ws-rq-dot,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>header .ws-rq-dot{border-radius:0!important;box-shadow:0 0 0 3px var(--v5-panel)!important;}
/* 连胜芯片：去掉 emoji 火苗，换一颗金色像素星（17 号把去掉 🔥 的文案抄进 data-wsv5-txt，这里藏原字、画星 + 显示该属性；与猫卷肉球同一机制） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]{font-size:0!important;gap:7px!important;color:var(--amber)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::before{
  content:""!important;display:inline-block!important;flex:none!important;width:14px!important;height:14px!important;position:static!important;margin:0!important;
  background:var(--amber)!important;-webkit-mask:var(--v5-mark-done) center/contain no-repeat!important;mask:var(--v5-mark-done) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::after{
  content:attr(data-wsv5-txt)!important;display:inline!important;position:static!important;font-size:var(--v5-fs-body)!important;line-height:1!important;color:inherit!important;font-weight:600!important;
}
/* 页脚 / 分区标题的 1px 线 → 3px 点线（像素虚线） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-sec .wsv5-line,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .streak-section-head::after{height:3px!important;background:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 6px)!important;}
/* 眉题前面一格像素光标（老游戏菜单的 ▮），颜色随眉题 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero .kicker::before,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .desktop-card-title::before,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-eyebrow::before,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .study-side-card h3::before,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-left>.study-side-card h3::before{
  content:""!important;display:inline-block!important;width:6px!important;height:6px!important;margin:0 7px 2px 0!important;vertical-align:middle!important;background:currentColor!important;position:static!important;
}
}

/* ---------- 7.3 桌面首页 ---------- */
@media(min-width:769px){
/* 描边切角面板：轮播 / 今日计划 / 学完再玩四卡 / 连胜三卡 / 学习档案三卡 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .share-hero,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-grid4 .today-game-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-lvl,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .streak-bubble,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-grid3>.card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-grid3 .desktop-calendar-card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-grid3>.wsv5-achcard{
  border:0!important;border-radius:0!important;
  background:var(--px-corners),var(--v5-panel)!important;box-shadow:var(--px-ol)!important;clip-path:var(--v5-btn-clip)!important;
}
/* hover：描边换洋红（不位移，§3 桌面 hover 只提亮） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-grid4 .today-game-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-lvl:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .streak-bubble:hover{
  background:var(--px-corners-hi),color-mix(in srgb,var(--v5-panel) 94%,var(--ink))!important;box-shadow:var(--px-ol-hi)!important;transform:none!important;
}
/* 轮播：箭头 = 方键帽；指示点 = 方块 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .hero-arrow{border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .share-hero .hero-dots>*{width:6px!important;height:6px!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .share-hero .hero-dots>.active{width:18px!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .share-actions>*{border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .share-actions>*:hover{background:color-mix(in srgb,var(--v5-panel-2) 88%,var(--ink))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .share-actions>.primary{background:var(--v5-accent-soft)!important;box-shadow:var(--px-cap-on)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .share-actions>.ws-streak-guard{box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--v5-warn) 55%,var(--paper-2))!important;background:color-mix(in srgb,var(--v5-warn) 12%,var(--card))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .share-hero .metric-box b{font-family:var(--px-num)!important;font-weight:400!important;letter-spacing:0!important;-webkit-font-smoothing:none;font-size:16px!important;line-height:1.2!important;word-spacing:-.5em!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .usage-chart{border:0!important;border-radius:0!important;background:var(--paper-2)!important;box-shadow:var(--px-ol)!important;clip-path:var(--v5-btn-clip)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .usage-chart svg{shape-rendering:crispEdges;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .hero-achievement-strip .achievement-mini-medal{border-radius:0!important;clip-path:var(--v5-btn-clip)!important;background:var(--v5-panel-2)!important;}
/* 今日计划卡：问候语、总数走像素字（总数） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .plan-total b{font-family:var(--px-num)!important;font-weight:400!important;letter-spacing:0!important;-webkit-font-smoothing:none;font-size:24px!important;color:var(--amber)!important;}
/* 四格读数 = 街机 HUD 格：card-strong 面、像素大数字、中文 13px 标签 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tasknums{gap:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tasknum,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tasknum:first-child{
  padding:12px 14px 14px!important;gap:6px!important;border:0!important;border-radius:0!important;
  background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tasknum .n{font-family:var(--px-num)!important;font-weight:400!important;letter-spacing:0!important;-webkit-font-smoothing:none;font-size:24px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tasknum .l{font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tasknum.revc::after{top:9px!important;right:9px!important;border-radius:0!important;clip-path:var(--px-clip-xs)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tasknum.achievementc .n{font-family:var(--cjk)!important;font-weight:700!important;font-size:var(--v5-fs-title)!important;color:var(--amber)!important;}   /* 这一格是中文成就名，不是数字 */
/* EXP 条：今日进度（12 高、3px 描边、分格亮绿）/ 即将解锁（细条：暗格打底，亮格金） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tm-track{
  height:12px!important;padding:3px!important;box-sizing:border-box!important;border-radius:0!important;
  background:var(--px-exp-empty) content-box,var(--paper-2)!important;box-shadow:var(--px-ol)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .tm-track i{background:var(--px-exp)!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero .next-achievement-meter{height:6px!important;border-radius:0!important;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--line) 70%,var(--paper-2)) 0 6px,transparent 6px 9px)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero .next-achievement-meter i{background:repeating-linear-gradient(90deg,var(--amber) 0 6px,transparent 6px 9px)!important;border-radius:0!important;}
/* 主按钮 = 洋红街机键 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero #startBtn{
  font-weight:700!important;letter-spacing:.04em!important;padding-bottom:6px!important;
  box-shadow:var(--px-key)!important;filter:none!important;
  transition:transform var(--v5-dur-fast) var(--v5-ease),background-color var(--v5-dur-fast) var(--v5-ease)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero #startBtn:hover{background:var(--px-face-hover)!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero #startBtn:active{box-shadow:var(--px-key-down)!important;padding-bottom:3px!important;}
/* 邀请提示条：细描边格 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .ws-invite-home{border:0!important;border-radius:0!important;background:var(--px-corners),var(--paper-2)!important;box-shadow:var(--px-ol)!important;clip-path:var(--v5-btn-clip)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .ws-invite-home:hover{background:var(--px-corners-hi),var(--paper-2)!important;box-shadow:var(--px-ol-hi)!important;}

/* 7.3b 手卷 = 像素卷轴屏（17 号 holoPixel() 出的 HTML 像素件）：一块内凹的「显像管」，右上角蹲着像素桃桃猫卷 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero>.wsv5-holo{
  display:block!important;place-items:normal!important;padding:18px 20px 20px!important;background:var(--paper-2)!important;clip-path:var(--v5-hero-clip)!important;
  box-shadow:inset 0 3px 0 var(--px-lo)!important;min-height:0!important;
}
html.ws-v5[data-theme="pixel"] .wsv5-pxh{display:flex;flex-direction:column;width:100%;height:100%;min-height:360px;gap:0;color:var(--v5-ink);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-top{display:flex;align-items:center;gap:10px;height:30px;flex:none;margin-bottom:48px;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-top b{font:400 16px/1 var(--px-display);color:var(--amber);letter-spacing:0;text-shadow:3px 3px 0 var(--px-side);-webkit-font-smoothing:none;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-top span{font:600 var(--v5-fs-caption)/1 var(--cjk);color:var(--v5-ink-3);}
/* 卷轴：天杆 + 纸 + 地杆；猫蹲在天杆上（::after） */
/* 卷轴在剩余高度里上下居中；上方固定留 48px + 标题行 30px，保证蹲在天杆上的猫（高出杆 78px）永远不压标题 */
html.ws-v5[data-theme="pixel"] .wsv5-pxh-scroll{position:relative;margin:auto 0;flex:none;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rod{
  position:relative;display:block;height:12px;margin:0 3px;
  background:linear-gradient(color-mix(in srgb,var(--v5-roller) 70%,var(--ink)),color-mix(in srgb,var(--v5-roller) 70%,var(--ink))) left top/100% 3px no-repeat,
             linear-gradient(color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2)),color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2))) left bottom/100% 3px no-repeat,
             var(--v5-roller);
}
/* 轴头：两端各一颗 12×18 的方头（切 1P 角），比杆高出一格 */
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rod::before,
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rod::after{
  content:"";position:absolute;top:-3px;width:12px;height:18px;clip-path:var(--px-clip-xs);
  background:linear-gradient(color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2)),color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2))) left bottom/100% 6px no-repeat,var(--terra);
}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rod::before{left:-9px;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rod::after{right:-9px;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-paper{
  container-type:inline-size;margin:0 12px;padding:18px 14px 20px;text-align:center;
  background:var(--card-strong);box-shadow:inset 3px 0 0 var(--line),inset -3px 0 0 var(--line);
}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-word{
  font-family:var(--px-text);font-weight:600;line-height:1.05;color:var(--v5-ink);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:clip;
  font-size:clamp(20px,calc(175cqi / var(--wlen,6)),var(--v5-fs-word));-webkit-font-smoothing:none;
}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-ipa{margin-top:8px;font:500 var(--v5-fs-body)/1.3 var(--cjk);color:var(--v5-ink-2);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-sub{margin-top:12px;padding-top:12px;font:500 var(--v5-fs-caption)/1.5 var(--cjk);color:var(--v5-ink-2);
  background:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 6px) center top/60% 3px no-repeat;}
/* 7 站轨道：方块站点连成一条像素线；走过的洋红、现在的金（外圈方框）、没到的空心 */
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route{flex:none;padding-top:18px;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rh{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 10px;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rh b{font:600 var(--v5-fs-caption)/1 var(--cjk);letter-spacing:.04em;color:var(--v5-ink-3);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-rh span{font:600 var(--v5-fs-caption)/1 var(--cjk);color:var(--amber);font-variant-numeric:tabular-nums;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li::before{content:"";position:absolute;top:6px;left:50%;width:100%;height:3px;margin-top:-1px;background:repeating-linear-gradient(90deg,var(--line-strong) 0 3px,transparent 3px 6px);z-index:0;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li:last-child::before{content:none;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li.is-done::before{background:var(--accent);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li i{position:relative;z-index:1;display:block;width:12px;height:12px;background:var(--paper-2);box-shadow:inset 0 0 0 3px var(--ink-faint);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li.is-done i{background:var(--accent);box-shadow:none;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li.is-now i{background:var(--amber);box-shadow:0 0 0 3px var(--paper-2),0 0 0 6px var(--amber);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li span{font:600 var(--v5-fs-caption)/1 var(--cjk);color:var(--v5-ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li span small{font:inherit;margin-left:1px;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li.is-done span{color:var(--accent);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li.is-now span{color:var(--amber);font-weight:700;}
/* ★ 签名：像素桃桃猫卷（sprites.json 原样；16×14 放大 6 倍 = 96×84，整数倍不糊）。蹲在天杆右端上方。
   平时 catIdle，每 4.2 秒眨一次眼（catBlink 只停 1 帧）；今日计划完成（.is-clear）换 catHappy，每 2.4 秒蹦一下（-6px，2 帧）。
   ★ 性能：只动 opacity / transform（合成器跑，不触发主线程样式重算）。第一版直接在关键帧里换 background-image，
     实测首页静置 6 秒（4 倍降速）主线程 922ms、每帧一次样式重算，星穹同条件 215ms → 改成两层：::after 画睁眼猫（静态），
     ::before 画眨眼猫叠在上面、只闪 opacity；蹦跳只动 transform。
   装饰件：伪元素不进无障碍树、pointer-events:none。 */
html.ws-v5[data-theme="pixel"] .wsv5-pxh-scroll::before,
html.ws-v5[data-theme="pixel"] .wsv5-pxh-scroll::after{
  content:"";position:absolute;right:30px;bottom:100%;margin-bottom:-6px;width:96px;height:84px;pointer-events:none;
  background:var(--px-cat-idle) center/100% 100% no-repeat;image-rendering:pixelated;
}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-scroll::after{z-index:2;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh-scroll::before{z-index:3;background-image:var(--px-cat-blink);opacity:0;animation:px-cat-blink 4.2s steps(1,end) infinite;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh.is-clear .wsv5-pxh-scroll::after{background-image:var(--px-cat-happy);animation:px-cat-hop 2.4s steps(1,end) infinite;}
html.ws-v5[data-theme="pixel"] .wsv5-pxh.is-clear .wsv5-pxh-scroll::before{display:none;animation:none;}
@keyframes px-cat-blink{0%{opacity:0}96%{opacity:1}98%{opacity:0}}
@keyframes px-cat-hop{0%{transform:none}82%{transform:translateY(-6px)}89%{transform:none}}
/* 完成态：顶上换成 CLEAR（金），卷轴纸的描边换金色 */
html.ws-v5[data-theme="pixel"] .wsv5-pxh.is-clear .wsv5-pxh-top b{color:var(--ok);}
html.ws-v5[data-theme="pixel"] .wsv5-pxh.is-clear .wsv5-pxh-paper{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--ok) 60%,var(--line)),inset -3px 0 0 color-mix(in srgb,var(--ok) 60%,var(--line));}

/* 全新游客（安静首页）：手卷列被 16 号限高 300 → 像素屏收起 7 站轨道（新人还没有站），卷轴整体上提 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body.new-user-quiet-home #view-home .card.hero>.wsv5-holo{padding:14px 16px 16px!important;}
html.ws-v5[data-theme="pixel"] body.new-user-quiet-home .wsv5-pxh{min-height:0;}
html.ws-v5[data-theme="pixel"] body.new-user-quiet-home .wsv5-pxh-route{display:none;}

/* 1px 细分隔线换成 3px 像素点线：学习档案三格读数 / 轮播右栏 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .progress-card .statrow{border-top:3px solid transparent!important;background:var(--px-rule)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .progress-card .statrow .stat{border-left:3px solid transparent!important;background:var(--px-vrule)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .progress-card .statrow .stat:first-child{border-left:0!important;background:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .share-points,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .announcement-list,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .ad-hero-grid,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .usage-panel,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .hero-quote-visual,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .hero-achievement-list,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .share-hero .hero-achievement-panel{border-left:3px solid transparent!important;background:var(--px-vrule)!important;}

/* 学完再玩四卡：标题像素化不必要（中文），「进入 ›」改成像素箭头 */
/* 连胜三卡：图标格改方形键帽；火苗卡换金色像素星 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .streak-icon{border-radius:0!important;clip-path:var(--v5-btn-clip)!important;background:var(--v5-panel-2)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;box-sizing:border-box!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon{font-size:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon::before{
  content:""!important;display:block!important;width:21px!important;height:21px!important;background:var(--amber)!important;
  -webkit-mask:var(--v5-mark-done) center/contain no-repeat!important;mask:var(--v5-mark-done) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .streak-value{font-family:var(--px-num)!important;font-weight:400!important;letter-spacing:0!important;-webkit-font-smoothing:none;font-size:16px!important;line-height:1.35!important;word-spacing:-.5em!important;}   /* 街机字的空格是整整 1em，「12 天」「0/10 分钟」收半格 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .streak-card-track{height:6px!important;border-radius:0!important;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--line) 70%,var(--paper-2)) 0 6px,transparent 6px 9px)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .streak-card-track i{background:repeating-linear-gradient(90deg,var(--ok) 0 6px,transparent 6px 9px)!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home #streakLine .wsv5-shieldlink{border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;}
/* 学习档案：进度环走像素边（crispEdges），徽章方块 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .progress-card .ring circle{shape-rendering:crispEdges;stroke-linecap:butt!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .progress-card .ring text:first-of-type{font-family:var(--px-num)!important;font-weight:400!important;font-size:17.33px!important;-webkit-font-smoothing:none;}   /* 104 单位画成 96px：17.33 → 16px 整格 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-achcard .wsv5-badge{border-radius:0;clip-path:var(--v5-btn-clip);background:var(--v5-panel-2);color:var(--amber);box-shadow:var(--px-cap);padding-bottom:3px;box-sizing:border-box;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-achcard li.is-locked .wsv5-badge{color:var(--v5-ink-3);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-achcard .wsv5-achlist li{border-top:3px solid transparent;background:var(--px-rule);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-achcard .wsv5-achlist li:first-child{border-top:0;background:none;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-achcard .wsv5-achnext{border-top:3px solid transparent;background:var(--px-rule);}
/* 「全部功能」面板 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-panel{border-radius:0!important;background:var(--px-corners),var(--v5-panel)!important;box-shadow:var(--px-ol)!important;clip-path:var(--v5-btn-clip)!important;border:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask{backdrop-filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask .wsv5-search{border:0;border-radius:0;background:var(--paper-2);box-shadow:var(--px-ol);clip-path:var(--v5-btn-clip);}
html.ws-v5[data-theme="pixel"] .wsv5-pgroup button{border-radius:0;}
}

/* ---------- 7.4 桌面学习页 ---------- */
@media(min-width:769px){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on>.study-top,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-p,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .study-side-card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-left>.study-side-card{
  border:0!important;border-bottom:0!important;border-radius:0!important;
  background:var(--px-corners),var(--v5-panel)!important;box-shadow:var(--px-ol)!important;clip-path:var(--v5-btn-clip)!important;
}
/* 顶栏：返回键 / 芯片 / 头像 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top #closeStudy#closeStudy,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top .x{border-radius:0!important;clip-path:var(--v5-btn-clip);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top .study-metric,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top .study-focus-btn{
  border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top #studyTopStreak{background:var(--v5-panel-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-avatar{border-radius:0!important;clip-path:var(--v5-btn-clip);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-brand{border-left:3px solid transparent!important;background:var(--px-vrule)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-logo{font-family:var(--px-display)!important;font-size:16px!important;font-weight:400!important;letter-spacing:0!important;-webkit-font-smoothing:none;}
/* EXP 条：顶栏总进度（12 高）/ 左栏分项（细条） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top-progress .pbar{
  height:12px!important;padding:3px!important;box-sizing:border-box!important;border-radius:0!important;
  background:var(--px-exp-empty) content-box,var(--paper-2)!important;box-shadow:var(--px-ol)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top-progress .pbar i{background:var(--px-exp)!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyProgress .mp-track{height:6px!important;border-radius:0!important;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--line) 70%,var(--paper-2)) 0 6px,transparent 6px 9px)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyProgress .mp-fill{background:repeating-linear-gradient(90deg,var(--ok) 0 6px,transparent 6px 9px)!important;border-radius:0!important;}
/* 今日航线每行自带一条分格细条，行间不再画分隔线（两种点线叠在一起读不清） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyProgress .mini-prog{border-top:0!important;padding-top:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyProgress .mini-prog:first-child{padding-top:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBookStrip .study-book-cover{border:0!important;border-radius:0!important;background:var(--v5-accent-soft)!important;box-shadow:inset 6px 0 0 var(--accent),inset 0 -3px 0 color-mix(in srgb,var(--accent) 40%,var(--paper-2))!important;clip-path:var(--px-clip-xs)!important;}
/* 词卡舞台带：原来的 SVG 卷轴画面（渐变 + 光晕）在像素下收起，同一个 <svg> 元素改用背景层画一块内凹的屏 + 两根金色像素轴 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-sheet{
  left:12px!important;right:auto!important;top:12px!important;width:calc(100% - 24px)!important;filter:none!important;clip-path:var(--v5-hero-clip);
  background:
    linear-gradient(var(--terra),var(--terra)) left 6px top 6px/18px 9px no-repeat,
    linear-gradient(var(--terra),var(--terra)) left 6px bottom 6px/18px 9px no-repeat,
    linear-gradient(var(--terra),var(--terra)) right 6px top 6px/18px 9px no-repeat,
    linear-gradient(var(--terra),var(--terra)) right 6px bottom 6px/18px 9px no-repeat,
    linear-gradient(color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2)),color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2))) left 18px top 15px/3px calc(100% - 30px) no-repeat,
    linear-gradient(color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2)),color-mix(in srgb,var(--v5-roller) 55%,var(--paper-2))) right 9px top 15px/3px calc(100% - 30px) no-repeat,
    linear-gradient(var(--v5-roller),var(--v5-roller)) left 9px top 15px/12px calc(100% - 30px) no-repeat,
    linear-gradient(var(--v5-roller),var(--v5-roller)) right 9px top 15px/12px calc(100% - 30px) no-repeat,
    var(--paper-2)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-sheet>*{display:none!important;}
/* 单词：WS Pixel 48px 字重 600（手机 34 由令牌给）；标签 / 喇叭 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .word{font-weight:600!important;letter-spacing:.01em!important;-webkit-font-smoothing:none;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .wordline .spk,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .wordline button{border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .flash>.center:first-child .tag,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .flash>.v5m-stage .tag,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .memory-explain .memory-pill{border-radius:0!important;clip-path:var(--px-clip-xs)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .info,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .info>*,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .memory-explain,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .online-endef{border-top:3px solid transparent!important;background:var(--px-rule)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .info>*:first-child{border-top:0!important;background:none!important;}
/* 作答区：「显示释义」= 青色描边键；「记得 / 学会了」= 洋红街机键；「不记得」= 次按钮 */
/* 青色描边键：描边用 inset，台阶处四角内侧各补 1 格青色；侧面也用背景层画在补格下面（box-shadow 永远盖在背景上，会把下角的补格染暗） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .show-btn{
  --px-cy-side:color-mix(in srgb,var(--cyan) 30%,var(--paper-2));--px-cy-face:color-mix(in srgb,var(--cyan) 10%,var(--card-strong));
  background:linear-gradient(var(--cyan),var(--cyan)) left 3px top 3px/3px 3px no-repeat,linear-gradient(var(--cyan),var(--cyan)) right 3px top 3px/3px 3px no-repeat,
    linear-gradient(var(--cyan),var(--cyan)) left 3px bottom 3px/3px 3px no-repeat,linear-gradient(var(--cyan),var(--cyan)) right 3px bottom 3px/3px 3px no-repeat,
    linear-gradient(var(--px-cy-side),var(--px-cy-side)) left bottom/100% 9px no-repeat,var(--px-cy-face)!important;
  color:var(--cyan)!important;font-weight:700!important;letter-spacing:.12em!important;
  filter:none!important;padding-bottom:6px!important;box-shadow:inset 0 0 0 3px var(--cyan)!important;
  transition:transform var(--v5-dur-fast) var(--v5-ease)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .show-btn:hover{--px-cy-face:color-mix(in srgb,var(--cyan) 18%,var(--card-strong));filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .show-btn:active{--px-cy-side:transparent;padding-bottom:3px!important;}
/* 卡底吸底作答区：原来是 10px 渐变淡出（非像素），改硬边不透明底 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-card[data-foot="in"]>#studyFoot#studyFoot{background:var(--v5-panel)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .learn-next,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .grades .grade.good{
  filter:none!important;padding-bottom:6px!important;box-shadow:var(--px-key)!important;font-weight:700!important;
  transition:transform var(--v5-dur-fast) var(--v5-ease),background-color var(--v5-dur-fast) var(--v5-ease)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .learn-next:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .grades .grade.good:hover{background:var(--px-face-hover)!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .learn-next:active,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .grades .grade.good:active{box-shadow:var(--px-key-down)!important;padding-bottom:3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .grades .grade{border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .grades .grade.forgot{
  background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;padding-bottom:6px!important;
  box-shadow:inset 0 -6px 0 var(--line),inset 0 3px 0 var(--px-hi)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .grades .grade.forgot:hover{background:color-mix(in srgb,var(--v5-panel-2) 88%,var(--ink))!important;box-shadow:inset 0 -6px 0 var(--line),inset 0 3px 0 var(--px-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot .grades .grade.forgot:active{box-shadow:inset 0 -3px 0 var(--line),inset 0 3px 0 var(--px-hi)!important;padding-bottom:3px!important;}
/* 次动作 / 快捷键键帽 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-keyrow>button,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-keyrow>#prevWordBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-keyrow>#studyFocusBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot #skipKnown{border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-keyrow kbd,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-keyrow>#prevWordBtn::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyFoot #skipKnown::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .shortcut-row kbd,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .shortcut-row>span:first-child{
  border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;box-shadow:var(--px-cap)!important;
  clip-path:var(--px-clip-xs)!important;font-family:var(--cjk)!important;font-weight:600!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-2)!important;padding-bottom:6px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .prev-word-btn{border:0!important;border-radius:0!important;background:var(--v5-panel-2)!important;clip-path:var(--v5-btn-clip)!important;box-shadow:var(--px-cap)!important;padding-bottom:3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .session-stat-row,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-left>.study-side-card .session-stat-row{border-top:3px solid transparent!important;background:var(--px-rule)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .session-stat-row:first-child,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-left>.study-side-card .session-stat-row:first-child{border-top:0!important;background:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-note{border-top:3px solid transparent;background:var(--px-rule);}
/* 右栏 7 站轨道（17 号在像素下画方块）：字走像素体，当前站外框 steps 闪（不缩放） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-orbit svg text{font-family:var(--cjk);}
/* 完成页：「STAGE CLEAR / ROUND CLEAR」横幅与像素方块炸开由 18 号 P1 节负责（桌面与手机 V5 共用）。
   这里只管 16 号自己的像素屏：17 号 fitSheet 在像素下按 .done 的下沿量高，.done 下面再留 24px，地杆两端的轴头不被吸底作答区压住 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyBody .done{margin:0 auto 24px!important;padding-top:6px!important;}
}

/* ---------- 7.8 像素字体只落在它自己的格子上 ----------
   V7.0.0 口径（业主拍板）：≥16px 的数字 = Press Start 2P（--px-num，16 / 24 / 32）；<16px 的数字 = 系统字 + 等宽数字（--v5-tech 已是系统字）；
   Pixelify（--px-text）只给英文单词（40px 词头、手卷上的下一个词）；8×8 街机体（--px-display）给英文短标题（Words Scroll / NEXT）。 */
html.ws-v5[data-theme="pixel"] .v5-menu__item kbd,
html.ws-v5[data-theme="pixel"] .wsv5-search kbd,
html.ws-v5[data-theme="pixel"] .wsv5-pgroup button small,
html.ws-v5[data-theme="pixel"] .wsv5-num,
html.ws-v5[data-theme="pixel"] .v5-stat__num small{font-family:var(--cjk);font-variant-numeric:tabular-nums;}
@media(min-width:769px){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero .tm-top b,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .card.hero .today-meter b,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home#view-home .card.hero .today-eta b,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home :is(#finishLine,#capLine) b,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav .wsv5-rail-all kbd,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .study-top-progress .pcount,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyProgress .mp-count,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .session-stat-row b,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on #studyAside .session-stat-row strong,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-left>.study-side-card .session-stat-row b,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-left>.study-side-card .session-stat-row strong{font-family:var(--cjk)!important;font-variant-numeric:tabular-nums!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #study.on .wsv5-oft b{font-family:var(--cjk);font-variant-numeric:tabular-nums;}
/* 学习档案三格读数：16px 街机数字（四位数在两列平板上也放得下） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .progress-card .statrow .v{font-family:var(--px-num)!important;font-weight:400!important;letter-spacing:0!important;-webkit-font-smoothing:none;font-size:16px!important;}
/* 首页等级卡（若渲染）：大号等级数字 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #view-home .wsv5-lvl .wsv5-lvbig{font-family:var(--px-num)!important;font-weight:400!important;letter-spacing:0!important;-webkit-font-smoothing:none;font-size:24px!important;}
}

/* ---------- 7.9 像素主题的「减少动态效果」：动画一律停在最后一帧 / 静态 ---------- */
@media(prefers-reduced-motion:reduce){
  html.ws-v5[data-theme="pixel"] .wsv5-pxh-scroll::before,
  html.ws-v5[data-theme="pixel"] .wsv5-pxh-scroll::after,
  html.ws-v5[data-theme="pixel"] .wsv5-pxh.is-clear .wsv5-pxh-scroll::after,
  html.ws-v5[data-theme="pixel"] .v5-cal__day.is-today .v5-cal__num::before,
  html.ws-v5[data-theme="pixel"] .wsv5-pulse,
  html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wrap>nav>button[data-tab].active{animation:none!important;transform:none!important;}
  html.ws-v5[data-theme="pixel"] .v5-btn-primary,html.ws-v5[data-theme="pixel"] .v5-btn,html.ws-v5[data-theme="pixel"] .v5-chip{transition:none;}
}

/* ==================== 8. 平板 / 窄窗口 769–1099（V7.0.0 业主拍板：电脑布局的缩窄版）====================
   以前新版电脑皮只在 ≥1100 生效，769–1099 露出旧版式（大手卷插画 + 侧栏主题名、设置页自叠、学习卡被挤）。
   V7.0.0 起电脑皮下延到 769，这一段只做「缩窄」：
   · 侧轨只剩图标（64 宽，不显示文字）；顶栏不显示主题名；
   · 内容单栏：首页「学完再玩一会」2×2（单词 PK 第一个），学习档案两列；<960 时今日计划卡里四格读数改 2×2；
   · 学习页：星卷卡独占一整行（不再三栏挤卡），今日航线 / 轨道两栏挪到卡下面并排、不再吸顶；
   · 1100 及以上一条不命中（1100 / 1280 / 1440 的样子不变）。
   特异性：五连 ws-v5，压过第 3 节（四连）与第 7 节像素规则（四连 + [data-theme]），并且写在它们后面。 */
@media(min-width:769px) and (max-width:1099px){
html.ws-v5{--v5-rail:64px;}
/* ---- 8.1 壳：图标侧轨 64 + 顶栏 ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap{padding:88px 16px 28px 92px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav{left:12px!important;top:12px!important;bottom:12px!important;width:64px!important;padding:8px 0!important;gap:2px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]{width:48px!important;height:44px!important;min-height:44px!important;padding:0!important;gap:0!important;flex:0 0 44px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]::after{content:none!important;display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav>button[data-tab]::before{width:20px!important;height:20px!important;-webkit-mask-size:20px 20px!important;mask-size:20px 20px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-mark{width:40px!important;height:40px!important;margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-mark svg{width:26px!important;height:26px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-hr{width:36px!important;margin:4px 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-sp{min-height:4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all{width:48px!important;height:44px!important;min-height:44px!important;padding:0!important;gap:0!important;font-size:0!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all i{font-size:var(--v5-fs-title)!important;line-height:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>nav .wsv5-rail-all kbd{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header{left:92px!important;right:16px!important;top:12px!important;padding:0 8px 0 14px!important;gap:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header .wsv5-themename{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wrap>header::before{top:-13px!important;height:13px!important;}

/* ---- 8.2 首页 ---- */
/* 轮播：两列保留（右列按宽度收到 190–250），内边距收到 52（箭头 14 + 34 刚好让开）；
   底部 chip 行：放不下的那颗整颗折到第二行并被裁掉（以前是露出半颗） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-slide{grid-template-columns:minmax(0,1fr) clamp(190px,26vw,250px)!important;padding:18px 52px 16px!important;column-gap:20px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions{flex-wrap:wrap!important;max-height:var(--v5-chip-h)!important;align-content:flex-start!important;row-gap:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-actions>*{max-width:100%!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .share-points,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .announcement-list,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .usage-panel,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-quote-visual,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .hero-achievement-panel{padding-left:16px!important;}
/* 学完再玩一会：2×2（DOM 顺序：单词 PK / 磨耳朵 / 单词填字 / 通天树） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .wsv5-grid4{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .wsv5-grid4 .today-game-btn{min-height:120px!important;}
/* 学习档案：掌握进度 + 近期成就一行，星图日历整行 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .wsv5-grid3{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .wsv5-grid3>.progress-card{grid-column:1!important;grid-row:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .wsv5-grid3>.wsv5-achcard{grid-column:2!important;grid-row:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .wsv5-grid3 .desktop-calendar-card{grid-column:1 / -1!important;grid-row:2!important;}
/* 学习页 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on{padding-left:16px!important;padding-right:16px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-scol.wsv5-mid{grid-column:1 / -1!important;grid-row:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-scol.wsv5-left{grid-column:1!important;grid-row:2!important;position:relative!important;top:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .wsv5-scol.wsv5-right{grid-column:2!important;grid-row:2!important;position:relative!important;top:auto!important;}
/* 顶条：「今日计划总进度」字样与专注时长收起（进度条本身与 0/30 读数都在），进度条吃掉剩余宽度 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-progress-label,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top #studyTopFocus{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress{flex:1 1 auto!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-top-progress .pbar{flex:1 1 auto!important;width:auto!important;min-width:48px!important;}
/* 全部功能面板：面板随视口收窄（92vw），四列时最长一条「V5 新版用得怎么样 · 说一句」顶出面板右缘 → 三列 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pbody{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
/* 再窄一档（769–959，iPad 竖屏 820 / 小窗口）：今日计划卡的四格读数 2×2、手卷列放宽到 2/5；学习页顶条的品牌收起 */
@media(min-width:769px) and (max-width:959px){
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero{grid-template-columns:minmax(0,3fr) minmax(0,2fr)!important;column-gap:20px!important;padding:20px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknums{grid-template-columns:repeat(2,minmax(0,1fr))!important;row-gap:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum:nth-child(3){padding-left:0!important;border-left:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero #startBtn{min-width:0!important;width:100%!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on .study-brand{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pbody{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}

/* ==================== 9. 海盐汽水 soda（V7.0.0 新旗舰；release-packages/v7-themes/DESIGN-SODA-FOREST.md §2–§3）====================
   令牌在第 1 节（旋钮）与第 1.6 节（性格 + --sd-* 配方）。每一条都挂 [data-theme="soda"]，别的主题一个像素不变。
   ★ 签名只有一个：主按钮按下冒一串小泡（17 号 onFizz，节点 .wsv5-fizz 挂 body、≤1s 自删）；完成页瓶盖 / 气泡上飘在 18 号 S1。
   ★ 首页空闲不许有持续动画：液面前沿只在进入视图时晃 2 次（1.2s × 2）；学习页顶部液面一直轻晃（2.4s / 周，只动 transform）。
   ★ 颜色全走令牌；url() 里的装饰图（波纹 / 书签）是 SVG 纹样，alpha ≤ .08 或只做填充，不当字。 */

/* ---------- 9.1 组件（不挂 media：桌面 / 手机 / 弹层共用） ---------- */
/* 主按钮 = 汽水泡胶囊：苏打蓝实面 + 上半截玻璃反光（只到 46%，不压字）+ 上沿 1px 高光 + 苏打蓝投影；hover 压深 10%；按下缩 .965 + 冒泡 */
html.ws-v5[data-theme="soda"] .v5-btn-primary{background:var(--sd-gloss),var(--v5-accent);box-shadow:var(--sd-key);filter:none;}
html.ws-v5[data-theme="soda"] .v5-btn-primary:hover{background:var(--sd-gloss),color-mix(in srgb,var(--v5-accent) 90%,var(--ink));filter:none;}
/* 次按钮 = 玻璃胶囊；芯片 = 气泡；选中 = 浅苏打底 + 苏打蓝字 */
html.ws-v5[data-theme="soda"] .v5-btn{border:0;background:var(--sd-glass);box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi);}
html.ws-v5[data-theme="soda"] .v5-btn:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card));}
html.ws-v5[data-theme="soda"] .v5-chip{border:0;background:var(--sd-glass);box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi);}
html.ws-v5[data-theme="soda"] .v5-chip.is-on{background:var(--accent-soft);color:var(--v5-accent-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,var(--line)),var(--sd-hi);}
html.ws-v5[data-theme="soda"] .v5-card{border-color:color-mix(in srgb,var(--line) 85%,transparent);}
html.ws-v5[data-theme="soda"] .v5-tag{border-radius:999px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,var(--line));}
/* 进度条 = 横放的玻璃管：液体 + 上沿反光（::before）+ 前沿竖向小波（::after，进入视图时晃 2 次后静止） */
html.ws-v5[data-theme="soda"] .v5-bar{height:10px;background:var(--paper-2);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ink) 10%,transparent);}
html.ws-v5[data-theme="soda"] .v5-bar__fill{overflow:visible;border-radius:0;background:var(--sd-liquid);}
html.ws-v5[data-theme="soda"] .v5-bar__fill::before{content:"";position:absolute;left:0;right:0;top:1px;height:2px;border-radius:2px;background:color-mix(in srgb,var(--card) 38%,transparent);}
html.ws-v5[data-theme="soda"] .v5-bar__fill::after{content:"";position:absolute;left:100%;top:-16px;bottom:-16px;width:6px;background:var(--accent);
  -webkit-mask:var(--sd-wave-v) 0 0/6px 16px repeat-y;mask:var(--sd-wave-v) 0 0/6px 16px repeat-y;animation:v5sd-slosh 1.2s linear 2;}
html.ws-v5[data-theme="soda"] .v5-bar__fill:is([style*="width: 0"],[style*="width:0"])::after{display:none;}
/* 签名：主按钮按下冒一串小泡（17 号生成；容器只有按钮大小、pointer-events:none，不挡点击也不算遮罩） */
html.ws-v5 .wsv5-fizz{position:fixed;z-index:1300;pointer-events:none;contain:layout style;}
html.ws-v5 .wsv5-fizz i{position:absolute;display:block;border-radius:50%;opacity:0;
  background:radial-gradient(circle at 34% 32%,color-mix(in srgb,var(--card) 95%,transparent) 0 16%,transparent 22%),color-mix(in srgb,var(--fizz,var(--accent)) 28%,transparent);
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--cyan,var(--accent)) 85%,var(--card));
  animation:v5sd-fizz var(--t,720ms) cubic-bezier(.22,1,.36,1) var(--dl,0ms) 1 both;}
/* 日历（§3.8，按 §9-3 定稿）：打过卡 = 淡苏打圆底 + 右上角一枚 14px 小瓶盖（和森林叶印同一做法）；今天 = 1.5px 苏打蓝泡圈；连续两天 = 3px 细吸管 */
html.ws-v5[data-theme="soda"] .v5-cal__day.is-done .v5-cal__num{border-radius:50%;background:var(--v5-mark-soft);color:var(--v5-accent-ink);font-weight:700;}
html.ws-v5[data-theme="soda"] .v5-cal__day.is-done .v5-cal__num::after{left:auto;right:-5px;top:-6px;bottom:auto;width:14px;height:14px;margin:0;transform:rotate(-8deg);}
html.ws-v5[data-theme="soda"] .v5-cal__day.is-today:not(.is-done) .v5-cal__num{border-radius:50%;box-shadow:0 0 0 1.5px var(--card),0 0 0 3px var(--accent);}
html.ws-v5[data-theme="soda"] .v5-cal__day.is-today.is-done .v5-cal__num{box-shadow:inset 0 0 0 1.5px var(--accent);}
html.ws-v5[data-theme="soda"] .v5-cal__day.is-link-next::after{height:3px;margin-top:-1.5px;border-radius:3px;background:color-mix(in srgb,var(--accent) 45%,var(--line));}

/* ---------- 9.2 桌面壳 + 首页（≥769） ---------- */
@media(min-width:769px){
/* 顶栏 = 一条玻璃：不透明（下面滚过的内容不能透上来，也不新增 backdrop-filter）+ 上沿高光 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header{
  background:linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 72%,var(--paper-2)))!important;
  border-color:color-mix(in srgb,var(--line) 85%,transparent)!important;box-shadow:var(--sd-hi),var(--v5-shadow)!important;
}
/* 顶栏芯片 = 气泡（选择器同像素 7.2 那一组） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #desktopTopStreak#desktopTopStreak,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #topRankBtn#topRankBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #topShopBtn#topShopBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #installAppTop#installAppTop,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #wsModeChip#wsModeChip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #datechip#datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header .header-actions>button,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header .header-actions>.datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header .header-actions .v5-chip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header .v5-chip-more,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #topAccountBtn#topAccountBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #wsThemeQuickBtn#wsThemeQuickBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #wsRqBell#wsRqBell{
  border:0!important;background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #desktopTopStreak#desktopTopStreak:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #topRankBtn#topRankBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #topShopBtn#topShopBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #installAppTop#installAppTop:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #wsModeChip#wsModeChip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #datechip#datechip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header .header-actions .v5-chip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #wsThemeQuickBtn#wsThemeQuickBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #wsRqBell#wsRqBell:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card))!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #wsModeChip#wsModeChip.in-class,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header .header-actions .v5-chip.is-on{background:var(--accent-soft)!important;color:var(--v5-accent-ink)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,var(--line)),var(--sd-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>header #topAccountBtn#topAccountBtn.is-guest{background:var(--accent-soft)!important;color:var(--v5-accent-ink)!important;}
/* 连胜芯片：藏原字，前面一枚 14px 瓶盖（与猫卷肉球 / 像素星同一机制：17 号把去掉 🔥 的文案抄进 data-wsv5-txt） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]{font-size:0!important;gap:6px!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::before{
  content:""!important;display:inline-block!important;flex:none!important;width:14px!important;height:14px!important;position:static!important;margin:0!important;
  background:currentColor!important;-webkit-mask:var(--v5-mark-done) center/contain no-repeat!important;mask:var(--v5-mark-done) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::after{
  content:attr(data-wsv5-txt)!important;display:inline!important;position:static!important;font-size:var(--v5-fs-body)!important;line-height:1!important;color:inherit!important;
}
/* 侧栏 = 玻璃柱；选中项 = 浅苏打胶囊 + 1px 苏打蓝内描边 + 右上一颗 6px 泡圈 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>nav{
  background:color-mix(in srgb,var(--card) 72%,transparent)!important;border-color:color-mix(in srgb,var(--line) 85%,transparent)!important;box-shadow:var(--sd-hi),var(--v5-shadow)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>nav>button[data-tab].active{
  background:radial-gradient(circle at calc(100% - 10px) 10px,transparent 2.2px,var(--sd-ring) 2.4px 3.6px,transparent 3.9px),var(--accent-soft)!important;
  border-radius:18px!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wrap>nav>button[data-tab]:not(.active):hover{border-radius:18px!important;}
/* 轮播 = 玻璃卡 + 底部一条浅液带；指示点 = 泡圈（未选中 7px 环，选中 10px 实心）；箭头 = 圆玻璃钮 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .share-hero{
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='34' viewBox='0 0 160 34' preserveAspectRatio='none'><path d='M0 12C27 4 53 4 80 12S133 20 160 12V34H0Z' fill='%2308709A' fill-opacity='.07'/></svg>") left bottom/160px 34px repeat-x,var(--v5-panel)!important;
  border-color:color-mix(in srgb,var(--line) 85%,transparent)!important;box-shadow:var(--v5-shadow-soft)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .share-hero .hero-dots{align-items:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .share-hero .hero-dots>*{width:7px!important;height:7px!important;border-radius:50%!important;background:transparent!important;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 45%,var(--line))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .share-hero .hero-dots>.active{width:10px!important;height:10px!important;background:var(--accent)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .share-hero .hero-arrow,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .share-hero .share-actions>*{border:0!important;background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .share-hero .hero-arrow:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .share-hero .share-actions>*:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .share-hero .share-actions>.primary{background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,var(--line)),var(--sd-hi)!important;}
/* 面板 = 玻璃卡：今日计划 / 学完再玩四卡 / 连胜三卡 / 学习档案三卡 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .card.hero,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .wsv5-grid4 .today-game-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home #streakLine .streak-bubble,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .wsv5-grid3>.card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .wsv5-grid3 .desktop-calendar-card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .wsv5-grid3>.wsv5-achcard{
  border-color:color-mix(in srgb,var(--line) 85%,transparent)!important;box-shadow:var(--v5-shadow-soft)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .wsv5-grid4 .today-game-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home #streakLine .streak-bubble:hover{transform:translateY(-2px)!important;border-color:color-mix(in srgb,var(--accent) 40%,var(--line))!important;}
/* 今日计划：四格数字圆体（字阶 28，比默认 44 轻一档，和玻璃的清爽一致）；主按钮 = 汽水泡胶囊（4 连 class 版，压过 3.3 的 background-image:none） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .tasknum:not(.achievementc) .n{font-size:var(--v5-fs-page)!important;font-weight:700!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .card.hero #startBtn{background:var(--sd-gloss),var(--v5-accent)!important;box-shadow:var(--sd-key)!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .card.hero #startBtn:hover{background:var(--sd-gloss),color-mix(in srgb,var(--v5-accent) 90%,var(--ink))!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .ws-invite-home{border:0!important;background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;border-radius:var(--v5-r-sm)!important;}
/* 手卷：轴杆 = 海玻璃、轴头 = 苏打蓝瓶盖色；不要光晕 / 轨道环；尘粒变小泡（与星穹同款同价的 9s 摇曳 / 6s 小泡，不新增动画） */
html.ws-v5[data-theme="soda"] .wsv5-holo .wsv5-rod{fill:var(--v5-roller);}
html.ws-v5[data-theme="soda"] .wsv5-holo .wsv5-cap{fill:var(--accent);}
html.ws-v5[data-theme="soda"] .wsv5-holo .wsv5-halo,
html.ws-v5[data-theme="soda"] .wsv5-holo .wsv5-orb{display:none;}
html.ws-v5[data-theme="soda"] .wsv5-holo .wsv5-dust{opacity:.45;}
html.ws-v5[data-theme="soda"] .wsv5-holo .wsv5-dust circle{fill:none;stroke:var(--accent);stroke-opacity:.35;stroke-width:1.2px;r:2px;}
/* 连胜三卡：火苗 → 瓶盖（同猫卷那条机制） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon{font-size:0!important;color:var(--accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon::before{
  content:""!important;display:block!important;width:20px!important;height:20px!important;background:currentColor!important;
  -webkit-mask:var(--v5-mark-done) center/contain no-repeat!important;mask:var(--v5-mark-done) center/contain no-repeat!important;
}
/* 近期成就：徽章底 = 浅苏打圆泡（默认就是圆；这里补玻璃内描边） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home .wsv5-achcard .wsv5-badge{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,var(--line)),var(--sd-hi);}
/* 进度条家族（首页今日进度 / 等级 XP / 连胜卡 / 下一个成就 / 统计小条 / 成就卡 / 邀请阶梯）= 同一根玻璃管 + 液体 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .tm-track,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar){
  height:10px!important;border-radius:999px!important;overflow:hidden!important;background:var(--paper-2)!important;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ink) 10%,transparent)!important;border:0!important;padding:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(.streak-card-track,.next-achievement-meter){border-radius:999px!important;overflow:hidden!important;background:var(--paper-2)!important;box-shadow:inset 0 1px 1px color-mix(in srgb,var(--ink) 8%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .tm-track i,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar,.streak-card-track,.next-achievement-meter)>i{
  position:relative!important;display:block!important;height:100%!important;overflow:visible!important;border-radius:0!important;background:var(--sd-liquid)!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .tm-track i::before,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar)>i::before{
  content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;top:1px!important;height:2px!important;border-radius:2px!important;background:color-mix(in srgb,var(--card) 38%,transparent)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .tm-track i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar)>i::after{
  content:""!important;display:block!important;position:absolute!important;left:100%!important;right:auto!important;top:-16px!important;bottom:-16px!important;width:6px!important;height:auto!important;margin:0!important;
  background:var(--accent)!important;border:0!important;border-radius:0!important;box-shadow:none!important;opacity:1!important;
  -webkit-mask:var(--sd-wave-v) 0 0/6px 16px repeat-y!important;mask:var(--sd-wave-v) 0 0/6px 16px repeat-y!important;
}
/* V7.0.0 第三轮（第二轮核查 #3）：动画只在「没要求减少动态」时声明。原来 animation 写在上面那条 4 连 class（带 id）+ !important 的规则里，
   第 1 节 reduce 块那条 html.ws-v5[data-theme] :is(...)::after{animation:none!important} 特异性低、压不过 → 减少动态下液面照晃、嫩叶照舒展（§2.6 要求停住）。
   现在 reduce 下根本没有这条动画：汽水波形静止保留，森林嫩叶直接是展开态（opacity 1 / transform none）。 */
@media(prefers-reduced-motion:no-preference){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .tm-track i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar)>i::after{animation:v5sd-slosh 1.2s linear 2!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #view-home#view-home .card.hero .tm-track i:is([style*="width: 0"],[style*="width:0"])::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar)>i:is([style*="width: 0"],[style*="width:0"])::after{display:none!important;}
}

/* ---------- 9.3 学习页（≥769，§3.9） ---------- */
@media(min-width:769px){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on>.study-top,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .wsv5-p,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .wsv5-card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyAside .study-side-card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .wsv5-left>.study-side-card{border-color:color-mix(in srgb,var(--line) 85%,transparent)!important;box-shadow:var(--v5-shadow-soft)!important;}
/* 词卡舞台：原来的 SVG 卷轴画面收起，同一个 <svg> 改用背景层画「舞台底部一条 22px 浅液带」（横波，accent 7%） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .wsv5-sheet{
  filter:none!important;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='22' viewBox='0 0 160 22' preserveAspectRatio='none'><path d='M0 8C27 2 53 2 80 8S133 14 160 8V22H0Z' fill='%2308709A' fill-opacity='.07'/></svg>") left bottom/160px 22px repeat-x!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .wsv5-sheet>*{display:none!important;}
/* 作答区：显示释义 / 学会了 / 记得 = 汽水泡胶囊（冒泡）；不记得 = 玻璃胶囊 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .show-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .learn-next,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .grades .grade.good{background:var(--sd-gloss),var(--v5-accent)!important;box-shadow:var(--sd-key)!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .show-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .learn-next:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .grades .grade.good:hover{background:var(--sd-gloss),color-mix(in srgb,var(--v5-accent) 90%,var(--ink))!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .grades .grade.forgot{background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyFoot .grades .grade.forgot:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .wsv5-card[data-foot="in"]>#studyFoot#studyFoot{background:linear-gradient(to bottom,transparent,var(--v5-panel) 10px)!important;}
/* 顶部进度 = 液面，一直轻晃（2.4s / 周；学习页不是首页，只动 transform）；左栏细液面 6px 无前沿波 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top-progress .pbar{height:10px!important;background:var(--paper-2)!important;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ink) 10%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top-progress .pbar i{overflow:visible!important;border-radius:0!important;background:var(--sd-liquid)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top-progress .pbar i::before{content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;top:1px!important;height:2px!important;border-radius:2px!important;background:color-mix(in srgb,var(--card) 38%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top-progress .pbar i::after{
  content:""!important;display:block!important;position:absolute!important;left:100%!important;top:-16px!important;bottom:-16px!important;width:6px!important;
  background:var(--accent)!important;-webkit-mask:var(--sd-wave-v) 0 0/6px 16px repeat-y!important;mask:var(--sd-wave-v) 0 0/6px 16px repeat-y!important;
}
@media(prefers-reduced-motion:no-preference){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top-progress .pbar i::after{animation:v5sd-slosh 2.4s linear infinite!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top-progress .pbar i:is([style*="width: 0"],[style*="width:0"])::after{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyProgress .mp-track{height:6px!important;background:var(--paper-2)!important;box-shadow:inset 0 1px 1px color-mix(in srgb,var(--ink) 8%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyProgress .mp-fill{background:var(--sd-liquid)!important;border-radius:0!important;}
/* 标签 = 浅苏打胶囊 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyBody .memory-explain .memory-pill,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on #studyBody .flash>.center:first-child .tag{border-radius:999px!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,var(--line))!important;}
/* 顶栏芯片 / 专注按钮 = 气泡 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top .study-metric,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top .study-focus-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #study.on .study-top #closeStudy#closeStudy{border:0!important;background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;}
}

/* ==================== 10. 森林书屋 forest（V7.0.0 新旗舰；DESIGN-SODA-FOREST.md §2–§3）====================
   每一条都挂 [data-theme="forest"]。签名 = 完成时落叶 + 翻页（纯 CSS，18 号 F1）；这里只有静态纹理 + 通用令牌动效，
   首页唯一的入场动画是藤尖嫩叶舒展一次；手卷不摇曳、无尘粒（书架是稳的）。 */

/* ---------- 10.1 组件（不挂 media） ---------- */
/* 主按钮 = 叶绿漆的木牌：顺纹 4% 奶白细线 + 下沿 3px 木头厚度；按下沉 1px、厚度剩 2px；hover 压深 10% */
html.ws-v5[data-theme="forest"] .v5-btn-primary{background:var(--fs-grain-on),var(--v5-accent);box-shadow:var(--fs-key);filter:none;}
html.ws-v5[data-theme="forest"] .v5-btn-primary:hover{background:var(--fs-grain-on),color-mix(in srgb,var(--v5-accent) 90%,var(--ink));filter:none;}
html.ws-v5[data-theme="forest"] .v5-btn-primary:active{box-shadow:var(--fs-key-down);}
/* 次按钮 = 原木牌 */
html.ws-v5[data-theme="forest"] .v5-btn{border:0;background:var(--fs-grain),var(--fs-wood-face);box-shadow:var(--fs-plank);}
html.ws-v5[data-theme="forest"] .v5-btn:hover{background:var(--fs-grain),color-mix(in srgb,var(--wood) 40%,var(--card));}
html.ws-v5[data-theme="forest"] .v5-btn:active{box-shadow:inset 0 -1px 0 var(--fs-wood-edge);}
/* 芯片 = 书签（右端燕尾）；选中 = 叶绿书签奶白字 */
html.ws-v5[data-theme="forest"] .v5-chip{border:0;background:var(--fs-bookmark);clip-path:var(--fs-ribbon-clip);border-radius:4px 0 0 4px;padding-right:18px;}
html.ws-v5[data-theme="forest"] .v5-chip.is-on{background:var(--accent);color:var(--on-accent);}
html.ws-v5[data-theme="forest"] .v5-chip:hover{transform:none;background:color-mix(in srgb,var(--accent) 20%,var(--card));}
html.ws-v5[data-theme="forest"] .v5-tag{clip-path:var(--fs-ribbon-clip);border-radius:3px 0 0 3px;padding-right:16px;background:var(--fs-bookmark);}
/* 进度条 = 木槽里生长的藤蔓：槽 14 高；藤 = 叶绿蒙版（::before）；藤尖嫩叶（::after）进入视图时舒展一次 */
html.ws-v5[data-theme="forest"] .v5-bar{height:14px;border-radius:7px;background:var(--fs-groove);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--wood-deep) 22%,transparent);}
html.ws-v5[data-theme="forest"] .v5-bar__fill{overflow:visible;background:none;border-radius:0;}
html.ws-v5[data-theme="forest"] .v5-bar__fill::before{content:"";position:absolute;inset:0;background:var(--accent);-webkit-mask:var(--fs-vine) 0 50%/28px 14px repeat-x;mask:var(--fs-vine) 0 50%/28px 14px repeat-x;}
html.ws-v5[data-theme="forest"] .v5-bar__fill::after{content:"";position:absolute;left:calc(100% - 3px);top:50%;width:13px;height:13px;margin-top:-10px;background:var(--leaf);
  -webkit-mask:var(--fs-leaf) center/contain no-repeat;mask:var(--fs-leaf) center/contain no-repeat;transform-origin:0 100%;animation:v5fs-unfurl .7s var(--v5-ease) both;}
html.ws-v5[data-theme="forest"] .v5-bar__fill:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"])::after{display:none;}
/* 日历（§3.8）：打过卡 = 淡叶底圆角格（墨字 12.36）+ 右上角一枚 14px 叶绿叶印（斜 8°）；今天 = 1.5px 叶绿框；连续 = 2px 细藤 */
html.ws-v5[data-theme="forest"] .v5-cal__day.is-done .v5-cal__num{border-radius:8px;background:var(--v5-mark-soft);color:var(--v5-mark-ink);}
html.ws-v5[data-theme="forest"] .v5-cal__day.is-done .v5-cal__num::after{left:auto;right:-5px;top:-6px;bottom:auto;width:14px;height:14px;margin:0;transform:rotate(8deg);}
html.ws-v5[data-theme="forest"] .v5-cal__day.is-today .v5-cal__num{border-radius:8px;box-shadow:inset 0 0 0 1.5px var(--accent);}
html.ws-v5[data-theme="forest"] .v5-cal__day.is-link-next::after{height:2px;background:color-mix(in srgb,var(--accent) 38%,var(--line));}

/* ---------- 10.2 桌面壳 + 首页（≥769） ---------- */
@media(min-width:769px){
/* 顶栏 = 书页色木纹条；品牌书卷体（--v5-word 已是书卷体）；主题名旁一片 12px 叶印 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header{
  background:var(--fs-grain),linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 70%,var(--paper-2)))!important;
  border-color:var(--line)!important;box-shadow:0 1px 0 var(--line),var(--v5-shadow)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .wsv5-themename::before{content:"";display:inline-block;vertical-align:-1px;margin-right:5px;width:12px;height:12px;background:var(--accent);-webkit-mask:var(--fs-leaf) center/contain no-repeat;mask:var(--fs-leaf) center/contain no-repeat;}
/* 顶栏芯片 = 书签（右端燕尾）；班级模式 / 选中 = 叶绿书签奶白字 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #desktopTopStreak#desktopTopStreak,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #topRankBtn#topRankBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #topShopBtn#topShopBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #installAppTop#installAppTop,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #wsModeChip#wsModeChip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #datechip#datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .header-actions>button:where(:not(#wsRqBell):not(#wsThemeQuickBtn):not(#topAccountBtn):not(#desktopTopStreak)),
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .header-actions>.datechip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .header-actions .v5-chip,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .v5-chip-more{
  border:0!important;border-radius:4px 0 0 4px!important;background:var(--fs-bookmark)!important;clip-path:var(--fs-ribbon-clip)!important;padding-right:18px!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #desktopTopStreak#desktopTopStreak:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #topRankBtn#topRankBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #topShopBtn#topShopBtn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #installAppTop#installAppTop:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #wsModeChip#wsModeChip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #datechip#datechip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .header-actions .v5-chip:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .v5-chip-more:hover{background:color-mix(in srgb,var(--accent) 20%,var(--card))!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #wsModeChip#wsModeChip.in-class,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header .header-actions .v5-chip.is-on{background:var(--accent)!important;color:var(--on-accent)!important;}
/* 铃铛 / 主题 / 头像：圆木钮，不裁（角标要伸出去） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #topAccountBtn#topAccountBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #wsThemeQuickBtn#wsThemeQuickBtn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #wsRqBell#wsRqBell{
  border:0!important;border-radius:50%!important;clip-path:none!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:inset 0 -2px 0 var(--fs-wood-edge)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #topAccountBtn .top-account-avatar{background:transparent!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #topAccountBtn#topAccountBtn.is-guest{border-radius:4px 0 0 4px!important;clip-path:var(--fs-ribbon-clip)!important;padding-right:18px!important;background:var(--accent)!important;color:var(--on-accent)!important;box-shadow:none!important;}
/* 连胜芯片：书签 + 叶绿叶印、叶绿字（去掉 emoji 火苗）。不做整颗叶绿实心：「一屏一个 accent 填充块」留给主按钮（V5.2 §1，量化门 accentFillsLE1） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>header #desktopTopStreak#desktopTopStreak[data-wsv5-txt]{color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]{font-size:0!important;gap:6px!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::before{
  content:""!important;display:inline-block!important;flex:none!important;width:14px!important;height:14px!important;position:static!important;margin:0!important;
  background:currentColor!important;-webkit-mask:var(--fs-leaf) center/contain no-repeat!important;mask:var(--fs-leaf) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(#desktopTopStreak#desktopTopStreak,#studyTopStreak#studyTopStreak)[data-wsv5-txt]::after{
  content:attr(data-wsv5-txt)!important;display:inline!important;position:static!important;font-size:var(--v5-fs-body)!important;line-height:1!important;color:inherit!important;
}
/* 侧栏 = 书架柱（顺纹 + 原木色）；选中项 = 从上沿垂下来的叶绿书签（按钮的 ::before/::after 已被图标 / 字占用 → 背景三层画） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>nav{
  background:var(--fs-grain),color-mix(in srgb,var(--paper-2) 80%,var(--wood))!important;
  border-color:color-mix(in srgb,var(--wood) 45%,var(--line))!important;box-shadow:inset -1px 0 0 color-mix(in srgb,var(--wood) 45%,transparent),var(--v5-shadow)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>nav>button[data-tab]{color:var(--v5-ink-2)!important;}
/* 书架柱上的「全部功能 ⌘K」：三级墨在原木底上只有 4.31 → 与导航字同为二级墨（V7.0.0 第三轮） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>nav .wsv5-rail-all kbd{color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>nav>button[data-tab]:hover{background:color-mix(in srgb,var(--card) 55%,transparent)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>nav>button[data-tab].active{
  color:var(--on-accent)!important;
  background:linear-gradient(var(--accent),var(--accent)) left 13px top 0/42px calc(100% - 6px) no-repeat,
             linear-gradient(to bottom right,var(--accent) 50%,transparent 50%) left 13px bottom 0/21px 6px no-repeat,
             linear-gradient(to bottom left,var(--accent) 50%,transparent 50%) left 34px bottom 0/21px 6px no-repeat!important;
  border-radius:0!important;box-shadow:none!important;
}
/* 轮播 = 书页卡 + 两层叠页；右上一条砖红书签丝带；指示点 = 小叶；箭头 = 圆木钮 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .share-hero{
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='74' viewBox='0 0 26 74'><path d='M0 0h26v74l-13-11-13 11z' fill='%239A4527'/></svg>") right 18px top -2px/26px 74px no-repeat,var(--v5-panel)!important;
  box-shadow:var(--fs-pages),var(--v5-shadow)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .share-hero .hero-dots{align-items:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .share-hero .hero-dots>*{width:10px!important;height:10px!important;border-radius:0!important;background:color-mix(in srgb,var(--accent) 30%,var(--card))!important;-webkit-mask:var(--fs-leaf) center/contain no-repeat!important;mask:var(--fs-leaf) center/contain no-repeat!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .share-hero .hero-dots>.active{width:13px!important;height:13px!important;background:var(--accent)!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .share-hero .hero-arrow{border:0!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:inset 0 -2px 0 var(--fs-wood-edge)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .share-hero .share-actions>*{border:0!important;border-radius:4px 0 0 4px!important;background:var(--fs-bookmark)!important;clip-path:var(--fs-ribbon-clip)!important;padding-right:18px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .share-hero .share-actions>*:hover{background:color-mix(in srgb,var(--accent) 20%,var(--card))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .share-hero .share-actions>.primary{background:var(--accent)!important;color:var(--on-accent)!important;}
/* 面板 = 书页（主卡两层叠页；小卡一层） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .card.hero,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .wsv5-grid3>.card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .wsv5-grid3 .desktop-calendar-card,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .wsv5-grid3>.wsv5-achcard{box-shadow:var(--fs-pages),var(--v5-shadow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home #streakLine .streak-bubble{box-shadow:0 1px 0 var(--line),0 3px 0 -1px var(--card-strong),0 4px 0 -1px var(--line-strong),var(--v5-shadow)!important;}
/* 学完再玩四卡：书页（一层叠页）+ 右上角 12×26 砖红书签（静态背景层）；hover 只换边线色，不做位移 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .wsv5-grid4 .today-game-btn{
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='26' viewBox='0 0 12 26'><path d='M0 0h12v26l-6-5-6 5z' fill='%239A4527'/></svg>") right 16px top -1px/12px 26px no-repeat,var(--v5-panel)!important;
  box-shadow:0 1px 0 var(--line),0 3px 0 -1px var(--card-strong),0 4px 0 -1px var(--line-strong),var(--v5-shadow)!important;padding-right:40px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .wsv5-grid4 .today-game-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home #streakLine .streak-bubble:hover{transform:none!important;border-color:color-mix(in srgb,var(--accent) 40%,var(--line))!important;}
/* 今日计划：四格数字书卷体（字阶 28）；进度 = 藤蔓；主按钮 = 叶绿木牌；文字链 accent */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .tasknum:not(.achievementc) .n{font-size:var(--v5-fs-page)!important;font-weight:600!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .card.hero #startBtn{background:var(--fs-grain-on),var(--v5-accent)!important;box-shadow:var(--fs-key)!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .card.hero #startBtn:hover{background:var(--fs-grain-on),color-mix(in srgb,var(--v5-accent) 90%,var(--ink))!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .card.hero #startBtn:active{box-shadow:var(--fs-key-down)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .ws-invite-home{border:0!important;border-radius:4px!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:var(--fs-plank)!important;}
/* 手卷：胡桃木轴、轴头 wood-deep；光晕 / 轨道环 / 摇曳 / 尘粒全部关（书架是稳的）；书签与叶枝由 17 号 themeDeco 画 */
html.ws-v5[data-theme="forest"] .wsv5-holo .wsv5-rod{fill:var(--v5-roller);}
html.ws-v5[data-theme="forest"] .wsv5-holo .wsv5-cap{fill:var(--wood-deep);}
html.ws-v5[data-theme="forest"] .wsv5-holo .wsv5-halo,
html.ws-v5[data-theme="forest"] .wsv5-holo .wsv5-orb,
html.ws-v5[data-theme="forest"] .wsv5-holo .wsv5-dust{display:none;}
html.ws-v5[data-theme="forest"] .wsv5-holo .wsv5-sway,
html.ws-v5[data-theme="forest"] .wsv5-holo .wsv5-dust circle{animation:none;}   /* 尘粒整组已 display:none，这里再把动画摘掉：不留任何常驻动画（性能门：首页空闲不高于星穹） */
/* 连胜三卡：火苗 → 叶印 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon{font-size:0!important;color:var(--accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home #streakLine .streak-bubble.fire .streak-icon::before{
  content:""!important;display:block!important;width:20px!important;height:20px!important;background:currentColor!important;
  -webkit-mask:var(--fs-leaf) center/contain no-repeat!important;mask:var(--fs-leaf) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home #streakLine .streak-icon{border-radius:6px!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:var(--fs-plank)!important;}
/* 近期成就：徽章底 = 原木方牌 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .wsv5-achcard .wsv5-badge{border-radius:6px;background:var(--fs-grain),var(--fs-wood-face);box-shadow:var(--fs-plank);color:var(--v5-ink);}
/* 进度条家族 = 木槽 + 藤蔓 + 藤尖嫩叶（进入视图时舒展一次） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .tm-track,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar){
  height:14px!important;border-radius:7px!important;overflow:visible!important;background:var(--fs-groove)!important;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--wood-deep) 22%,transparent)!important;border:0!important;padding:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.streak-card-track,.next-achievement-meter){height:10px!important;border-radius:5px!important;overflow:visible!important;background:var(--fs-groove)!important;box-shadow:inset 0 1px 1px color-mix(in srgb,var(--wood-deep) 20%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .tm-track i,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar,.streak-card-track,.next-achievement-meter)>i{
  position:relative!important;display:block!important;height:100%!important;overflow:visible!important;border-radius:0!important;background:none!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .tm-track i::before,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar,.streak-card-track,.next-achievement-meter)>i::before{
  content:""!important;display:block!important;position:absolute!important;inset:0!important;background:var(--accent)!important;border-radius:0!important;
  -webkit-mask:var(--fs-vine) 0 50%/28px 14px repeat-x!important;mask:var(--fs-vine) 0 50%/28px 14px repeat-x!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.streak-card-track,.next-achievement-meter)>i::before{-webkit-mask-size:20px 10px!important;mask-size:20px 10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .tm-track i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar)>i::after{
  content:""!important;display:block!important;position:absolute!important;left:calc(100% - 3px)!important;right:auto!important;top:50%!important;bottom:auto!important;width:13px!important;height:13px!important;margin:-10px 0 0!important;
  background:var(--leaf)!important;border:0!important;border-radius:0!important;box-shadow:none!important;opacity:1;
  -webkit-mask:var(--fs-leaf) center/contain no-repeat!important;mask:var(--fs-leaf) center/contain no-repeat!important;transform-origin:0 100%;
}
/* 嫩叶舒展同上：只在 no-preference 里声明（第二轮核查 #3） */
@media(prefers-reduced-motion:no-preference){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .tm-track i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar)>i::after{animation:v5fs-unfurl .7s var(--v5-ease) both!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home#view-home .card.hero .tm-track i:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"])::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(.wsv5-xp,.stats-mini-bar,.ach-progress,.ws-ilad-track,.wsv5p-bar)>i:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"])::after{display:none!important;}
}

/* ---------- 10.3 学习页（≥769，§3.9） ---------- */
@media(min-width:769px){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .wsv5-card{box-shadow:var(--fs-pages),var(--v5-shadow)!important;}
/* 词卡舞台：SVG 卷轴画面收起，同一个 <svg> 改画「左侧 26px 处一条砖红 1px 页边线 + 右上 16×44 砖红书签」 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .wsv5-sheet{
  filter:none!important;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='44' viewBox='0 0 16 44'><path d='M0 0h16v44l-8-7-8 7z' fill='%239A4527'/></svg>") right 28px top -1px/16px 44px no-repeat,
             linear-gradient(color-mix(in srgb,var(--terra) 55%,transparent),color-mix(in srgb,var(--terra) 55%,transparent)) left 26px top 0/1px 100% no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .wsv5-sheet>*{display:none!important;}
/* 作答区：显示释义 / 学会了 / 记得 = 叶绿木牌；不记得 = 原木牌 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .show-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .learn-next,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .grades .grade.good{background:var(--fs-grain-on),var(--v5-accent)!important;box-shadow:var(--fs-key)!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .show-btn:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .learn-next:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .grades .grade.good:hover{background:var(--fs-grain-on),color-mix(in srgb,var(--v5-accent) 90%,var(--ink))!important;filter:none!important;transform:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .show-btn:active,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .learn-next:active,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .grades .grade.good:active{box-shadow:var(--fs-key-down)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .grades .grade.forgot{background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:var(--fs-plank)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyFoot .grades .grade.forgot:hover{background:var(--fs-grain),color-mix(in srgb,var(--wood) 40%,var(--card))!important;box-shadow:var(--fs-plank)!important;}
/* 顶部进度 = 藤蔓；左栏细藤（10px 槽） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top-progress .pbar{height:14px!important;border-radius:7px!important;overflow:visible!important;background:var(--fs-groove)!important;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--wood-deep) 22%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top-progress .pbar i{overflow:visible!important;border-radius:0!important;background:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top-progress .pbar i::before{content:""!important;display:block!important;position:absolute!important;inset:0!important;background:var(--accent)!important;-webkit-mask:var(--fs-vine) 0 50%/28px 14px repeat-x!important;mask:var(--fs-vine) 0 50%/28px 14px repeat-x!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top-progress .pbar i::after{
  content:""!important;display:block!important;position:absolute!important;left:calc(100% - 3px)!important;top:50%!important;width:13px!important;height:13px!important;margin-top:-10px!important;
  background:var(--leaf)!important;-webkit-mask:var(--fs-leaf) center/contain no-repeat!important;mask:var(--fs-leaf) center/contain no-repeat!important;transform-origin:0 100%;
}
@media(prefers-reduced-motion:no-preference){
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top-progress .pbar i::after{animation:v5fs-unfurl .7s var(--v5-ease) both!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top-progress .pbar i:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"])::after{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyProgress .mp-track{height:10px!important;border-radius:5px!important;overflow:visible!important;background:var(--fs-groove)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyProgress .mp-fill{position:relative!important;display:block!important;height:100%!important;background:none!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyProgress .mp-fill::before{content:""!important;display:block!important;position:absolute!important;inset:0!important;background:var(--accent)!important;-webkit-mask:var(--fs-vine) 0 50%/20px 10px repeat-x!important;mask:var(--fs-vine) 0 50%/20px 10px repeat-x!important;}
/* 标签 = 书签小丝带 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyBody .memory-explain .memory-pill,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on #studyBody .flash>.center:first-child .tag{border-radius:3px 0 0 3px!important;clip-path:var(--fs-ribbon-clip)!important;padding-right:16px!important;background:var(--fs-bookmark)!important;}
/* 顶栏芯片 / 专注按钮 = 原木牌 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top .study-metric,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top .study-focus-btn,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #study.on .study-top #closeStudy#closeStudy{border:0!important;border-radius:6px!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:var(--fs-plank)!important;}
}

/* ---------- 9/10.4 平板 769–1099：侧轨只剩 48px 宽的图标键 → 森林书签按新宽度居中；汽水泡圈跟着右上角走（已按 calc(100% - 10px)） ---------- */
@media(min-width:769px) and (max-width:1099px){
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wrap>nav>button[data-tab].active{
  background:linear-gradient(var(--accent),var(--accent)) left 6px top 0/36px calc(100% - 6px) no-repeat,
             linear-gradient(to bottom right,var(--accent) 50%,transparent 50%) left 6px bottom 0/18px 6px no-repeat,
             linear-gradient(to bottom left,var(--accent) 50%,transparent 50%) left 24px bottom 0/18px 6px no-repeat!important;
}
}

/* ==================== 11. 单词 PK 第二批（V7.0.0，V7-CONTRACT-R2 §B）====================
   11.1 首页「学完再玩一会」的 PK 卡（17 号 mountPkEntry 注入 .wsv5-pktitle / .wsv5-pkrank）；
   11.2 段位徽章的主题质感（基础十色 / 尺寸 / 定级中样式在 28 号，对新版旧版都生效；这里只按主题性格覆盖形状与质感，不改结构、不改颜色）。 */
@media(min-width:769px){
/* 按钮原文字节点（🆚 单词 PK）与 main 给旧版画的段位行在新版卡里收起：标题由 .wsv5-pktitle 重画（aria-hidden；读屏走按钮 aria-label） */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4 .today-game-btn.wsv5-pkcard{font-size:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home .wsv5-grid4 .today-game-btn.wsv5-pkcard>:not([class*="wsv5-"]){display:none!important;}
}
html.ws-v5 .wsv5-pkcard .wsv5-pktitle{display:block;font:600 var(--v5-fs-title)/1.25 var(--cjk);color:var(--v5-ink);}
html.ws-v5 .wsv5-pkrank{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;margin:2px 0 0;}
html.ws-v5 .wsv5-pkrank .wsv5-pkhead{display:flex;align-items:center;gap:8px;min-width:0;}
html.ws-v5 .wsv5-pkrank .wsv5-pkhead>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 var(--v5-fs-body-lg)/1.2 var(--cjk);color:var(--v5-ink);}
html.ws-v5 .wsv5-pkrank .wsv5-pkhead>em{flex:none;margin-left:auto;font:600 var(--v5-fs-caption)/1 var(--cjk);font-style:normal;white-space:nowrap;padding:4px 8px;border-radius:var(--v5-r-pill);
  color:var(--v5-gold-ink);border:1px solid color-mix(in srgb,var(--v5-gold) 40%,transparent);background:transparent;}
html.ws-v5 .wsv5-pkrank .wsv5-pkhead>em.is-done{color:var(--v5-accent-ink);border-color:var(--v5-accent-line);background:var(--v5-accent-soft);}
html.ws-v5 .wsv5-pkrank .wsv5-pklp{display:block;position:relative;width:100%;height:6px;border-radius:var(--v5-r-pill);overflow:hidden;background:var(--v5-line);}
html.ws-v5 .wsv5-pkrank .wsv5-pklp>i{display:block;position:relative;height:100%;border-radius:inherit;background:var(--v5-accent);}
html.ws-v5 .wsv5-pkrank .wsv5-pkmeta{font:500 var(--v5-fs-caption)/1.3 var(--v5-tech);color:var(--v5-ink-3);font-variant-numeric:tabular-nums;}
html.ws-v5 .wsv5-pkrank .wsv5-pkguest b{display:block;font:600 var(--v5-fs-body)/1.35 var(--cjk);color:var(--v5-accent-ink);}
html.ws-v5 .wsv5-pkrank .wsv5-pkguest small{display:block;margin-top:2px;font:400 var(--v5-fs-caption)/1.4 var(--cjk);color:var(--v5-ink-3);}
/* 小段胜点条按主题：像素 = 分格 EXP；汽水 = 液面（静止）；森林 = 藤蔓；其余 = 通用细条 */
html.ws-v5[data-theme="pixel"] .wsv5-pkrank .wsv5-pklp{height:12px;padding:3px;box-sizing:border-box;border-radius:0;background:var(--px-exp-empty) content-box,var(--paper-2);box-shadow:inset 0 0 0 3px var(--line);}
html.ws-v5[data-theme="pixel"] .wsv5-pkrank .wsv5-pklp>i{border-radius:0;background:var(--px-exp);}
html.ws-v5[data-theme="pixel"] .wsv5-pkrank .wsv5-pkhead>em{border-radius:0;border-width:0;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--amber) 45%,var(--line));color:var(--amber);padding:5px 8px;}
html.ws-v5[data-theme="pixel"] .wsv5-pkrank .wsv5-pkhead>em.is-done{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--v5-accent-ink);background:var(--v5-accent-soft);}
html.ws-v5[data-theme="soda"] .wsv5-pkrank .wsv5-pklp{height:8px;background:var(--paper-2);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ink) 10%,transparent);}
html.ws-v5[data-theme="soda"] .wsv5-pkrank .wsv5-pklp>i{border-radius:0;background:var(--sd-liquid);}
html.ws-v5[data-theme="forest"] .wsv5-pkrank .wsv5-pklp{height:10px;border-radius:5px;background:var(--fs-groove);box-shadow:inset 0 1px 1px color-mix(in srgb,var(--wood-deep) 20%,transparent);}
html.ws-v5[data-theme="forest"] .wsv5-pkrank .wsv5-pklp>i{border-radius:0;background:none;}
html.ws-v5[data-theme="forest"] .wsv5-pkrank .wsv5-pklp>i::before{content:"";position:absolute;inset:0;background:var(--accent);-webkit-mask:var(--fs-vine) 0 50%/20px 10px repeat-x;mask:var(--fs-vine) 0 50%/20px 10px repeat-x;}
html.ws-v5[data-theme="forest"] .wsv5-pkrank .wsv5-pkhead>em{border-radius:3px 0 0 3px;border:0;padding-right:14px;background:var(--fs-bookmark);clip-path:var(--fs-ribbon-clip);color:var(--v5-gold-ink);}
html.ws-v5[data-theme="forest"] .wsv5-pkrank .wsv5-pkhead>em.is-done{background:var(--accent);color:var(--on-accent);}
html.ws-v5[data-theme="soda"] .wsv5-pkrank .wsv5-pkhead>em{border:0;background:var(--sd-glass);box-shadow:inset 0 0 0 1px var(--sd-glass-line);}

/* 11.2 段位徽章的主题质感（新版电脑 / 手机 / 弹层共用，不挂 media）。
   28 号的结构：.ws-pk-badge 是一颗段位色浅底的小胶囊（22 / 28 / 52 高），里面一枚盾形小图标 .ws-pk-badge__shape + 段位名 / 罗马数字。
   这里只换「形」与「质感」：胶囊外形、图标形状、内描边 / 高光；颜色（--pk-c 十色）、字、结构一律不动。
   大师 / 宗师 / 王者的「带冠盾」是段位区分，不覆盖；定级中的虚线样子也不覆盖。 */
/* 像素街机 = 像素盾：胶囊变方角 + 1 格台阶切角；图标换成台阶像素盾 */
html.ws-v5[data-theme="pixel"] .ws-pk-badge{border-radius:0!important;clip-path:var(--px-clip-xs)!important;}
html.ws-v5[data-theme="pixel"] .ws-pk-badge[data-size="lg"]{clip-path:var(--v5-btn-clip)!important;}
html.ws-v5[data-theme="pixel"] .ws-pk-badge:not([data-tier="master"]):not([data-tier="grandmaster"]):not([data-tier="challenger"]) .ws-pk-badge__shape{
  clip-path:polygon(0 0,100% 0,100% 64%,84% 64%,84% 82%,66% 82%,66% 100%,34% 100%,34% 82%,16% 82%,16% 64%,0 64%)!important;}
html.ws-v5[data-theme="pixel"] .ws-pk-badge .ws-pk-badge__div{-webkit-font-smoothing:none;}
/* 大号徽章（「我的」页，52 高）里的「II」「3/5」是 ≥16px 的数字 → 16px 街机字（业主口径 16 / 24 / 32 / 48） */
html.ws-v5[data-theme="pixel"] .ws-pk-badge[data-size="lg"]{font-family:var(--px-num);font-size:16px;font-weight:400;font-synthesis:none;}
html.ws-v5[data-theme="pixel"] .ws-pk-badge[data-size="lg"] :is(.ws-pk-badge__div,.ws-pk-badge__name){font-weight:400;}
/* 星穹至尊 = 切角 HUD：胶囊左上 / 右下切角 + 一道冷光内描边；图标换六角 HUD */
html.ws-v5[data-theme="supreme"] .ws-pk-badge{border-radius:0!important;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)!important;}
html.ws-v5[data-theme="supreme"] .ws-pk-badge:not(.is-placing){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pk-c) 80%,transparent),inset 0 0 10px color-mix(in srgb,var(--pk-c) 22%,transparent)!important;}
html.ws-v5[data-theme="supreme"] .ws-pk-badge:not([data-tier="master"]):not([data-tier="grandmaster"]):not([data-tier="challenger"]) .ws-pk-badge__shape{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)!important;}
/* 海盐汽水 = 瓶盖：图标换成一枚 21 齿皇冠瓶盖（正圆）；胶囊加玻璃上沿高光 */
html.ws-v5[data-theme="soda"] .ws-pk-badge:not(.is-placing){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pk-c) 55%,transparent),inset 0 1px 0 color-mix(in srgb,var(--card) 90%,transparent)!important;}
html.ws-v5[data-theme="soda"] .ws-pk-badge:not([data-tier="master"]):not([data-tier="grandmaster"]):not([data-tier="challenger"]) .ws-pk-badge__shape{
  width:14px!important;height:14px!important;clip-path:none!important;
  -webkit-mask:var(--sd-cap-solid) center/contain no-repeat!important;mask:var(--sd-cap-solid) center/contain no-repeat!important;}
html.ws-v5[data-theme="soda"] .ws-pk-badge[data-size="md"]:not([data-tier="master"]):not([data-tier="grandmaster"]):not([data-tier="challenger"]) .ws-pk-badge__shape{width:18px!important;height:18px!important;}
html.ws-v5[data-theme="soda"] .ws-pk-badge[data-size="lg"]:not([data-tier="master"]):not([data-tier="grandmaster"]):not([data-tier="challenger"]) .ws-pk-badge__shape{width:32px!important;height:32px!important;}
/* 森林书屋 = 木牌：胶囊变小圆角牌面 + 下沿 2px 木头厚度；图标换一片叶 */
html.ws-v5[data-theme="forest"] .ws-pk-badge{border-radius:4px!important;}
html.ws-v5[data-theme="forest"] .ws-pk-badge[data-size="lg"]{border-radius:8px!important;}
html.ws-v5[data-theme="forest"] .ws-pk-badge:not(.is-placing){box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--pk-c) 45%,var(--wood-deep)),inset 0 0 0 1px color-mix(in srgb,var(--pk-c) 40%,transparent)!important;}
html.ws-v5[data-theme="forest"] .ws-pk-badge:not([data-tier="master"]):not([data-tier="grandmaster"]):not([data-tier="challenger"]):not(.is-placing) .ws-pk-badge__shape{
  clip-path:none!important;-webkit-mask:var(--fs-leaf) center/contain no-repeat!important;mask:var(--fs-leaf) center/contain no-repeat!important;}

/* ==================== 12. 第一轮核查返修（V7.0.0 第二轮，v5-desktop）==================== */
@media(min-width:769px){
/* 12.1 轮播第 4 帧「广告合作」：右栏两张卡（受众清晰 / 联系合作 + 按钮）在 176 高的矮屏轮播（1024×768、1099×800、1280×720）里
   自叠、按钮被下沿切掉（第一轮核查第 1 条）。原来整张卡用 -webkit-box 两行截断（把 h3、p、按钮一起算行）——改成竖排：
   标题一行 + 说明最多两行 + 按钮；矮屏再把「联系合作」那张卡的说明收起（标题 + 按钮本身就说清了），右栏总高 ≤ 轮播可用高度。 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid .ad-hero-card{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;-webkit-line-clamp:unset!important;overflow:visible!important;max-height:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid .ad-hero-card p{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid .ad-hero-card .share-action{margin-top:6px!important;flex:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid{gap:10px!important;justify-content:center!important;}
/* 12.1b 学习页例句里被标出的单词（index.html .ex em = --terra）：纸墨浅下 4.13（< 4.5）。往墨色压 28%（深色主题的墨是浅色，同一配方反而更亮），各主题都 ≥ 4.5 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #study.on #studyBody .ex em{color:color-mix(in srgb,var(--terra) 72%,var(--ink))!important;}
/* 12.1c 首页「连胜状态」标题行「? 规则」的问号圆点：站点写死 color:var(--accent)，云阶白卷下只有 4.36 → 强调色当字一律 --v5-accent-ink */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home #streakLine .streak-rule-entry .help-dot{color:var(--v5-accent-ink)!important;}
/* 12.2 今日计划标题（「北美留学必备 · 今天的计划」）：窄的时候折行只剩一个「划」→ 两行平衡断行 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero h2#heroGreet{text-wrap:balance!important;}
/* 12.3 「即将解锁」格的小字（27 / 30 · 卷轴币 +2）：960 宽时「+2」单独掉到下一行 → 只在空格处断（「卷轴币」不拆开）+ 两行平衡：「27 / 30 ·」「卷轴币 +2」 */
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .card.hero .tasknum.achievementc .l{word-break:keep-all!important;overflow-wrap:anywhere!important;text-wrap:balance!important;}   /* 没有空格的长中文放不下时 anywhere 兜底照样折行，不会被截掉 */
}
@media(min-width:769px) and (max-height:760px),(min-width:769px) and (max-width:1099px) and (max-height:800px){
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid .ad-hero-card:has(.share-action) p{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5 body #view-home#view-home .share-hero .ad-hero-grid{gap:8px!important;}
/* 森林：轮播只有 176 高时，右上那条砖红书签（74 高）会垂到「下一张」箭头上 → 缩短到 52 */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #view-home .share-hero{background-size:22px 52px,auto!important;}
}
/* 12.4 像素手卷的 7 站轨道：769–959 宽时「15天30天58天」首尾相接（第一轮核查第 7 条）→ 只在最后一站写「天」，其余只写数字 */
@media(min-width:769px) and (max-width:959px){
html.ws-v5[data-theme="pixel"] .wsv5-pxh-route li:not(:last-child) span small{display:none;}
}

/* >>> CLASSIC-V707 V7.0.7 经典四主题性格 >>>
 * 业主 2026-09-28：「把这四个主题也升级下吧，动效和每个主题特点都升级下，符合特点一些」（进度 / 定稿表：release-packages/v707/PROGRESS-CT.md）
 * 纸墨浅 light      纸 · 墨 · 朱印：宣纸纤维；主按钮印边双线、按下「盖章」（压 .94 → 松开回弹过冲）；入场墨晕；打卡 / 进度末端 = 方形朱印；签名 = 完成页朱印盖下（18 号）
 * 纸墨深 dark       暗纸 · 金印：同上，印泥换金；手卷远山换金 + 一轮淡月（17 号 themeDeco）
 * 云阶白卷 minimal-light 云 · 阶 · 轻：云纹水印；主按钮轻浮起；签名 = 页面从下轻浮；打卡 / 进度末端 = 小云朵；完成页登阶入云
 * 星河夜卷 minimal-dark  夜 · 星河 · 微光：稀疏星点；主按钮轻浮起 + 微光描边；签名 = 入场一颗星一闪；打卡 / 进度末端 = 四角星；完成页星芒
 * 规则：每条都挂 html.ws-v5 + 这四个 [data-theme]；动画只动 transform / opacity、全是一次性（无常驻循环）；纹样 ≤ .06；
 *       reduced-motion 全关（本块末尾）；旧版（无 ws-v5）与其它主题一个像素不变。
 * ==================================================================================== */
/* ---- CT1. 令牌：入场 / 纹样 / 打卡标记 / 手卷轴色 ---- */
html.ws-v5[data-theme="light"],
html.ws-v5[data-theme="dark"]{
  --v5-enter:v5ck-ink;--v5-dur-slow:360ms;
  --ck-tex-rep:repeat;--ck-tex-size:180px 180px;--ck-tex-pos:0 0;
  --v5-mark-done:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path fill-rule='evenodd' d='M.8 .8h8.4v8.4H.8zM2.1 2.1v5.8h5.8V2.1z'/><path d='M3.5 3.5h3v3h-3z'/></svg>");
}
html.ws-v5[data-theme="light"]{
  --v5-roller:color-mix(in srgb,var(--ink) 78%,var(--terra));   /* 乌木轴 */
  --ck-seal:var(--rose);--ck-seal-ink:var(--card);
  --ck-tex:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><g fill='none' stroke='%232a2520' stroke-opacity='.05' stroke-width='.8' stroke-linecap='round'><path d='M12 30c14-4 26-2 38 4'/><path d='M96 18c10 6 22 8 36 4'/><path d='M140 70c-8 10-10 22-6 34'/><path d='M30 96c12 8 26 10 40 6'/><path d='M84 120c6 12 16 20 30 22'/><path d='M150 150c-12 2-22 8-30 18'/><path d='M20 150c8-8 18-12 30-12'/><path d='M60 60c4 6 10 10 18 10'/><path d='M112 88c8-2 16 0 22 6'/></g></svg>");
}
html.ws-v5[data-theme="dark"]{
  --v5-roller:color-mix(in srgb,var(--v5-gold) 62%,var(--paper-2));   /* 暗金轴 */
  --ck-seal:var(--v5-gold);--ck-seal-ink:var(--paper);
  --ck-tex:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><g fill='none' stroke='%23f4ecdf' stroke-opacity='.045' stroke-width='.8' stroke-linecap='round'><path d='M12 30c14-4 26-2 38 4'/><path d='M96 18c10 6 22 8 36 4'/><path d='M140 70c-8 10-10 22-6 34'/><path d='M30 96c12 8 26 10 40 6'/><path d='M84 120c6 12 16 20 30 22'/><path d='M150 150c-12 2-22 8-30 18'/><path d='M20 150c8-8 18-12 30-12'/><path d='M60 60c4 6 10 10 18 10'/><path d='M112 88c8-2 16 0 22 6'/></g></svg>");
}
html.ws-v5[data-theme="minimal-light"]{
  --v5-enter:v5ck-rise;--v5-dur-slow:380ms;--v5-ease:cubic-bezier(.2,.8,.2,1);
  --v5-roller:color-mix(in srgb,var(--accent) 26%,var(--card));   /* 晴空浅蓝轴 */
  --ck-tex:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='110'><g fill='%230b74e1' fill-opacity='.03' stroke='%230b74e1' stroke-opacity='.06' stroke-width='1.4'><path d='M60 96a16 16 0 0 1 4-30a24 24 0 0 1 44-2a18 18 0 0 1 16 32z'/><path d='M136 62a10 10 0 0 1 3-19a15 15 0 0 1 28-1a11 11 0 0 1 10 20z'/></g></svg>");
  --ck-tex-rep:no-repeat;--ck-tex-size:220px 110px;--ck-tex-pos:right 10px bottom 0;
  --v5-mark-done:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'><path d='M4 21a8 8 0 0 1 2-15a12 12 0 0 1 22-1a9 9 0 0 1 8 16z'/></svg>");
  --ck-cloud:var(--v5-mark-done);
}
html.ws-v5[data-theme="minimal-dark"]{
  --v5-enter:v5-enter-fade;--v5-dur-slow:300ms;
  --v5-roller:color-mix(in srgb,var(--accent) 42%,var(--card));   /* 夜蓝轴 */
  --ck-tex:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><g fill='%23f5f9ff' fill-opacity='.06'><circle cx='14' cy='22' r='1'/><circle cx='70' cy='12' r='.8'/><circle cx='122' cy='40' r='1.2'/><circle cx='40' cy='78' r='.8'/><circle cx='96' cy='96' r='1'/><circle cx='148' cy='118' r='.9'/><circle cx='20' cy='140' r='1.1'/><circle cx='80' cy='150' r='.8'/><path d='M132 70c.4 3 1.6 4.2 4.6 4.6-3 .4-4.2 1.6-4.6 4.6-.4-3-1.6-4.2-4.6-4.6 3-.4 4.2-1.6 4.6-4.6z'/></g></svg>");
  --ck-tex-rep:repeat;--ck-tex-size:160px 160px;--ck-tex-pos:0 0;
  --v5-mark-done:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 20'><path d='M0 -10C.8 -3 3 -.8 10 0C3 .8 .8 3 0 10C-.8 3 -3 .8 -10 0C-3 -.8 -.8 -3 0 -10Z'/></svg>");
  --ck-star:var(--v5-mark-done);
}
@keyframes v5ck-ink{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes v5ck-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes v5ck-glint{0%{opacity:0;transform:scale(.2) rotate(-90deg)}45%{opacity:1;transform:scale(1.35) rotate(0)}100%{opacity:.6;transform:none}}

/* ---- CT2. 主按钮：纸墨 = 印章（印边双线；按下压到 .94、松开过冲回弹 = 先压后回）；极简两款 = 轻浮起（hover 上浮 2px + 软影），星河再加一道微光描边 ----
   只在按钮自身上改令牌（--v5-press / --v5-lift / --v5-ease / --v5-shadow-soft），组件规则原样消费，特异性不用去抢。 */
html.ws-v5:is([data-theme="light"],[data-theme="dark"]) :is(.v5-btn-primary,#startBtn,#mobileStartBtn,#planStartBtn,#continuePlanBtn){
  --v5-press:scale(.94);--v5-ease:cubic-bezier(.3,1.9,.5,1);--v5-dur:340ms;
  --v5-shadow-soft:inset 0 0 0 2px var(--v5-accent),inset 0 0 0 3px color-mix(in srgb,var(--v5-on-accent) 34%,transparent),0 1px 2px color-mix(in srgb,var(--ink) 12%,transparent),0 8px 18px -12px color-mix(in srgb,var(--ink) 45%,transparent);
}
html.ws-v5:is([data-theme="light"],[data-theme="dark"]) .v5-btn-primary{box-shadow:var(--v5-shadow-soft);}
html.ws-v5:is([data-theme="minimal-light"],[data-theme="minimal-dark"]) :is(.v5-btn-primary,#startBtn,#mobileStartBtn,#planStartBtn,#continuePlanBtn){
  --v5-lift:translateY(-2px);--v5-press:translateY(0) scale(.985);--v5-ease:cubic-bezier(.2,.8,.2,1);--v5-dur:240ms;
  --v5-shadow-soft:0 1px 2px color-mix(in srgb,var(--ink) 8%,transparent),0 8px 18px -10px color-mix(in srgb,var(--accent) 55%,transparent);
}
html.ws-v5:is([data-theme="minimal-light"],[data-theme="minimal-dark"]) :is(.v5-btn-primary,#startBtn,#mobileStartBtn,#planStartBtn,#continuePlanBtn):hover{
  --v5-shadow-soft:0 2px 4px color-mix(in srgb,var(--ink) 8%,transparent),0 16px 28px -12px color-mix(in srgb,var(--accent) 62%,transparent);
}
html.ws-v5[data-theme="minimal-dark"] :is(.v5-btn-primary,#startBtn,#mobileStartBtn,#planStartBtn,#continuePlanBtn){
  --v5-shadow-soft:inset 0 1px 0 color-mix(in srgb,var(--card) 30%,transparent),0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent),0 8px 22px -10px color-mix(in srgb,var(--accent) 60%,transparent);
}
html.ws-v5[data-theme="minimal-dark"] :is(.v5-btn-primary,#startBtn,#mobileStartBtn,#planStartBtn,#continuePlanBtn):hover{
  --v5-shadow-soft:inset 0 1px 0 color-mix(in srgb,var(--card) 30%,transparent),0 0 0 1px color-mix(in srgb,var(--accent) 60%,transparent),0 0 20px -2px color-mix(in srgb,var(--accent) 45%,transparent),0 14px 28px -12px color-mix(in srgb,var(--accent) 60%,transparent);
}
html.ws-v5:is([data-theme="minimal-light"],[data-theme="minimal-dark"]) .v5-btn-primary{box-shadow:var(--v5-shadow-soft);}

/* ---- CT3. 卡片纹样（≤ .06）：纸墨 = 纸纤维平铺；云阶 = 右下一朵云纹水印；星河 = 稀疏星点 ---- */
html.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) .v5-card{background-image:var(--ck-tex);background-size:var(--ck-tex-size);background-position:var(--ck-tex-pos);background-repeat:var(--ck-tex-rep);}
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body #view-home#view-home :is(.card.hero,.wsv5-grid3>.card,.wsv5-grid3 .desktop-calendar-card,.wsv5-grid3>.wsv5-achcard){
  background-image:var(--ck-tex)!important;background-size:var(--ck-tex-size)!important;background-position:var(--ck-tex-pos)!important;background-repeat:var(--ck-tex-rep)!important;
}
/* 云阶：主卡右列是手卷，云纹水印挪到左列右下（按钮右边的空白处） */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-light"] body #view-home#view-home .card.hero{background-position:58% 100%!important;}

/* ---- CT4. 打卡标记：云 / 星形状比圆点宽，标记放大到 10px（纸墨方印保持 8px） ---- */
html.ws-v5:is([data-theme="minimal-light"],[data-theme="minimal-dark"]) .v5-cal__day.is-done .v5-cal__num::after{width:10px;height:10px;margin-left:-5px;bottom:1px;}

/* ---- CT5. 进度条末端：纸墨 = 小方朱印 / 金印（斜 8°）；云阶 = 小云朵；星河 = 四角星（同猫卷小猫头那一套宿主；填充 < 4% 不出标记） ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track,.v5-bar){overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track)>i:not(.v5-bar__fill){position:relative!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body #view-home#view-home .card.hero .tm-track{overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track)>i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body .v5-bar__fill::after,
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body #view-home#view-home .card.hero .tm-track i::after{
  content:""!important;display:block!important;position:absolute!important;left:auto!important;top:50%!important;bottom:auto!important;
  right:-5px!important;width:10px!important;height:10px!important;margin:-5px 0 0!important;
  border:0!important;border-radius:2px!important;opacity:1!important;animation:none!important;
  background:var(--ck-seal,var(--v5-accent))!important;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--card) 55%,transparent)!important;transform:rotate(-8deg)!important;
  -webkit-mask:none!important;mask:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-light"] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track)>i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-light"] body .v5-bar__fill::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-light"] body #view-home#view-home .card.hero .tm-track i::after{
  right:-9px!important;width:18px!important;height:11px!important;margin:-6px 0 0!important;border-radius:0!important;transform:none!important;
  background:var(--v5-accent)!important;box-shadow:none!important;
  -webkit-mask:var(--ck-cloud) center/contain no-repeat!important;mask:var(--ck-cloud) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-dark"] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track)>i::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-dark"] body .v5-bar__fill::after,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-dark"] body #view-home#view-home .card.hero .tm-track i::after{
  right:-7px!important;width:14px!important;height:14px!important;margin:-7px 0 0!important;border-radius:0!important;transform:none!important;
  background:var(--ink)!important;box-shadow:none!important;
  -webkit-mask:var(--ck-star) center/contain no-repeat!important;mask:var(--ck-star) center/contain no-repeat!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track,.v5-bar)>i:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"],[style*="width: 3%"],[style*="width:3%"])::after,
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body .v5-bar__fill:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"],[style*="width: 3%"],[style*="width:3%"])::after,
html.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) body #view-home#view-home .card.hero .tm-track i:is([style*="width: 0"],[style*="width:0"],[style*="width: 1%"],[style*="width:1%"],[style*="width: 2%"],[style*="width:2%"],[style*="width: 3%"],[style*="width:3%"])::after{display:none!important;}

/* ---- CT6. 首页手卷（电脑 SVG；手机 21 号 SVG 走同一个 --v5-roller）：纸墨 = 乌木轴 + 朱轴头 / 暗金轴 + 金轴头，不要星穹的光晕与轨道环；
   极简两款 = 浅空色 / 夜蓝轴。远山 / 云阶 / 星河画在纸面里（17 号 themeDeco） ---- */
html.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) .wsv5-holo .wsv5-rod{fill:var(--v5-roller);}
html.ws-v5[data-theme="light"] .wsv5-holo .wsv5-cap{fill:var(--terra);}
html.ws-v5[data-theme="dark"] .wsv5-holo .wsv5-cap{fill:var(--v5-gold);}
html.ws-v5[data-theme="minimal-light"] .wsv5-holo .wsv5-cap{fill:color-mix(in srgb,var(--accent) 60%,var(--card));}
html.ws-v5[data-theme="minimal-dark"] .wsv5-holo .wsv5-cap{fill:var(--accent);}
html.ws-v5:is([data-theme="light"],[data-theme="dark"]) .wsv5-holo :is(.wsv5-halo,.wsv5-orb){display:none;}

/* ---- CT7. 星河签名：首页主卡右上角一颗四角星，入场时一闪后留在 .6（一次性；电脑。手机落在 20 号手卷上） ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-dark"] body #view-home#view-home .card.hero::after{
  content:""!important;display:block!important;position:absolute!important;top:14px!important;right:16px!important;left:auto!important;bottom:auto!important;
  width:14px!important;height:14px!important;margin:0!important;border:0!important;pointer-events:none!important;z-index:3!important;
  background:var(--ink)!important;box-shadow:none!important;
  -webkit-mask:var(--ck-star) center/contain no-repeat!important;mask:var(--ck-star) center/contain no-repeat!important;
  opacity:.6;animation:v5ck-glint 1.1s cubic-bezier(.2,.8,.2,1) .25s both;
}

/* ---- CT8. 减少动态效果：入场只淡入、按下不压不浮、一闪不闪（主题块 / 按钮自身都要再写一遍，特异性压过上面） ---- */
@media(prefers-reduced-motion:reduce){
  html.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]){--v5-enter:v5-enter-fade;--v5-dur-slow:120ms;--v5-press:none;--v5-lift:none;}
  html.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) :is(.v5-btn-primary,#startBtn,#mobileStartBtn,#planStartBtn,#continuePlanBtn),
  html.ws-v5:is([data-theme="light"],[data-theme="dark"],[data-theme="minimal-light"],[data-theme="minimal-dark"]) :is(.v5-btn-primary,#startBtn,#mobileStartBtn,#planStartBtn,#continuePlanBtn):hover{--v5-press:none;--v5-lift:none;}
  html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="minimal-dark"] body #view-home#view-home .card.hero::after{animation:none!important;}
}
/* <<< CLASSIC-V707 <<< */

/* >>> TWD-V709 V7.0.9 九主题拉到同一完成度 · 核心层（release-packages/v709/PROGRESS-TWD.md）>>>
 * 业主 2026-10-02：「把所有主题网站版升级……超一流的 UI 水平、动效、美观以及点击反馈」。
 * 本块只做「所有主题共用、靠令牌分性格」的四件事：
 *   TB  切页入场窗口：17 号在切页时给 <html> 打 data-wsv5-enter（900ms），窗口内视图直接子块按主题入场 keyframes 逐张错开 40ms；
 *       视图整体入场在窗口内让位（否则双重淡入）；首帧没有这个属性 → 仍走视图整体入场（不重复）。
 *       星穹切角揭开 / 像素逐行刷出是「整页」的招，逐张卡用各自的轻版（--v5-enter-item）。
 *   TC  打卡标记：窗口内已打卡标记按日序（17 号写在格上的 --wsv5-i）弹入；今天的格再放大一次。
 *   TD  进度条：所有进度条 fill 统一 width 过渡；窗口内从 0 长到位（scaleX，只动 transform）。
 *   TG  猫卷电脑侧栏「摇尾」修真：原规则写的是 nav .active svg，电脑侧栏图标是 ::before mask（且 transform:none!important 压着），
 *       改用独立变换属性 rotate（不受 transform 的 !important 影响）摇一下。
 * 铁律：全部挂 html.ws-v5；只动 transform / opacity；全部一次性、无常驻循环；reduced-motion 全关（本块末尾）；旧版（无 ws-v5）零影响。 */
/* ---- TB1. 逐张入场的 keyframes 名：默认 = 主题入场；星穹 / 像素各用轻版 ---- */
html.ws-v5{--v5-enter-item:var(--v5-enter);}
html.ws-v5[data-theme="supreme"]{--v5-enter-item:v5-enter-tech;}
html.ws-v5[data-theme="pixel"]{--v5-enter-item:v5twd-pxitem;}
@keyframes v5twd-pxitem{0%{opacity:0;transform:translateY(9px)}50%{opacity:1;transform:translateY(3px)}100%{opacity:1;transform:none}}
@keyframes v5twd-mark{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
@keyframes v5twd-today{0%{transform:scale(1)}55%{transform:scale(1.14)}100%{transform:none}}
@keyframes v5twd-grow{from{transform:scaleX(0)}to{transform:none}}
@keyframes v5twd-wag{0%,100%{rotate:0deg}30%{rotate:-11deg}65%{rotate:8deg}}
/* ---- TB2. 切页窗口：视图直接子块逐张入场（nth-child 给序号；第 10 块起同第 9 块） ---- */
html.ws-v5[data-wsv5-enter] [id^="view-"].active{animation:none;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>*{animation:var(--v5-enter-item) var(--v5-dur-slow) var(--v5-ease) both;animation-delay:calc(var(--wsv5-n,0) * 40ms);}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(2){--wsv5-n:1;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(3){--wsv5-n:2;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(4){--wsv5-n:3;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(5){--wsv5-n:4;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(6){--wsv5-n:5;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(7){--wsv5-n:6;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(8){--wsv5-n:7;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:nth-child(n+9){--wsv5-n:8;}
/* 计划 / 记录 / 统计 / 成就 / 我的：视图只有一个可见的包裹层（.plan-page / .hardbook-page / .stats-dashboard / .ach-center / 我的页的 .card），
   逐张入场落在包裹层的子块上（包裹层本身不动；--wsv5-n 会继承，第 1 块显式归零） */
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center),
html.ws-v5[data-wsv5-enter] #view-account.active>.card{animation:none;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>*,
html.ws-v5[data-wsv5-enter] #view-account.active>.card>*{animation:var(--v5-enter-item) var(--v5-dur-slow) var(--v5-ease) both;animation-delay:calc(var(--wsv5-n,0) * 40ms);}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>:nth-child(1),
html.ws-v5[data-wsv5-enter] #view-account.active>.card>:nth-child(1){--wsv5-n:0;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>:nth-child(2),
html.ws-v5[data-wsv5-enter] #view-account.active>.card>:nth-child(2){--wsv5-n:1;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>:nth-child(3),
html.ws-v5[data-wsv5-enter] #view-account.active>.card>:nth-child(3){--wsv5-n:2;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>:nth-child(4),
html.ws-v5[data-wsv5-enter] #view-account.active>.card>:nth-child(4){--wsv5-n:3;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>:nth-child(5),
html.ws-v5[data-wsv5-enter] #view-account.active>.card>:nth-child(5){--wsv5-n:4;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>:nth-child(6),
html.ws-v5[data-wsv5-enter] #view-account.active>.card>:nth-child(6){--wsv5-n:5;}
html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>:nth-child(n+7),
html.ws-v5[data-wsv5-enter] #view-account.active>.card>:nth-child(n+7){--wsv5-n:6;}
/* 像素街机：逐张用 steps（老游戏一格一格刷） */
html.ws-v5[data-theme="pixel"][data-wsv5-enter] [id^="view-"].active>*,
html.ws-v5[data-theme="pixel"][data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>*,
html.ws-v5[data-theme="pixel"][data-wsv5-enter] #view-account.active>.card>*{animation-timing-function:steps(3,end);}
/* ---- TC. 打卡标记按日序弹入；今天的格放大一次 ---- */
html.ws-v5[data-wsv5-enter] .v5-cal__day.is-done .v5-cal__num::after{animation:v5twd-mark var(--v5-dur) var(--v5-ease) calc(var(--wsv5-i,0) * 18ms) both;}
html.ws-v5[data-wsv5-enter] .v5-cal__day.is-today.is-done .v5-cal__num{animation:v5twd-today var(--v5-dur-slow) var(--v5-ease) calc(var(--wsv5-i,0) * 18ms + 60ms) both;}
html.ws-v5[data-theme="pixel"][data-wsv5-enter] .v5-cal__day.is-done .v5-cal__num::after,
html.ws-v5[data-theme="pixel"][data-wsv5-enter] .v5-cal__day.is-today.is-done .v5-cal__num{animation-timing-function:steps(2,end);}
/* ---- TD. 进度条：统一 width 过渡（不带 !important，站点 / 主题自己写了的仍以它们为准）；窗口内从 0 长到位 ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5 body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track,.desktop-goal-track,.pbar,.wsv5p-bar)>i,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .mp-fill,
html.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-bar__fill{transition:width var(--v5-dur-slow) var(--v5-ease);}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-wsv5-enter] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track,.desktop-goal-track,.pbar,.wsv5p-bar)>i,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-wsv5-enter] body .mp-fill,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-wsv5-enter] body .v5-bar__fill{transform-origin:0 50%;animation:v5twd-grow var(--v5-dur-slow) var(--v5-ease) 140ms both;}
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"][data-wsv5-enter] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track,.desktop-goal-track,.pbar,.wsv5p-bar)>i,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"][data-wsv5-enter] body .mp-fill,
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"][data-wsv5-enter] body .v5-bar__fill{animation-timing-function:steps(6,end);}
/* ---- TG. 猫卷电脑侧栏：切到哪一页，哪一页的图标摇一下尾（rotate 属性不受 ::before 上 transform:none!important 影响） ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>nav>button[data-tab].active::before{transform-origin:50% 90%;animation:v5twd-wag .5s var(--v5-ease) 1;}
/* ---- 星穹：卡片 hover 微倾（§2.1 签名之一）扩到词库书脊卡 / 成就卡 / 设置主题卡 ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="supreme"] body :is(#view-lib .book-card,#view-achievements .ach-card,#view-settings .settings-theme-card,#view-settings .settings-icon-card):hover{transform:perspective(900px) rotateX(1.4deg) translateY(-1px)!important;}
/* ---- 减少动态效果：逐张入场只淡入不错开；标记 / 进度条 / 摇尾全关 ---- */
@media(prefers-reduced-motion:reduce){
  html.ws-v5[data-wsv5-enter] [id^="view-"].active>*,
  html.ws-v5[data-wsv5-enter] [id^="view-"].active>:is(.plan-page,.hardbook-page,.stats-dashboard,.ach-center)>*,
  html.ws-v5[data-wsv5-enter] #view-account.active>.card>*{animation-name:v5-enter-fade;animation-duration:120ms;animation-delay:0s;animation-timing-function:ease;}
  html.ws-v5[data-wsv5-enter] .v5-cal__day.is-done .v5-cal__num::after,
  html.ws-v5[data-wsv5-enter] .v5-cal__day.is-today.is-done .v5-cal__num,
  html.ws-v5.ws-v5.ws-v5.ws-v5[data-wsv5-enter] body :is(.tm-track,.wsv5-xp,.streak-card-track,.next-achievement-meter,.stats-mini-bar,.ach-progress,.ws-ilad-track,.desktop-goal-track,.pbar,.wsv5p-bar)>i,
  html.ws-v5.ws-v5.ws-v5.ws-v5[data-wsv5-enter] body .mp-fill,
  html.ws-v5.ws-v5.ws-v5.ws-v5[data-wsv5-enter] body .v5-bar__fill,
  html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="cute-pink"] body .wrap>nav>button[data-tab].active::before{animation:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="supreme"] body :is(#view-lib .book-card,#view-achievements .ach-card,#view-settings .settings-theme-card,#view-settings .settings-icon-card):hover{transform:none!important;}
}
/* <<< TWD-V709 <<< */
