/* APS 演示稿样式：通用版式 + 二十八套主题（界面上叫「模板」）
   画布固定 1920×1080，按窗口等比缩放。主题通过 [data-theme] 切换，各主题的变量在下面「主题变量」一节，
   各自的装饰与覆盖在文件后半部分按主题分节。主题的配色预设、可选字体、圆角档位见 packages/themes/src/index.ts，
   演示稿里的微调以 CSS 变量覆盖（渲染器输出 html[data-theme=…]{…}）。 */

:root{--ease:cubic-bezier(.2,.75,.25,1)}

/* ================= 主题变量 ================= */
/* 中文字体按内容语言选字形：繁体演示稿（lang 为 zh-TW 或 zh-Hant）用 TC 字体 */
[data-theme]{--cjk-sans:"Noto Sans SC";--cjk-serif:"Noto Serif SC"}
[data-theme]:lang(zh-TW),[data-theme]:lang(zh-Hant){--cjk-sans:"Noto Sans TC","Noto Sans SC";--cjk-serif:"Noto Serif TC","Noto Serif SC"}
/* 英文演示稿：弯引号、省略号这些标点用西文字形（中文字体里是全角的），标题、正文先用中文字体的主题也不会显示成「I’ m」 */
[data-theme]:lang(en){--cjk-sans:"APS Punct Sans","Noto Sans SC";--cjk-serif:"APS Punct Serif","Noto Serif SC"}
[data-theme=dark]{
  --frame:#000;--bg:#0e0f12;--ink:#edeae4;--body2:#adaeb6;--muted:#8e9098;--faint:#5c5e66;--line:#25262c;
  --accent:#aeb8f0;--accent2:#aeb8f0;--accent-ink:#aeb8f0;--on-accent:#0e0f12;--soft:rgba(174,184,240,.09);--soft-line:rgba(174,184,240,.36);
  --glow:rgba(174,184,240,.15);
  --good:#5fcf98;--bad:#f0877a;
  --box-bg:#16171b;--box-border:1px solid #25262c;--box-radius:16px;--box-shadow:none;
  --f-head:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Inter",var(--cjk-sans),sans-serif;
  --title-w:800;--h3-w:700;--num-w:800;--num-style:normal}
[data-theme=light]{
  --frame:#e2e2de;--bg:#fafaf8;--ink:#0a0a0a;--body2:#3b3b3b;--muted:#5c5c5a;--faint:#9b9b97;--line:#d6d6d1;
  --accent:#002fa7;--accent2:#002fa7;--accent-ink:#002fa7;--on-accent:#fff;--soft:#edf0f8;--soft-line:#8a9fd6;--em-mark:transparent;
  --good:#0b7a3e;--bad:#d1281c;
  --box-bg:#f0f0ec;--box-border:0;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Inter",var(--cjk-sans),sans-serif;
  --title-w:900;--h3-w:700;--num-w:200;--num-style:normal}
[data-theme=editorial]{
  --frame:#d8d1c3;--bg:#f3eee4;--ink:#181613;--body2:#3e3933;--muted:#6f685c;--faint:#a39a8b;--line:rgba(24,22,19,.2);
  --accent:#c3361d;--accent2:#c3361d;--on-accent:#fff;--soft:rgba(195,54,29,.07);--soft-line:rgba(195,54,29,.4);
  --good:#2f6b3a;--bad:#c3361d;
  --box-bg:transparent;--box-border:0;--box-radius:0;--box-shadow:none;
  --f-head:var(--cjk-serif),"Songti SC","STSong",serif;--f-body:var(--cjk-sans),"PingFang SC",sans-serif;--f-num:"Playfair Display",var(--cjk-serif),serif;
  --title-w:900;--h3-w:900;--num-w:700;--num-style:italic}
[data-theme=brutal]{
  --frame:#1a1a1a;--bg:#fff3cf;--ink:#111;--body2:#222;--muted:#3d3d3d;--faint:#8a8270;--line:#111;
  --accent:#ff4d6d;--accent2:#ff4d6d;--on-accent:#fff;--soft:#fff;--soft-line:#111;
  --good:#00a86b;--bad:#ff4d6d;
  --box-bg:#fff;--box-border:4px solid #111;--box-radius:16px;--box-shadow:8px 8px 0 #111;
  --c1:#ffd23f;--c2:#8fb0ff;--c3:#ff9cb5;--c4:#6ee7b7;--c5:#ffb366;--c6:#c4b5fd;
  --f-head:var(--cjk-sans),"PingFang SC",sans-serif;--f-body:var(--f-head);--f-num:"Archivo Black","Inter",sans-serif;
  --title-w:900;--h3-w:900;--num-w:400;--num-style:normal}
[data-theme=classroom]{
  --frame:#e8e0cf;--bg:#fbf7ef;--ink:#2b2a33;--body2:#4a4853;--muted:#625f6b;--faint:#a39e93;--line:#e7dfcf;
  --t1:#2a63be;--t1-ink:#2a63be;--t2:#2e7a4a;--t2-ink:#2e7a4a;--t3:#e3a12f;--t3-ink:#94600f;--t3-on:#2b2a33;--t4:#c24a32;--t4-ink:#c24a32;
  --accent:var(--t1);--accent2:var(--t1);--accent-ink:var(--t1-ink);--on-accent:#fff;--hl:#f7d978;
  --good:#2e7a4a;--bad:#c24a32;
  --box-bg:#fff;--box-border:0;--box-radius:24px;--box-shadow:0 2px 0 rgba(43,42,51,.07),0 0 0 1px rgba(43,42,51,.035);
  --f-head:"Nunito",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Nunito",var(--cjk-sans),sans-serif;
  --title-w:800;--h3-w:700;--num-w:900;--num-style:normal}
[data-theme=business]{
  --frame:#d9d5cb;--bg:#f6f4ef;--ink:#1c2b4a;--body2:#3a4760;--muted:#55607a;--faint:#98a0af;--line:#d9d4c9;
  --navy:#1c2b4a;--on-navy:#ece8de;--on-navy-2:#aab2c3;--accent-on-navy:#c9a56a;
  --accent:#a8834a;--accent2:#a8834a;--accent-ink:#80612c;--on-accent:#fff;--soft:#efe9dd;--soft-line:#d3bf98;
  --good:#2f6b4f;--bad:#a8402e;
  --box-bg:#fbfaf7;--box-border:1px solid #e1dcd1;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:var(--cjk-serif),"Songti SC","STSong",serif;--f-body:"IBM Plex Sans",var(--cjk-sans),"PingFang SC",sans-serif;--f-num:"IBM Plex Sans",var(--cjk-sans),sans-serif;
  --title-w:700;--h3-w:600;--num-w:600;--num-style:normal}
[data-theme=magazine]{
  --frame:#d7d4cd;--bg:#f2f0eb;--ink:#1a1a1a;--body2:#383735;--muted:#5f5d58;--faint:#9c9991;--line:#d2cfc7;--head-dim:#75716a;
  --accent:#c2412d;--accent2:#c2412d;--accent-ink:#b63b27;--on-accent:#fff;--soft:#eee3dc;--soft-line:#d8a194;
  --good:#2f6b3a;--bad:#c2412d;
  --box-bg:transparent;--box-border:0;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:var(--cjk-serif),"Songti SC","STSong",serif;--f-body:var(--cjk-sans),"PingFang SC",sans-serif;--f-num:"Newsreader",var(--cjk-serif),serif;
  --title-w:900;--h3-w:700;--num-w:500;--num-style:italic}
[data-theme=glow]{
  --frame:#d8d2c9;--bg:#eeeae4;--ink:#1c1b1f;--body2:#45414b;--muted:#5a5560;--faint:#97918a;--line:#d8d1c7;
  --glow-a:#e9673f;--glow-b:#8fb3e8;--night:#1b181d;
  --accent:#e9673f;--accent2:#e9673f;--accent-ink:#b0431c;--on-accent:#1c1b1f;--soft:#f1e1d6;--soft-line:#e6a891;
  --good:#3c7d55;--bad:#c4452c;
  --box-bg:rgba(255,255,255,.55);--box-border:1px solid rgba(255,255,255,.8);--box-radius:28px;--box-shadow:0 20px 44px -28px rgba(70,45,30,.28);
  --f-head:"Hanken Grotesk",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Hanken Grotesk",var(--cjk-sans),sans-serif;
  --title-w:300;--h3-w:500;--num-w:300;--num-style:normal}
[data-theme=midcentury]{
  --frame:#dccfb5;--bg:#f3ead8;--ink:#1e1b18;--body2:#3d3731;--muted:#5b534a;--faint:#a19583;--line:#ddcfb4;
  --s1:#e1a730;--s1-on:#1e1b18;--s2:#22706c;--s3:#e4643f;--s4:#737a3c;--s5:#1f2c4c;--s6:#7d2f2a;
  --accent:#22706c;--accent2:#22706c;--accent-ink:#1d6460;--on-accent:#f3ead8;--soft:#ebe2cb;--soft-line:#b4ae93;
  --good:#3d7a44;--bad:#c4452c;
  --box-bg:#fbf6ec;--box-border:0;--box-radius:16px;--box-shadow:none;
  --f-head:"Bricolage Grotesque",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Bricolage Grotesque",var(--cjk-sans),sans-serif;
  --title-w:900;--h3-w:800;--num-w:800;--num-style:normal}
[data-theme=terminal]{
  --frame:#060706;--bg:#101210;--panel:#171a17;--panel-line:#2a2e2a;--ink:#e6e3d8;--body2:#bcb9ae;--muted:#8f948b;--faint:#61665e;--line:#2a2e2a;
  --accent:#f2a33a;--accent2:#f2a33a;--accent-ink:#f2a33a;--on-accent:#101210;--soft:rgba(242,163,58,.1);--soft-line:rgba(242,163,58,.45);
  --ok:#7bd88f;--good:#7bd88f;--bad:#ff7a6b;
  --box-bg:#1c201c;--box-border:1px solid var(--panel-line);--box-radius:10px;--box-shadow:none;--chip-radius:6px;
  --f-mono:"JetBrains Mono",var(--cjk-sans),"PingFang SC",monospace;
  --f-head:"JetBrains Mono",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",monospace;--f-body:"Inter",var(--cjk-sans),"PingFang SC",sans-serif;--f-num:"JetBrains Mono",var(--cjk-sans),monospace;
  --title-w:700;--h3-w:700;--num-w:700;--num-style:normal}

/* ================= 舞台与翻页 ================= */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{overflow:hidden;background:var(--frame);-webkit-font-smoothing:antialiased;transition:background .3s}
ol,ul{list-style:none}
em,i{font-style:normal}
b,strong{font-weight:700}
.slide,p,li,dd,span,h3{text-wrap:pretty}

.stage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform:translate(-50%,-50%);background:var(--bg);overflow:hidden}
.slide{position:absolute;inset:0;display:flex;flex-direction:column;padding:96px 128px 120px;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:30px;line-height:1.55;overflow:hidden;
  opacity:0;visibility:hidden;transform:translateX(64px);
  transition:opacity .6s var(--ease),transform .6s var(--ease),visibility 0s linear .6s}
.slide.past{transform:translateX(-64px)}
.slide.active{z-index:2;opacity:1;visibility:visible;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease),visibility 0s}
.slide>*{position:relative;z-index:1}
.slide>.deco{position:absolute;inset:0;z-index:0;pointer-events:none}
.deco>*{display:none}
.slide>.ft{position:absolute;left:128px;right:128px;bottom:44px;display:flex;justify-content:space-between;font-size:20px;color:var(--faint)}
.slide>.ov-num{display:none}
.slide>.secnav{display:none}

/* 入场动效：.a 单个元素，.st 的子元素依次出现，.hd 内元素依次出现 */
@keyframes rise{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes pop{from{opacity:0;scale:.9}to{opacity:1;scale:1}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.slide.active :is(.a,.st>*,.hd>*){animation:rise .75s var(--ease) both;animation-delay:calc(var(--i,0) * 70ms + 150ms)}
.slide.active .dv-no{animation:pop .9s var(--ease) both .1s}
.frag{opacity:0;translate:0 20px;transition:opacity .5s var(--ease),translate .5s var(--ease)}
.frag.on{opacity:1;translate:0 0}

/* ================= 通用版式 ================= */
.hd{margin-bottom:52px}
.kicker{display:flex;align-items:center;gap:18px;font-size:26px;line-height:1.3;color:var(--muted);font-weight:600;letter-spacing:.04em;margin-bottom:18px}
.kicker b{font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);color:var(--accent-ink,var(--accent));letter-spacing:0}
.title{font-family:var(--f-head);font-size:78px;line-height:1.18;font-weight:var(--title-w);letter-spacing:-.005em}
.title em,.big em,.em{color:var(--accent-ink,var(--accent))}
.lead{margin-top:24px;font-size:34px;line-height:1.6;color:var(--body2);max-width:1560px}
.body{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0}
.note{margin-top:28px;font-size:23px;color:var(--muted)}
.label{font-size:24px;font-weight:700;color:var(--muted);letter-spacing:.08em;margin-bottom:18px}

.box{background:var(--box-bg);border:var(--box-border);border-radius:var(--box-radius);box-shadow:var(--box-shadow);padding:40px 42px;position:relative}
.grid{display:grid;gap:32px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g5{grid-template-columns:repeat(5,minmax(0,1fr));gap:26px}

.card{display:flex;flex-direction:column;gap:14px}
.no{font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:28px;line-height:1;color:var(--accent-ink,var(--accent))}
.card h3{font-family:var(--f-head);font-size:40px;line-height:1.3;font-weight:var(--h3-w)}
.card p{font-size:28px;line-height:1.6;color:var(--body2)}
.card .meta{font-size:24px;color:var(--muted)}
.card.lg h3{font-size:46px}
.card.lg p{font-size:30px}
.badge{display:inline-flex;align-self:flex-start;padding:6px 18px;border-radius:var(--chip-radius,999px);font-size:22px;font-weight:700;line-height:1.4;background:var(--soft);color:var(--accent-ink,var(--accent));border:1px solid var(--soft-line)}
.badge.solid,.tag{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}
.tag{display:inline-block;padding:6px 16px;border-radius:var(--chip-radius,999px);font-size:21px;font-weight:700;line-height:1.3}
.box>.tag{position:absolute;top:-18px;right:28px}

/* 封面 */
.cover,.end{justify-content:center}
.cover-meta{display:flex;gap:28px;font-size:24px;margin-bottom:40px;color:var(--muted);letter-spacing:.08em}
.cover-title{font-family:var(--f-head);font-size:176px;line-height:1.06;margin-bottom:44px;font-weight:var(--title-w);letter-spacing:-.015em}
.cover-title em{color:var(--accent-ink,var(--accent))}
.cover-sub{font-size:34px;max-width:1240px;color:var(--body2)}
.byline{display:flex;align-items:center;gap:22px;margin-top:72px;font-size:28px;line-height:1.35}
.avatar{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:34px;font-weight:700;flex:none;background:var(--accent);color:var(--on-accent);overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.byline b{display:block}
.byline i{opacity:.7}
.byline .logo{height:72px;width:auto;max-width:260px;object-fit:contain;margin-left:14px;padding-left:36px;border-left:2px solid var(--line)}

/* 章节页 */
.divider{justify-content:center}
.dv-no{font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:260px;line-height:.9;color:var(--accent-ink,var(--accent));letter-spacing:-.03em;align-self:flex-start}
.dv-title{font-family:var(--f-head);font-size:116px;line-height:1.15;font-weight:var(--title-w);margin-top:40px;letter-spacing:-.01em}
.dv-sub{font-size:38px;color:var(--body2);margin-top:28px}
.slide>.dv-map{position:absolute;left:128px;right:128px;bottom:100px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px}
.dv-map li{height:6px;border-radius:3px;background:var(--line);position:relative}
.dv-map li.done{background:var(--soft-line)}
.dv-map li.now{background:var(--accent)}
.dv-map li span{position:absolute;top:18px;left:0;font-size:20px;line-height:1;color:var(--faint);font-family:var(--f-num);font-style:var(--num-style)}
.dv-map li.now span{color:var(--accent-ink,var(--accent));font-weight:700}

/* 大字陈述页 */
.stmt{justify-content:center}
.stmt .kicker{margin-bottom:44px}
.big{font-family:var(--f-head);font-size:100px;line-height:1.25;font-weight:var(--title-w);letter-spacing:-.01em;max-width:1640px}
.big.md{font-size:78px;line-height:1.35}
.big-sub{margin-top:44px;font-size:38px;line-height:1.6;color:var(--body2);max-width:1500px}

/* 自我介绍 */
.hello{flex:1;display:grid;grid-template-columns:420px minmax(0,1fr);gap:100px;align-items:center}
.hello .ph.avatar-ph{width:420px;height:420px;border-radius:50%}
.hello .title{font-size:100px}
.handle{font-size:30px;color:var(--muted);margin:24px 0 40px}
.bio{font-size:34px;line-height:1.8;padding-left:34px;border-left:4px solid var(--accent);color:var(--body2)}
.repo .star{font-family:var(--f-num);font-weight:var(--num-w);font-size:58px;line-height:1.1}
.repo .star::before{content:"★";font-size:.6em;margin-right:12px;color:#f5b301;vertical-align:.15em;font-style:normal}
.repo h3{margin-top:16px}

/* 数据 */
.stat{display:flex;flex-direction:column;gap:10px;padding:52px 46px}
.stat .n{font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:150px;line-height:1;letter-spacing:-.02em;white-space:nowrap}
.stat .n small{font-family:var(--f-head);font-size:.3em;font-weight:700;margin-left:12px;letter-spacing:0;font-style:normal}
.stat .l{font-size:36px;font-weight:700;margin-top:14px}
.stat .s{font-size:26px;line-height:1.5;color:var(--muted)}
.stat.sm .n{font-size:110px}

/* 目录 */
.agenda3 .box{padding:40px 44px}
.agenda3 h3{font-size:26px;letter-spacing:.24em;color:var(--accent-ink,var(--accent));font-weight:800;margin-bottom:18px}
.agenda3 li{display:flex;gap:22px;align-items:baseline;font-size:33px;font-weight:600;padding:16px 0;border-top:1px solid var(--line)}
.agenda3 li b{font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);color:var(--accent-ink,var(--accent));font-size:26px;min-width:46px}

/* 竖向列表 */
.rows{display:flex;flex-direction:column;gap:18px}
.row{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:24px;padding:26px 38px}
.row .n{font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:48px;line-height:1;color:var(--accent-ink,var(--accent))}
.row h3{font-family:var(--f-head);font-size:36px;line-height:1.3;font-weight:var(--h3-w)}
.row p{font-size:28px;line-height:1.55;color:var(--body2);margin-top:4px}
.rows.wide .row>div{display:grid;grid-template-columns:340px minmax(0,1fr);gap:36px;align-items:center}
.rows.wide .row p{margin-top:0}
.rows.nonum .row{grid-template-columns:minmax(0,1fr)}
.rows.lg .row{padding:34px 44px}
.rows.lg .row h3{font-size:40px}
.rows.lg .row p{font-size:30px}

/* 时间线 */
.tl{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:30px;position:relative}
.tl::before{content:"";position:absolute;left:0;right:0;top:20px;height:3px;background:var(--line);transform-origin:left}
.slide.active .tl::before{animation:grow 1.2s var(--ease) both .3s}
.tl>li{position:relative;padding-top:70px}
.tl>li::before{content:"";position:absolute;left:0;top:6px;width:32px;height:32px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 8px var(--bg),0 0 0 10px var(--soft-line)}
.tl .when{display:block;font-family:var(--f-head);font-weight:var(--title-w);font-size:36px;line-height:1.2;color:var(--accent-ink,var(--accent));margin-bottom:16px}
.tl h3{font-size:30px;line-height:1.45;font-weight:700;min-height:2.9em}
.tl .out{margin-top:22px;padding-top:18px;border-top:1px dashed var(--faint);font-size:25px;line-height:1.5;color:var(--body2)}
.tl .out b{display:block;font-size:21px;color:var(--muted);letter-spacing:.1em;margin-bottom:6px}

/* 对比 */
.cmp{display:grid;grid-template-columns:230px minmax(0,1fr) minmax(0,1fr);column-gap:40px}
.cmp>*{padding:32px 0;border-top:1px solid var(--line)}
.cmp>.h{border-top:0;padding:0 0 26px}
.cmp .h span{display:inline-block;padding:10px 28px;border-radius:var(--chip-radius,999px);font-size:34px;font-weight:800;font-family:var(--f-head)}
.cmp .h.t1 span{background:var(--accent);color:var(--on-accent)}
.cmp .h.t2 span{background:var(--soft);color:var(--accent-ink,var(--accent));border:1px solid var(--soft-line)}
.cmp .l{font-size:26px;color:var(--muted);font-weight:700;padding-top:38px}
.cmp .c{font-size:34px;line-height:1.55;font-weight:500}

/* 对勾 / 叉 */
.checks{display:flex;flex-direction:column;gap:32px}
.checks li{display:flex;align-items:center;gap:34px;font-family:var(--f-head);font-size:48px;font-weight:var(--h3-w);line-height:1.3}
.checks li::before{content:"✓";flex:none;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--good);color:#fff;font:700 38px/1 system-ui,-apple-system,sans-serif}
.checks.donts li{font-size:36px;font-family:var(--f-body);font-weight:600}
.checks.donts li::before{content:"✕";background:var(--bad);width:60px;height:60px;font-size:30px}

/* 提示条 */
.callout{margin-top:40px;padding:28px 38px;border-radius:var(--box-radius);background:var(--soft);border:1px solid var(--soft-line);font-size:30px;line-height:1.55;font-weight:600}
.callout b{color:var(--accent-ink,var(--accent))}
.tip{margin-top:44px;padding:30px 38px;border-left:6px solid var(--accent);background:var(--soft);font-size:32px;line-height:1.55;font-weight:600;border-radius:0 16px 16px 0}
.tip b{display:block;font-size:22px;color:var(--accent-ink,var(--accent));letter-spacing:.12em;margin-bottom:8px}

/* 标签 */
.chips{display:flex;flex-wrap:wrap;gap:16px}
.chips li{padding:12px 28px;border-radius:var(--chip-radius,999px);background:var(--box-bg);border:var(--box-border);font-size:30px;font-weight:600}
.tabs{display:flex;gap:12px;flex-wrap:wrap}
.tabs li{padding:8px 22px;border-radius:var(--chip-radius,999px);font-size:22px;color:var(--muted);border:1px solid var(--line)}
.tabs li.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}

/* 问答 */
.qa{display:grid;gap:26px}
.qa .box{padding:34px 40px}
.q{display:flex;gap:20px;align-items:flex-start;font-family:var(--f-head);font-size:34px;line-height:1.4;font-weight:var(--h3-w)}
.q::before{content:"Q";flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:24px;line-height:1;margin-top:1px}
.ans{margin-top:14px;padding-left:68px;font-size:28px;line-height:1.6;color:var(--body2)}
.qa.side .box{display:grid;grid-template-columns:620px minmax(0,1fr);gap:48px;align-items:center}
.qa.side .ans{margin:0;padding:0}

/* 左文右图 */
.split{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:72px;align-items:center;min-height:0}
.split .ph{height:100%;max-height:700px}
.cap{margin-top:16px;font-size:23px;color:var(--muted);text-align:center}

/* 图片占位 */
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;border:2px dashed var(--faint);border-radius:20px;color:var(--muted);font-size:24px;line-height:1.45;
  background:repeating-linear-gradient(-45deg,transparent 0 18px,var(--soft) 18px 20px)}
.ph::before{content:"";width:68px;height:56px;background:var(--faint);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.5'/%3E%3Cpath d='M21 16l-5-5L5 20'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.5'/%3E%3Cpath d='M21 16l-5-5L5 20'/%3E%3C/svg%3E") center/contain no-repeat}
.ph b{font-size:26px;color:var(--ink)}
.shot{width:100%;height:100%;object-fit:contain;border-radius:20px}

/* 流程箭头 */
.arrow{display:grid;place-items:center;color:var(--faint)}
.arrow::before{content:"";width:56px;height:28px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32' fill='none' stroke='black' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16H56M44 5l14 11-14 11'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32' fill='none' stroke='black' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16H56M44 5l14 11-14 11'/%3E%3C/svg%3E") center/contain no-repeat}
.flow{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr) 84px minmax(0,1fr);align-items:stretch}
.step{display:flex;flex-direction:column;gap:14px;padding:44px 40px}
.sn{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:30px;line-height:1}
.step h3{font-family:var(--f-head);font-size:42px;font-weight:var(--h3-w);line-height:1.25;margin-top:10px}
.step p{font-size:28px;line-height:1.6;color:var(--body2)}

/* 问题 → 对策 */
.pairs{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);row-gap:22px;align-items:stretch}
.pairs .ph-h{font-size:26px;font-weight:700;color:var(--muted);letter-spacing:.08em}
.pairs .box{padding:28px 36px;font-size:29px;line-height:1.5;display:flex;align-items:center;gap:22px}
.pairs .box.bad::before,.pairs .box.good::before{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 24px/1 system-ui,-apple-system,sans-serif}
.pairs .box.bad::before{content:"✕";background:var(--bad)}
.pairs .box.good::before{content:"✓";background:var(--good)}

/* 双泳道 */
.lanes{display:grid;grid-template-columns:240px minmax(0,1fr) minmax(0,1fr);gap:22px 30px;align-items:stretch}
.lanes .lh{font-size:28px;font-weight:800;color:var(--muted);letter-spacing:.06em}
.lanes .lt{font-family:var(--f-head);font-size:34px;font-weight:var(--h3-w);display:flex;align-items:center;color:var(--accent-ink,var(--accent))}
.lanes .box{padding:30px 36px;font-size:30px;line-height:1.5;display:flex;align-items:center}

/* 组织图 */
.org{flex:1;display:grid;grid-template-columns:400px 80px minmax(0,1fr);align-items:center;min-height:0}
.org .boss{padding:48px 42px;display:flex;flex-direction:column;gap:14px}
.org .boss h3{font-size:52px}
.org h3{font-family:var(--f-head);font-size:34px;line-height:1.3;font-weight:var(--h3-w)}
.org p{font-size:24px;line-height:1.5;color:var(--body2)}
.org .out{margin-top:auto;padding-top:12px;font-size:23px;line-height:1.45;color:var(--accent-ink,var(--accent));font-weight:700}
.org .team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.org .team .box{padding:30px 32px;display:flex;flex-direction:column;gap:10px;min-height:250px}
.wire{position:relative;height:100%}
.wire i{position:absolute;background:var(--faint)}
.wire i:nth-child(1){left:0;width:50%;top:50%;height:3px}
.wire i:nth-child(2){left:50%;width:3px;top:25%;bottom:25%}
.wire i:nth-child(3){left:50%;right:0;top:25%;height:3px}
.wire i:nth-child(4){left:50%;right:0;top:75%;height:3px}

/* 流水线 */
.pipe{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:46px}
.pipe .node{text-align:center;padding:34px 18px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.pipe .node:nth-child(-n+5)::after{content:"";position:absolute;right:-40px;top:50%;width:34px;height:20px;margin-top:-10px;background:var(--faint);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16H56M44 5l14 11-14 11'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16H56M44 5l14 11-14 11'/%3E%3C/svg%3E") center/contain no-repeat}
.pipe .node h3{font-family:var(--f-head);font-size:34px;line-height:1.3;font-weight:var(--h3-w)}
.pipe .node p{font-size:23px;line-height:1.45;color:var(--muted)}
.pipe .back{grid-column:3/5;grid-row:2;height:66px;margin:0 calc((100% - 46px) / 4);border:3px solid var(--accent);border-top:0;border-radius:0 0 26px 26px;position:relative}
.pipe .back::before{content:"";position:absolute;left:-12.5px;top:-20px;border:11px solid transparent;border-bottom:16px solid var(--accent);border-top:0}
.pipe .back span{position:absolute;left:50%;top:100%;transform:translate(-50%,14px);white-space:nowrap;font-size:24px;color:var(--accent-ink,var(--accent));font-weight:700}

/* 等式（蓝 V） */
/* 结果格之后「运算符、项」两列一组往右排：两项、三项都排成一行 */
.eq{display:grid;grid-auto-flow:column;grid-template-columns:auto;grid-auto-columns:96px minmax(0,1fr);align-items:stretch}
.eq .op{display:grid;place-items:center;font-family:var(--f-num);font-weight:var(--num-w);font-size:80px;color:var(--faint)}
.eq .box{padding:44px 44px;display:flex;flex-direction:column;justify-content:center;gap:18px}
.eq .eq-k{align-items:center;text-align:center;padding:44px 60px}
.eq .eq-k b{font-size:46px;font-family:var(--f-head);font-weight:var(--title-w)}
.eq h3{font-family:var(--f-head);font-size:46px;line-height:1.3;font-weight:var(--h3-w)}
.eq p{font-size:26px;color:var(--muted)}
.vcheck{display:grid;place-items:center;width:130px;height:130px;border-radius:50%;background:#1d9bf0;color:#fff;font:800 76px/1 system-ui,-apple-system,sans-serif}
.vcheck::before{content:"✓"}

/* 价格 */
.price .box{display:flex;flex-direction:column;gap:6px;padding:46px 42px}
.price .plan{font-size:38px;font-weight:800;font-family:var(--f-head)}
.price .amt{font-family:var(--f-num);font-weight:var(--num-w);font-size:112px;line-height:1.05;letter-spacing:-.02em;margin-top:22px;white-space:nowrap}
.price .amt small{font-size:28px;font-family:var(--f-body);font-weight:500;color:var(--muted);letter-spacing:0;margin-left:8px;-webkit-text-fill-color:currentColor}
.price .yr{font-size:27px;color:var(--muted)}
.price .quota{margin-top:34px;padding-top:28px;border-top:1px solid var(--line);font-size:24px;line-height:1.5;color:var(--muted)}
.price .quota b{display:block;font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:60px;line-height:1.1;color:var(--accent-ink,var(--accent))}

/* 表格 */
.tbl{width:100%;table-layout:fixed;border-collapse:collapse;font-size:29px;line-height:1.5}
.tbl th,.tbl td{text-align:left;padding:24px 28px;vertical-align:top}
.tbl th{font-size:32px;font-family:var(--f-head);font-weight:var(--h3-w)}
.tbl td:first-child,.tbl th:first-child{white-space:nowrap;font-weight:700;width:340px;color:var(--muted)}

/* 其他小组件 */
.road .box{min-height:300px;display:flex;flex-direction:column;justify-content:flex-start;gap:34px;padding:40px 36px}
.road .no{font-size:30px}
.road h3{font-family:var(--f-head);font-size:40px;line-height:1.3;font-weight:var(--h3-w)}
.g5.road .box{padding:40px 30px}
.g5.road h3{font-size:36px}
.kol .box{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 22px 40px}
.kol .av{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;font-size:56px;font-weight:800;font-family:var(--f-head);background:var(--soft);color:var(--accent-ink,var(--accent));border:2px dashed var(--soft-line)}
.kol h3{font-family:var(--f-head);font-size:36px;font-weight:var(--h3-w);margin-top:26px}
.kol p{font-size:24px;color:var(--muted);margin-top:6px}
.prod .box{min-height:300px;display:grid;place-items:center;text-align:center}
.prod h3{font-family:var(--f-num);font-weight:var(--num-w);font-style:var(--num-style);font-size:64px;line-height:1.1}
.quote{font-family:var(--f-head);font-size:44px;line-height:1.4;font-weight:var(--h3-w)}
.quote::before{content:"“";display:block;font-family:var(--f-num);font-size:110px;line-height:.8;color:var(--accent-ink,var(--accent));margin-bottom:10px}
.keep .box{padding:56px 52px;min-height:340px}
.keep h3{font-family:var(--f-head);font-size:48px;font-weight:var(--h3-w);margin-bottom:34px}
.keep .chips li{font-size:38px;padding:16px 36px}

/* 页面级补充 */
.slide.active .frag{animation:none}
.stats3{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr)}
.stats3 .stat .n{font-size:130px}
.card.tall{min-height:300px}
.card .meta{margin-top:auto;padding-top:20px;border-top:1px dashed var(--faint);font-size:24px;line-height:1.5;color:var(--accent-ink,var(--accent));font-weight:700}
.split .label{margin-top:48px}
.split .chips li{font-size:32px}
.stmt .label{margin-top:72px}
.big.md+.big.md{margin-top:18px}
.rows.tight .row{padding:18px 38px}
.pairs.tight .box{padding:20px 32px;font-size:27px}
.pairs .key b{color:var(--accent-ink,var(--accent))}
.split.wl{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr)}
.split .shot-ph{height:560px}
.end .big{font-size:150px}
.pipe+.callout{margin-top:110px;align-self:center}
.steps4 .no{font-size:84px}
.steps4 h3{font-size:44px}
.price .amt{font-size:96px}
.price .amt small{display:block;margin:10px 0 0}
.metric{font-family:var(--f-head);font-size:40px;font-weight:700;line-height:1.2;margin:10px 0 6px}
.metric b{font-family:var(--f-head);font-weight:var(--title-w);font-size:110px;line-height:1;color:var(--accent-ink,var(--accent));margin-right:14px}
.job dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 22px;align-items:baseline;margin-top:8px}
.job dt{font-size:22px;font-weight:700;color:var(--accent-ink,var(--accent));padding:4px 14px;border:1px solid var(--soft-line);border-radius:8px;background:var(--soft);line-height:1.3}
.job dd{font-size:28px;line-height:1.55;color:var(--body2)}
.pay{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr);gap:28px}
.pay>.key{grid-row:1/3;justify-content:center}
.pay>.key h3{font-size:54px}
.end .byline{margin-top:80px}

/* 结尾页中间的微信与交流群二维码，夹在左侧文字和右侧 IP 之间；任何主题下都是白底，保证能扫 */
.slide>.qrs{position:absolute;left:750px;top:50%;transform:translateY(-50%);display:flex;gap:40px}
.qr{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.qr img{display:block;width:290px;height:290px;background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.18)}
.qr figcaption{font-size:22px;line-height:1.4;color:var(--muted)}
.qr figcaption b{display:block;margin-bottom:4px;font-family:var(--f-head);font-size:30px;font-weight:var(--h3-w);color:var(--ink)}
[data-theme=editorial] .qr img{border-radius:0;border:1.5px solid var(--ink);box-shadow:12px 12px 0 rgba(24,22,19,.12)}
[data-theme=brutal] .qr img{border:4px solid var(--ink);border-radius:16px;box-shadow:8px 8px 0 var(--ink)}

/* 自我介绍：全身插画站在左下，手势指向右侧文字 */
.hello{grid-template-columns:620px minmax(0,1fr);gap:40px}
.hello-fig{align-self:end;margin-bottom:-120px;position:relative}
.hello-fig img{display:block;height:900px;width:auto;max-width:none}
.hello-fig::before{content:"";position:absolute;left:-10%;right:0;top:8%;bottom:18%;background:radial-gradient(closest-side,var(--soft),transparent);z-index:-1}

/* 热门方向页右侧的真实帖子截图 */
.shotbox{height:100%;max-height:700px;min-height:0;display:flex;align-items:center;justify-content:center}
.shotbox img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;border-radius:20px;border:1px solid var(--line);background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.18)}
[data-theme=editorial] .shotbox img{border-radius:0;border:1.5px solid var(--ink);box-shadow:12px 12px 0 rgba(24,22,19,.12)}
[data-theme=brutal] .shotbox img{border:4px solid var(--ink);border-radius:16px;box-shadow:8px 8px 0 var(--ink)}

/* IP 形象：介绍页放大，其余页面只在角落点缀 */
.slide>.ip{position:absolute;z-index:1;pointer-events:none;display:block;max-width:none;width:auto;object-fit:contain;object-position:right bottom}
.slide.active>.ip{animation:ipin .9s var(--ease) both .35s}
@keyframes ipin{from{opacity:0;translate:32px 0}to{opacity:1;translate:0 0}}
.ip-cover{right:210px;bottom:72px;height:700px}
.ip-end{right:170px;bottom:72px;height:700px}
.ip-dv{right:170px;bottom:150px;height:430px}
.ip-bust{right:118px;bottom:0;height:280px}
/* 形象的最大宽度：竖长的人物用不到，偏宽的形象会在格子里等比缩小，靠右下对齐 */
.slide>.ip-cover,.slide>.ip-end{max-width:560px}
.slide>.ip-dv{max-width:480px}
.slide>.ip-bust{max-width:320px}
/* 有形象时，封面与结尾页的文字只占左侧，给形象留出位置 */
.cover:has(>.ip) :is(.cover-title,.cover-sub),.end:has(>.ip) :is(.big,.big-sub){max-width:990px}
.slide.has-ip>.ft{right:470px}
.stmt.has-ip :is(.big,.big-sub){max-width:1300px}

.big-sub+.big-sub{margin-top:20px}
.big-sub b{color:var(--ink)}

/* 互动闭环页：第 2 次点击圈出第 3 步 */
.mark.ring-box{inset:-48px;width:calc(100% + 96px);height:calc(100% + 96px);overflow:visible;z-index:2}
.ring-box .ring{stroke-width:6}
.ring-hint{position:absolute;left:50%;bottom:-72px;z-index:3;transform:translateX(-50%);white-space:nowrap;padding:8px 24px;border-radius:var(--chip-radius,999px);background:var(--accent);color:var(--on-accent);font-size:26px;font-weight:800;line-height:1.3}
.ring-hint.frag{transition-delay:1s}
[data-theme=editorial] .ring-hint{border-radius:0}
[data-theme=brutal] .ring-hint{background:var(--ink);color:var(--c1);border-radius:8px}

/* 64：主页截图竖向占满右侧 */
.tall-l{width:900px;flex:1;display:flex;flex-direction:column;min-height:0}
.tall-l .rows{margin:auto 0}
.slide>.tallshot{position:absolute;right:128px;top:56px;bottom:96px;z-index:1}
.tallshot img{display:block;height:100%;width:auto;border-radius:22px;border:1px solid var(--line);background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.18)}
[data-theme=editorial] .tallshot img{border-radius:0;border:1.5px solid var(--ink);box-shadow:12px 12px 0 rgba(24,22,19,.12)}
[data-theme=brutal] .tallshot img{border:4px solid var(--ink);border-radius:16px;box-shadow:8px 8px 0 var(--ink)}

/* 真实截图页 */
.shotbox.wide{max-height:600px;flex:0 1 auto}
.body>.cap{margin-top:22px}
.split.half{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.split.half .rows{gap:14px}
.split.half .rows.tight .row{padding:16px 34px}
.split.half .row h3{font-size:33px}
.split.half .row p{font-size:25px}
.shotcol{height:100%;display:flex;flex-direction:column;min-height:0}
.shotcol .shotbox{flex:1;max-height:none}

/* Grok Bot 小头像 */
.bot-av{display:block;width:60px;height:60px;flex:none}
.bot-av.lg{width:96px;height:96px}
.bot-av.me{border-radius:50%;object-fit:cover}
.bot-h{display:flex;align-items:center;gap:16px}
.org .team .bot-h{gap:12px}
.org .team .bot-av{width:52px;height:52px}
.pipe .node .bot-av{width:76px;height:76px;margin:0 auto 4px}
.slide>.bots-float{position:absolute;inset:0;z-index:2;pointer-events:none}
.bots-float img{position:absolute;display:block;height:auto;animation:bob 4s ease-in-out infinite;animation-delay:var(--fd,0s)}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -14px}}
.botrow{display:flex;gap:22px;margin-top:56px}
.botrow img{width:84px;height:84px;display:block}
.botrow.sm{margin-top:36px;gap:14px}
.botrow.xs{margin-top:auto;padding-top:10px;gap:10px}
.botrow.xs img{width:40px;height:40px}
.steps6 .card{padding:34px 38px}
.steps6 .card h3{font-size:38px}
.steps6 .card p{font-size:26px}
.split.half .big.md{font-size:84px}
.botrow.sm img{width:56px;height:56px}
.slide.active .botrow.st>*{animation:pop .7s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms + 400ms)}
.qa.botq .box:nth-child(1) .q::before{background-image:url(img/bots/observer.svg)}
.qa.botq .box:nth-child(2) .q::before{background-image:url(img/bots/planner.svg)}
.qa.botq .box:nth-child(3) .q::before{background-image:url(img/bots/writer.svg)}
.qa.botq .q::before{content:"";width:54px;height:54px;border-radius:0;background-color:transparent;background-position:center;background-size:contain;background-repeat:no-repeat;margin-top:-4px}
[data-theme=brutal] :is(.bot-av,.botrow img,.bots-float img){filter:drop-shadow(3px 3px 0 #111)}
[data-theme=brutal] .qa.botq .q::before{background-color:transparent;filter:drop-shadow(3px 3px 0 #111)}

/* 亦仁 */
.yiren{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 540px;gap:72px;align-items:center;min-height:0;position:relative}
.yr-who{font-size:30px;color:var(--muted);margin-bottom:34px}
.yr-who b{font-family:var(--f-head);font-size:40px;color:var(--ink);margin-right:18px}
.yr-shot{position:relative;overflow:hidden;border-radius:22px;border:1px solid var(--line);background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.yr-shot img{display:block;width:100%}

/* 截图上的划重点：SVG 叠在图上，坐标按原图像素；下划线从左往右画，圈从右侧起笔绕一圈 */
.mark{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.mark .draw{fill:none;stroke:var(--accent);stroke-linecap:round}
.mark .ul{stroke-width:5}
.mark .ul.thick{stroke-width:8}
.mark .ring{stroke-width:4}
.frag.draw{opacity:0;translate:0 0;stroke-dasharray:1 2;stroke-dashoffset:1;transition:opacity 0s linear var(--d,0s),stroke-dashoffset 1.4s var(--ease) var(--d,0s)}
.frag.draw.on{opacity:1;stroke-dashoffset:0}
/* 第 7 页（亦仁）：画线速度介于最初（0.7s）和放慢后（1.4s）之间 */
.yiren .frag.draw{transition:opacity 0s linear var(--d,0s),stroke-dashoffset 1.05s var(--ease) var(--d,0s)}
body.overview .frag.draw{stroke-dashoffset:0}
@media print{.frag.draw{opacity:1;stroke-dashoffset:0}}
.yr-key{font-family:var(--f-head);font-size:56px;line-height:1.35;font-weight:var(--title-w);margin-top:44px}
.yr-key em{color:var(--accent-ink,var(--accent))}
.yr-follow{position:absolute;right:-24px;bottom:10px;width:640px;margin:0;rotate:-2.5deg;z-index:3}
.yr-follow img{display:block;width:100%;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.08)}
.yr-follow .tag{position:absolute;top:-22px;left:32px;z-index:1;font-size:26px;padding:8px 22px}
.yr-follow.frag{scale:.9;transition:opacity .5s var(--ease),translate .5s var(--ease),scale .5s var(--ease)}
.yr-follow.frag.on{scale:1}
[data-theme=editorial] :is(.yr-shot,.yr-follow img){border-radius:0;border:1.5px solid var(--ink);box-shadow:none}
[data-theme=editorial] .yr-follow img{box-shadow:12px 12px 0 rgba(24,22,19,.15)}
[data-theme=brutal] :is(.yr-shot,.yr-follow img){border:4px solid var(--ink);border-radius:16px;box-shadow:8px 8px 0 var(--ink)}
[data-theme=brutal] .yr-follow img{box-shadow:12px 12px 0 var(--ink)}

/* 波普：高亮块带描边，多行标题留够行距，免得盖住上一行 */
[data-theme=brutal] .title{line-height:1.5}
[data-theme=brutal] .big{line-height:1.5}
[data-theme=brutal] .big.md{line-height:1.55}

/* ================= 英文内容 =================
   拉丁字母比汉字宽、按词换行，同样的意思占的面积更大：英文演示稿的标题和长条目略收小。
   各主题有自己字号的地方，在主题一节里按需另写 :lang(en) 规则 */
:lang(en) .title{font-size:68px;line-height:1.14}
:lang(en) .cover-title{font-size:150px;line-height:1.02}
:lang(en) .dv-title{font-size:100px;line-height:1.08}
:lang(en) .big{font-size:88px;line-height:1.16}
:lang(en) .big.md{font-size:68px;line-height:1.22}
:lang(en) .end .big{font-size:132px}
:lang(en) .yr-key{font-size:46px;line-height:1.25}
:lang(en) .rows.wide .row>div{grid-template-columns:440px minmax(0,1fr)}
:lang(en) .row h3{font-size:34px}
:lang(en) .card h3{font-size:38px}
:lang(en) .kicker{letter-spacing:.02em}
:lang(en) .split .rows{gap:12px}
:lang(en) .split .rows.tight .row{padding:12px 30px}
:lang(en) .split .row h3{font-size:30px}
:lang(en) .split .row p{font-size:24px;line-height:1.42}
:lang(en) .tall-l .row p,:lang(en) .rows.wide .row p{font-size:26px;line-height:1.45}
/* 自己设了字号的主题，英文另调 */
[data-theme=editorial]:lang(en) .cover-title,[data-theme=magazine]:lang(en) .cover-title{font-size:140px}
[data-theme=brutal]:lang(en) .title{line-height:1.4}
[data-theme=brutal]:lang(en) .hd{margin-bottom:40px}
[data-theme=business]:lang(en) .title{font-size:64px}
[data-theme=business]:lang(en) .cover-title{font-size:118px}
[data-theme=business]:lang(en) .stmt .big{font-size:76px}
:is([data-theme=magazine],[data-theme=glow],[data-theme=midcentury]):lang(en) .title{font-size:70px}
:is([data-theme=glow],[data-theme=midcentury]):lang(en) .cover-title{font-size:140px}
[data-theme=terminal]:lang(en) .title{font-size:62px}
[data-theme=terminal]:lang(en) .cover-title{font-size:120px}
[data-theme=terminal]:lang(en) .divider .dv-title{font-size:88px}
[data-theme=terminal]:lang(en) .hd{margin-bottom:32px}
[data-theme=terminal]:lang(en) .end:has(>.qrs) .big{font-size:84px}
[data-theme=terminal]:lang(en) .yr-key{font-size:40px;margin-top:28px}
.stmt.has-ip .chips{max-width:1300px}
/* 结尾页有二维码时，标题和副标题只占二维码左边的位置（英文的「Thank you」比「谢谢」宽得多） */
.end:has(>.qrs) :is(.big,.big-sub){max-width:600px}
:lang(en) .end:has(>.qrs) .big{font-size:104px;line-height:1.05}

/* ================= 风格 1 · 夜幕 =================
   电影感暗场：近黑底，只留一种冷光（默认长春花蓝），从右上方打下来；文字一律实色，不用渐变字和紫色光晕 */
[data-theme=dark] .slide{background:radial-gradient(1300px 820px at 88% -16%,var(--glow),transparent 64%),var(--bg)}
[data-theme=dark] :is(.cover,.divider,.end){background:radial-gradient(1050px 820px at 76% 34%,var(--glow),transparent 66%),var(--bg);box-shadow:inset 0 0 260px rgba(0,0,0,.55)}
[data-theme=dark] :is(.cover,.divider,.end)::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:radial-gradient(ellipse 58% 68% at 78% 36%,#000 8%,transparent 70%);mask-image:radial-gradient(ellipse 58% 68% at 78% 36%,#000 8%,transparent 70%)}
[data-theme=dark] .cover-meta{letter-spacing:.14em}
[data-theme=dark] .cover-meta span+span::before{content:"·";margin-right:28px}
[data-theme=dark] .cover-title{font-weight:900;letter-spacing:-.025em}
[data-theme=dark] .kicker b::after{content:"";display:inline-block;width:40px;height:2px;background:var(--faint);vertical-align:middle;margin-left:18px}
[data-theme=dark] .box.key{border-color:var(--soft-line);box-shadow:0 0 0 1px var(--soft-line),0 30px 90px -30px var(--glow)}
[data-theme=dark] .dv-no{letter-spacing:-.04em}
[data-theme=dark] .dv-map li.done{background:var(--faint)}
[data-theme=dark] .tl>li::before{box-shadow:0 0 0 8px var(--bg),0 0 0 10px var(--soft-line)}
[data-theme=dark] .ring-hint,[data-theme=dark] .badge.solid,[data-theme=dark] .tag{font-weight:800}

/* ================= 风格 2 · 极简白 =================
   瑞士国际主义：近白底、一个锚点色（默认克莱因蓝）；直角、无阴影，用粗细线条分区，
   数字用极细的大字号与粗标题形成强烈对比；12 栏细网格只出现在封面、章节页和结尾页 */
[data-theme=light] :is(.title,.big,.cover-title,.yr-key) em{background:linear-gradient(transparent 60%,var(--em-mark) 60%,var(--em-mark) 94%,transparent 94%);-webkit-box-decoration-break:clone;box-decoration-break:clone}
[data-theme=light] .title,[data-theme=light] .big{letter-spacing:-.02em}
[data-theme=light] .kicker{color:var(--ink);font-weight:700;letter-spacing:.06em}
[data-theme=light] .kicker b{font-size:40px;font-weight:300;letter-spacing:-.02em}
[data-theme=light] .box{border-top:4px solid var(--ink)}
[data-theme=light] .box.key{background:var(--soft);border-top-color:var(--accent)}
[data-theme=light] :is(.no,.row .n,.sn,.agenda3 li b,.price .quota b,.metric b,.tl .when){font-weight:300}
[data-theme=light] .no{font-size:44px;letter-spacing:-.02em}
[data-theme=light] .row .n{font-size:60px}
[data-theme=light] .rows{gap:14px}
[data-theme=light] .stat .n,[data-theme=light] .price .amt{font-weight:200;letter-spacing:-.04em;color:var(--accent-ink)}
[data-theme=light] .stat .n small{color:var(--ink)}
[data-theme=light] .sn{border-radius:0;font-weight:500}
[data-theme=light] .q::before{border-radius:0}
[data-theme=light] .tl::before{height:4px;background:var(--ink)}
[data-theme=light] .tl>li::before{border-radius:0;width:24px;height:24px;top:10px;box-shadow:none}
[data-theme=light] .tl .when{font-size:44px;letter-spacing:-.02em}
[data-theme=light] .cmp>*{border-top:2px solid var(--ink)}
[data-theme=light] .cmp>.h{border-top:0}
[data-theme=light] .tbl{border-top:4px solid var(--ink)}
[data-theme=light] .tbl th{border-bottom:2px solid var(--ink)}
[data-theme=light] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=light] :is(.callout,.tip){border:0;border-left:8px solid var(--accent);background:var(--soft)}
[data-theme=light] .chips li{background:none;border:2px solid var(--ink);font-weight:700}
[data-theme=light] .badge{border:2px solid var(--accent);background:none}
[data-theme=light] .badge.solid,[data-theme=light] .tag{border:0;background:var(--accent);color:var(--on-accent)}
[data-theme=light] .avatar{border-radius:0}
[data-theme=light] .kol .av{border-radius:0;border-style:solid}
[data-theme=light] .ph{border-radius:0}
[data-theme=light] .ft{bottom:40px;padding-top:12px;border-top:2px solid var(--ink);color:var(--ink);font-weight:700;font-size:18px;letter-spacing:.04em}
[data-theme=light] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;box-shadow:none;border:2px solid var(--ink)}
[data-theme=light] .ring-hint{border-radius:0}
/* 封面、章节页、结尾页：12 栏细网格 + 粗线 */
[data-theme=light] :is(.cover,.divider,.end)::before{content:"";position:absolute;inset:0 128px;pointer-events:none;background-image:linear-gradient(90deg,rgba(10,10,10,.07) 1px,transparent 1px);background-size:calc(100% / 12) 100%;border-right:1px solid rgba(10,10,10,.07)}
[data-theme=light] .cover-meta{color:var(--ink);font-weight:700;letter-spacing:.06em;border-top:4px solid var(--ink);padding-top:18px;align-self:flex-start;min-width:520px}
[data-theme=light] .cover-meta span+span::before{content:"/";margin-right:28px;color:var(--faint);font-weight:400}
[data-theme=light] .cover-title{letter-spacing:-.035em}
[data-theme=light] .avatar{background:var(--ink);color:var(--bg)}
[data-theme=light] .dv-no{font-size:380px;font-weight:200;line-height:.78;letter-spacing:-.06em}
[data-theme=light] .dv-title{border-top:4px solid var(--ink);padding-top:28px;margin-top:56px;align-self:flex-start;min-width:640px;letter-spacing:-.02em}
[data-theme=light] .dv-map{gap:0;border-top:2px solid var(--ink)}
[data-theme=light] .dv-map li{height:0;border-radius:0;background:none}
[data-theme=light] .dv-map li span{top:14px;font-size:22px;font-weight:300;color:var(--muted)}
[data-theme=light] .dv-map li.now span{color:var(--accent-ink);font-weight:700}
[data-theme=light] .dv-map li.now::before{content:"";position:absolute;left:0;right:12px;top:-8px;height:8px;background:var(--accent)}
[data-theme=light] .end .big{letter-spacing:-.04em}

/* ================= 风格 3 · 编辑部 ================= */
[data-theme=editorial] .hd{border-top:10px solid var(--ink);padding-top:22px}
[data-theme=editorial] .kicker{color:var(--ink);font-size:22px;letter-spacing:.24em;font-weight:500}
[data-theme=editorial] .kicker b{font-size:32px}
[data-theme=editorial] .stmt .kicker{border-top:10px solid var(--ink);padding-top:22px;align-self:stretch}
[data-theme=editorial] .box{border-top:2px solid var(--ink);padding:26px 0 0}
[data-theme=editorial] .box.key{border-top:4px solid var(--accent)}
[data-theme=editorial] :is(.badge,.tag,.badge.solid){background:var(--bg);color:var(--accent);border:1.5px solid var(--accent);border-radius:0;letter-spacing:.08em}
[data-theme=editorial] .chips li{border:1.5px solid var(--ink);border-radius:0;background:none;padding-top:10px}
[data-theme=editorial] .tabs li{border-radius:0}
[data-theme=editorial] .q::before{background:none;color:var(--accent);font-size:42px;width:auto;height:auto;margin-top:-4px}
[data-theme=editorial] .ans{padding-left:44px}
[data-theme=editorial] .qa .box{padding:24px 0 0}
[data-theme=editorial] .tbl{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
[data-theme=editorial] .tbl th{border-bottom:1.5px solid var(--ink)}
[data-theme=editorial] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=editorial] :is(.callout,.tip){background:none;border:0;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);border-radius:0;padding:24px 0;font-family:var(--f-head);font-weight:900}
[data-theme=editorial] .rows{gap:0}
[data-theme=editorial] .row{padding:26px 0;border-top-width:1.5px}
[data-theme=editorial] .rows .row:last-child{border-bottom:1.5px solid var(--ink)}
[data-theme=editorial] .sn{background:none;color:var(--accent);font-size:62px;width:auto;height:auto;place-items:start}
[data-theme=editorial] .step{padding:28px 0 0}
[data-theme=editorial] .tl>li::before{border-radius:0;width:20px;height:20px;top:12px;box-shadow:none}
[data-theme=editorial] .tl::before{height:1.5px;background:var(--ink)}
[data-theme=editorial] .pairs .box,.lanes .box{padding:22px 0}
[data-theme=editorial] .cmp>*{border-top-color:var(--ink)}
[data-theme=editorial] .cmp .h span{border-radius:0}
[data-theme=editorial] .divider::before{content:"";position:absolute;left:128px;right:128px;top:96px;border-top:10px solid var(--ink)}
[data-theme=editorial] .dv-no{font-size:300px}
[data-theme=editorial] .dv-map li{border-radius:0;height:4px}
[data-theme=editorial] .cover-meta{position:absolute;top:96px;left:128px;right:128px;justify-content:space-between;border-top:3px solid var(--ink);border-bottom:1px solid var(--ink);padding:14px 0;font-size:22px;letter-spacing:.2em;color:var(--ink)}
[data-theme=editorial] .cover-title{font-size:184px}
[data-theme=editorial] .cover-sub{font-family:var(--f-head);font-weight:600}
[data-theme=editorial] .cover .deco .d1{display:none;position:absolute;right:120px;bottom:110px;font:italic 700 400px/.8 var(--f-num);color:transparent;-webkit-text-stroke:2px var(--accent);opacity:.8}
[data-theme=editorial] .bio{font-family:var(--f-head);font-weight:600}
[data-theme=editorial] .avatar{background:var(--ink);color:var(--bg);font-family:var(--f-head)}
[data-theme=editorial] .kol .av{border-radius:50%;background:none;border:1.5px solid var(--ink);color:var(--ink)}
[data-theme=editorial] .ph{border-radius:0;border-color:var(--faint)}
[data-theme=editorial] .agenda3 li{border-top-color:var(--line)}
[data-theme=editorial] .agenda3 h3{letter-spacing:.3em}
[data-theme=editorial] .pipe .node{padding:26px 0 34px}

/* ================= 风格 4 · 波普 ================= */
[data-theme=brutal] :is(.title em,.big em){background:var(--c1);border:4px solid var(--ink);padding:0 .12em;box-shadow:6px 6px 0 var(--ink);border-radius:4px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--ink)}
[data-theme=brutal] .kicker{width:fit-content;background:var(--ink);color:var(--c1);font-weight:900;padding:8px 22px 8px 8px;transform:rotate(-1.5deg);letter-spacing:0}
[data-theme=brutal] .kicker b{background:var(--c1);color:var(--ink);padding:0 12px}
[data-theme=brutal] .cyc>.box:nth-of-type(6n+1){background:var(--c1)}
[data-theme=brutal] .cyc>.box:nth-of-type(6n+2){background:var(--c2)}
[data-theme=brutal] .cyc>.box:nth-of-type(6n+3){background:var(--c3)}
[data-theme=brutal] .cyc>.box:nth-of-type(6n+4){background:var(--c4)}
[data-theme=brutal] .cyc>.box:nth-of-type(6n+5){background:var(--c5)}
[data-theme=brutal] .cyc>.box:nth-of-type(6n){background:var(--c6)}
[data-theme=brutal] .box.key{background:var(--c1)}
[data-theme=brutal] :is(.badge,.tag,.badge.solid){background:var(--ink);color:#fff;border:0;border-radius:6px}
[data-theme=brutal] .box>.tag{transform:rotate(4deg)}
[data-theme=brutal] .q::before{border-radius:8px;background:var(--ink);color:var(--c1)}
[data-theme=brutal] .card p,[data-theme=brutal] .row p,[data-theme=brutal] .step p{font-weight:500}
[data-theme=brutal] .tbl{border-collapse:separate;border-spacing:0;background:#fff;border:4px solid var(--ink);border-radius:16px;box-shadow:10px 10px 0 var(--ink);overflow:hidden}
[data-theme=brutal] .tbl th{background:var(--ink);color:#fff}
[data-theme=brutal] .tbl th:nth-child(2){background:var(--c1);color:var(--ink);border-left:4px solid var(--ink)}
[data-theme=brutal] .tbl th:nth-child(3){background:var(--c2);color:var(--ink);border-left:4px solid var(--ink)}
[data-theme=brutal] .tbl th:nth-child(4){background:var(--c3);color:var(--ink);border-left:4px solid var(--ink)}
[data-theme=brutal] .tbl th:nth-child(5){background:var(--c4);color:var(--ink);border-left:4px solid var(--ink)}
[data-theme=brutal] .tbl td{border-top:3px solid var(--ink)}
[data-theme=brutal] .tbl td+td{border-left:3px solid var(--ink)}
[data-theme=brutal] .tbl td:first-child{background:var(--bg);color:var(--ink)}
[data-theme=brutal] :is(.callout,.tip){background:#fff;border:4px solid var(--ink);box-shadow:8px 8px 0 var(--ink);border-radius:16px}
[data-theme=brutal] .tip{border-left-width:16px}
[data-theme=brutal] .callout.warn{background:var(--accent);color:#fff}
[data-theme=brutal] .callout b{color:inherit;background:var(--c1);color:var(--ink);padding:0 6px}
[data-theme=brutal] .checks li::before{border-radius:12px;border:4px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
[data-theme=brutal] .pairs .box::before{border:3px solid var(--ink);border-radius:8px}
[data-theme=brutal] .tl::before{height:5px;background:var(--ink)}
[data-theme=brutal] .tl>li::before{border:4px solid var(--ink);box-shadow:4px 4px 0 var(--ink);border-radius:0;background:var(--c1)}
[data-theme=brutal] .sn{background:var(--ink);color:var(--c1);border-radius:12px}
[data-theme=brutal] .cmp>*{border-top:3px solid var(--ink)}
[data-theme=brutal] .cmp>.h{border-top:0}
[data-theme=brutal] .cmp .h span{border:4px solid var(--ink);box-shadow:5px 5px 0 var(--ink);border-radius:12px}
[data-theme=brutal] .cmp .h.t1 span{background:var(--c1);color:var(--ink)}
[data-theme=brutal] .cmp .h.t2 span{background:var(--c2);color:var(--ink)}
[data-theme=brutal] .chips li{box-shadow:4px 4px 0 var(--ink);border-width:3px}
[data-theme=brutal] .tabs li{border:3px solid var(--ink);color:var(--ink);font-weight:700}
[data-theme=brutal] .tabs li.on{background:var(--ink);color:var(--c1)}
[data-theme=brutal] .ph{border:4px dashed var(--ink);border-radius:16px;color:var(--ink);background:repeating-linear-gradient(-45deg,transparent 0 18px,rgba(0,0,0,.05) 18px 20px)}
[data-theme=brutal] .ph::before{background:var(--ink)}
[data-theme=brutal] .kol .av{background:var(--c2);border:4px solid var(--ink);color:var(--ink)}
[data-theme=brutal] .wire i{background:var(--ink)}
[data-theme=brutal] .pipe .node::after{background:var(--ink)}
[data-theme=brutal] .pipe .back{border-width:5px}
[data-theme=brutal] .arrow{color:var(--ink)}
[data-theme=brutal] .vcheck{border:5px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
[data-theme=brutal] .bio{border-left:10px solid var(--ink)}
[data-theme=brutal] :is(.cover,.divider,.end){background:var(--c1)}
[data-theme=brutal] .cover-title em{display:inline-block;background:var(--accent);color:#fff;border:5px solid var(--ink);box-shadow:10px 10px 0 var(--ink);padding:0 .16em;transform:rotate(-2deg);margin-top:16px}
[data-theme=brutal] .cover-meta span{background:var(--ink);color:#fff;padding:4px 16px;font-weight:700;letter-spacing:.04em}
[data-theme=brutal] .cover-sub{font-weight:700;color:var(--ink)}
[data-theme=brutal] .avatar{background:var(--c3);color:var(--ink);border:4px solid var(--ink);box-shadow:4px 4px 0 var(--ink);font-weight:900}
[data-theme=brutal] .cover .deco i{display:block;position:absolute;border:5px solid var(--ink);box-shadow:10px 10px 0 var(--ink);font-size:0}
[data-theme=brutal] .cover .deco .d1{width:340px;height:340px;border-radius:50%;background:var(--c2);right:150px;top:120px}
[data-theme=brutal] .cover .deco .d2{width:220px;height:220px;background:var(--c4);right:540px;top:470px;transform:rotate(14deg)}
[data-theme=brutal] .cover .deco .d3{width:520px;height:90px;right:-40px;bottom:150px;transform:rotate(-8deg);background:repeating-linear-gradient(-45deg,var(--ink) 0 18px,#fff 18px 36px)}
[data-theme=brutal] .dv-no{color:#fff;-webkit-text-stroke:5px var(--ink);text-shadow:12px 12px 0 var(--ink)}
[data-theme=brutal] .dv-map li{height:16px;border:3px solid var(--ink);border-radius:0;background:#fff}
[data-theme=brutal] .dv-map li.done{background:var(--ink)}
[data-theme=brutal] .dv-map li.now{background:var(--accent)}
[data-theme=brutal] .dv-map li span{color:var(--ink)}
[data-theme=brutal] .dv-map li.now span{color:var(--ink)}
[data-theme=brutal] .ft{color:var(--ink);font-weight:700}
[data-theme=brutal] :is(.org .out,.card .meta){color:var(--ink);border-color:var(--ink)}

/* ================= 风格 5 · 温暖课堂 =================
   奶油底、白色圆角卡片、扁平阴影；每章一个章节色（按 data-tone 轮换）：章节页整页铺章节色，
   内容页只用在序号、进度圆点、重点卡片的左边线。重点文字用荧光笔底，不用贴纸和涂鸦 */
[data-theme=classroom] .slide[data-tone="2"]{--accent:var(--t2);--accent-ink:var(--t2-ink);--on-accent:#fff}
[data-theme=classroom] .slide[data-tone="3"]{--accent:var(--t3);--accent-ink:var(--t3-ink);--on-accent:var(--t3-on)}
[data-theme=classroom] .slide[data-tone="4"]{--accent:var(--t4);--accent-ink:var(--t4-ink);--on-accent:#fff}
[data-theme=classroom] .slide{--soft:color-mix(in srgb,var(--accent) 9%,#fff);--soft-line:color-mix(in srgb,var(--accent) 36%,#fff)}
[data-theme=classroom] :is(.title,.cover-title,.dv-title,.big){letter-spacing:-.01em}
[data-theme=classroom] :is(.big em,.callout b,.yr-key em){color:inherit;background:linear-gradient(transparent 56%,var(--hl) 56%,var(--hl) 92%,transparent 92%);-webkit-box-decoration-break:clone;box-decoration-break:clone}
[data-theme=classroom] .kicker{color:var(--muted);font-weight:700;letter-spacing:.02em}
[data-theme=classroom] .kicker b{font-size:30px}
[data-theme=classroom] .box.key{box-shadow:inset 10px 0 0 var(--accent),0 2px 0 rgba(43,42,51,.07),0 0 0 1px rgba(43,42,51,.035)}
[data-theme=classroom] .box.key.card,[data-theme=classroom] .box.key.row{padding-left:52px}
[data-theme=classroom] .no{font-size:34px}
[data-theme=classroom] .row .n{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:var(--soft);font-size:34px}
[data-theme=classroom] .sn{border-radius:20px}
[data-theme=classroom] .q::before{border-radius:14px}
[data-theme=classroom] .badge{font-weight:800}
[data-theme=classroom] .tag{font-weight:800}
[data-theme=classroom] .chips li{box-shadow:0 2px 0 rgba(43,42,51,.07),0 0 0 1px rgba(43,42,51,.05)}
[data-theme=classroom] :is(.callout,.tip){border:0;border-radius:20px;background:var(--soft)}
[data-theme=classroom] .tip{border-left:10px solid var(--accent)}
[data-theme=classroom] .tl::before{height:6px;border-radius:3px}
[data-theme=classroom] .tl>li::before{box-shadow:0 0 0 8px var(--bg)}
[data-theme=classroom] .checks li::before{border-radius:22px}
[data-theme=classroom] .cmp .h span{font-weight:800}
[data-theme=classroom] .tbl{border-collapse:separate;border-spacing:0;background:#fff;border-radius:24px;overflow:hidden;box-shadow:var(--box-shadow)}
[data-theme=classroom] .tbl th{background:var(--soft)}
[data-theme=classroom] .tbl td{border-top:1px solid var(--line)}
[data-theme=classroom] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img){border-radius:24px;border:0;box-shadow:0 2px 0 rgba(43,42,51,.08),0 0 0 1px rgba(43,42,51,.06)}
[data-theme=classroom] .qr img{border-radius:24px;box-shadow:0 2px 0 rgba(43,42,51,.08),0 0 0 1px rgba(43,42,51,.06)}
[data-theme=classroom] .ft{color:var(--muted)}
/* 进度圆点：内容页右上角，和眉题同一行 */
[data-theme=classroom] .slide:not(.divider)>.secnav:has(.now){display:flex;position:absolute;top:106px;right:128px;gap:10px;z-index:1}
[data-theme=classroom] .secnav li{width:16px;height:16px;border-radius:50%;background:#e2dacb}
[data-theme=classroom] .secnav li.done{background:var(--soft-line)}
[data-theme=classroom] .secnav li.now{background:var(--accent);width:40px;border-radius:8px}
[data-theme=classroom] .secnav :is(b,span){display:none}
/* 封面：四个章节色的圆点、一块浅色「黑板」托住形象 */
[data-theme=classroom] .cover-meta{color:var(--muted);font-weight:700;align-items:center}
[data-theme=classroom] .cover-meta::before{content:"";width:118px;height:22px;flex:none;background:radial-gradient(circle at 11px 11px,var(--t1) 10px,transparent 11px),radial-gradient(circle at 43px 11px,var(--t2) 10px,transparent 11px),radial-gradient(circle at 75px 11px,var(--t3) 10px,transparent 11px),radial-gradient(circle at 107px 11px,var(--t4) 10px,transparent 11px)}
[data-theme=classroom] .cover-meta span+span::before{content:"·";margin-right:28px}
[data-theme=classroom] .cover-title{font-weight:900}
[data-theme=classroom] .cover-title em{color:var(--accent-ink)}
[data-theme=classroom] .cover:has(>.ip) .deco .d1{display:block;position:absolute;right:110px;top:150px;width:720px;height:820px;border-radius:56px;background:color-mix(in srgb,var(--t1) 10%,#fff)}
[data-theme=classroom] .end:has(>.ip)::before{content:"";position:absolute;right:110px;top:150px;width:430px;height:820px;border-radius:56px;background:color-mix(in srgb,var(--t2) 10%,#fff);z-index:0}
[data-theme=classroom] .avatar{background:var(--accent);color:var(--on-accent)}
/* 章节页：整页铺章节色 */
[data-theme=classroom] .divider{background:var(--accent);color:var(--on-accent)}
[data-theme=classroom] .divider .dv-no{color:var(--on-accent);font-size:300px}
[data-theme=classroom] .divider .dv-sub{color:var(--on-accent);opacity:.88}
[data-theme=classroom] .divider .dv-map li{background:color-mix(in srgb,var(--on-accent) 28%,var(--accent));height:10px;border-radius:5px}
[data-theme=classroom] .divider .dv-map li.done{background:color-mix(in srgb,var(--on-accent) 55%,var(--accent))}
[data-theme=classroom] .divider .dv-map li.now{background:var(--on-accent)}
[data-theme=classroom] .divider .dv-map li span,[data-theme=classroom] .divider .dv-map li.now span{color:var(--on-accent);opacity:.8}
[data-theme=classroom] .divider .dv-map li.now span{opacity:1}
[data-theme=classroom] .divider::after{content:"";position:absolute;right:-140px;top:-180px;width:640px;height:640px;border-radius:50%;background:color-mix(in srgb,var(--on-accent) 10%,transparent);z-index:0}

/* ================= 风格 6 · 商务稳重 =================
   象牙底、海军蓝墨色、黄铜（或铜绿）点缀；宋体写结论标题，数字等宽；表格只用横线，
   只有章节页整页铺深蓝，封面和结尾页右侧一块深蓝。不用黑金、不整屏铺蓝 */
[data-theme=business] :is(.stat .n,.price .amt,.no,.row .n,.metric b,.tbl td,.tl .when,.ft){font-variant-numeric:tabular-nums lining-nums}
[data-theme=business] .kicker{color:var(--accent-ink);font-size:23px;font-weight:600;letter-spacing:.14em}
[data-theme=business] .kicker b{color:var(--accent-ink)}
[data-theme=business] .kicker b::after{content:"";display:inline-block;width:28px;height:2px;background:var(--accent);vertical-align:middle;margin-left:16px}
[data-theme=business] .title{font-size:72px;line-height:1.25;letter-spacing:.005em}
[data-theme=business] .title em,[data-theme=business] .big em{color:var(--accent-ink)}
[data-theme=business] .box{border-top:3px solid var(--ink)}
[data-theme=business] .box.key{border-top-color:var(--accent);background:#fff}
[data-theme=business] .q::before{background:var(--navy);color:var(--on-navy)}
[data-theme=business] :is(.badge.solid,.tag,.sn,.tabs li.on,.cmp .h.t1 span,.ring-hint,.avatar){background:var(--navy);color:var(--on-navy);border-color:var(--navy)}
[data-theme=business] .badge{background:none;border-color:var(--accent);color:var(--accent-ink)}
[data-theme=business] .sn{border-radius:0}
[data-theme=business] .q::before{border-radius:0}
[data-theme=business] .stat{background:none;border:0;border-top:3px solid var(--ink);padding:26px 4px 0}
[data-theme=business] .stat .n{font-weight:600;letter-spacing:-.02em}
[data-theme=business] .stat .n small{font-family:var(--f-body);font-weight:500}
[data-theme=business] .stats3 .stat:first-child{border-top-color:var(--accent)}
[data-theme=business] .price .amt{font-weight:600;letter-spacing:-.02em}
[data-theme=business] .tbl{border-top:3px solid var(--ink)}
[data-theme=business] .tbl th{border-bottom:1.5px solid var(--ink);font-family:var(--f-body);font-weight:600;font-size:28px}
[data-theme=business] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=business] :is(.callout,.tip){border:0;border-left:4px solid var(--accent);border-radius:0;background:var(--soft)}
[data-theme=business] .chips li{border:1px solid var(--line);background:var(--box-bg)}
[data-theme=business] .tl::before{height:2px;background:var(--ink)}
[data-theme=business] .tl>li::before{border-radius:0;width:18px;height:18px;top:13px;background:var(--navy);box-shadow:0 0 0 6px var(--bg)}
[data-theme=business] .cmp>*{border-top-color:var(--line)}
[data-theme=business] .cmp .h span{border-radius:0}
[data-theme=business] .cmp .h.t2 span{border-color:var(--accent)}
[data-theme=business] .row .n{color:var(--accent-ink)}
[data-theme=business] .ph{border-radius:0}
[data-theme=business] .kol .av{border-style:solid}
[data-theme=business] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:1px solid var(--line);box-shadow:0 20px 50px -24px rgba(28,43,74,.35)}
[data-theme=business] .ft{bottom:40px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:19px;letter-spacing:.04em}
/* 金句页：左侧一条黄铜竖线 */
[data-theme=business] .stmt .big{font-size:88px;line-height:1.32;border-left:6px solid var(--accent);padding-left:48px}
[data-theme=business] .stmt .big.md{font-size:72px}
[data-theme=business] .stmt .big+.big{margin-top:0;padding-top:12px}
[data-theme=business] .stmt .big-sub{font-family:var(--f-body)}
/* 封面与结尾：右侧一块海军蓝，形象站在里面 */
[data-theme=business] :is(.cover,.end)::before{content:"";position:absolute;top:0;right:0;bottom:0;width:36%;background:var(--navy);z-index:0}
[data-theme=business] .cover :is(.cover-title,.cover-sub),[data-theme=business] .end :is(.big,.big-sub){max-width:1000px}
[data-theme=business] .cover-meta{color:var(--accent-ink);font-weight:600;letter-spacing:.16em}
[data-theme=business] .cover-meta span+span::before{content:"|";margin-right:28px;color:var(--faint)}
[data-theme=business] .cover-title{font-size:132px;line-height:1.16;letter-spacing:0}
[data-theme=business] .cover-sub{font-size:32px}
[data-theme=business] .end .big{font-size:132px}
[data-theme=business] .end::before{width:24%}
/* 章节页：整页深蓝 */
[data-theme=business] .divider{background:var(--navy);color:var(--on-navy)}
[data-theme=business] .divider .dv-no{color:var(--accent-on-navy);font-size:200px;font-weight:500;letter-spacing:-.03em}
[data-theme=business] .divider .dv-title{font-size:104px}
[data-theme=business] .divider .dv-sub{color:var(--on-navy-2);font-family:var(--f-body)}
[data-theme=business] .divider .dv-map{gap:0;border-top:1px solid rgba(236,232,222,.25)}
[data-theme=business] .divider .dv-map li{height:0;background:none;border-radius:0}
[data-theme=business] .divider .dv-map li span{top:14px;color:var(--on-navy-2)}
[data-theme=business] .divider .dv-map li.now::before{content:"";position:absolute;left:0;right:10px;top:-3px;height:5px;background:var(--accent-on-navy)}
[data-theme=business] .divider .dv-map li.now span{color:var(--accent-on-navy)}

/* ================= 风格 7 · 中文杂志 =================
   人文月刊：冷白纸、墨色、宋体巨型标题，正文黑体；朱红只用在期号、章节号这类「印记」上。
   标题里的强调用双色：其余文字退成灰，强调的部分保持墨色。和「编辑部」的区别：不堆报纸分隔线 */
[data-theme=magazine] :is(.title,.big,.cover-title,.yr-key,.dv-title):has(em){color:var(--head-dim)}
[data-theme=magazine] :is(.title,.big,.cover-title,.yr-key) em{color:var(--ink)}
[data-theme=magazine] .title{font-size:80px;line-height:1.2;letter-spacing:-.01em}
[data-theme=magazine] .kicker{font-size:22px;letter-spacing:.24em;color:var(--muted);font-weight:500}
[data-theme=magazine] .kicker b{font-size:40px;letter-spacing:0}
[data-theme=magazine] .lead{font-family:var(--f-head);font-weight:600}
[data-theme=magazine] .box{border-top:1px solid var(--ink);padding:26px 0 0}
[data-theme=magazine] .box.key{border-top:3px solid var(--accent)}
[data-theme=magazine] .qa .box,[data-theme=magazine] .pairs .box,[data-theme=magazine] .lanes .box{padding:22px 0}
[data-theme=magazine] .no{font-size:40px}
[data-theme=magazine] .row{padding:24px 0}
[data-theme=magazine] .rows{gap:0}
[data-theme=magazine] .rows .row:last-child{border-bottom:1px solid var(--ink)}
[data-theme=magazine] .row .n{font-size:56px}
[data-theme=magazine] .sn{background:none;color:var(--accent-ink);font-size:64px;width:auto;height:auto;place-items:start}
[data-theme=magazine] .step{padding:24px 0 0}
[data-theme=magazine] .q::before{background:none;color:var(--accent-ink);font-size:44px;width:auto;height:auto;margin-top:-6px}
[data-theme=magazine] .ans{padding-left:46px}
[data-theme=magazine] :is(.badge,.tag,.badge.solid){background:var(--bg);color:var(--accent-ink);border:1px solid var(--accent);letter-spacing:.08em;font-weight:600}
[data-theme=magazine] .chips li{background:none;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:8px 4px;margin-right:20px}
[data-theme=magazine] .tabs li{border:0;padding:6px 2px;margin-right:18px}
[data-theme=magazine] .tabs li.on{background:none;color:var(--ink);border-bottom:2px solid var(--accent);font-weight:700}
[data-theme=magazine] :is(.callout,.tip){background:none;border:0;border-left:2px solid var(--accent);border-radius:0;padding:6px 0 6px 36px;font-family:var(--f-head);font-weight:700}
[data-theme=magazine] .tbl th{border-bottom:1px solid var(--ink);font-weight:700}
[data-theme=magazine] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=magazine] .tl::before{height:1px;background:var(--ink)}
[data-theme=magazine] .tl>li::before{width:14px;height:14px;top:14px;box-shadow:none}
[data-theme=magazine] .tl .when{font-family:var(--f-num);font-style:italic;font-weight:500;color:var(--accent-ink)}
[data-theme=magazine] .cmp>*{border-top-color:var(--line)}
[data-theme=magazine] .cmp .h span{border-radius:0;background:none;border:0;color:var(--ink);padding:0;border-bottom:3px solid var(--ink)}
[data-theme=magazine] .cmp .h.t1 span{border-bottom-color:var(--accent)}
[data-theme=magazine] .stat{padding:30px 0 0}
[data-theme=magazine] .stat .n{letter-spacing:-.03em}
[data-theme=magazine] .stat .n small{font-family:var(--f-body);font-style:normal}
[data-theme=magazine] .avatar{background:var(--ink);color:var(--bg);font-family:var(--f-head)}
[data-theme=magazine] .kol .av{background:none;border:1px solid var(--ink);color:var(--ink)}
[data-theme=magazine] .ph{border-radius:0}
[data-theme=magazine] .bio{font-family:var(--f-head);font-weight:600;border-left-width:2px}
[data-theme=magazine] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:0;box-shadow:0 1px 0 var(--ink),0 24px 60px -30px rgba(0,0,0,.35)}
[data-theme=magazine] .ring-hint{border-radius:0}
[data-theme=magazine] .ft{font-size:19px;letter-spacing:.12em;color:var(--muted)}
[data-theme=magazine] .ft span:last-child{font-family:var(--f-num);font-style:italic;letter-spacing:0;font-size:24px}
/* 封面：刊头 */
[data-theme=magazine] .cover-meta{position:absolute;top:96px;left:128px;right:128px;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:16px;margin:0;font-size:24px;letter-spacing:.1em;color:var(--muted)}
[data-theme=magazine] .cover-meta span:first-child{color:var(--accent-ink);font-weight:700;letter-spacing:.14em}
[data-theme=magazine] .cover{justify-content:flex-end;padding-bottom:110px}
[data-theme=magazine] .cover-title{font-size:184px;line-height:1.04;letter-spacing:-.025em;margin-bottom:40px}
[data-theme=magazine] .cover-sub{font-size:34px;line-height:1.5;color:var(--body2)}
[data-theme=magazine] .cover .byline{margin-top:48px}
[data-theme=magazine] .end .big{font-size:160px;letter-spacing:-.02em}
[data-theme=magazine] .end::before{content:"";position:absolute;top:96px;left:128px;right:128px;border-top:2px solid var(--ink)}
/* 章节页：本期目录 */
[data-theme=magazine] .divider{justify-content:flex-start;padding-top:96px}
[data-theme=magazine] .divider::before{content:"";position:absolute;top:96px;left:128px;right:128px;border-top:2px solid var(--ink)}
[data-theme=magazine] .divider .dv-no{font-size:220px;line-height:.9;margin-top:36px;letter-spacing:-.02em}
[data-theme=magazine] .divider .dv-title{font-size:120px;margin-top:20px;letter-spacing:-.02em}
[data-theme=magazine] .divider .dv-sub{font-family:var(--f-head);font-weight:600;margin-top:20px}
[data-theme=magazine] .divider .dv-map{display:none}
[data-theme=magazine] .divider>.secnav{display:block;position:absolute;left:128px;bottom:96px;width:1060px;columns:2;column-gap:56px;border-top:1px solid var(--ink);padding-top:14px}
[data-theme=magazine] .divider>.secnav li{break-inside:avoid;display:flex;gap:18px;align-items:baseline;padding:7px 0;font-size:22px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-theme=magazine] .divider>.secnav b{font-family:var(--f-num);font-style:italic;font-weight:500;font-size:24px;min-width:34px}
[data-theme=magazine] .divider>.secnav span{overflow:hidden;text-overflow:ellipsis}
[data-theme=magazine] .divider>.secnav li.now{color:var(--ink);font-weight:700}
[data-theme=magazine] .divider>.secnav li.now b{color:var(--accent-ink)}

/* ================= 风格 8 · 柔光 =================
   暖石色底，背景里一团橙蓝柔光加细颗粒（防止投影出现色带）；文字一律落在纯色区，标题用细体。
   章节页换成近黑底配一团暖光，编号是模糊的巨号数字。柔光缓慢漂移，「减少动态效果」时静止。
   「弥散玻璃」配色（presets 里的 glass）只靠下面几个变量换样子，不设时与默认完全一致：
   --glow-wash 整页的弥散色斑（背景渐变），--glass-blur / --glass-sat 卡片毛玻璃的模糊和饱和度，
   --glass-fill 提示条、标签、表格的半透明底，--glass-key-bg / --glass-key-shadow 重点卡片，
   --glow-grain / --glow-grain-blend 颗粒的浓度和混合方式（弥散玻璃用 normal：multiply 的颗粒叠在多层渐变上，导出 PDF 时整页会变成一片粉色） */
[data-theme=glow] .slide{background:var(--glow-wash,var(--bg))}
[data-theme=glow] .slide::before{content:"";position:absolute;right:-260px;top:-300px;width:980px;height:820px;z-index:0;pointer-events:none;background:radial-gradient(44% 40% at 44% 46%,var(--glow-a),transparent 72%),radial-gradient(46% 44% at 64% 64%,var(--glow-b),transparent 74%);filter:blur(60px);opacity:.42}
[data-theme=glow] .slide::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:var(--glow-grain,.08);mix-blend-mode:var(--glow-grain-blend,multiply);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
[data-theme=glow] :is(.cover,.end)::before{right:-160px;top:-120px;width:1180px;height:1280px;opacity:.92;filter:blur(70px)}
[data-theme=glow] .stmt::before{right:-200px;top:auto;bottom:-360px;width:1100px;height:980px;opacity:.7}
@media (prefers-reduced-motion:no-preference){
  [data-theme=glow] .slide.active::before{animation:glow-drift 26s ease-in-out infinite alternate}
}
@keyframes glow-drift{from{translate:0 0;scale:1}to{translate:-70px 50px;scale:1.06}}
[data-theme=glow] :is(.title,.cover-title,.dv-title,.big){letter-spacing:-.015em}
[data-theme=glow] .title{font-size:80px}
[data-theme=glow] :is(.title,.big,.cover-title,.yr-key) em{font-weight:400}
[data-theme=glow] .kicker{color:var(--muted);font-weight:500;letter-spacing:.08em}
[data-theme=glow] .kicker b{font-weight:400}
[data-theme=glow] .kicker b::after{content:"";display:inline-block;width:32px;height:1.5px;background:var(--faint);vertical-align:middle;margin-left:16px}
[data-theme=glow] .box{-webkit-backdrop-filter:blur(var(--glass-blur,6px)) saturate(var(--glass-sat,1));backdrop-filter:blur(var(--glass-blur,6px)) saturate(var(--glass-sat,1))}
[data-theme=glow] .box.key{background:var(--glass-key-bg,rgba(255,255,255,.82));border-color:#fff;box-shadow:var(--glass-key-shadow,0 0 0 2px var(--soft-line),0 24px 50px -26px rgba(70,45,30,.35))}
[data-theme=glow] .card h3,[data-theme=glow] .row h3,[data-theme=glow] .step h3{font-weight:500}
[data-theme=glow] .no{font-size:36px;font-weight:300}
[data-theme=glow] .row .n{font-weight:200;font-size:60px}
[data-theme=glow] .stat .n,[data-theme=glow] .price .amt{font-weight:200;letter-spacing:-.04em}
[data-theme=glow] .sn{font-weight:500}
[data-theme=glow] .q::before{border-radius:50%;font-weight:600}
[data-theme=glow] :is(.callout,.tip){border:0;border-radius:24px;background:var(--glass-fill,rgba(255,255,255,.55))}
[data-theme=glow] .tip{border-left:0;box-shadow:inset 6px 0 0 var(--accent)}
[data-theme=glow] .chips li{background:var(--glass-fill,rgba(255,255,255,.6));border:1px solid rgba(255,255,255,.85)}
[data-theme=glow] .tbl{border-collapse:separate;border-spacing:0;background:var(--glass-fill,rgba(255,255,255,.55));border-radius:28px;overflow:hidden}
[data-theme=glow] .tbl td{border-top:1px solid var(--line)}
[data-theme=glow] .tl::before{height:2px}
[data-theme=glow] .tl>li::before{box-shadow:0 0 0 8px var(--bg),0 0 0 10px var(--soft-line)}
[data-theme=glow] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:28px;border:1px solid rgba(255,255,255,.8);box-shadow:0 30px 70px -30px rgba(70,45,30,.45)}
[data-theme=glow] .ft{color:var(--muted)}
[data-theme=glow] .cover-meta{color:var(--muted);letter-spacing:.1em;font-weight:500}
[data-theme=glow] .cover-meta span+span::before{content:"·";margin-right:28px}
[data-theme=glow] .cover-title{font-size:168px;line-height:1.1;letter-spacing:-.03em}
[data-theme=glow] .cover:has(>.ip) :is(.cover-title,.cover-sub),[data-theme=glow] .end:has(>.ip) :is(.big,.big-sub){max-width:900px}
[data-theme=glow] .avatar{background:var(--ink);color:var(--bg)}
[data-theme=glow] .end .big{font-weight:300}
/* 章节页：近黑底，一团暖光，模糊的巨号编号 */
[data-theme=glow] .divider{background:var(--night);color:#f1ece6}
[data-theme=glow] .divider::before{right:auto;left:-220px;top:auto;bottom:-380px;width:1300px;height:1100px;opacity:.85;filter:blur(80px);background:radial-gradient(44% 40% at 46% 46%,var(--glow-a),transparent 72%),radial-gradient(40% 38% at 70% 30%,var(--glow-b),transparent 74%)}
[data-theme=glow] .divider::after{mix-blend-mode:screen;opacity:.05}
[data-theme=glow] .divider .dv-no{position:absolute;left:128px;top:56px;font-size:560px;line-height:1;font-weight:200;letter-spacing:-.06em;color:#fff;opacity:.16;filter:blur(8px);z-index:0}
[data-theme=glow] .divider .dv-title{font-size:124px;font-weight:300;margin-top:0;color:#fff}
[data-theme=glow] .divider .dv-sub{color:#cfc8c0}
[data-theme=glow] .divider .dv-map li{background:rgba(255,255,255,.14);height:3px}
[data-theme=glow] .divider .dv-map li.done{background:rgba(255,255,255,.4)}
[data-theme=glow] .divider .dv-map li.now{background:#fff}
[data-theme=glow] .divider .dv-map li span{color:rgba(255,255,255,.5)}
[data-theme=glow] .divider .dv-map li.now span{color:#fff}

/* ================= 风格 9 · 中古 =================
   成年人的活泼：奶油底，芥末、青、珊瑚、橄榄、海军蓝的平面色块（拱门、半圆、花瓣）从页边伸进来，不压文字；
   不描边、不投影，一页最多三种颜色。粗黑体收紧字距，英文点缀用 Young Serif。和「波普」的区别：没有黑描边和硬投影 */
[data-theme=midcentury] :is(.title,.cover-title,.dv-title,.big){letter-spacing:-.035em}
[data-theme=midcentury] .title{font-size:80px;line-height:1.16}
[data-theme=midcentury] .kicker{color:var(--s6);font-weight:700;letter-spacing:.02em}
[data-theme=midcentury] .kicker b{font-family:"Young Serif",var(--cjk-serif),serif;font-weight:400;font-size:30px;color:var(--s6)}
[data-theme=midcentury] .box.key{background:var(--s1);color:var(--s1-on)}
[data-theme=midcentury] .box.key :is(p,.meta,.no,.badge,h3){color:inherit}
[data-theme=midcentury] .box.key .badge{border-color:currentColor;background:none}
[data-theme=midcentury] .no{font-size:34px}
[data-theme=midcentury] .row .n{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-size:30px}
[data-theme=midcentury] .sn{background:var(--s3);color:var(--ink)}
[data-theme=midcentury] .q::before{border-radius:50% 50% 0 50%;background:var(--accent)}
[data-theme=midcentury] :is(.callout,.tip){border:0;border-radius:var(--box-radius);background:var(--soft)}
[data-theme=midcentury] .tip{border-left:0;box-shadow:inset 10px 0 0 var(--s3)}
[data-theme=midcentury] .tip b{color:var(--s6)}
[data-theme=midcentury] .chips li{border:0;background:var(--box-bg)}
[data-theme=midcentury] .badge{border:0;background:var(--soft);color:var(--accent-ink)}
[data-theme=midcentury] .tag{background:var(--s3);color:var(--ink)}
[data-theme=midcentury] .tl::before{height:6px;border-radius:3px;background:var(--soft-line)}
[data-theme=midcentury] .tl>li::before{background:var(--s1);box-shadow:0 0 0 8px var(--bg)}
[data-theme=midcentury] .tl>li:nth-child(3n+2)::before{background:var(--s3)}
[data-theme=midcentury] .tl>li:nth-child(3n)::before{background:var(--accent)}
[data-theme=midcentury] .cmp .h.t1 span{background:var(--accent)}
[data-theme=midcentury] .cmp .h.t2 span{background:var(--s1);color:var(--ink);border:0}
[data-theme=midcentury] .tbl{border-collapse:separate;border-spacing:0;background:var(--box-bg);border-radius:var(--box-radius);overflow:hidden}
[data-theme=midcentury] .tbl th{background:var(--accent);color:var(--on-accent)}
[data-theme=midcentury] .tbl td{border-top:1px solid var(--line)}
[data-theme=midcentury] .tbl td:first-child,[data-theme=midcentury] .tbl th:first-child{color:inherit}
[data-theme=midcentury] .stat .n{color:var(--accent-ink);letter-spacing:-.03em}
[data-theme=midcentury] .avatar{background:var(--s3);color:var(--ink)}
[data-theme=midcentury] .kol .av{background:var(--soft);border:0}
[data-theme=midcentury] .ph{border-radius:var(--box-radius)}
[data-theme=midcentury] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:20px;border:0;box-shadow:none}
[data-theme=midcentury] .ft{color:var(--muted)}
/* 内容页右上角伸进来一个四分之一圆 */
[data-theme=midcentury] .slide::after{content:"";position:absolute;right:-150px;top:-150px;width:300px;height:300px;border-radius:50%;background:var(--s1);z-index:0;pointer-events:none}
[data-theme=midcentury] .slide[data-tone="2"]::after{background:var(--s3)}
[data-theme=midcentury] .slide[data-tone="3"]::after{background:var(--accent)}
[data-theme=midcentury] .slide[data-tone="4"]::after{background:var(--s4)}
/* 封面与结尾：芥末拱门托住形象，青色半圆、珊瑚花瓣点缀 */
[data-theme=midcentury] :is(.cover,.end,.stmt)::after{display:none}
[data-theme=midcentury] .cover .deco>*{display:block;position:absolute}
[data-theme=midcentury] .cover .deco .d1{right:150px;bottom:0;width:560px;height:780px;border-radius:280px 280px 0 0;background:var(--s1)}
[data-theme=midcentury] .cover .deco .d2{right:-170px;top:-170px;width:480px;height:480px;border-radius:50%;background:var(--accent)}
[data-theme=midcentury] .cover .deco .d3{right:690px;bottom:96px;width:200px;height:200px;border-radius:50% 0;background:var(--s3)}
[data-theme=midcentury] .cover:not(:has(>.ip)) .deco .d3{right:420px}
[data-theme=midcentury] .cover-meta{font-family:"Young Serif",var(--cjk-serif),serif;color:var(--s6);font-size:30px;letter-spacing:0}
[data-theme=midcentury] .cover-meta span+span::before{content:"·";margin-right:28px}
[data-theme=midcentury] .cover-title{font-size:168px;line-height:1.04}
[data-theme=midcentury] .cover :is(.cover-title,.cover-sub){max-width:980px}
[data-theme=midcentury] .end::before{content:"";position:absolute;right:110px;bottom:0;width:420px;height:800px;border-radius:210px 210px 0 0;background:var(--accent);z-index:0}
[data-theme=midcentury] .end .big{font-size:150px}
/* 金句页：一片大花瓣从右下角伸进来，托住半身像 */
[data-theme=midcentury] .stmt::before{content:"";position:absolute;right:-110px;bottom:-110px;width:540px;height:540px;border-radius:50% 0;background:var(--s1);z-index:0}
[data-theme=midcentury] .stmt[data-tone="2"]::before{background:var(--s3)}
[data-theme=midcentury] .stmt[data-tone="3"]::before{background:var(--accent)}
[data-theme=midcentury] .stmt[data-tone="4"]::before{background:var(--s4)}
[data-theme=midcentury] .stmt .big em,[data-theme=midcentury] .title em{color:var(--accent-ink)}
/* 章节页：一页一个满版色底，按章节轮换；奶油色半圆从左下伸进来 */
[data-theme=midcentury] .divider{background:var(--accent);color:var(--on-accent);--dv-shape:var(--s1);--dv-ink:var(--on-accent)}
[data-theme=midcentury] .divider[data-tone="2"]{background:var(--s1);--dv-ink:var(--s1-on);--dv-shape:var(--accent)}
[data-theme=midcentury] .divider[data-tone="3"]{background:var(--s3);--dv-ink:var(--ink);--dv-shape:var(--s5)}
[data-theme=midcentury] .divider[data-tone="4"]{background:var(--s5);--dv-ink:#f3ead8;--dv-shape:var(--s3)}
[data-theme=midcentury] .divider{color:var(--dv-ink)}
[data-theme=midcentury] .divider::before{content:"";position:absolute;left:-200px;bottom:-330px;width:760px;height:760px;border-radius:50%;background:var(--bg);opacity:.16;z-index:0}
[data-theme=midcentury] .slide.divider::after{display:block;right:120px;top:auto;bottom:0;width:520px;height:680px;border-radius:260px 260px 0 0;background:var(--dv-shape)}
[data-theme=midcentury] .divider .dv-no{color:var(--dv-ink);font-size:280px;letter-spacing:-.05em}
[data-theme=midcentury] .divider .dv-sub{color:var(--dv-ink);opacity:.86}
[data-theme=midcentury] .divider .dv-map li{background:color-mix(in srgb,var(--dv-ink) 25%,transparent);height:8px;border-radius:4px}
[data-theme=midcentury] .divider .dv-map li.done{background:color-mix(in srgb,var(--dv-ink) 55%,transparent)}
[data-theme=midcentury] .divider .dv-map li.now{background:var(--dv-ink)}
[data-theme=midcentury] .divider .dv-map li span,[data-theme=midcentury] .divider .dv-map li.now span{color:var(--dv-ink)}

/* ================= 风格 10 · 终端 =================
   手把手实操：炭黑底，每页是一扇控制台窗口，标题栏写路径（由页脚改成），标题前加 $；
   底部状态栏就是章节导航。琥珀是主色，绿色只表示「成功」；不画红黄绿三个圆点，不用黑底绿字。
   标题和数字用等宽字体，正文长段落回到黑体 */
[data-theme=terminal] .slide{padding:124px 128px 126px}
[data-theme=terminal] .slide::before{content:"";position:absolute;left:64px;right:64px;top:32px;bottom:94px;background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;z-index:0;pointer-events:none}
[data-theme=terminal] .slide::after{content:"";position:absolute;left:65px;right:65px;top:88px;height:1px;background:var(--panel-line);z-index:0;pointer-events:none}
[data-theme=terminal] .slide>.ft{top:33px;bottom:auto;left:96px;right:96px;height:55px;align-items:center;font:400 20px/1 var(--f-mono);color:var(--muted)}
[data-theme=terminal] .slide>.ft span:first-child::before{content:"~/ ";color:var(--faint)}
[data-theme=terminal] .slide>.ft span:last-child{color:var(--faint)}
[data-theme=terminal] .slide.nofoot>.secnav{display:none}
[data-theme=terminal] .slide>.secnav{display:flex;position:absolute;left:64px;right:64px;bottom:22px;height:52px;align-items:stretch;gap:4px;z-index:1;font:500 20px/1 var(--f-mono);color:var(--muted);overflow:hidden}
[data-theme=terminal] .secnav li{display:flex;align-items:center;padding:0 14px;border-radius:6px;white-space:nowrap}
[data-theme=terminal] .secnav li.done{color:var(--body2)}
[data-theme=terminal] .secnav li.now{background:var(--accent);color:var(--on-accent);font-weight:700}
[data-theme=terminal] .secnav span{display:none}
[data-theme=terminal] .secnav li.now span{display:inline;margin-left:.7em}
[data-theme=terminal] .hd{margin-bottom:44px}
[data-theme=terminal] .kicker{font:500 23px/1.3 var(--f-mono);color:var(--muted);letter-spacing:0}
[data-theme=terminal] .kicker b::before{content:"#"}
[data-theme=terminal] .title{font-size:72px;line-height:1.24;letter-spacing:-.01em}
[data-theme=terminal] .hd .title::before,[data-theme=terminal] .split .title::before{content:"$";color:var(--accent-ink);margin-right:.45em;font-weight:700}
[data-theme=terminal] .lead{color:var(--body2)}
[data-theme=terminal] .box.key{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
[data-theme=terminal] :is(.badge,.tag,.chips li,.tabs li,.job dt,.label,.cap,.note,.tl .out b,.pairs .ph-h,.lanes .lh,.cmp .l){font-family:var(--f-mono)}
[data-theme=terminal] .label::before{content:"// ";color:var(--faint)}
[data-theme=terminal] .no{font-size:28px}
[data-theme=terminal] .no::before{content:"["}
[data-theme=terminal] .no::after{content:"]"}
[data-theme=terminal] .sn,[data-theme=terminal] .q::before{border-radius:6px}
[data-theme=terminal] .chips li{background:var(--box-bg);border:1px solid var(--panel-line)}
[data-theme=terminal] :is(.callout,.tip){border:1px solid var(--panel-line);border-left:4px solid var(--accent);border-radius:8px;background:var(--box-bg)}
[data-theme=terminal] .tip b::before{content:"> "}
[data-theme=terminal] .checks li::before{border-radius:8px;color:var(--bg);font-family:var(--f-mono)}
[data-theme=terminal] .pairs .box.bad::before,[data-theme=terminal] .pairs .box.good::before{border-radius:6px;color:var(--bg)}
[data-theme=terminal] .tl::before{height:2px;background:repeating-linear-gradient(90deg,var(--faint) 0 10px,transparent 10px 18px)}
[data-theme=terminal] .tl>li::before{border-radius:4px;box-shadow:0 0 0 8px var(--panel)}
[data-theme=terminal] .tl .when{font-family:var(--f-mono)}
[data-theme=terminal] .tbl{font-size:28px}
[data-theme=terminal] .tbl th{font-family:var(--f-mono);border-bottom:1px solid var(--faint);color:var(--accent-ink)}
[data-theme=terminal] .tbl td{border-bottom:1px dashed var(--panel-line)}
[data-theme=terminal] .cmp>*{border-top:1px dashed var(--panel-line)}
[data-theme=terminal] .cmp>.h{border-top:0}
[data-theme=terminal] .stat .n{letter-spacing:-.04em}
[data-theme=terminal] .avatar{border-radius:10px}
[data-theme=terminal] .kol .av{border-radius:12px}
[data-theme=terminal] .ph{border-radius:10px}
[data-theme=terminal] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img){border-radius:8px;border:1px solid var(--panel-line);box-shadow:0 24px 60px rgba(0,0,0,.45)}
[data-theme=terminal] .qr img{border-radius:10px}
[data-theme=terminal] .ring-hint{border-radius:6px;font-family:var(--f-mono)}
/* 封面与结尾：一扇大窗口，标题栏放角标，标题后有光标 */
[data-theme=terminal] :is(.cover,.end){padding-top:96px}
[data-theme=terminal] :is(.cover,.end)::before{bottom:32px}
[data-theme=terminal] .cover-meta{position:absolute;top:42px;left:112px;right:112px;height:40px;margin:0;align-items:center;font:400 20px/1 var(--f-mono);color:var(--muted);letter-spacing:0;gap:0}
[data-theme=terminal] .cover-meta::before{content:"~/ ";white-space:pre;color:var(--faint)}
[data-theme=terminal] .cover-meta span+span::before{content:" · "}
[data-theme=terminal] .cover-title{font-size:150px;line-height:1.12;letter-spacing:-.03em}
[data-theme=terminal] .cover-title::before{content:"$ ";color:var(--accent-ink);font-size:.6em;vertical-align:.25em}
[data-theme=terminal] :is(.cover-title,.end .big)::after{content:"";display:inline-block;width:.5em;height:.82em;margin-left:.12em;vertical-align:-.06em;background:var(--accent)}
@media (prefers-reduced-motion:no-preference){
  [data-theme=terminal] .slide.active :is(.cover-title,.end .big)::after{animation:term-blink 1.1s steps(1) infinite}
}
@keyframes term-blink{50%{opacity:0}}
[data-theme=terminal] .cover-sub{font-size:32px;color:var(--body2)}
[data-theme=terminal] .cover-sub::before{content:"→ ";color:var(--ok)}
[data-theme=terminal] .end .big{font-size:140px}
/* 章节页：大号编号，状态栏照常显示 */
[data-theme=terminal] .divider .dv-no{font-size:220px;color:var(--accent-ink);letter-spacing:-.06em}
[data-theme=terminal] .divider .dv-title{font-size:104px;margin-top:28px}
[data-theme=terminal] .divider .dv-title::before{content:"cd ";color:var(--faint);font-size:.5em;vertical-align:.25em}
[data-theme=terminal] .divider .dv-sub{font-family:var(--f-mono);font-size:32px}
[data-theme=terminal] .divider .dv-sub::before{content:"# ";color:var(--faint)}
[data-theme=terminal] .divider .dv-map{display:none}
[data-theme=terminal] .divider::after{display:none}
[data-theme=terminal] .divider::before{bottom:94px}
[data-theme=terminal] .divider:not(:has(>.secnav))::before{bottom:32px}

/* ================= 风格 11 · 宋韵新中式（song） =================
   宋式美学：月白纸色、墨色宋体标题、天青强调，细线、大留白。内容页四周一道「文武线」（外粗内细）边框，
   右侧书口竖排当前章节名、上面一枚鱼尾；封面右上一条竖排题签，章节页一轮满月和印章式的章节号。
   朱红只用在印章上（章节号、作者头像），一页最多一处；装饰全是细线和几何，不用水墨图片 */
[data-theme=song]{
  --frame:#d8dad2;--bg:#f2f2ec;--ink:#1c2125;--body2:#3a4145;--muted:#565e63;--faint:#969c9a;--line:#d5d8d0;
  --accent:#2b6670;--accent2:#2b6670;--accent-ink:#2b6670;--on-accent:#fff;--soft:#e1e9e6;--soft-line:#9bbab9;--em-mark:transparent;
  --seal:#b03a2e;--on-seal:#fbf6ec;
  --rule:color-mix(in srgb,var(--ink) 58%,var(--bg));--rule-soft:color-mix(in srgb,var(--ink) 20%,var(--bg));
  --moon:color-mix(in srgb,var(--accent) 13%,var(--bg));
  --good:#2f6b52;--bad:#b03a2e;
  --box-bg:rgba(255,255,255,.45);--box-border:1px solid var(--rule-soft);--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:var(--cjk-serif),"Songti SC","STSong",serif;--f-body:var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Newsreader",var(--cjk-serif),"Songti SC",serif;
  --title-w:900;--h3-w:700;--num-w:600;--num-style:normal}
/* 内容页：文武线边框；页脚收进框里 */
[data-theme=song] .slide::before{content:"";position:absolute;inset:34px 40px;border:2px solid var(--rule);box-shadow:inset 0 0 0 5px var(--bg),inset 0 0 0 6px var(--rule);pointer-events:none;z-index:0}
[data-theme=song] .slide>.ft{bottom:58px;font-size:19px;letter-spacing:.12em;color:var(--muted)}
[data-theme=song] .slide>.ft span:last-child{font-family:var(--f-num);letter-spacing:.04em}
/* 书口：右侧竖排当前章节名，上面一枚黑鱼尾 */
[data-theme=song] .slide:not(.cover,.divider,.end,.nofoot)>.secnav:has(.now){display:block;position:absolute;right:72px;top:96px;z-index:1}
[data-theme=song] .slide:not(.nofoot):has(>.secnav .now)>.ft span:first-child{visibility:hidden}
[data-theme=song] .secnav li{display:none}
[data-theme=song] .secnav li.now{display:flex;flex-direction:column;align-items:center;gap:16px}
[data-theme=song] .secnav li.now::before{content:"";width:20px;height:16px;background:var(--rule);clip-path:polygon(0 0,100% 0,100% 100%,50% 58%,0 100%)}
[data-theme=song] .secnav b{display:none}
[data-theme=song] .secnav span{writing-mode:vertical-rl;max-height:560px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:600 20px/1 var(--f-head);letter-spacing:.32em;color:var(--muted)}
/* 文字 */
[data-theme=song] :is(.title,.cover-title,.dv-title,.big){letter-spacing:.02em}
[data-theme=song] .title{font-size:76px;line-height:1.28}
[data-theme=song] .kicker{font-family:var(--f-head);font-size:24px;font-weight:700;letter-spacing:.22em;color:var(--accent-ink)}
[data-theme=song] .kicker b{font-size:28px;letter-spacing:.04em}
[data-theme=song] .kicker b::after{content:"";display:inline-block;width:1px;height:26px;margin-left:18px;vertical-align:-5px;background:var(--rule)}
[data-theme=song] .lead{color:var(--body2)}
[data-theme=song] .label{font-family:var(--f-head);color:var(--accent-ink);letter-spacing:.16em}
[data-theme=song] .big-sub b{font-family:var(--f-head)}
/* 卡片：细线框；重点卡片多一道内框（双线） */
[data-theme=song] .box.key{border-color:var(--accent);outline:1px solid var(--soft-line);outline-offset:-8px}
[data-theme=song] .no{font-size:30px;letter-spacing:.04em}
[data-theme=song] .row .n{font-size:44px}
[data-theme=song] .badge{background:none;border-color:var(--soft-line);font-weight:600;letter-spacing:.06em}
[data-theme=song] :is(.badge.solid,.tag){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
[data-theme=song] .chips li{background:var(--box-bg);border:1px solid var(--rule-soft)}
[data-theme=song] .tabs li{border-color:var(--rule-soft)}
[data-theme=song] .sn{border-radius:0;background:none;border:1.5px solid var(--accent);color:var(--accent-ink);font-weight:700}
[data-theme=song] .q::before{content:"问";border-radius:0;font-family:var(--f-head);font-weight:900;font-size:26px}
[data-theme=song]:lang(zh-TW) .q::before,[data-theme=song]:lang(zh-Hant) .q::before{content:"問"}
[data-theme=song]:lang(en) .q::before{content:"Q"}
[data-theme=song] :is(.callout,.tip){border-radius:0}
[data-theme=song] .callout{background:var(--soft);border:1px solid var(--soft-line)}
[data-theme=song] .tip{border-left:3px solid var(--accent);background:var(--soft)}
[data-theme=song] .tip b{font-family:var(--f-head);letter-spacing:.2em}
[data-theme=song] .checks li::before{border-radius:0;background:none;border:2px solid var(--good);color:var(--good);width:62px;height:62px;font-size:34px}
[data-theme=song] .checks.donts li::before{border-color:var(--bad);color:var(--bad);width:54px;height:54px;font-size:28px}
[data-theme=song] .pairs .box.bad::before,[data-theme=song] .pairs .box.good::before{border-radius:0;width:40px;height:40px;font-size:22px}
/* 时间线：细线上的菱形节点 */
[data-theme=song] .tl::before{height:1px;top:20px;background:var(--rule)}
[data-theme=song] .tl>li::before{left:7px;top:9px;width:22px;height:22px;border-radius:0;rotate:45deg;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 0 8px var(--bg)}
[data-theme=song] .tl>li:first-child::before{background:var(--accent)}
[data-theme=song] .tl .when{font-weight:900}
[data-theme=song] .tl .out{border-top:1px solid var(--rule-soft)}
[data-theme=song] :is(.card .meta,.org .out){border-top:1px solid var(--rule-soft)}
/* 对比、表格：上下两道粗线、中间细线 */
[data-theme=song] .cmp>*{border-top-color:var(--rule-soft)}
[data-theme=song] .cmp .h span{border-radius:0;font-weight:700;letter-spacing:.06em}
[data-theme=song] .cmp .h.t2 span{background:none;border-color:var(--accent)}
[data-theme=song] .tbl{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
[data-theme=song] .tbl th{border-bottom:1px solid var(--ink);letter-spacing:.04em}
[data-theme=song] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=song] .tbl tr:last-child td{border-bottom:0}
/* 数字 */
[data-theme=song] .stat .n,[data-theme=song] .price .amt{font-weight:700;letter-spacing:-.01em}
[data-theme=song] .stat .l{font-family:var(--f-head)}
[data-theme=song] .stat .n small{font-family:var(--f-head);color:var(--accent-ink)}
[data-theme=song] .stats3 .stat:first-child .n{color:var(--accent-ink)}
[data-theme=song] .eq .op{font-family:var(--f-head);font-weight:400}
/* 图片与占位：直角细框，像装裱 */
[data-theme=song] .ph{border-radius:0;border:1px dashed var(--faint)}
[data-theme=song] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:1px solid var(--rule-soft);box-shadow:0 18px 40px -26px rgba(28,33,37,.35)}
[data-theme=song] :is(.shotbox img,.tallshot img){padding:10px;background:#fff}
[data-theme=song] .shot{border-radius:0}
[data-theme=song] .kol .av{border-radius:0;border:1px solid var(--soft-line);background:var(--soft);font-family:var(--f-head)}
[data-theme=song] .ring-hint{border-radius:0}
[data-theme=song] .bio{border-left:2px solid var(--accent);font-family:var(--f-head);font-weight:600}
/* 作者头像做成印章：朱红方印，白色内框；有照片时是朱红边框 */
[data-theme=song] .avatar{border-radius:6px;background:var(--seal);color:var(--on-seal);font-family:var(--f-head);font-weight:900;box-shadow:inset 0 0 0 5px var(--seal),inset 0 0 0 7px var(--on-seal)}
[data-theme=song] .avatar:has(img){padding:5px;border-radius:6px;box-shadow:none}
[data-theme=song] .avatar img{border-radius:2px}
/* 封面：右上一条竖排题签（双线框），背后一轮天青满月 */
[data-theme=song] .cover-meta{position:absolute;right:150px;top:108px;margin:0;writing-mode:vertical-rl;gap:22px;padding:30px 14px;background:var(--bg);border:1px solid var(--rule);outline:1px solid var(--rule);outline-offset:5px;font-family:var(--f-head);font-size:26px;font-weight:700;letter-spacing:.3em;color:var(--ink)}
[data-theme=song] .cover-meta span+span::before{content:"";display:inline-block;width:7px;height:7px;margin:0 0 22px;background:var(--accent);rotate:45deg;vertical-align:middle}
[data-theme=song] .cover:has(>.ip) .cover-meta{right:128px}
[data-theme=song] .cover .deco>*{display:block;position:absolute;border-radius:50%}
[data-theme=song] .cover .deco .d1{right:300px;top:130px;width:560px;height:560px;background:var(--moon)}
[data-theme=song] .cover .deco .d2{right:250px;top:80px;width:660px;height:660px;border:1px solid var(--soft-line)}
[data-theme=song] .cover .deco .d3{display:none}
[data-theme=song] .cover:has(>.ip) .deco .d1{right:200px;top:170px;width:600px;height:600px}
[data-theme=song] .cover:has(>.ip) .deco .d2{right:150px;top:120px;width:700px;height:700px}
[data-theme=song] .cover-title{font-size:168px;line-height:1.12;letter-spacing:.03em}
[data-theme=song] .cover:not(:has(>.ip)) :is(.cover-title,.cover-sub){max-width:1240px}
[data-theme=song] .cover-sub{font-family:var(--f-head);font-weight:600;color:var(--body2)}
/* 章节页：浅天青底，一轮月白满月；章节号是朱红方印 */
[data-theme=song] .divider{background:color-mix(in srgb,var(--accent) 11%,var(--bg))}
[data-theme=song] .divider::before{inset:auto;right:150px;top:50%;width:720px;height:720px;margin-top:-400px;border:0;border-radius:50%;background:var(--bg);box-shadow:0 0 0 1px var(--soft-line),0 0 0 26px color-mix(in srgb,var(--bg) 40%,transparent)}
[data-theme=song] .divider:has(>.ip)::before{right:110px;width:640px;height:640px;margin-top:-330px}
[data-theme=song] .divider .dv-no{min-width:156px;height:156px;padding:0 22px;display:grid;place-items:center;font-size:76px;font-weight:900;line-height:1;letter-spacing:.02em;background:var(--seal);color:var(--on-seal);border-radius:8px;box-shadow:inset 0 0 0 7px var(--seal),inset 0 0 0 9px var(--on-seal)}
[data-theme=song] .divider .dv-title{font-size:120px;margin-top:56px;max-width:1100px}
[data-theme=song] .divider .dv-sub{font-family:var(--f-head);font-weight:600;color:var(--body2)}
[data-theme=song] .dv-map{gap:0;border-top:1px solid var(--rule-soft)}
[data-theme=song] .dv-map li{height:0;border-radius:0;background:none}
[data-theme=song] .dv-map li.done{background:none}
[data-theme=song] .dv-map li.now::before{content:"";position:absolute;left:0;right:12px;top:-2px;height:3px;background:var(--accent)}
[data-theme=song] .dv-map li span{top:16px;font-family:var(--f-num)}
/* 金句页：左侧竖排眉题，金句前一道细竖线 */
[data-theme=song] .stmt{padding-left:300px}
[data-theme=song] .stmt .kicker{position:absolute;left:150px;top:50%;translate:0 -50%;margin:0;writing-mode:vertical-rl;gap:16px;font-size:26px;letter-spacing:.36em;max-height:620px}
[data-theme=song] .slide.active.stmt .kicker{animation:none}
[data-theme=song] .stmt .kicker b{text-combine-upright:all;letter-spacing:0}
[data-theme=song] .stmt .kicker b::after{width:26px;height:1px;margin:18px 0 0;vertical-align:middle}
[data-theme=song] .stmt .chips{margin-top:40px}
[data-theme=song] .stmt::after{content:"";position:absolute;left:226px;top:50%;width:1px;height:360px;margin-top:-180px;background:var(--rule-soft)}
[data-theme=song] .stmt .big{line-height:1.36}
[data-theme=song] .stmt.has-ip :is(.big,.big-sub){max-width:1180px}
/* 结尾：满月在右，作者印章 */
[data-theme=song] .end::after{content:"";position:absolute;right:240px;top:210px;width:560px;height:560px;border-radius:50%;background:var(--moon);box-shadow:0 0 0 48px var(--bg),0 0 0 49px var(--soft-line);z-index:0}
[data-theme=song] .end .big-sub{font-family:var(--f-head);font-weight:600}
[data-theme=song] .end:has(>.qrs)::after{display:none}
[data-theme=song] .end .big{font-size:150px;letter-spacing:.06em}
/* 英文：竖排眉题、题签改回横排 */
[data-theme=song]:lang(en) .title{font-size:68px;line-height:1.18;letter-spacing:0}
[data-theme=song]:lang(en) :is(.cover-title,.dv-title,.big){letter-spacing:-.005em}
[data-theme=song]:lang(en) .cover-title{font-size:132px;line-height:1.04}
[data-theme=song]:lang(en) .cover:not(:has(>.ip)) .cover-title{max-width:1560px}
[data-theme=song]:lang(en) .kicker{letter-spacing:.08em}
[data-theme=song]:lang(en) .cover-meta{writing-mode:horizontal-tb;position:static;align-self:flex-start;margin:0 0 44px 5px;padding:12px 26px;letter-spacing:.12em;font-size:22px}
[data-theme=song]:lang(en) .cover-meta span+span::before{margin:0 22px 0 0}
[data-theme=song]:lang(en) .stmt .kicker{letter-spacing:.14em}
[data-theme=song]:lang(en) .end .big{font-size:132px;letter-spacing:0}
/* ---- 风格 11 · song 结束 ---- */

/* ================= 风格 12 · 国潮撞色（guochao） =================
   中国红、明黄、靛蓝三色撞色：封面和结尾页整页铺红，一轮明黄的日头，上下两道回纹；章节页红、靛蓝按章轮换。
   内容页米色纸底，底边一道红色回纹、右上一朵靛蓝祥云，卡片顶边按红、黄、蓝轮换。
   标题用站酷庆科黄油体（简体与英文；繁体演示稿换成思源黑体 TC 粗体，不混用字形），数字用 Inter 粗体。
   纹样都是内联 SVG 遮罩，颜色跟着配色走 */
[data-theme=guochao]{
  --frame:#e3d6bd;--bg:#f7eedb;--ink:#2a1712;--body2:#4b342b;--muted:#6b5248;--faint:#a68e7d;--line:#e2d2b6;
  --accent:#b01e17;--accent2:#b01e17;--accent-ink:#b01e17;--on-accent:#fff3dc;--soft:#f2dcc9;--soft-line:#d8968a;
  --gc-2:#ffd23a;--on-2:#2a1712;--gc-3:#1f3a6b;--on-3:#fff3dc;--hero-em:#ffd23a;
  /* 回纹带是一整条 SVG 线条、颜色写在里面（宽的遮罩导出 PDF 会被截断，平铺的渐变会把 PDF 撑得很大）；
     换配色、自定义强调色时由主题清单换成对应颜色（index.ts 的 guochaoArt） */
  --gc-band:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201944%2024'%20width='1944'%20height='24'%3E%3Cpath%20d='M0%2021.5H1944M4.5%2021.5V3.5H31.5V16.5H10.5V9.5H24.5M40.5%2021.5V3.5H67.5V16.5H46.5V9.5H60.5M76.5%2021.5V3.5H103.5V16.5H82.5V9.5H96.5M112.5%2021.5V3.5H139.5V16.5H118.5V9.5H132.5M148.5%2021.5V3.5H175.5V16.5H154.5V9.5H168.5M184.5%2021.5V3.5H211.5V16.5H190.5V9.5H204.5M220.5%2021.5V3.5H247.5V16.5H226.5V9.5H240.5M256.5%2021.5V3.5H283.5V16.5H262.5V9.5H276.5M292.5%2021.5V3.5H319.5V16.5H298.5V9.5H312.5M328.5%2021.5V3.5H355.5V16.5H334.5V9.5H348.5M364.5%2021.5V3.5H391.5V16.5H370.5V9.5H384.5M400.5%2021.5V3.5H427.5V16.5H406.5V9.5H420.5M436.5%2021.5V3.5H463.5V16.5H442.5V9.5H456.5M472.5%2021.5V3.5H499.5V16.5H478.5V9.5H492.5M508.5%2021.5V3.5H535.5V16.5H514.5V9.5H528.5M544.5%2021.5V3.5H571.5V16.5H550.5V9.5H564.5M580.5%2021.5V3.5H607.5V16.5H586.5V9.5H600.5M616.5%2021.5V3.5H643.5V16.5H622.5V9.5H636.5M652.5%2021.5V3.5H679.5V16.5H658.5V9.5H672.5M688.5%2021.5V3.5H715.5V16.5H694.5V9.5H708.5M724.5%2021.5V3.5H751.5V16.5H730.5V9.5H744.5M760.5%2021.5V3.5H787.5V16.5H766.5V9.5H780.5M796.5%2021.5V3.5H823.5V16.5H802.5V9.5H816.5M832.5%2021.5V3.5H859.5V16.5H838.5V9.5H852.5M868.5%2021.5V3.5H895.5V16.5H874.5V9.5H888.5M904.5%2021.5V3.5H931.5V16.5H910.5V9.5H924.5M940.5%2021.5V3.5H967.5V16.5H946.5V9.5H960.5M976.5%2021.5V3.5H1003.5V16.5H982.5V9.5H996.5M1012.5%2021.5V3.5H1039.5V16.5H1018.5V9.5H1032.5M1048.5%2021.5V3.5H1075.5V16.5H1054.5V9.5H1068.5M1084.5%2021.5V3.5H1111.5V16.5H1090.5V9.5H1104.5M1120.5%2021.5V3.5H1147.5V16.5H1126.5V9.5H1140.5M1156.5%2021.5V3.5H1183.5V16.5H1162.5V9.5H1176.5M1192.5%2021.5V3.5H1219.5V16.5H1198.5V9.5H1212.5M1228.5%2021.5V3.5H1255.5V16.5H1234.5V9.5H1248.5M1264.5%2021.5V3.5H1291.5V16.5H1270.5V9.5H1284.5M1300.5%2021.5V3.5H1327.5V16.5H1306.5V9.5H1320.5M1336.5%2021.5V3.5H1363.5V16.5H1342.5V9.5H1356.5M1372.5%2021.5V3.5H1399.5V16.5H1378.5V9.5H1392.5M1408.5%2021.5V3.5H1435.5V16.5H1414.5V9.5H1428.5M1444.5%2021.5V3.5H1471.5V16.5H1450.5V9.5H1464.5M1480.5%2021.5V3.5H1507.5V16.5H1486.5V9.5H1500.5M1516.5%2021.5V3.5H1543.5V16.5H1522.5V9.5H1536.5M1552.5%2021.5V3.5H1579.5V16.5H1558.5V9.5H1572.5M1588.5%2021.5V3.5H1615.5V16.5H1594.5V9.5H1608.5M1624.5%2021.5V3.5H1651.5V16.5H1630.5V9.5H1644.5M1660.5%2021.5V3.5H1687.5V16.5H1666.5V9.5H1680.5M1696.5%2021.5V3.5H1723.5V16.5H1702.5V9.5H1716.5M1732.5%2021.5V3.5H1759.5V16.5H1738.5V9.5H1752.5M1768.5%2021.5V3.5H1795.5V16.5H1774.5V9.5H1788.5M1804.5%2021.5V3.5H1831.5V16.5H1810.5V9.5H1824.5M1840.5%2021.5V3.5H1867.5V16.5H1846.5V9.5H1860.5M1876.5%2021.5V3.5H1903.5V16.5H1882.5V9.5H1896.5M1912.5%2021.5V3.5H1939.5V16.5H1918.5V9.5H1932.5'%20fill='none'%20stroke='%23b01e17'%20stroke-width='3'/%3E%3C/svg%3E");
  --gc-band-2:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201944%2024'%20width='1944'%20height='24'%3E%3Cpath%20d='M0%2021.5H1944M4.5%2021.5V3.5H31.5V16.5H10.5V9.5H24.5M40.5%2021.5V3.5H67.5V16.5H46.5V9.5H60.5M76.5%2021.5V3.5H103.5V16.5H82.5V9.5H96.5M112.5%2021.5V3.5H139.5V16.5H118.5V9.5H132.5M148.5%2021.5V3.5H175.5V16.5H154.5V9.5H168.5M184.5%2021.5V3.5H211.5V16.5H190.5V9.5H204.5M220.5%2021.5V3.5H247.5V16.5H226.5V9.5H240.5M256.5%2021.5V3.5H283.5V16.5H262.5V9.5H276.5M292.5%2021.5V3.5H319.5V16.5H298.5V9.5H312.5M328.5%2021.5V3.5H355.5V16.5H334.5V9.5H348.5M364.5%2021.5V3.5H391.5V16.5H370.5V9.5H384.5M400.5%2021.5V3.5H427.5V16.5H406.5V9.5H420.5M436.5%2021.5V3.5H463.5V16.5H442.5V9.5H456.5M472.5%2021.5V3.5H499.5V16.5H478.5V9.5H492.5M508.5%2021.5V3.5H535.5V16.5H514.5V9.5H528.5M544.5%2021.5V3.5H571.5V16.5H550.5V9.5H564.5M580.5%2021.5V3.5H607.5V16.5H586.5V9.5H600.5M616.5%2021.5V3.5H643.5V16.5H622.5V9.5H636.5M652.5%2021.5V3.5H679.5V16.5H658.5V9.5H672.5M688.5%2021.5V3.5H715.5V16.5H694.5V9.5H708.5M724.5%2021.5V3.5H751.5V16.5H730.5V9.5H744.5M760.5%2021.5V3.5H787.5V16.5H766.5V9.5H780.5M796.5%2021.5V3.5H823.5V16.5H802.5V9.5H816.5M832.5%2021.5V3.5H859.5V16.5H838.5V9.5H852.5M868.5%2021.5V3.5H895.5V16.5H874.5V9.5H888.5M904.5%2021.5V3.5H931.5V16.5H910.5V9.5H924.5M940.5%2021.5V3.5H967.5V16.5H946.5V9.5H960.5M976.5%2021.5V3.5H1003.5V16.5H982.5V9.5H996.5M1012.5%2021.5V3.5H1039.5V16.5H1018.5V9.5H1032.5M1048.5%2021.5V3.5H1075.5V16.5H1054.5V9.5H1068.5M1084.5%2021.5V3.5H1111.5V16.5H1090.5V9.5H1104.5M1120.5%2021.5V3.5H1147.5V16.5H1126.5V9.5H1140.5M1156.5%2021.5V3.5H1183.5V16.5H1162.5V9.5H1176.5M1192.5%2021.5V3.5H1219.5V16.5H1198.5V9.5H1212.5M1228.5%2021.5V3.5H1255.5V16.5H1234.5V9.5H1248.5M1264.5%2021.5V3.5H1291.5V16.5H1270.5V9.5H1284.5M1300.5%2021.5V3.5H1327.5V16.5H1306.5V9.5H1320.5M1336.5%2021.5V3.5H1363.5V16.5H1342.5V9.5H1356.5M1372.5%2021.5V3.5H1399.5V16.5H1378.5V9.5H1392.5M1408.5%2021.5V3.5H1435.5V16.5H1414.5V9.5H1428.5M1444.5%2021.5V3.5H1471.5V16.5H1450.5V9.5H1464.5M1480.5%2021.5V3.5H1507.5V16.5H1486.5V9.5H1500.5M1516.5%2021.5V3.5H1543.5V16.5H1522.5V9.5H1536.5M1552.5%2021.5V3.5H1579.5V16.5H1558.5V9.5H1572.5M1588.5%2021.5V3.5H1615.5V16.5H1594.5V9.5H1608.5M1624.5%2021.5V3.5H1651.5V16.5H1630.5V9.5H1644.5M1660.5%2021.5V3.5H1687.5V16.5H1666.5V9.5H1680.5M1696.5%2021.5V3.5H1723.5V16.5H1702.5V9.5H1716.5M1732.5%2021.5V3.5H1759.5V16.5H1738.5V9.5H1752.5M1768.5%2021.5V3.5H1795.5V16.5H1774.5V9.5H1788.5M1804.5%2021.5V3.5H1831.5V16.5H1810.5V9.5H1824.5M1840.5%2021.5V3.5H1867.5V16.5H1846.5V9.5H1860.5M1876.5%2021.5V3.5H1903.5V16.5H1882.5V9.5H1896.5M1912.5%2021.5V3.5H1939.5V16.5H1918.5V9.5H1932.5'%20fill='none'%20stroke='%23ffd23a'%20stroke-width='3'/%3E%3C/svg%3E");
  --gc-band-2t:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201944%2024'%20width='1944'%20height='24'%3E%3Cpath%20d='M0%202.5H1944M4.5%202.5V20.5H31.5V7.5H10.5V14.5H24.5M40.5%202.5V20.5H67.5V7.5H46.5V14.5H60.5M76.5%202.5V20.5H103.5V7.5H82.5V14.5H96.5M112.5%202.5V20.5H139.5V7.5H118.5V14.5H132.5M148.5%202.5V20.5H175.5V7.5H154.5V14.5H168.5M184.5%202.5V20.5H211.5V7.5H190.5V14.5H204.5M220.5%202.5V20.5H247.5V7.5H226.5V14.5H240.5M256.5%202.5V20.5H283.5V7.5H262.5V14.5H276.5M292.5%202.5V20.5H319.5V7.5H298.5V14.5H312.5M328.5%202.5V20.5H355.5V7.5H334.5V14.5H348.5M364.5%202.5V20.5H391.5V7.5H370.5V14.5H384.5M400.5%202.5V20.5H427.5V7.5H406.5V14.5H420.5M436.5%202.5V20.5H463.5V7.5H442.5V14.5H456.5M472.5%202.5V20.5H499.5V7.5H478.5V14.5H492.5M508.5%202.5V20.5H535.5V7.5H514.5V14.5H528.5M544.5%202.5V20.5H571.5V7.5H550.5V14.5H564.5M580.5%202.5V20.5H607.5V7.5H586.5V14.5H600.5M616.5%202.5V20.5H643.5V7.5H622.5V14.5H636.5M652.5%202.5V20.5H679.5V7.5H658.5V14.5H672.5M688.5%202.5V20.5H715.5V7.5H694.5V14.5H708.5M724.5%202.5V20.5H751.5V7.5H730.5V14.5H744.5M760.5%202.5V20.5H787.5V7.5H766.5V14.5H780.5M796.5%202.5V20.5H823.5V7.5H802.5V14.5H816.5M832.5%202.5V20.5H859.5V7.5H838.5V14.5H852.5M868.5%202.5V20.5H895.5V7.5H874.5V14.5H888.5M904.5%202.5V20.5H931.5V7.5H910.5V14.5H924.5M940.5%202.5V20.5H967.5V7.5H946.5V14.5H960.5M976.5%202.5V20.5H1003.5V7.5H982.5V14.5H996.5M1012.5%202.5V20.5H1039.5V7.5H1018.5V14.5H1032.5M1048.5%202.5V20.5H1075.5V7.5H1054.5V14.5H1068.5M1084.5%202.5V20.5H1111.5V7.5H1090.5V14.5H1104.5M1120.5%202.5V20.5H1147.5V7.5H1126.5V14.5H1140.5M1156.5%202.5V20.5H1183.5V7.5H1162.5V14.5H1176.5M1192.5%202.5V20.5H1219.5V7.5H1198.5V14.5H1212.5M1228.5%202.5V20.5H1255.5V7.5H1234.5V14.5H1248.5M1264.5%202.5V20.5H1291.5V7.5H1270.5V14.5H1284.5M1300.5%202.5V20.5H1327.5V7.5H1306.5V14.5H1320.5M1336.5%202.5V20.5H1363.5V7.5H1342.5V14.5H1356.5M1372.5%202.5V20.5H1399.5V7.5H1378.5V14.5H1392.5M1408.5%202.5V20.5H1435.5V7.5H1414.5V14.5H1428.5M1444.5%202.5V20.5H1471.5V7.5H1450.5V14.5H1464.5M1480.5%202.5V20.5H1507.5V7.5H1486.5V14.5H1500.5M1516.5%202.5V20.5H1543.5V7.5H1522.5V14.5H1536.5M1552.5%202.5V20.5H1579.5V7.5H1558.5V14.5H1572.5M1588.5%202.5V20.5H1615.5V7.5H1594.5V14.5H1608.5M1624.5%202.5V20.5H1651.5V7.5H1630.5V14.5H1644.5M1660.5%202.5V20.5H1687.5V7.5H1666.5V14.5H1680.5M1696.5%202.5V20.5H1723.5V7.5H1702.5V14.5H1716.5M1732.5%202.5V20.5H1759.5V7.5H1738.5V14.5H1752.5M1768.5%202.5V20.5H1795.5V7.5H1774.5V14.5H1788.5M1804.5%202.5V20.5H1831.5V7.5H1810.5V14.5H1824.5M1840.5%202.5V20.5H1867.5V7.5H1846.5V14.5H1860.5M1876.5%202.5V20.5H1903.5V7.5H1882.5V14.5H1896.5M1912.5%202.5V20.5H1939.5V7.5H1918.5V14.5H1932.5'%20fill='none'%20stroke='%23ffd23a'%20stroke-width='3'/%3E%3C/svg%3E");
  --paper:#fffaf0;--rim:color-mix(in srgb,var(--ink) 80%,var(--bg));
  --gc-cloud-on:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 100'%3E%3Cpath d='M8 92H232M62.0 92.0A30.0 30.0 0 0 1 62.0 32.0A22.2 22.2 0 0 1 62.0 76.4A14.4 14.4 0 0 1 62.0 47.6A6.6 6.6 0 0 1 62.0 60.8M120.0 92.0A40.0 40.0 0 0 0 120.0 12.0A29.6 29.6 0 0 0 120.0 71.2A19.2 19.2 0 0 0 120.0 32.8A8.8 8.8 0 0 0 120.0 50.4M176.0 92.0A26.0 26.0 0 0 0 176.0 40.0A19.2 19.2 0 0 0 176.0 78.5A12.5 12.5 0 0 0 176.0 53.5A5.7 5.7 0 0 0 176.0 65.0' fill='none' stroke='%23fff3dc' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E");--gc-cloud:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 100'%3E%3Cpath d='M8 92H232M62.0 92.0A30.0 30.0 0 0 1 62.0 32.0A22.2 22.2 0 0 1 62.0 76.4A14.4 14.4 0 0 1 62.0 47.6A6.6 6.6 0 0 1 62.0 60.8M120.0 92.0A40.0 40.0 0 0 0 120.0 12.0A29.6 29.6 0 0 0 120.0 71.2A19.2 19.2 0 0 0 120.0 32.8A8.8 8.8 0 0 0 120.0 50.4M176.0 92.0A26.0 26.0 0 0 0 176.0 40.0A19.2 19.2 0 0 0 176.0 78.5A12.5 12.5 0 0 0 176.0 53.5A5.7 5.7 0 0 0 176.0 65.0' fill='none' stroke='black' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E");
  --good:#2f7a4a;--bad:#b01e17;
  --box-bg:var(--paper);--box-border:2px solid var(--rim);--box-radius:8px;--box-shadow:none;--chip-radius:6px;
  --f-head:"ZCOOL QingKe HuangYou",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Inter",var(--cjk-sans),sans-serif;
  --title-w:400;--h3-w:400;--num-w:900;--num-style:normal}
/* 繁体：黄油体没有繁体字，标题整句换成思源黑体 TC 粗体 */
[data-theme=guochao]:lang(zh-TW),[data-theme=guochao]:lang(zh-Hant){--f-head:var(--cjk-sans),"PingFang TC",sans-serif;--title-w:900;--h3-w:800}
/* 黄油体只有一个字重：不让浏览器假加粗 */
[data-theme=guochao] .slide{font-synthesis:none}
/* 内容页：底边红色回纹，右上一朵靛蓝祥云 */
[data-theme=guochao] .slide::after{content:"";position:absolute;left:0;right:0;bottom:0;height:24px;background:var(--gc-band) left bottom/auto 24px no-repeat;z-index:0;pointer-events:none}
[data-theme=guochao] .slide::before{content:"";position:absolute;right:104px;top:58px;width:216px;height:90px;background:var(--gc-mark,var(--gc-3));-webkit-mask:var(--gc-cloud) center/contain no-repeat;mask:var(--gc-cloud) center/contain no-repeat;z-index:0;pointer-events:none}
[data-theme=guochao] .slide>.ft{bottom:46px;color:var(--muted)}
/* 文字 */
[data-theme=guochao] .title{font-size:84px;line-height:1.2;letter-spacing:.01em}
[data-theme=guochao] :is(.title,.big,.yr-key) em{background:linear-gradient(transparent 66%,color-mix(in srgb,var(--gc-2) 75%,transparent) 66%,color-mix(in srgb,var(--gc-2) 75%,transparent) 94%,transparent 94%);-webkit-box-decoration-break:clone;box-decoration-break:clone}
[data-theme=guochao] .kicker{width:fit-content;gap:0;overflow:hidden;border-radius:6px;background:var(--accent);color:var(--on-accent);font-size:23px;font-weight:700;letter-spacing:.12em}
[data-theme=guochao] .kicker>*{padding:6px 18px}
[data-theme=guochao] .kicker>:empty{display:none}
[data-theme=guochao] .kicker b{background:var(--gc-2);color:var(--on-2);font-size:24px}
[data-theme=guochao] .label{color:var(--accent-ink)}
[data-theme=guochao] .big{line-height:1.3}
/* 卡片：米白卡片、深色描边；成组的卡片顶边按红、黄、蓝轮换；重点卡片整块铺红 */
[data-theme=guochao] :is(.cyc,.grid)>.box{box-shadow:inset 0 10px 0 var(--accent);padding-top:50px}
[data-theme=guochao] .cyc>.box:nth-of-type(3n+2){box-shadow:inset 0 10px 0 var(--gc-2)}
[data-theme=guochao] .cyc>.box:nth-of-type(3n){box-shadow:inset 0 10px 0 var(--gc-3)}
[data-theme=guochao] .box.key{background:color-mix(in srgb,var(--gc-2) 16%,var(--paper));border:3px solid var(--accent)}
[data-theme=guochao] .box.key>.tag{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
[data-theme=guochao] .no{font-size:30px}
[data-theme=guochao] .row .n{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--gc-2);color:var(--on-2);font-size:28px}
[data-theme=guochao] .badge{background:var(--paper);border:1.5px solid var(--accent)}
[data-theme=guochao] :is(.badge.solid,.tag){background:var(--gc-2);color:var(--on-2);border-color:var(--gc-2)}
[data-theme=guochao] .chips li{background:var(--paper);border:2px solid var(--accent);font-weight:700}
[data-theme=guochao] .tabs li{border:1.5px solid var(--rim);color:var(--ink)}
[data-theme=guochao] .sn{background:var(--accent);color:var(--on-accent)}
[data-theme=guochao] .q::before{border-radius:50%}
[data-theme=guochao] .callout{background:color-mix(in srgb,var(--gc-2) 24%,var(--paper));border:2px solid var(--gc-2)}
[data-theme=guochao] .tip{border-left:10px solid var(--accent);background:var(--paper);border-radius:0 8px 8px 0;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}
[data-theme=guochao] .job dt{background:var(--soft);border-color:var(--soft-line)}
/* 时间线：粗红线上的明黄圆点 */
[data-theme=guochao] .tl::before{height:6px;top:18px;border-radius:3px;background:var(--accent)}
[data-theme=guochao] .tl>li::before{background:var(--gc-2);border:5px solid var(--accent);box-shadow:0 0 0 7px var(--bg)}
[data-theme=guochao] .tl .when{font-family:var(--f-num);font-weight:900}
[data-theme=guochao] .tl .out{border-top:2px dotted var(--soft-line)}
/* 对比与表格：表头铺靛蓝 */
[data-theme=guochao] .cmp>*{border-top:2px solid var(--line)}
[data-theme=guochao] .cmp>.h{border-top:0}
[data-theme=guochao] .cmp .h.t2 span{background:var(--gc-3);color:var(--on-3);border-color:var(--gc-3)}
[data-theme=guochao] .tbl{border-collapse:separate;border-spacing:0;background:var(--paper);border:2px solid var(--rim);border-radius:8px;overflow:hidden}
[data-theme=guochao] .tbl th{background:var(--gc-3);color:var(--on-3)}
[data-theme=guochao] .tbl th:first-child{color:color-mix(in srgb,var(--on-3) 75%,var(--gc-3))}
[data-theme=guochao] .tbl td{border-top:1px solid var(--line)}
[data-theme=guochao] .tbl tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--gc-2) 9%,var(--paper))}
/* 数字 */
[data-theme=guochao] :is(.stat .n,.price .amt){color:var(--accent-ink);letter-spacing:-.03em}
[data-theme=guochao] .stat .n small{font-family:var(--f-head);font-weight:400;color:var(--ink)}
[data-theme=guochao] .price .quota b,[data-theme=guochao] .metric b{font-family:var(--f-num);font-weight:900}
/* 图片、头像、占位 */
[data-theme=guochao] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:8px;border:6px solid var(--paper);box-shadow:0 0 0 2px var(--accent)}
[data-theme=guochao] .ph{border:2px dashed var(--rim);border-radius:8px}
[data-theme=guochao] .avatar{background:var(--gc-2);color:var(--accent-ink);font-family:var(--f-head);font-weight:400}
[data-theme=guochao] .avatar:has(img){box-shadow:0 0 0 4px var(--gc-2)}
[data-theme=guochao] .kol .av{background:var(--gc-2);color:var(--on-2);border:0;font-weight:400}
[data-theme=guochao] .bio{border-left:6px solid var(--accent)}
[data-theme=guochao] :is(.arrow,.pipe .node::after){color:var(--accent)}
[data-theme=guochao] .pipe .node::after{background:var(--accent)}
[data-theme=guochao] .wire i{background:var(--rim)}
[data-theme=guochao] .ring-hint{background:var(--gc-2);color:var(--on-2)}
/* 封面与结尾：整页铺红，右侧一轮明黄日头，上下两道明黄回纹，一朵米色祥云从日头前飘过 */
[data-theme=guochao] :is(.cover,.end){background:var(--accent);color:var(--on-accent)}
[data-theme=guochao] :is(.cover,.end) .deco>*{display:block;position:absolute}
[data-theme=guochao] .cover .deco .d1,[data-theme=guochao] .end::after{right:150px;top:150px;width:640px;height:640px;border-radius:50%;background:var(--gc-2)}
[data-theme=guochao] .end::after{content:"";position:absolute;z-index:0;left:auto;bottom:auto;top:200px;width:580px;height:580px;right:170px;-webkit-mask:none;mask:none}
[data-theme=guochao] .end:has(>.qrs)::after{display:none}
[data-theme=guochao] .cover .deco .d2,[data-theme=guochao] :is(.end,.divider)::before{content:"";position:absolute;left:48px;right:48px;top:40px;bottom:40px;background:var(--gc-band-2t) left top/auto 24px no-repeat,var(--gc-band-2) left bottom/auto 24px no-repeat;-webkit-mask:none;mask:none;z-index:0;width:auto;height:auto}
[data-theme=guochao] .cover .deco .d3{right:500px;top:610px;width:420px;height:175px;background:var(--on-accent);-webkit-mask:var(--gc-cloud) center/contain no-repeat;mask:var(--gc-cloud) center/contain no-repeat}
[data-theme=guochao] .cover:has(>.ip) .deco .d3{right:620px;top:700px;width:340px;height:142px}
[data-theme=guochao] .cover:not(:has(>.ip)) :is(.cover-title,.cover-sub){max-width:1040px}
[data-theme=guochao] :is(.cover,.end)::after{z-index:0}
[data-theme=guochao] .cover::after,[data-theme=guochao] .cover::before{display:none}
[data-theme=guochao] .cover-meta{gap:14px;color:var(--gc-2);font-weight:700;letter-spacing:.12em}
[data-theme=guochao] .cover-meta span{padding:4px 18px;border:2px solid var(--gc-2);border-radius:999px}
[data-theme=guochao] .cover-meta span:first-child{background:var(--gc-2);color:var(--on-2)}
[data-theme=guochao] .cover-title{font-size:164px;line-height:1.08;letter-spacing:.01em;margin-bottom:36px}
[data-theme=guochao] .cover-meta{margin-bottom:32px}
[data-theme=guochao] :is(.cover-title,.end .big) em{color:var(--hero-em)}
[data-theme=guochao] :is(.cover-sub,.end .big-sub){color:color-mix(in srgb,var(--on-accent) 88%,var(--accent))}
[data-theme=guochao] :is(.cover,.end) .byline i{opacity:.8}
[data-theme=guochao] :is(.cover,.end) .avatar{background:var(--gc-2);color:var(--accent)}
[data-theme=guochao] :is(.cover,.end) .byline .logo{border-left-color:color-mix(in srgb,var(--on-accent) 40%,transparent)}
[data-theme=guochao] .end .big{font-size:170px}
[data-theme=guochao] .end .big-sub b{color:var(--hero-em)}
[data-theme=guochao] .end .qr figcaption{color:color-mix(in srgb,var(--on-accent) 85%,var(--accent))}
[data-theme=guochao] .end .qr figcaption b{color:var(--on-accent)}
[data-theme=guochao] .end .qr img{box-shadow:0 0 0 3px var(--gc-2)}
/* 章节页：靛蓝、红按章轮换，明黄大号章节号，上下回纹，右侧一轮日头 */
[data-theme=guochao] .divider{background:var(--gc-3);color:var(--on-3);--dv-ink:var(--on-3)}
[data-theme=guochao] .divider:is([data-tone="2"],[data-tone="4"]){background:var(--accent);color:var(--on-accent);--dv-ink:var(--on-accent)}
[data-theme=guochao] .divider::after{left:auto;right:130px;top:auto;bottom:150px;width:720px;height:560px;background:var(--gc-cloud-on) left 0 bottom 30px/400px auto no-repeat,radial-gradient(closest-side,var(--gc-2) 99%,transparent 100%) right 0 top 0/540px 540px no-repeat;-webkit-mask:none;mask:none}
[data-theme=guochao] .divider .dv-no{color:var(--gc-2);font-size:240px;letter-spacing:-.04em}
[data-theme=guochao] .divider .dv-title{font-size:132px;margin-top:24px;max-width:1040px}
[data-theme=guochao] .divider .dv-sub{color:color-mix(in srgb,var(--dv-ink) 85%,transparent)}
[data-theme=guochao] .divider .dv-map{bottom:110px}
[data-theme=guochao] .divider .dv-map li{background:color-mix(in srgb,var(--dv-ink) 25%,transparent);height:8px;border-radius:4px}
[data-theme=guochao] .divider .dv-map li.done{background:color-mix(in srgb,var(--dv-ink) 55%,transparent)}
[data-theme=guochao] .divider .dv-map li.now{background:var(--gc-2)}
[data-theme=guochao] .divider .dv-map li span{color:color-mix(in srgb,var(--dv-ink) 75%,transparent)}
[data-theme=guochao] .divider .dv-map li.now span{color:var(--gc-2)}
/* 金句页：祥云放大到右下角 */
[data-theme=guochao] .stmt::before{right:120px;top:auto;bottom:90px;width:420px;height:175px;background:var(--gc-2)}
[data-theme=guochao] .stmt.has-ip::before{right:460px}
[data-theme=guochao] .stmt .big{font-size:110px}
[data-theme=guochao] .stmt .chips{margin-top:36px}
/* 英文 */
[data-theme=guochao]:lang(en) .title{font-size:76px;line-height:1.14}
[data-theme=guochao]:lang(en) .cover-title{font-size:136px;line-height:1}
[data-theme=guochao]:lang(en) .stmt .big{font-size:96px;line-height:1.14}
[data-theme=guochao]:lang(en) .divider .dv-title{font-size:116px;line-height:1.05}
[data-theme=guochao]:lang(en) .end .big{font-size:150px}
[data-theme=guochao]:lang(en) .kicker{letter-spacing:.06em}
/* 繁体用黑体粗体：字号略收 */
[data-theme=guochao]:is(:lang(zh-TW),:lang(zh-Hant)) .title{font-size:76px;line-height:1.25}
[data-theme=guochao]:is(:lang(zh-TW),:lang(zh-Hant)) .cover-title{font-size:150px}
[data-theme=guochao]:is(:lang(zh-TW),:lang(zh-Hant)) .stmt .big{font-size:100px}
[data-theme=guochao]:is(:lang(zh-TW),:lang(zh-Hant)) .divider .dv-title{font-size:116px}
/* ---- 风格 12 · guochao 结束 ---- */

/* ================= 风格 13 · 黑金·装饰艺术（deco） =================
   Art Deco：近黑底、香槟金细线，扇形放射纹和阶梯几何，对称构图。内容页标题居中，左右上角各一把小扇面；
   封面、章节页、金句页、结尾页居中，底部升起一轮放射纹的半圆，外面一圈双线框、四角阶梯。
   标题用宋体（Noto Serif SC）配 Playfair Display，数字用 Playfair。金色只用实色，不用渐变字（导出 PPTX 会变成纯色）；
   纹样都是 CSS 渐变和边框，导出 PDF 不走样 */
[data-theme=deco]{
  --frame:#000;--bg:#0c0b09;--ink:#efe6d2;--body2:#cdc3ae;--muted:#a69d8b;--faint:#6f685c;--line:#2b2721;
  --accent:#c9a45c;--accent2:#c9a45c;--accent-ink:#d1ad66;--on-accent:#0c0b09;--soft:rgba(201,164,92,.09);--soft-line:rgba(201,164,92,.5);
  --gold-line:color-mix(in srgb,var(--accent) 50%,transparent);--gold-faint:color-mix(in srgb,var(--accent) 24%,transparent);
  /* 扇面纹样是 SVG 线条（重复的锥形、径向渐变导出 PDF 会走样）；换配色、自定义强调色时由主题清单换成对应颜色（index.ts 的 decoArt） */
  --deco-fan:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1100 550'%3E%3Cg fill='none' stroke='%23c9a45c'%3E%3Cpath d='M720 550L1100 550M719 532L1097 493M716 515L1088 436M712 497L1073 380M705 481L1052 326M697 465L1026 275M688 450L995 227M676 436L959 182M664 424L918 141M650 412L873 105M635 403L825 74M619 395L774 48M603 388L720 27M585 384L664 12M568 381L607 3M550 380L550 0M532 381L493 3M515 384L436 12M497 388L380 27M481 395L326 48M465 403L275 74M450 412L227 105M436 424L182 141M424 436L141 182M412 450L105 227M403 465L74 275M395 481L48 326M388 497L27 380M384 515L12 436M381 532L3 493M380 550L0 550' stroke-opacity='.28'/%3E%3Cg stroke-opacity='.2'%3E%3Ccircle cx='550' cy='550' r='244'/%3E%3Ccircle cx='550' cy='550' r='318'/%3E%3Ccircle cx='550' cy='550' r='392'/%3E%3Ccircle cx='550' cy='550' r='466'/%3E%3Ccircle cx='550' cy='550' r='540'/%3E%3C/g%3E%3Ccircle cx='550' cy='550' r='168' stroke-opacity='.5'/%3E%3C/g%3E%3Ccircle cx='550' cy='550' r='150' fill='%23c9a45c' fill-opacity='.24'/%3E%3C/svg%3E");--deco-corner:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23c9a45c' stroke-opacity='.3'%3E%3Cpath d='M0 0L200 0M0 0L198 26M0 0L193 52M0 0L185 77M0 0L173 100M0 0L159 122M0 0L141 141M0 0L122 159M0 0L100 173M0 0L77 185M0 0L52 193M0 0L26 198M0 0L0 200'/%3E%3Ccircle r='39'/%3E%3Ccircle r='78'/%3E%3Ccircle r='117'/%3E%3Ccircle r='156'/%3E%3Ccircle r='195'/%3E%3C/g%3E%3C/svg%3E");
  --good:#93c59d;--bad:#e3907f;
  --box-bg:#15130f;--box-border:1px solid var(--gold-line);--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:"Playfair Display",var(--cjk-serif),"Songti SC","STSong",serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Playfair Display",var(--cjk-serif),serif;
  --title-w:600;--h3-w:600;--num-w:500;--num-style:normal}
/* Playfair 默认是旧式数字，这一套统一用齐线数字 */
[data-theme=deco] .slide{font-variant-numeric:lining-nums}
/* 扇面：从一点放射的细线 + 同心弧，用在内容页两角和大页面底部 */
[data-theme=deco] .slide::before,[data-theme=deco] .slide::after{content:"";position:absolute;top:0;width:200px;height:200px;z-index:0;pointer-events:none;background:var(--deco-corner) 0 0/200px 200px no-repeat}
[data-theme=deco] .slide::before{left:0}
[data-theme=deco] .slide::after{right:0;transform:scaleX(-1)}
/* 内容页：标题居中，眉题两边一段金线；页脚上一道细金线 */
[data-theme=deco] .hd{text-align:center}
[data-theme=deco] .hd .kicker{justify-content:center}
[data-theme=deco] .hd :is(.lead,.tabs){margin-left:auto;margin-right:auto;justify-content:center}
[data-theme=deco] .kicker{color:var(--accent-ink);font-size:22px;font-weight:600;letter-spacing:.3em;text-transform:uppercase}
[data-theme=deco] .kicker::before,[data-theme=deco] .kicker::after{content:"";width:56px;height:1px;background:var(--gold-line)}
[data-theme=deco] .kicker::before{order:-1}
[data-theme=deco] .kicker b{font-size:26px;letter-spacing:.04em}
[data-theme=deco] .kicker b::after{content:"◆";font-size:10px;margin-left:16px;vertical-align:4px;color:var(--gold-line)}
[data-theme=deco] .title{font-size:74px;line-height:1.25;letter-spacing:.03em}
[data-theme=deco] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{color:var(--accent-ink)}
[data-theme=deco] .slide>.ft{bottom:40px;padding-top:12px;border-top:1px solid var(--gold-faint);color:var(--muted);font-size:18px;letter-spacing:.16em;text-transform:uppercase}
[data-theme=deco] .slide>.ft span:last-child{font-family:var(--f-num);letter-spacing:.08em}
[data-theme=deco] .label{color:var(--accent-ink);letter-spacing:.22em;text-transform:uppercase}
/* 卡片：深色底、金色细框；重点卡片外面再套一道框 */
[data-theme=deco] .box.key{border-color:var(--accent);outline:1px solid var(--gold-line);outline-offset:6px}
[data-theme=deco] :is(.card h3,.row h3,.step h3,.org h3,.pipe .node h3,.eq h3,.keep h3,.road h3,.q){letter-spacing:.02em}
[data-theme=deco] .no{font-size:32px}
[data-theme=deco] .row .n{font-size:52px}
[data-theme=deco] .badge{background:none;border-color:var(--gold-line);letter-spacing:.1em;font-weight:600}
[data-theme=deco] :is(.badge.solid,.tag){background:var(--accent);color:var(--on-accent);border-color:var(--accent);letter-spacing:.08em}
[data-theme=deco] .chips li{background:none;border:1px solid var(--gold-line);font-weight:500;letter-spacing:.04em}
[data-theme=deco] .tabs li{border-color:var(--gold-faint);letter-spacing:.08em}
[data-theme=deco] .sn{background:var(--accent);color:var(--on-accent);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:72px;height:72px;font-size:28px;font-weight:600}
[data-theme=deco] .q::before{border-radius:0;background:none;border:1px solid var(--accent);color:var(--accent-ink);font-weight:600}
[data-theme=deco] .callout{border-radius:0;background:var(--soft);border:1px solid var(--gold-line)}
[data-theme=deco] .tip{border-radius:0;border-left:2px solid var(--accent);background:var(--soft)}
[data-theme=deco] .tip b{letter-spacing:.24em;text-transform:uppercase}
[data-theme=deco] .checks li::before{background:none;border:1.5px solid var(--good);color:var(--good)}
[data-theme=deco] .checks.donts li::before{border-color:var(--bad);color:var(--bad)}
[data-theme=deco] .pairs .box.bad::before,[data-theme=deco] .pairs .box.good::before{background:none;border:1.5px solid currentColor}
[data-theme=deco] .pairs .box.bad::before{color:var(--bad)}
[data-theme=deco] .pairs .box.good::before{color:var(--good)}
/* 时间线：金色细线上的菱形 */
[data-theme=deco] .tl::before{height:1px;top:20px;background:var(--gold-line)}
[data-theme=deco] .tl>li::before{left:6px;top:8px;width:24px;height:24px;border-radius:0;rotate:45deg;background:var(--bg);border:1.5px solid var(--accent);box-shadow:0 0 0 8px var(--bg),inset 0 0 0 5px var(--bg),inset 0 0 0 12px var(--accent)}
[data-theme=deco] .tl .when{font-family:var(--f-num)}
[data-theme=deco] .tl .out{border-top:1px solid var(--gold-faint)}
[data-theme=deco] :is(.card .meta,.org .out){border-top:1px solid var(--gold-faint)}
/* 对比与表格：上下两道金线 */
[data-theme=deco] .cmp>*{border-top-color:var(--gold-faint)}
[data-theme=deco] .cmp .h span{border-radius:0;letter-spacing:.06em}
[data-theme=deco] .cmp .h.t2 span{background:none;border-color:var(--accent)}
[data-theme=deco] .tbl{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);box-shadow:0 -6px 0 -5px var(--gold-line),0 6px 0 -5px var(--gold-line)}
[data-theme=deco] .tbl th{color:var(--accent-ink);border-bottom:1px solid var(--gold-line);letter-spacing:.06em}
[data-theme=deco] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=deco] .tbl tr:last-child td{border-bottom:0}
/* 数字：Playfair，金色 */
[data-theme=deco] :is(.stat .n,.price .amt){color:var(--accent-ink);letter-spacing:-.01em}
[data-theme=deco] .stat .n small{font-family:var(--f-body);font-weight:500;color:var(--muted)}
[data-theme=deco] .stat .l{font-family:var(--f-head);font-weight:600}
[data-theme=deco] .eq .op{color:var(--gold-line);font-weight:400}
/* 图片、头像、占位 */
[data-theme=deco] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:1px solid var(--accent);box-shadow:0 0 0 6px var(--bg),0 0 0 7px var(--gold-line)}
[data-theme=deco] .ph{border-radius:0;border:1px dashed var(--gold-line);background:repeating-linear-gradient(-45deg,transparent 0 18px,var(--soft) 18px 20px)}
[data-theme=deco] .avatar{background:var(--bg);color:var(--accent-ink);font-family:var(--f-head);border:1px solid var(--accent);box-shadow:0 0 0 4px var(--bg),0 0 0 5px var(--gold-line)}
[data-theme=deco] .kol .av{background:none;border:1px solid var(--accent);color:var(--accent-ink);box-shadow:0 0 0 6px var(--bg),0 0 0 7px var(--gold-faint)}
[data-theme=deco] .bio{border-left:1px solid var(--accent);font-family:var(--f-head);font-weight:600}
[data-theme=deco] .wire i{background:var(--gold-line)}
[data-theme=deco] :is(.arrow,.pipe .node::after){color:var(--gold-line)}
[data-theme=deco] .pipe .node::after{background:var(--gold-line)}
[data-theme=deco] .ring-hint{border-radius:0;letter-spacing:.06em}
[data-theme=deco] .vcheck{box-shadow:0 0 0 6px var(--bg),0 0 0 7px var(--gold-line)}
/* 大页面（封面、章节、金句、结尾）：居中，双线框、四角阶梯，底部升起放射纹半圆 */
[data-theme=deco] :is(.cover,.divider,.stmt,.end){align-items:center;text-align:center}
[data-theme=deco] :is(.cover,.divider,.stmt,.end)::before{top:40px;left:40px;right:40px;bottom:40px;width:auto;height:auto;border:1px solid var(--gold-line);border-radius:0;opacity:1;
  background:linear-gradient(var(--accent),var(--accent)) 14px 14px/30px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) 14px 14px/1px 30px no-repeat,linear-gradient(var(--accent),var(--accent)) right 14px top 14px/30px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right 14px top 14px/1px 30px no-repeat,
    linear-gradient(var(--accent),var(--accent)) left 14px bottom 14px/30px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) left 14px bottom 14px/1px 30px no-repeat,linear-gradient(var(--accent),var(--accent)) right 14px bottom 14px/30px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right 14px bottom 14px/1px 30px no-repeat;
  box-shadow:inset 0 0 0 8px var(--bg),inset 0 0 0 9px var(--gold-faint)}
[data-theme=deco] :is(.cover,.divider,.stmt,.end)::after{top:auto;bottom:40px;left:50%;right:auto;width:1100px;height:550px;margin-left:-550px;transform:none;background:var(--deco-fan) center bottom/100% 100% no-repeat}
[data-theme=deco] .stmt::after{width:900px;height:450px;margin-left:-450px;opacity:.75}
[data-theme=deco] .cover .deco{display:none}
[data-theme=deco] .cover-meta{justify-content:center;align-items:center;gap:22px;color:var(--accent-ink);font-size:22px;letter-spacing:.32em;text-transform:uppercase}
[data-theme=deco] .cover-meta::before,[data-theme=deco] .cover-meta::after{content:"";width:80px;height:1px;background:var(--gold-line)}
[data-theme=deco] .cover-meta span+span::before{content:"◆";font-size:10px;margin-right:22px;vertical-align:4px;color:var(--gold-line)}
[data-theme=deco] .cover-title{font-size:150px;line-height:1.14;letter-spacing:.04em;margin-bottom:40px}
[data-theme=deco] .cover-sub{color:var(--body2);margin:0 auto}
[data-theme=deco] :is(.cover,.end) .byline{justify-content:center;text-align:left}
[data-theme=deco] .end .big{font-size:140px;letter-spacing:.08em}
[data-theme=deco] .end .big-sub{margin-left:auto;margin-right:auto}
/* 有形象、有二维码时改回左对齐，扇面挪到形象后面 */
[data-theme=deco] :is(.cover,.end,.stmt,.divider):is(:has(>.ip),:has(>.qrs)){align-items:flex-start;text-align:left}
[data-theme=deco] :is(.cover,.end):is(:has(>.ip),:has(>.qrs)) :is(.cover-meta,.byline){justify-content:flex-start}
[data-theme=deco] :is(.cover,.end):is(:has(>.ip),:has(>.qrs)) :is(.cover-sub,.big-sub){margin-left:0}
[data-theme=deco] :is(.cover,.end):has(>.ip)::after{left:auto;right:170px;margin-left:0;width:760px;height:380px}
[data-theme=deco] .end:has(>.qrs)::after{display:none}
[data-theme=deco] .divider:has(>.ip)::after{left:auto;right:150px;margin-left:0;width:620px;height:310px;bottom:150px}
[data-theme=deco] .stmt.has-ip::after{left:auto;right:60px;margin-left:0}
/* 章节页：大号金色编号居中，两边金线 */
[data-theme=deco] .divider .dv-no{align-self:center;font-size:220px;font-weight:500;letter-spacing:.02em}
[data-theme=deco] .divider:has(>.ip) .dv-no{align-self:flex-start}
[data-theme=deco] .divider .dv-title{font-size:112px;margin-top:28px;letter-spacing:.06em}
[data-theme=deco] .divider .dv-sub{color:var(--body2);letter-spacing:.06em}
[data-theme=deco] .divider .dv-map{left:50%;right:auto;width:720px;margin-left:-360px;top:110px;bottom:auto;gap:6px}
[data-theme=deco] .divider:has(>.ip) .dv-map{left:128px;margin-left:0}
[data-theme=deco] .dv-map li{height:2px;border-radius:0;background:var(--gold-faint)}
[data-theme=deco] .dv-map li.done{background:var(--gold-line)}
[data-theme=deco] .dv-map li span{font-family:var(--f-num)}
/* 金句页 */
[data-theme=deco] .stmt .kicker{justify-content:center}
[data-theme=deco] .stmt>.ft{bottom:62px;left:150px;right:150px;border-top:0}
[data-theme=deco] .stmt.has-ip .kicker{justify-content:flex-start}
[data-theme=deco] .stmt .big{line-height:1.32;letter-spacing:.03em}
[data-theme=deco] .stmt .big-sub{margin-left:auto;margin-right:auto}
[data-theme=deco] .stmt.has-ip .big-sub{margin-left:0}
[data-theme=deco] .stmt :is(.chips,.botrow){justify-content:center;margin-top:40px}
[data-theme=deco] .stmt.has-ip :is(.chips,.botrow){justify-content:flex-start}
/* 英文：标题收小，眉题全大写 */
[data-theme=deco]:lang(en) .title{font-size:68px;line-height:1.15;letter-spacing:.005em}
[data-theme=deco]:lang(en) .cover-title{font-size:132px;line-height:1.05;letter-spacing:.005em}
[data-theme=deco]:lang(en) .divider .dv-title{font-size:100px;letter-spacing:.01em}
[data-theme=deco]:lang(en) :is(.big,.end .big){letter-spacing:.005em}
[data-theme=deco]:lang(en) .end .big{font-size:128px}
[data-theme=deco]:lang(en) .kicker{letter-spacing:.22em}
/* ---- 风格 13 · deco 结束 ---- */

/* ================= 风格 14 · 咨询研报（consult） =================
   咨询公司的报告页：纯白底、藏青字、一个亮强调色（默认电光蓝）；标题写结论，下面一条通栏细线；
   直角、无阴影、规整网格。藏青只在三处成块出现：重点卡片、表头、金句页（整页反白）；
   时间线画成箭头形的阶段条（chevron），数据页的数字之间用细竖线分隔。封面和结尾右侧一组柱形，
   不用照片和插画。页脚是细线加章节名和页码，注释写成脚注。数字用 Archivo 的等宽数字 */
[data-theme=consult]{
  --frame:#dfe3ea;--bg:#ffffff;--ink:#0b1f3f;--body2:#2f3d55;--muted:#5a6578;--faint:#9aa3b2;--line:#d9dee6;
  --accent:#2251ff;--accent2:#2251ff;--accent-ink:#2251ff;--on-accent:#fff;--soft:#eef2ff;--soft-line:#a7b9ff;
  --good:#0f7b4f;--bad:#c8322b;
  --box-bg:#f3f5f8;--box-border:0;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:"Archivo",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Archivo",var(--cjk-sans),sans-serif;
  --title-w:700;--h3-w:700;--num-w:700;--num-style:normal;
  /* 反白区（藏青底）用的颜色：从底色和文字色推出来，自定义颜色时跟着变；强调色在藏青上提亮 */
  --x-bg:var(--bg);--x-ink:var(--ink);--accent-on-ink:color-mix(in srgb,var(--accent) 48%,#fff);
  --zebra:color-mix(in srgb,var(--ink) 3.5%,var(--bg))}
/* 反白区：重点卡片和金句页把底色、文字色对调，里面的元素都按变量取色，不用逐个改 */
[data-theme=consult] :is(.stmt,.box.key){
  --bg:var(--x-ink);--ink:var(--x-bg);
  --body2:color-mix(in srgb,var(--x-bg) 84%,var(--x-ink));--muted:color-mix(in srgb,var(--x-bg) 70%,var(--x-ink));
  --faint:color-mix(in srgb,var(--x-bg) 45%,var(--x-ink));--line:color-mix(in srgb,var(--x-bg) 24%,var(--x-ink));
  --accent-ink:var(--accent-on-ink);--soft:color-mix(in srgb,var(--x-bg) 10%,var(--x-ink));--soft-line:color-mix(in srgb,var(--x-bg) 38%,var(--x-ink));
  --box-bg:color-mix(in srgb,var(--x-bg) 9%,var(--x-ink));--zebra:transparent;color:var(--ink)}
[data-theme=consult] .box.key{background:var(--x-ink)}
[data-theme=consult] :is(.stat .n,.price .amt,.no,.row .n,.metric b,.tbl,.tl .when,.ft,.kicker b,.dv-no,.sn,.agenda3 li b,.price .quota b){font-variant-numeric:tabular-nums lining-nums}
[data-theme=consult] :is(.title,.big,.cover-title,.dv-title,.yr-key){letter-spacing:-.012em}
/* 页眉：眉题是追踪条（章节号成一个藏青小块），结论标题下面一条通栏细线，左端一小段强调色 */
[data-theme=consult] .hd{position:relative;margin-bottom:46px;padding-bottom:30px;border-bottom:1px solid var(--line)}
[data-theme=consult] .hd::after{content:"";position:absolute;left:0;bottom:-2px;width:112px;height:3px;background:var(--accent)}
[data-theme=consult] .kicker{font-size:22px;font-weight:700;letter-spacing:.1em;color:var(--accent-ink);gap:16px;margin-bottom:20px}
[data-theme=consult] .kicker b{font-size:20px;line-height:1;padding:7px 10px 6px;background:var(--ink);color:var(--bg);letter-spacing:.02em}
[data-theme=consult] .title{font-size:66px;line-height:1.24;max-width:1600px}
[data-theme=consult] .lead{font-size:30px;margin-top:20px}
[data-theme=consult] .label{color:var(--accent-ink);font-size:22px;letter-spacing:.1em}
[data-theme=consult] .note{font-size:21px;line-height:1.5;padding-top:14px;background:linear-gradient(var(--faint),var(--faint)) 0 0/120px 1px no-repeat}
[data-theme=consult] .cap{text-align:left;font-size:21px;padding-top:12px;border-top:1px solid var(--line)}
[data-theme=consult] .slide>.ft{bottom:40px;padding-top:14px;border-top:1px solid var(--line);font-size:18px;color:var(--muted);letter-spacing:.04em}
[data-theme=consult] .slide>.ft span:first-child::before{content:"";display:inline-block;width:10px;height:10px;margin-right:14px;background:var(--accent);vertical-align:1px}
/* 卡片与编号 */
[data-theme=consult] .no{font-size:30px}
[data-theme=consult] .card h3{line-height:1.3}
[data-theme=consult] .card .meta{border-top:1px solid var(--line)}
[data-theme=consult] .box.key .badge{background:var(--soft);border:0}
[data-theme=consult] .badge{border:0;background:var(--soft);font-weight:700}
[data-theme=consult] :is(.badge.solid,.tag){border:0;background:var(--accent);color:var(--on-accent)}
[data-theme=consult] .row{padding:26px 0;background:none;border-bottom:1px solid var(--line)}
[data-theme=consult] .rows{gap:0;border-top:2px solid var(--ink)}
[data-theme=consult] .rows.tight .row{padding:16px 0}
[data-theme=consult] .rows.lg .row{padding:30px 0}
[data-theme=consult] .row .n{font-size:40px}
[data-theme=consult] :is(.sn,.q::before){border-radius:0;background:var(--ink);color:var(--bg)}
[data-theme=consult] .box.key .sn{background:var(--accent);color:var(--on-accent)}
[data-theme=consult] .qa .box{padding:32px 40px}
[data-theme=consult] .chips li{border:1px solid var(--line);background:var(--bg)}
[data-theme=consult] .tabs li{border-radius:0}
[data-theme=consult] .tabs li.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
[data-theme=consult] :is(.callout,.tip){border-radius:0}
[data-theme=consult] .callout{border:0;border-left:6px solid var(--accent);background:var(--soft)}
[data-theme=consult] .tip{border:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);background:none;padding:22px 0}
[data-theme=consult] .tip b{letter-spacing:.1em}
[data-theme=consult] :is(.checks li,.pairs .box)::before{border-radius:0}
[data-theme=consult] .pairs .ph-h,[data-theme=consult] .lanes .lh{color:var(--accent-ink);font-size:22px;letter-spacing:.1em}
[data-theme=consult] :is(.arrow,.pipe .node::after){color:var(--ink)}
[data-theme=consult] .pipe .node::after{background:var(--ink)}
[data-theme=consult] .wire i{background:var(--ink)}
[data-theme=consult] .eq .op{color:var(--ink);font-weight:400}
[data-theme=consult] .avatar,[data-theme=consult] .kol .av{border-radius:0}
[data-theme=consult] .avatar{background:var(--ink);color:var(--bg)}
[data-theme=consult] .kol .av{border-style:solid}
[data-theme=consult] .ph{border-radius:0}
[data-theme=consult] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:1px solid var(--line);box-shadow:0 24px 50px -30px rgba(11,31,63,.4)}
[data-theme=consult] .ring-hint{border-radius:0}
[data-theme=consult] .bio{border-left-width:6px}
[data-theme=consult] .agenda3 h3{letter-spacing:.12em;font-size:24px}
[data-theme=consult] .agenda3 li{border-top-color:var(--line)}
/* 数据：一行指标，之间用细竖线分隔，不加底色；第一个数字用强调色 */
[data-theme=consult] .stat{background:none;padding:12px 0 12px 48px;border-left:1px solid var(--line)}
[data-theme=consult] :is(.stats3,.g2)>.stat:first-child{border-left:0;padding-left:0}
[data-theme=consult] .stat .n{letter-spacing:-.03em;color:var(--ink)}
[data-theme=consult] .stat .n small{font-family:var(--f-body);font-weight:600;color:var(--muted)}
[data-theme=consult] :is(.stats3,.g2)>.stat:first-child .n{color:var(--accent-ink)}
[data-theme=consult] .stat .l{padding-top:18px;border-top:3px solid var(--ink);margin-top:22px}
[data-theme=consult] :is(.stats3,.g2)>.stat:first-child .l{border-top-color:var(--accent)}
[data-theme=consult] .metric b{font-weight:700}
[data-theme=consult] .price .amt{letter-spacing:-.03em}
/* 表格：藏青表头、细横线、浅色隔行 */
[data-theme=consult] .tbl{border-collapse:separate;border-spacing:0}
[data-theme=consult] .tbl th{background:var(--x-ink);color:var(--x-bg);font-family:var(--f-body);font-size:27px;font-weight:700;padding:20px 28px}
[data-theme=consult] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=consult] .tbl tbody tr:nth-child(even) td{background:var(--zebra)}
[data-theme=consult] .tbl td:first-child{color:var(--ink)}
[data-theme=consult] .tbl th:first-child{color:var(--x-bg)}
/* 对比：两列表头是色块，行之间细线 */
[data-theme=consult] .cmp>*{border-top:1px solid var(--line)}
[data-theme=consult] .cmp>.h{border-top:0;padding-bottom:22px}
[data-theme=consult] .cmp>.h:not(:empty){border-bottom:3px solid var(--ink)}
[data-theme=consult] .cmp>.h.t1{border-bottom-color:var(--accent)}
[data-theme=consult] .cmp .h span{border-radius:0;padding:0;background:none;border:0;font-size:34px}
[data-theme=consult] .cmp .h.t1 span{background:none;color:var(--accent-ink)}
[data-theme=consult] .cmp .h.t2 span{background:none;color:var(--ink)}
[data-theme=consult] .cmp>:nth-child(-n+6){border-top:0}
/* 时间线：箭头形的阶段条，最后一段用强调色 */
[data-theme=consult] .tl{gap:10px}
[data-theme=consult] .tl::before{display:none}
[data-theme=consult] .tl>li{padding-top:94px}
[data-theme=consult] .tl>li::before{left:0;right:0;top:0;width:auto;height:64px;border-radius:0;box-shadow:none;background:var(--ink);clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%,26px 50%)}
[data-theme=consult] .tl>li:first-child::before{clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%)}
[data-theme=consult] .tl>li:last-child::before{background:var(--accent)}
[data-theme=consult] .tl .when{position:absolute;left:46px;right:34px;top:0;height:64px;display:flex;align-items:center;margin:0;font-size:25px;line-height:1.15;color:var(--bg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-theme=consult] .tl>li:first-child .when{left:26px}
[data-theme=consult] .tl>li:last-child .when{color:var(--on-accent)}
[data-theme=consult] .tl h3,[data-theme=consult] .tl .out{padding-right:26px}
[data-theme=consult] .tl .out{border-top:1px solid var(--line)}
/* 封面与结尾：顶上一条藏青色带，右侧一组柱形（有形象时柱形变浅，退到形象后面） */
[data-theme=consult] :is(.cover,.end)::before{content:"";position:absolute;left:0;right:0;top:0;height:14px;background:linear-gradient(90deg,var(--accent) 0 320px,var(--x-ink) 320px);z-index:0}
[data-theme=consult] :is(.cover,.end)::after{content:"";position:absolute;right:128px;bottom:150px;width:560px;height:600px;z-index:0;pointer-events:none;border-bottom:2px solid var(--ink);
  --b1:var(--line);--b2:var(--line);--b3:color-mix(in srgb,var(--ink) 22%,var(--bg));--b4:var(--ink);--b5:var(--accent);
  background:linear-gradient(var(--b5),var(--b5)) 100% 100%/15% 100% no-repeat,linear-gradient(var(--b4),var(--b4)) 75% 100%/15% 70% no-repeat,linear-gradient(var(--b3),var(--b3)) 50% 100%/15% 52% no-repeat,linear-gradient(var(--b2),var(--b2)) 25% 100%/15% 40% no-repeat,linear-gradient(var(--b1),var(--b1)) 0 100%/15% 28% no-repeat,repeating-linear-gradient(to top,transparent 0 119px,var(--line) 119px 120px)}
[data-theme=consult] :is(.cover,.end):has(>.ip)::after{right:110px;width:640px;height:700px;border-bottom-color:var(--line);--b1:var(--zebra);--b2:var(--zebra);--b3:var(--box-bg);--b4:var(--box-bg);--b5:var(--soft)}
[data-theme=consult] .end::after{height:440px;width:460px}
[data-theme=consult] .cover-meta{font-size:22px;font-weight:700;letter-spacing:.12em;color:var(--accent-ink);margin-bottom:44px}
[data-theme=consult] .cover-meta span+span{color:var(--muted)}
[data-theme=consult] .cover-meta span+span::before{content:"|";margin-right:28px;color:var(--faint);font-weight:400}
[data-theme=consult] .cover-title{font-size:140px;line-height:1.12;margin-bottom:0;max-width:1060px}
[data-theme=consult] .cover-title::after{content:"";display:block;width:120px;height:6px;margin:52px 0 40px;background:var(--accent)}
[data-theme=consult] .cover-sub{font-size:32px;max-width:1000px}
[data-theme=consult] .end .big{font-size:140px}
[data-theme=consult] .end:not(:has(>.ip,>.qrs)) :is(.big,.big-sub){max-width:1100px}
[data-theme=consult] .end:has(>.qrs)::after{display:none}
/* 章节页：左边大号章节号和标题，右边是全部章节的目录，当前章节加粗、上方一条强调色 */
[data-theme=consult] .divider{justify-content:center}
[data-theme=consult] .divider .dv-no{font-size:200px;line-height:.9;letter-spacing:-.04em}
[data-theme=consult] .divider .dv-title{font-size:100px;margin-top:44px;max-width:1000px}
[data-theme=consult] .divider .dv-sub{font-size:34px;max-width:1000px;margin-top:24px}
[data-theme=consult] .divider::before{content:"";position:absolute;left:0;top:0;bottom:0;width:14px;background:linear-gradient(var(--accent) 0 30%,var(--x-ink) 30%);z-index:0}
[data-theme=consult] .divider .dv-map{display:none}
[data-theme=consult] .divider>.secnav{display:block;position:absolute;right:128px;top:50%;width:540px;transform:translateY(-50%);border-bottom:1px solid var(--line)}
[data-theme=consult] .divider>.secnav li{display:flex;gap:22px;align-items:baseline;padding:22px 0 20px;border-top:1px solid var(--line);font-size:28px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-theme=consult] .divider>.secnav b{font-family:var(--f-num);font-weight:700;font-size:24px;min-width:40px;color:var(--muted)}
[data-theme=consult] .divider>.secnav span{overflow:hidden;text-overflow:ellipsis}
[data-theme=consult] .divider>.secnav li.done{color:var(--body2)}
[data-theme=consult] .divider>.secnav li.now{color:var(--ink);font-weight:700;box-shadow:inset 0 3px 0 var(--accent)}
[data-theme=consult] .divider>.secnav li.now b{color:var(--accent-ink)}
[data-theme=consult] .divider:has(>.ip)>.secnav{display:none}
[data-theme=consult] .divider:has(>.ip) .dv-map{display:grid}
[data-theme=consult] .divider .dv-map li span{color:var(--muted)}
/* 金句页：整页藏青，左上角一段强调色 */
[data-theme=consult] .stmt::before{content:"";position:absolute;left:128px;top:96px;width:112px;height:6px;background:var(--accent);z-index:0}
[data-theme=consult] .stmt .kicker{color:var(--accent-ink)}
[data-theme=consult] .stmt .big{font-size:88px;line-height:1.32;max-width:1560px}
[data-theme=consult] .stmt .big.md{font-size:70px;line-height:1.38}
[data-theme=consult] .stmt .chips{margin-top:40px}
[data-theme=consult] .stmt .chips li{background:none}
[data-theme=consult] .hello .title{font-size:92px}
/* 英文：标题收小，追踪条用大写 */
[data-theme=consult]:lang(en) .title{font-size:58px;line-height:1.18}
[data-theme=consult]:lang(en) :is(.kicker,.cover-meta,.label,.tip b,.agenda3 h3,.pairs .ph-h,.lanes .lh){text-transform:uppercase}
[data-theme=consult]:lang(en) .cover-title{font-size:118px;line-height:1.04}
[data-theme=consult]:lang(en) .end .big{font-size:120px}
[data-theme=consult]:lang(en) .divider .dv-title{font-size:86px;line-height:1.08}
[data-theme=consult]:lang(en) .stmt .big{font-size:76px;line-height:1.2}
[data-theme=consult]:lang(en) .stmt .big.md{font-size:62px;line-height:1.24}
[data-theme=consult]:lang(en) .hello .title{font-size:84px}
[data-theme=consult]:lang(en) .end:has(>.qrs) .big{font-size:96px}
/* ---- 风格 14 · consult 结束 ---- */

/* ================= 风格 15 · 科技蓝（techblue） =================
   数据大屏的气质：深海军蓝底铺满细网格，右上方一团蓝光、左下方一点青光；四角有取景框式的角标。
   卡片是半透明的深蓝面板，描边发光，左上角一个青色角标；重点卡片整圈发光。强调色从蓝过渡到青，
   渐变只用在色块和线条上，文字一律实色（导出 PPTX、PDF 不走样）。标题和数字用 Saira（等宽数字），正文用 Inter。
   和「夜幕」（近黑底、一束冷光、无网格）、「终端」（等宽标题、控制台窗口、琥珀色）分开 */
[data-theme=techblue]{
  --frame:#020814;--bg:#061430;--ink:#eaf2ff;--body2:#b7c6e0;--muted:#8fa2c4;--faint:#566b92;--line:#1c3160;
  --accent:#2f8bff;--accent2:#22d3ee;--accent-ink:#5cc8ff;--on-accent:#04112a;--soft:#0b2249;--soft-line:#245aa6;
  --glow:rgba(47,139,255,.38);
  --good:#34d399;--bad:#fb7185;
  --box-bg:#0c1f45;--box-border:1px solid var(--edge);--box-radius:8px;--box-shadow:none;--chip-radius:6px;
  --f-head:"Saira",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Saira",var(--cjk-sans),sans-serif;
  --title-w:700;--h3-w:600;--num-w:600;--num-style:normal;
  /* 装饰色都从强调色推出来：网格线、卡片描边、角标；自定义颜色时跟着变 */
  --grid:color-mix(in srgb,var(--accent) 8%,transparent);--ring:color-mix(in srgb,var(--accent) 30%,transparent);--edge:color-mix(in srgb,var(--accent) 32%,transparent);
  --tick:var(--accent2);--grad:linear-gradient(90deg,var(--accent),var(--accent2))}
[data-theme=techblue] :is(.stat .n,.price .amt,.no,.row .n,.metric b,.tbl,.tl .when,.ft,.kicker b,.dv-no,.sn,.agenda3 li b,.price .quota b,.repo .star){font-variant-numeric:tabular-nums lining-nums}
/* 每页：蓝光 + 青光 + 细网格（越往下越淡），四角取景框 */
[data-theme=techblue] .slide{background:radial-gradient(1100px 720px at 94% -14%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 70%),radial-gradient(900px 620px at -6% 114%,color-mix(in srgb,var(--accent2) 11%,transparent),transparent 70%),var(--bg)}
[data-theme=techblue] .slide::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px;background-position:-1px -1px}
[data-theme=techblue] .slide::after{content:"";position:absolute;inset:36px 52px;z-index:0;pointer-events:none;--c:var(--soft-line);
  background:linear-gradient(var(--c),var(--c)) 0 0/40px 2px no-repeat,linear-gradient(var(--c),var(--c)) 0 0/2px 40px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0/40px 2px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0/2px 40px no-repeat,
    linear-gradient(var(--c),var(--c)) 0 100%/40px 2px no-repeat,linear-gradient(var(--c),var(--c)) 0 100%/2px 40px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100%/40px 2px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100%/2px 40px no-repeat}
/* 页眉：眉题后面一条渐隐的细线，章节号是发光的小标签 */
[data-theme=techblue] .kicker{font-family:var(--f-num);font-size:22px;font-weight:600;letter-spacing:.16em;color:var(--accent-ink);gap:16px}
[data-theme=techblue] .kicker::after{content:"";flex:1;max-width:560px;height:1px;background:linear-gradient(90deg,var(--soft-line),transparent)}
[data-theme=techblue] .kicker b{font-size:21px;line-height:1;padding:7px 12px 6px;border:1px solid var(--soft-line);border-radius:4px;background:var(--soft);color:var(--accent-ink);letter-spacing:.04em;box-shadow:0 0 18px -4px var(--glow)}
[data-theme=techblue] .title{font-size:72px;line-height:1.24;letter-spacing:-.005em}
[data-theme=techblue] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{text-shadow:0 0 34px var(--glow)}
[data-theme=techblue] .lead{color:var(--body2)}
[data-theme=techblue] .label{font-family:var(--f-num);color:var(--accent-ink);letter-spacing:.14em}
[data-theme=techblue] .note,[data-theme=techblue] .cap{color:var(--muted)}
[data-theme=techblue] .slide>.ft{font-family:var(--f-num);font-size:19px;letter-spacing:.08em;color:var(--muted)}
[data-theme=techblue] .slide>.ft span:last-child{color:var(--accent-ink)}
/* 面板：半透明深蓝，描边发光，左上角青色角标；重点面板整圈发光、四角都有角标 */
[data-theme=techblue] .box{background:linear-gradient(var(--tick),var(--tick)) 0 0/22px 2px no-repeat,linear-gradient(var(--tick),var(--tick)) 0 0/2px 22px no-repeat,linear-gradient(180deg,color-mix(in srgb,var(--box-bg) 94%,transparent),color-mix(in srgb,var(--box-bg) 62%,transparent));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 7%,transparent),0 18px 40px -26px rgba(0,0,0,.7)}
[data-theme=techblue] .box.key{border-color:color-mix(in srgb,var(--accent) 85%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent),0 0 44px -10px var(--glow);
  background:linear-gradient(var(--tick),var(--tick)) 0 0/22px 2px no-repeat,linear-gradient(var(--tick),var(--tick)) 0 0/2px 22px no-repeat,linear-gradient(var(--tick),var(--tick)) 100% 100%/22px 2px no-repeat,linear-gradient(var(--tick),var(--tick)) 100% 100%/2px 22px no-repeat,linear-gradient(180deg,color-mix(in srgb,var(--accent) 18%,var(--box-bg)),var(--box-bg))}
[data-theme=techblue] .no{font-size:28px;font-weight:600;letter-spacing:.06em}
[data-theme=techblue] .no::after{content:"";display:inline-block;width:32px;height:1px;margin-left:14px;vertical-align:middle;background:var(--soft-line)}
[data-theme=techblue] .card h3,[data-theme=techblue] .row h3,[data-theme=techblue] .step h3{font-weight:600}
[data-theme=techblue] .card .meta{border-top:1px solid var(--line);color:var(--accent-ink)}
[data-theme=techblue] .badge{background:var(--soft);border:1px solid var(--soft-line);border-radius:4px;color:var(--accent-ink)}
[data-theme=techblue] :is(.badge.solid,.tag,.ring-hint){background:var(--grad);border:0;color:var(--on-accent);border-radius:4px}
[data-theme=techblue] :is(.sn,.q::before){border-radius:6px;background:var(--grad);color:var(--on-accent);box-shadow:0 0 20px -4px var(--glow)}
[data-theme=techblue] .row .n{font-size:44px;text-shadow:0 0 24px var(--glow)}
[data-theme=techblue] .rows{gap:14px}
[data-theme=techblue] .chips li{background:color-mix(in srgb,var(--box-bg) 80%,transparent);border:1px solid var(--edge);border-radius:var(--chip-radius)}
[data-theme=techblue] .tabs li{border-color:var(--edge);border-radius:4px}
[data-theme=techblue] .tabs li.on{background:var(--grad);border-color:transparent;color:var(--on-accent)}
[data-theme=techblue] .callout{background:var(--soft);border:1px solid var(--soft-line);border-radius:var(--box-radius)}
[data-theme=techblue] .tip{border-left:3px solid var(--accent2);border-radius:0 var(--box-radius) var(--box-radius) 0;background:linear-gradient(90deg,var(--soft),color-mix(in srgb,var(--soft) 20%,transparent))}
[data-theme=techblue] .tip b{font-family:var(--f-num);letter-spacing:.16em}
/* 对勾、叉：描边的发光小方块 */
[data-theme=techblue] .checks li::before,[data-theme=techblue] .pairs .box.good::before{border-radius:8px;background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good);box-shadow:inset 0 0 0 2px var(--good),0 0 18px -4px var(--good)}
[data-theme=techblue] .checks.donts li::before,[data-theme=techblue] .pairs .box.bad::before{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad);box-shadow:inset 0 0 0 2px var(--bad),0 0 18px -4px var(--bad)}
[data-theme=techblue] .pairs .ph-h,[data-theme=techblue] .lanes .lh,[data-theme=techblue] .cmp .l{font-family:var(--f-num);letter-spacing:.1em;color:var(--muted)}
[data-theme=techblue] .arrow{color:var(--accent-ink)}
[data-theme=techblue] .pipe .node::after{background:var(--accent-ink)}
[data-theme=techblue] .pipe .back{border-color:var(--accent2)}
[data-theme=techblue] .pipe .back::before{border-bottom-color:var(--accent2)}
[data-theme=techblue] .wire i{background:color-mix(in srgb,var(--accent) 70%,transparent);box-shadow:0 0 10px var(--glow)}
[data-theme=techblue] .eq .op{color:var(--accent2);font-weight:400}
[data-theme=techblue] .avatar{background:var(--grad);color:var(--on-accent);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--soft-line)}
[data-theme=techblue] .kol .av{border:1.5px solid var(--soft-line);background:var(--soft);box-shadow:0 0 30px -8px var(--glow)}
[data-theme=techblue] .ph{border-color:var(--soft-line);border-radius:var(--box-radius);background:repeating-linear-gradient(-45deg,transparent 0 18px,var(--soft) 18px 20px)}
[data-theme=techblue] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img){border-radius:var(--box-radius);border:1px solid var(--edge);box-shadow:0 0 0 1px rgba(0,0,0,.3),0 24px 60px -20px rgba(0,0,0,.6),0 0 50px -20px var(--glow)}
[data-theme=techblue] .qr img{border-radius:10px;box-shadow:0 0 40px -10px var(--glow)}
[data-theme=techblue] .bio{border-left:4px solid var(--accent2)}
[data-theme=techblue] .agenda3 h3{font-family:var(--f-num);letter-spacing:.16em}
[data-theme=techblue] .agenda3 li{border-top-color:var(--line)}
[data-theme=techblue] .agenda3 li b{text-shadow:0 0 18px var(--glow)}
/* 数据：大数字白色带一圈蓝光，单位用强调色 */
[data-theme=techblue] .stat .n{letter-spacing:-.02em;color:var(--ink);text-shadow:0 0 40px var(--glow)}
[data-theme=techblue] .stat .n small{font-family:var(--f-body);font-weight:600;color:var(--accent-ink);text-shadow:none}
[data-theme=techblue] .stat .l{font-weight:600}
[data-theme=techblue] .stats3 .stat:first-child .n{color:var(--accent-ink)}
[data-theme=techblue] .price .amt{letter-spacing:-.02em;text-shadow:0 0 36px var(--glow)}
[data-theme=techblue] .price .quota{border-top-color:var(--line)}
[data-theme=techblue] .metric b{text-shadow:0 0 30px var(--glow)}
[data-theme=techblue] .repo .star::before{color:var(--accent2)}
/* 表格：发光描边的面板，表头浅蓝底、强调色字，隔行微亮 */
[data-theme=techblue] .tbl{border-collapse:separate;border-spacing:0;border:1px solid var(--edge);border-radius:var(--box-radius);overflow:hidden;background:color-mix(in srgb,var(--box-bg) 82%,transparent);box-shadow:0 0 50px -24px var(--glow)}
[data-theme=techblue] .tbl th{background:color-mix(in srgb,var(--accent) 17%,var(--bg));color:var(--accent-ink);font-family:var(--f-num);font-size:28px;font-weight:600;letter-spacing:.04em;border-bottom:1px solid var(--soft-line)}
[data-theme=techblue] .tbl td{border-top:1px solid var(--line)}
[data-theme=techblue] .tbl tbody tr:first-child td{border-top:0}
[data-theme=techblue] .tbl tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--ink) 3.5%,transparent)}
[data-theme=techblue] .tbl td:first-child{color:var(--ink)}
[data-theme=techblue] .tbl th:first-child{color:var(--accent-ink)}
/* 对比：第一列表头是渐变色块，第二列是描边 */
[data-theme=techblue] .cmp>*{border-top:1px solid var(--line)}
[data-theme=techblue] .cmp>.h{border-top:0}
[data-theme=techblue] .cmp .h span{border-radius:6px}
[data-theme=techblue] .cmp .h.t1 span{background:var(--grad);color:var(--on-accent)}
[data-theme=techblue] .cmp .h.t2 span{background:var(--soft);border-color:var(--soft-line);color:var(--accent-ink)}
/* 时间线：蓝到青的渐变线，节点是发光的菱形，最后一个实心 */
[data-theme=techblue] .tl::before{top:21px;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2) 70%,color-mix(in srgb,var(--accent2) 20%,transparent))}
[data-theme=techblue] .tl>li::before{left:5px;top:11px;width:22px;height:22px;border-radius:3px;transform:rotate(45deg);background:var(--bg);box-shadow:inset 0 0 0 2px var(--accent2),0 0 0 7px var(--bg),0 0 22px var(--glow)}
[data-theme=techblue] .tl>li:last-child::before{background:var(--accent2)}
[data-theme=techblue] .tl .when{font-family:var(--f-num);font-weight:600;letter-spacing:.02em}
[data-theme=techblue] .tl .out{border-top:1px solid var(--line)}
[data-theme=techblue] .tl .out b{color:var(--accent-ink);font-family:var(--f-num)}
/* 封面、结尾、章节页：右侧一组雷达环（同心细圆），封面再加十字准线和扫描扇面，形象站在环里 */
[data-theme=techblue] :is(.cover,.end,.divider){background:radial-gradient(900px 760px at 78% 46%,color-mix(in srgb,var(--accent) 26%,transparent),transparent 70%),radial-gradient(900px 620px at -6% 114%,color-mix(in srgb,var(--accent2) 12%,transparent),transparent 70%),var(--bg)}
[data-theme=techblue] :is(.cover,.end,.divider)::before{
  background-image:radial-gradient(circle at 78% 46%,transparent 0 119px,var(--ring) 119px 120.5px,transparent 120.5px 239px,var(--ring) 239px 240.5px,transparent 240.5px 359px,color-mix(in srgb,var(--ring) 75%,transparent) 359px 360.5px,transparent 360.5px 479px,color-mix(in srgb,var(--ring) 55%,transparent) 479px 480.5px,transparent 480.5px 599px,color-mix(in srgb,var(--ring) 35%,transparent) 599px 600.5px,transparent 600.5px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;background-position:0 0,-1px -1px,-1px -1px}
[data-theme=techblue] .cover .deco>*{display:block;position:absolute}
[data-theme=techblue] .cover .deco .d1{left:calc(78% - 480px);top:calc(46% - 480px);width:960px;height:960px;border-radius:50%;overflow:hidden;background:conic-gradient(from 20deg,color-mix(in srgb,var(--accent2) 30%,transparent),transparent 62deg)}
[data-theme=techblue] .cover .deco .d2{left:calc(78% - 600px);top:calc(46% - .5px);width:1200px;height:1px;background:linear-gradient(90deg,transparent,var(--soft-line) 20%,var(--soft-line) 80%,transparent)}
[data-theme=techblue] .cover .deco .d3{left:calc(78% - .5px);top:calc(46% - 500px);width:1px;height:1000px;background:linear-gradient(transparent,var(--soft-line) 20%,var(--soft-line) 80%,transparent)}
[data-theme=techblue] .cover-meta{gap:16px;font-family:var(--f-num);font-size:21px;font-weight:600;letter-spacing:.14em;color:var(--accent-ink);margin-bottom:48px}
[data-theme=techblue] .cover-meta span{padding:7px 16px 6px;border:1px solid var(--soft-line);border-radius:4px;background:color-mix(in srgb,var(--soft) 70%,transparent)}
[data-theme=techblue] .cover-meta span:first-child::before{content:"";display:inline-block;width:9px;height:9px;margin-right:12px;border-radius:50%;background:var(--accent2);box-shadow:0 0 12px var(--accent2);vertical-align:2px}
[data-theme=techblue] .cover-title{font-size:150px;line-height:1.1;letter-spacing:-.02em;max-width:1120px}
[data-theme=techblue] .cover-sub{color:var(--body2);max-width:1080px}
[data-theme=techblue] .end .big{font-size:150px}
[data-theme=techblue] .end:not(:has(>.ip,>.qrs)) :is(.big,.big-sub){max-width:1100px}
/* 章节页：大号章节号带光晕，下面是分段的进度条 */
[data-theme=techblue] .divider .dv-no{font-size:240px;line-height:.9;letter-spacing:-.03em;text-shadow:0 0 70px var(--glow)}
[data-theme=techblue] .divider .dv-title{font-size:110px;max-width:1300px}
[data-theme=techblue] .divider .dv-sub{color:var(--body2)}
[data-theme=techblue] .divider .dv-map{gap:6px}
[data-theme=techblue] .divider .dv-map li{height:6px;border-radius:1px;background:var(--line)}
[data-theme=techblue] .divider .dv-map li.done{background:var(--soft-line)}
[data-theme=techblue] .divider .dv-map li.now{background:var(--grad);box-shadow:0 0 16px var(--glow)}
[data-theme=techblue] .divider .dv-map li span{font-family:var(--f-num);font-size:20px;letter-spacing:.08em;color:var(--muted)}
[data-theme=techblue] .divider .dv-map li.now span{color:var(--accent-ink)}
/* 金句页：左边一条蓝到青的竖线 */
[data-theme=techblue] .stmt .big{font-size:90px;line-height:1.3;padding-left:52px;border-left:5px solid;border-image:linear-gradient(var(--accent),var(--accent2)) 1}
[data-theme=techblue] .stmt .big.md{font-size:72px}
[data-theme=techblue] .stmt .big+.big{padding-top:10px;margin-top:0}
[data-theme=techblue] .stmt :is(.big-sub,.chips,.label,.botrow){margin-left:57px}
[data-theme=techblue] .stmt .chips{margin-top:40px}
[data-theme=techblue] .hello .title{font-size:96px}
/* 导出（PDF、图片）和打印时去掉文字光晕：苹果「预览」等阅读器会把模糊的文字阴影画成方块 */
[data-theme=techblue] .aps-page .slide *{text-shadow:none!important}
@media print{[data-theme=techblue] .slide *{text-shadow:none!important}}
/* 英文：Saira 比较宽，标题收小 */
[data-theme=techblue]:lang(en) .title{font-size:62px;line-height:1.16}
[data-theme=techblue]:lang(en) .cover-title{font-size:124px;line-height:1.04}
[data-theme=techblue]:lang(en) .end .big{font-size:124px}
[data-theme=techblue]:lang(en) .divider .dv-title{font-size:92px;line-height:1.06}
[data-theme=techblue]:lang(en) .stmt .big{font-size:78px;line-height:1.18}
[data-theme=techblue]:lang(en) .stmt .big.md{font-size:62px;line-height:1.22}
[data-theme=techblue]:lang(en) .hello .title{font-size:84px}
[data-theme=techblue]:lang(en) .end:has(>.qrs) .big{font-size:92px}
[data-theme=techblue]:lang(en) .kicker{letter-spacing:.1em;text-transform:uppercase}
/* ---- 风格 15 · techblue 结束 ---- */

/* ================= 风格 16 · 学院答辩（academy） =================
   学位论文答辩的正式感：象牙纸底、墨色字、一个学校代表色（默认酒红）；每页顶上一粗一细两道校色线，像信笺抬头。
   标题用宋体（Noto Serif SC）配 Newsreader，正文黑体；眉题前加「§」节号，章节页写成「第 01 章」，下面一行全部章节的目录。
   封面、结尾、金句页居中排，封面上有一枚几何校徽（同心圆 + 刻度 + 星形，不是插画）和带菱形的装饰线。
   表格是三线表，脚注上面一小段短线。和「商务稳重」（藏青整页、黄铜）、「编辑部」（报纸粗线）、「中文杂志」（巨型宋体）分开 */
[data-theme=academy]{
  --frame:#e2ddd3;--bg:#fbf9f4;--ink:#1f1d1b;--body2:#3e3a36;--muted:#645d56;--faint:#a59d92;--line:#ddd6ca;
  --accent:#8a1c2b;--accent2:#8a1c2b;--accent-ink:#8a1c2b;--on-accent:#fff;--soft:#f3e8e5;--soft-line:#d4a8ad;
  --good:#2f6b45;--bad:#a8322d;
  --box-bg:#ffffff;--box-border:1px solid var(--line);--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:"Newsreader",var(--cjk-serif),"Songti SC","STSong",serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Newsreader",var(--cjk-serif),serif;
  --title-w:700;--h3-w:700;--num-w:500;--num-style:normal;
  /* 校徽和装饰线：SVG 做蒙版，颜色跟着强调色走 */
  --crest:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='none' stroke='black'%3E%3Ccircle cx='60' cy='60' r='57' stroke-width='2.5'/%3E%3Ccircle cx='60' cy='60' r='50.5' stroke-width='1'/%3E%3Ccircle cx='60' cy='60' r='44' stroke-width='6' stroke-dasharray='1.4 3.2'/%3E%3Ccircle cx='60' cy='60' r='36.5' stroke-width='1'/%3E%3Cpath d='M60 33l5.5 21.5L87 60l-21.5 5.5L60 87l-5.5-21.5L33 60l21.5-5.5z' fill='black' stroke='none'/%3E%3Ccircle cx='60' cy='60' r='4' fill='white' stroke='none'/%3E%3C/svg%3E");
  --flourish:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 14'%3E%3Cpath d='M0 7H158M202 7H360' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M180 0l7 7-7 7-7-7z'/%3E%3Ccircle cx='166' cy='7' r='2'/%3E%3Ccircle cx='194' cy='7' r='2'/%3E%3C/svg%3E")}
[data-theme=academy] :is(.stat .n,.price .amt,.no,.row .n,.metric b,.tbl,.tl .when,.ft,.kicker b,.dv-no,.sn,.agenda3 li b,.price .quota b){font-variant-numeric:lining-nums tabular-nums}
[data-theme=academy] :is(.title,.cover-title,.dv-title,.big){letter-spacing:.01em}
/* 每页顶上：一粗一细两道校色线 */
[data-theme=academy] .slide::before{content:"";position:absolute;left:0;right:0;top:0;height:16px;z-index:0;pointer-events:none;background:linear-gradient(var(--accent) 0 9px,transparent 9px 13px,var(--accent) 13px 14.5px,transparent 14.5px)}
/* 页眉：§ 节号 + 眉题，宋体标题 */
[data-theme=academy] .kicker{font-size:22px;font-weight:600;letter-spacing:.14em;color:var(--accent-ink);gap:16px}
[data-theme=academy] .kicker b{font-size:28px;font-weight:600;letter-spacing:0}
[data-theme=academy] .kicker b::before{content:"§";margin-right:.22em;font-weight:500}
[data-theme=academy] .title{font-size:70px;line-height:1.26}
[data-theme=academy] .lead{font-size:31px}
[data-theme=academy] .label{color:var(--accent-ink);letter-spacing:.12em}
[data-theme=academy] .note{font-size:21px;padding-top:14px;background:linear-gradient(var(--muted),var(--muted)) 0 0/200px 1px no-repeat}
[data-theme=academy] .cap{font-size:21px}
[data-theme=academy] .slide>.ft{bottom:40px;padding-top:12px;border-top:1px solid var(--line);font-size:18px;letter-spacing:.08em;color:var(--muted)}
[data-theme=academy] .slide>.ft span:last-child{font-family:var(--f-num);font-size:22px;letter-spacing:.02em}
/* 卡片：白卡细边框；重点卡片四周换成校色，顶上一道粗线 */
[data-theme=academy] .box.key{border-color:var(--accent);box-shadow:inset 0 5px 0 var(--accent)}
[data-theme=academy] .box>.tag{top:-16px}
[data-theme=academy] .no{font-size:32px;font-weight:600}
[data-theme=academy] .card .meta{border-top:1px solid var(--line)}
[data-theme=academy] .badge{border:1px solid var(--soft-line);background:none}
[data-theme=academy] :is(.badge.solid,.tag){border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
[data-theme=academy] .row .n{font-size:46px;font-weight:600}
[data-theme=academy] .rows{gap:14px}
[data-theme=academy] .sn{background:none;border:2px solid var(--accent);color:var(--accent-ink);font-weight:600;font-size:32px}
[data-theme=academy] .box.key .sn{background:var(--accent);color:var(--on-accent)}
[data-theme=academy] .q::before{border-radius:0;background:none;border:1.5px solid var(--accent);color:var(--accent-ink);font-weight:600;font-size:28px}
[data-theme=academy] .chips li{background:var(--box-bg);border:1px solid var(--line)}
[data-theme=academy] .tabs li{border-radius:0}
[data-theme=academy] .callout{border:0;border-left:4px solid var(--accent);border-radius:0;background:var(--soft)}
[data-theme=academy] .tip{border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:0;background:var(--box-bg)}
[data-theme=academy] .tip b{letter-spacing:.14em}
[data-theme=academy] .pairs .ph-h,[data-theme=academy] .lanes .lh{color:var(--accent-ink);font-size:22px;letter-spacing:.12em}
[data-theme=academy] .lanes .lt{font-weight:700}
[data-theme=academy] .wire i{background:var(--muted)}
[data-theme=academy] .pipe .node::after{background:var(--muted)}
[data-theme=academy] .arrow{color:var(--muted)}
[data-theme=academy] .eq .op{font-weight:400;color:var(--accent-ink)}
[data-theme=academy] .avatar{background:var(--accent);color:var(--on-accent);font-family:var(--f-head)}
[data-theme=academy] .kol .av{border:1.5px solid var(--accent);background:var(--soft);font-family:var(--f-head)}
[data-theme=academy] .ph{border-radius:0;border-color:var(--faint)}
[data-theme=academy] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:1px solid var(--line);box-shadow:0 14px 40px -24px rgba(31,29,27,.4)}
[data-theme=academy] .ring-hint{border-radius:0}
[data-theme=academy] .bio{border-left-width:3px;font-family:var(--f-head);font-weight:600}
[data-theme=academy] .quote::before{font-weight:500}
[data-theme=academy] .agenda3 h3{letter-spacing:.16em;font-size:24px}
[data-theme=academy] .agenda3 li{border-top-color:var(--line)}
/* 数据：不加底色，上面一道双线；大数字用 Newsreader，第一个用校色 */
[data-theme=academy] .stat{background:none;border:0;border-top:5px double var(--ink);padding:30px 6px 0}
[data-theme=academy] .stat .n{font-weight:500;letter-spacing:-.02em}
[data-theme=academy] .stat .n small{font-family:var(--f-body);font-weight:600;color:var(--muted)}
[data-theme=academy] :is(.stats3,.g2)>.stat:first-child{border-top-color:var(--accent)}
[data-theme=academy] :is(.stats3,.g2)>.stat:first-child .n{color:var(--accent-ink)}
[data-theme=academy] .stat .l{font-size:34px}
[data-theme=academy] .price .amt{font-weight:500;letter-spacing:-.02em}
[data-theme=academy] .metric b{font-weight:500}
/* 表格：三线表，表头宋体，行间不画线 */
[data-theme=academy] .tbl{border-top:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink)}
[data-theme=academy] .tbl th{border-bottom:1.2px solid var(--ink);font-size:30px;font-weight:700;padding-top:22px;padding-bottom:20px}
[data-theme=academy] .tbl td{padding-top:18px;padding-bottom:18px}
[data-theme=academy] .tbl tbody tr:first-child td{padding-top:24px}
[data-theme=academy] .tbl tbody tr:last-child td{padding-bottom:24px}
[data-theme=academy] .tbl td:first-child{color:var(--ink)}
[data-theme=academy] .tbl th:first-child{color:var(--ink)}
/* 对比：表头色块是直角，行之间细线 */
[data-theme=academy] .cmp>*{border-top-color:var(--line)}
[data-theme=academy] .cmp .h span{border-radius:0;font-size:32px}
[data-theme=academy] .cmp .h.t2 span{background:var(--box-bg);border-color:var(--accent)}
/* 时间线：细墨线，节点是空心圆，最后一个实心 */
[data-theme=academy] .tl::before{height:1.5px;background:var(--ink);top:20px}
[data-theme=academy] .tl>li::before{width:24px;height:24px;top:9px;background:var(--bg);box-shadow:inset 0 0 0 3px var(--accent),0 0 0 8px var(--bg)}
[data-theme=academy] .tl>li:last-child::before{background:var(--accent)}
[data-theme=academy] .tl .when{font-family:var(--f-num);font-weight:600}
[data-theme=academy] .tl .out{border-top:1px solid var(--line)}
/* 封面与结尾：居中排；上下各一粗一细两道校色线，校徽在最上面，标题和副标题之间一条带菱形的装饰线 */
[data-theme=academy] :is(.cover,.end)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:16px;z-index:0;pointer-events:none;background:linear-gradient(0deg,var(--accent) 0 9px,transparent 9px 13px,var(--accent) 13px 14.5px,transparent 14.5px)}
[data-theme=academy] .cover:not(:has(>.ip)){align-items:center;text-align:center}
[data-theme=academy] .cover-meta{flex-wrap:wrap;gap:0 28px;font-size:22px;font-weight:600;letter-spacing:.2em;color:var(--muted);margin-bottom:36px}
[data-theme=academy] .cover-meta::before{content:"";flex:0 0 100%;height:116px;margin-bottom:40px;background:var(--accent);-webkit-mask:var(--crest) left center/116px no-repeat;mask:var(--crest) left center/116px no-repeat}
[data-theme=academy] .cover:not(:has(>.ip)) .cover-meta{justify-content:center}
[data-theme=academy] .cover:not(:has(>.ip)) .cover-meta::before{-webkit-mask-position:center;mask-position:center}
[data-theme=academy] .cover-meta span+span::before{content:"·";margin-right:28px;color:var(--faint)}
[data-theme=academy] .cover-title{font-size:128px;line-height:1.16;margin-bottom:0}
[data-theme=academy] .cover-title::after{content:"";display:block;width:360px;height:14px;margin:46px 0 38px;background:var(--accent);-webkit-mask:var(--flourish) center/contain no-repeat;mask:var(--flourish) center/contain no-repeat}
[data-theme=academy] .cover:not(:has(>.ip)) .cover-title::after{margin-left:auto;margin-right:auto}
[data-theme=academy] .cover-sub{font-size:34px;color:var(--body2)}
[data-theme=academy] .cover .byline{margin-top:60px}
[data-theme=academy] .end:not(:has(>.ip,>.qrs)){align-items:center;text-align:center}
[data-theme=academy] .end .big{font-size:140px;line-height:1.15}
[data-theme=academy] .end .big::after{content:"";display:block;width:360px;height:14px;margin:40px auto 0;background:var(--accent);-webkit-mask:var(--flourish) center/contain no-repeat;mask:var(--flourish) center/contain no-repeat}
[data-theme=academy] .end:is(:has(>.ip),:has(>.qrs)) .big::after{margin-left:0}
[data-theme=academy] .end .big-sub{margin-top:36px}
/* 章节页：「第 01 章」，标题上方一道粗细双线，底下一行全部章节的目录 */
[data-theme=academy] .divider .dv-no{display:flex;align-items:baseline;gap:.12em;font-size:200px;font-weight:500;line-height:1;letter-spacing:-.02em}
[data-theme=academy]:lang(zh) .divider .dv-no::before{content:"第";font-family:var(--cjk-serif),serif;font-size:.42em;font-weight:700;letter-spacing:0}
[data-theme=academy]:lang(zh) .divider .dv-no::after{content:"章";font-family:var(--cjk-serif),serif;font-size:.42em;font-weight:700;letter-spacing:0}
[data-theme=academy]:lang(en) .divider .dv-no::before{content:"Chapter";font-size:.3em;font-style:italic;letter-spacing:0;margin-right:.2em}
[data-theme=academy] .divider .dv-title{align-self:stretch;font-size:104px;margin-top:40px;padding-top:36px;border-top:5px double var(--ink)}
[data-theme=academy] .divider .dv-sub{font-size:34px}
[data-theme=academy] .divider .dv-map{display:none}
[data-theme=academy] .divider>.secnav{display:flex;position:absolute;left:128px;right:128px;bottom:84px;gap:36px;border-top:1px solid var(--line)}
[data-theme=academy] .divider>.secnav li{flex:1 1 0;min-width:0;display:flex;gap:14px;align-items:baseline;padding-top:18px;font-size:22px;line-height:1.3;color:var(--muted);white-space:nowrap}
[data-theme=academy] .divider>.secnav b{flex:none;font-family:var(--f-num);font-weight:600;font-size:24px;color:var(--muted)}
[data-theme=academy] .divider>.secnav span{overflow:hidden;text-overflow:ellipsis}
[data-theme=academy] .divider>.secnav li.now{color:var(--ink);font-weight:700;box-shadow:inset 0 3px 0 var(--accent)}
[data-theme=academy] .divider>.secnav li.now b{color:var(--accent-ink)}
/* 金句页：居中，像题记；眉题两侧各一段细线 */
[data-theme=academy] .stmt:not(.has-ip){align-items:center;text-align:center}
[data-theme=academy] .stmt:not(.has-ip) :is(.chips,.botrow){justify-content:center}
[data-theme=academy] .stmt:not(.has-ip) .kicker::before,[data-theme=academy] .stmt:not(.has-ip) .kicker::after{content:"";width:72px;height:1px;background:var(--soft-line)}
[data-theme=academy] .stmt .big{font-size:86px;line-height:1.36}
[data-theme=academy] .stmt .big.md{font-size:70px;line-height:1.42}
[data-theme=academy] .stmt .big-sub{max-width:1360px}
[data-theme=academy] .stmt .chips{margin-top:40px}
[data-theme=academy] .hello .title{font-size:92px}
/* 英文：标题收小 */
[data-theme=academy]:lang(en) .title{font-size:64px;line-height:1.14}
[data-theme=academy]:lang(en) .cover-title{font-size:116px;line-height:1.06}
[data-theme=academy]:lang(en) .end .big{font-size:124px}
[data-theme=academy]:lang(en) .divider .dv-title{font-size:92px;line-height:1.08}
[data-theme=academy]:lang(en) .stmt .big{font-size:76px;line-height:1.2}
[data-theme=academy]:lang(en) .stmt .big.md{font-size:62px;line-height:1.24}
[data-theme=academy]:lang(en) .hello .title{font-size:84px}
[data-theme=academy]:lang(en) .end:has(>.qrs) .big{font-size:96px}
[data-theme=academy]:lang(en) :is(.kicker,.cover-meta,.label,.agenda3 h3){font-variant-caps:all-small-caps;letter-spacing:.08em;font-size:26px}
/* ---- 风格 16 · academy 结束 ---- */

/* ================= 风格 17 · 便当格（bento） =================
   Bento Grid：浅灰底上排白色圆角格子（24px），一格一件事；一格铺强调色、一格浅强调底、偶尔一格反白（墨色底），
   其余都是白格。卡片、列表、数据按条目数拼成宽窄、高矮不一的格子（每格面积不小于原版式，容量不变），
   数字特大、粗黑体收紧字距；封面、章节页、结尾页也是几块格子拼成。不描边、不投影 */
[data-theme=bento]{
  --frame:#d6d6d2;--bg:#ebebe8;--ink:#111111;--body2:#3c3c3a;--muted:#5b5b58;--faint:#999995;--line:#dededa;
  --accent:#ff5b1f;--accent2:#ff5b1f;--accent-ink:#b23f12;--on-accent:#111111;--soft:#ffe2d4;--soft-line:#ffb18c;
  --good:#14924a;--bad:#e0351b;
  --box-bg:#ffffff;--box-border:0;--box-radius:24px;--box-shadow:none;--chip-radius:999px;
  --cell-gap:20px;--inv-accent:var(--accent);--em-ink:color-mix(in srgb,var(--accent) 55%,var(--accent-ink));
  --f-head:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Inter",var(--cjk-sans),sans-serif;
  --title-w:800;--h3-w:700;--num-w:800;--num-style:normal}
/* 三种格子：强调色格（重点、拼格里的主格）、反白格（墨色底）、浅强调格 */
/* 三种格子：强调色格（重点、拼格里的主格）、反白格（墨色底）、浅强调格。
   强调色格和反白格里把文字、线条、柔和底这些变量换成格子上的配色，格子里的内容块不用逐个改颜色 */
[data-theme=bento]{--cell-acc:var(--accent);--cell-acc-on:var(--on-accent);--cell-inv:var(--ink);--cell-inv-on:var(--bg)}
[data-theme=bento] :is(
  .box.key:not(.pairs>.box),
  .grid.g2:has(>.box:nth-child(2):last-child):not(.agenda3,.price,.kol,.keep):not(:has(>.key,>.job))>.box:first-child,
  .body:not(:has(>:not(.grid,.note)))>.grid.g3.st:not(.steps3,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box.card:nth-child(3):last-child):not(:has(>.job,>.box>.bot-av)):not(:has(>.key))>.box:first-child,
  .road:is(:has(>.box:nth-child(3):last-child),:has(>.box:nth-child(4):last-child),:has(>.box:nth-child(5):last-child),:has(>.box:nth-child(6)))>.box:first-child,
  .stats3>.stat:first-child,.prod>.box:first-child,.grid:has(>.box>.quote)>.box:first-child,.eq .eq-k
){background:var(--cell-acc);color:var(--cell-acc-on);
  --ink:var(--cell-acc-on);--body2:var(--cell-acc-on);--muted:var(--cell-acc-on);--faint:color-mix(in srgb,var(--cell-acc-on) 45%,var(--cell-acc));
  --accent:var(--cell-acc-on);--accent-ink:var(--cell-acc-on);--on-accent:var(--cell-acc);--em-ink:var(--cell-acc-on);--inv-accent:var(--cell-acc);
  --soft:color-mix(in srgb,var(--cell-acc-on) 10%,transparent);--soft-line:color-mix(in srgb,var(--cell-acc-on) 35%,transparent);
  --line:color-mix(in srgb,var(--cell-acc-on) 28%,transparent);--box-bg:color-mix(in srgb,var(--cell-acc-on) 8%,transparent);--bg:var(--cell-acc)}
[data-theme=bento] :is(
  .grid:is(.g3,.g5):has(>.box:nth-child(5)):not(:has(>.key))>.box:last-child,
  .stats3>.stat:nth-child(3),.price>.box:nth-child(2):not(:last-child),.prod>.box:nth-child(3),.agenda3>.box:first-child
){background:var(--cell-inv);color:var(--cell-inv-on);
  --ink:var(--cell-inv-on);--body2:color-mix(in srgb,var(--cell-inv-on) 84%,var(--cell-inv));--muted:color-mix(in srgb,var(--cell-inv-on) 72%,var(--cell-inv));--faint:color-mix(in srgb,var(--cell-inv-on) 45%,var(--cell-inv));
  --accent-ink:var(--inv-accent);--em-ink:var(--inv-accent);
  --soft:color-mix(in srgb,var(--cell-inv-on) 10%,transparent);--soft-line:color-mix(in srgb,var(--cell-inv-on) 30%,transparent);
  --line:color-mix(in srgb,var(--cell-inv-on) 18%,transparent);--box-bg:color-mix(in srgb,var(--cell-inv-on) 8%,transparent);--bg:var(--cell-inv)}
[data-theme=bento] .agenda3>.box:first-child h3{color:var(--inv-accent)}
[data-theme=bento] .stats3>.stat:nth-child(3) .n{color:var(--inv-accent)}
[data-theme=bento] .prod>.box:nth-child(4){background:var(--soft)}
[data-theme=bento] :is(.title,.cover-title,.dv-title,.big,.yr-key) em{color:var(--em-ink)}
[data-theme=bento] :is(.title,.cover-title,.dv-title,.big){letter-spacing:-.025em}
[data-theme=bento] .title{font-size:74px;line-height:1.16}
[data-theme=bento] .hd{margin-bottom:44px}
/* 眉题：白色胶囊，编号是一粒强调色圆点加数字 */
[data-theme=bento] .kicker{width:fit-content;background:var(--box-bg);border-radius:999px;padding:8px 24px 8px 10px;font-size:23px;color:var(--body2);font-weight:600;letter-spacing:.02em;gap:14px}
[data-theme=bento] .kicker b{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:36px;padding:0 12px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:20px;font-weight:800}
[data-theme=bento] .kicker:not(:has(b)){padding-left:24px}
[data-theme=bento] .lead{color:var(--body2)}
[data-theme=bento] .grid,[data-theme=bento] .qa{gap:var(--cell-gap)}
[data-theme=bento] .box.card{padding:36px 38px}
[data-theme=bento] .no{font-size:40px;letter-spacing:-.03em}
[data-theme=bento] .card{gap:12px}
[data-theme=bento] .card h3{font-size:38px;line-height:1.28}
[data-theme=bento] .card p{font-size:27px}
[data-theme=bento] .card .meta{border-top:1.5px solid var(--line)}
[data-theme=bento] .badge{border:0;font-weight:700}
[data-theme=bento] :is(.badge.solid,.tag){background:var(--ink);color:var(--bg);border:0}
[data-theme=bento] .box>.tag{top:-16px}
[data-theme=bento] .sn{border-radius:18px;background:var(--ink);color:var(--bg)}
[data-theme=bento] .q::before{border-radius:14px}
/* ---- 拼格：卡片 ---- */
/* 两格一行：七比五 */
[data-theme=bento] .grid.g2:has(>.box:nth-child(2):last-child),[data-theme=bento] .qa.g2:has(>.box:nth-child(2):last-child){grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
/* 四格（两列两行的卡片、问答；或四列一行、页面上只有这组卡片的）：棋盘式七五 / 五七 */
[data-theme=bento] :is(.grid.g2:not(.agenda3),.qa.g2):has(>.box:nth-child(4):last-child),
[data-theme=bento] .body:not(:has(>:not(.grid,.note)))>.grid.g4:not(.steps4,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box:nth-child(4):last-child):not(:has(>.job)){grid-template-columns:repeat(12,minmax(0,1fr))}
[data-theme=bento] :is(.grid.g2:not(.agenda3),.qa.g2):has(>.box:nth-child(4):last-child)>:is(:nth-child(1),:nth-child(4)),
[data-theme=bento] .body:not(:has(>:not(.grid,.note)))>.grid.g4:not(.steps4,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box:nth-child(4):last-child):not(:has(>.job))>:is(:nth-child(1),:nth-child(4)){grid-column:span 7}
[data-theme=bento] :is(.grid.g2:not(.agenda3),.qa.g2):has(>.box:nth-child(4):last-child)>:is(:nth-child(2),:nth-child(3)),
[data-theme=bento] .body:not(:has(>:not(.grid,.note)))>.grid.g4:not(.steps4,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box:nth-child(4):last-child):not(:has(>.job))>:is(:nth-child(2),:nth-child(3)){grid-column:span 5}
/* 三张卡片（页面上只有这组卡片和注释、卡片没有大图标）：左边一大格占两行，右边两格上下叠 */
[data-theme=bento] .body:not(:has(>:not(.grid,.note)))>.grid.g3.st:not(.steps3,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box.card:nth-child(3):last-child):not(:has(>.job,>.box>.bot-av)){grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
[data-theme=bento] .body:not(:has(>:not(.grid,.note)))>.grid.g3.st:not(.steps3,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box.card:nth-child(3):last-child):not(:has(>.job,>.box>.bot-av))>:first-child{grid-row:span 2}
/* 拼格里的主格：两格一行、三格拼格时第一格铺强调色；棋盘四格时第一格浅强调底（已经指定重点的不再加） */
[data-theme=bento] .body:not(:has(>:not(.grid,.note)))>.grid.g3.st:not(.steps3,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box.card:nth-child(3):last-child):not(:has(>.job,>.box>.bot-av)):has(>.key)>.box:first-child:not(.key){background:var(--soft)}
[data-theme=bento] :is(.grid.g2:not(.agenda3),.qa.g2):has(>.box:nth-child(4):last-child):not(:has(>.key))>.box:first-child,[data-theme=bento] .body:not(:has(>:not(.grid,.note)))>.grid.g4:not(.steps4,.price,.kol,.prod,.road,.keep,.agenda3):has(>.box:nth-child(4):last-child):not(:has(>.job)):not(:has(>.key))>.box:first-child{background:var(--soft)}
/* 两行六格、五格：第二格浅强调底，倒数第一格反白 */
/* 大号序号的步骤卡：一行排开，序号特大 */
[data-theme=bento] :is(.steps3,.steps4) .no{font-size:96px;line-height:.9;letter-spacing:-.05em}
[data-theme=bento] :is(.steps3,.steps4)>.box:nth-child(2):not(.key){background:var(--soft)}
[data-theme=bento] .steps6 .card{padding:30px 34px}
/* ---- 拼格：方块（tiles） ---- */
[data-theme=bento] .road .box{min-height:0;gap:26px;padding:34px 34px}
[data-theme=bento] .road .no{font-size:48px;letter-spacing:-.04em}
[data-theme=bento] .road:has(>.box:nth-child(3):last-child),[data-theme=bento] .road:has(>.box:nth-child(5):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
[data-theme=bento] .road:has(>.box:nth-child(3):last-child){grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
[data-theme=bento] .road:is(:has(>.box:nth-child(3):last-child),:has(>.box:nth-child(5):last-child))>:first-child{grid-row:span 2;justify-content:space-between}
[data-theme=bento] .road:is(:has(>.box:nth-child(3):last-child),:has(>.box:nth-child(5):last-child))>:first-child .no{font-size:120px}
[data-theme=bento] .road:is(:has(>.box:nth-child(3):last-child),:has(>.box:nth-child(5):last-child))>:first-child h3{font-size:46px}
[data-theme=bento] .road:has(>.box:nth-child(4):last-child){grid-template-columns:repeat(12,minmax(0,1fr))}
[data-theme=bento] .road:has(>.box:nth-child(4):last-child)>:is(:nth-child(1),:nth-child(4)){grid-column:span 7}
[data-theme=bento] .road:has(>.box:nth-child(4):last-child)>:is(:nth-child(2),:nth-child(3)){grid-column:span 5}
[data-theme=bento] .road:not(:has(>.box:nth-child(5)))>.box:nth-child(3):last-child,[data-theme=bento] .road:has(>.box:nth-child(5))>.box:nth-child(2){background:var(--soft)}
/* ---- 拼格：数据 ---- */
[data-theme=bento] .stat{padding:44px 42px;justify-content:space-between}
[data-theme=bento] .stat .n{letter-spacing:-.05em}
[data-theme=bento] .stat .n small{font-weight:700;letter-spacing:-.01em}
[data-theme=bento] .stat .l{font-size:34px}
[data-theme=bento] .stats3{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}
[data-theme=bento] .metric b{letter-spacing:-.04em}
[data-theme=bento] .price .box{padding:42px 38px}
[data-theme=bento] .price .amt{letter-spacing:-.05em}
[data-theme=bento] .price .quota{border-top:1.5px solid var(--line)}
[data-theme=bento] .repo .star::before{color:var(--accent)}
/* ---- 拼格：竖向列表 → 两列格子；单数时第一格占满一行（保留左标题右说明的排法） ---- */
[data-theme=bento] .body>.rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px var(--cell-gap)}
[data-theme=bento] .body>.rows>.row{grid-template-columns:64px minmax(0,1fr);align-items:start;gap:20px;padding:28px 34px}
[data-theme=bento] .body>.rows.nonum>.row{grid-template-columns:minmax(0,1fr)}
[data-theme=bento] .body>.rows.wide>.row>div{display:block}
[data-theme=bento] .body>.rows.wide>.row p{margin-top:6px}
[data-theme=bento] .body>.rows:is(:has(>.row:nth-child(3):last-child),:has(>.row:nth-child(5):last-child))>.row:first-child{grid-column:1/-1}
[data-theme=bento] .body>.rows.wide:is(:has(>.row:nth-child(3):last-child),:has(>.row:nth-child(5):last-child))>.row:first-child>div{display:grid;grid-template-columns:340px minmax(0,1fr);gap:36px;align-items:center}
[data-theme=bento] .body>.rows.wide:is(:has(>.row:nth-child(3):last-child),:has(>.row:nth-child(5):last-child))>.row:first-child p{margin-top:0}
[data-theme=bento]:lang(en) .body>.rows.wide:is(:has(>.row:nth-child(3):last-child),:has(>.row:nth-child(5):last-child))>.row:first-child>div{grid-template-columns:440px minmax(0,1fr)}
[data-theme=bento] .body>.rows>.row:first-child{background:var(--soft)}
[data-theme=bento] .body>.rows>.row .n{font-size:44px;line-height:1.05}
[data-theme=bento] .rows{gap:14px}
[data-theme=bento] .row .n{letter-spacing:-.03em}
/* ---- 对勾 / 叉：每一条一格；五条以上排两列 ---- */
[data-theme=bento] .checks{gap:14px}
[data-theme=bento] .checks li{background:var(--box-bg);border-radius:var(--box-radius);padding:18px 30px 18px 20px;gap:26px;font-size:44px}
[data-theme=bento] .checks.donts li{font-size:34px}
[data-theme=bento] .checks li::before{border-radius:18px;width:64px;height:64px;font-size:34px}
[data-theme=bento] .checks.donts li::before{width:54px;height:54px;font-size:28px;border-radius:16px}
[data-theme=bento] .checks:has(>li:nth-child(5)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
[data-theme=bento] .checks:has(>li:nth-child(5)) li{font-size:36px}
[data-theme=bento] .checks.donts:has(>li:nth-child(5)) li{font-size:30px}
/* ---- 对比、表格：每个单元格一格 ---- */
[data-theme=bento] .cmp{row-gap:14px;column-gap:14px}
[data-theme=bento] .cmp>*{border-top:0;padding:26px 32px}
[data-theme=bento] .cmp>.h{padding:0 0 8px}
[data-theme=bento] .cmp .l{padding:0;display:flex;align-items:center}
[data-theme=bento] .cmp .c{background:var(--box-bg);border-radius:20px}
[data-theme=bento] .cmp .c:nth-child(3n){background:var(--soft)}
[data-theme=bento] .cmp .h.t2 span{border:0}
[data-theme=bento] .tbl{border-collapse:separate;border-spacing:0 12px;margin-top:-12px}
[data-theme=bento] .tbl th{padding:6px 28px 4px;font-size:26px;font-family:var(--f-body);font-weight:700;color:var(--muted)}
[data-theme=bento] .tbl td{background:var(--box-bg)}
[data-theme=bento] .tbl td:first-child{border-radius:20px 0 0 20px;color:var(--ink)}
[data-theme=bento] .tbl td:last-child{border-radius:0 20px 20px 0}
[data-theme=bento] .tbl td:only-child{border-radius:20px}
/* ---- 其他内容块 ---- */
[data-theme=bento] .agenda3 li{border-top:1.5px solid var(--line)}
[data-theme=bento] .agenda3 h3{letter-spacing:.12em}
[data-theme=bento] .tl{gap:var(--cell-gap)}
[data-theme=bento] .tl::before{display:none}
[data-theme=bento] .tl>li{background:var(--box-bg);border-radius:var(--box-radius);padding:30px 28px 30px}
[data-theme=bento] .tl>li::before{display:none}
[data-theme=bento] .tl>li:first-child{background:var(--soft)}
[data-theme=bento] .tl>li:first-child .out{border-color:var(--soft-line)}
[data-theme=bento] .tl .when{font-family:var(--f-num);font-weight:800;font-size:40px;letter-spacing:-.03em}
[data-theme=bento] .tl .out{border-top:1.5px solid var(--line)}
[data-theme=bento] .flow .arrow,[data-theme=bento] .pairs .arrow{color:var(--faint)}
[data-theme=bento] .pairs{row-gap:14px}
[data-theme=bento] .pairs .box.good,[data-theme=bento] .pairs .box.key{background:var(--soft);color:var(--ink)}
[data-theme=bento] .pairs .box::before{border-radius:14px}
[data-theme=bento] .pay{gap:var(--cell-gap)}
[data-theme=bento] .kol .av{border:0;background:var(--soft)}
[data-theme=bento] .prod>.box:nth-child(4){background:var(--soft)}
[data-theme=bento] .quote::before{color:var(--accent)}
[data-theme=bento] .keep .chips li{background:color-mix(in srgb,var(--ink) 7%,transparent);border:0}
[data-theme=bento] .eq .op{color:var(--faint)}
[data-theme=bento] .vcheck{background:var(--ink);color:var(--bg)}
[data-theme=bento] .pipe{column-gap:40px}
[data-theme=bento] .pipe .back{border-color:var(--accent);border-width:4px}
[data-theme=bento] .pipe .back::before{border-bottom-color:var(--accent)}
[data-theme=bento] .wire i{background:var(--faint)}
[data-theme=bento] .chips li{background:var(--box-bg);border:0;font-weight:600}
[data-theme=bento] .tabs li{border:0;background:var(--box-bg);font-weight:600}
[data-theme=bento] .tabs li.on{background:var(--ink);color:var(--bg)}
[data-theme=bento] :is(.callout,.tip){border:0;border-radius:20px;background:var(--box-bg)}
[data-theme=bento] .tip{box-shadow:inset 8px 0 0 var(--accent)}
[data-theme=bento] .tip b{letter-spacing:.06em}
[data-theme=bento] .callout b{color:var(--accent-ink)}
[data-theme=bento] .ph{border-radius:var(--box-radius);background:var(--box-bg);border:2px dashed var(--line)}
[data-theme=bento] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:var(--box-radius);border:0;box-shadow:none}
[data-theme=bento] .bio{border-left:0;padding:0;font-size:32px}
[data-theme=bento] .avatar{background:var(--ink);color:var(--bg)}
[data-theme=bento] .ring-hint{background:var(--ink);color:var(--bg)}
[data-theme=bento] .ft{color:var(--muted);font-size:19px}
[data-theme=bento] .ft span:last-child{font-family:var(--f-num);font-weight:700;color:var(--ink)}
/* ---- 自我介绍：形象站在浅强调格里，文字在白格里 ---- */
[data-theme=bento] .hello-fig::before{left:6%;right:6%;top:14%;bottom:12%;border-radius:40px;background:var(--soft)}
[data-theme=bento] .hello>div:last-child{background:var(--box-bg);border-radius:32px;padding:60px 64px}
[data-theme=bento] .hello .kicker{background:var(--bg)}
[data-theme=bento] .hello .handle{margin:18px 0 32px}
/* ---- 金句页：整句放在一个大白格里 ---- */
[data-theme=bento] .stmt::before{content:"";position:absolute;inset:56px 64px 92px;border-radius:36px;background:var(--box-bg);z-index:0}
[data-theme=bento] .stmt .kicker{background:var(--bg)}
[data-theme=bento] .stmt .chips li{background:var(--bg)}
[data-theme=bento] .stmt.has-ip::after{content:"";position:absolute;right:64px;bottom:92px;width:420px;height:300px;border-radius:36px 0 36px 0;background:var(--accent);z-index:0}
/* ---- 封面与结尾：左边一大白格放标题，右边几块格子拼齐（有形象时形象站在强调色格里） ---- */
[data-theme=bento] :is(.cover,.end){padding-left:136px}
[data-theme=bento] :is(.cover,.end)::before{content:"";position:absolute;left:64px;top:64px;bottom:64px;width:1124px;border-radius:36px;background:var(--box-bg);z-index:0}
[data-theme=bento] .cover .deco>*{display:block;position:absolute;border-radius:36px}
[data-theme=bento] .cover .deco .d1{right:64px;top:64px;width:588px;height:540px;background:var(--accent)}
[data-theme=bento] .cover .deco .d2{right:64px;bottom:64px;width:284px;height:392px;background:var(--ink)}
[data-theme=bento] .cover .deco .d3{right:368px;bottom:64px;width:284px;height:392px;background:var(--soft) radial-gradient(circle,var(--soft-line) 3px,transparent 3.5px) 0 0/28px 28px}
[data-theme=bento] .cover .deco .d1::after{content:"";position:absolute;right:56px;bottom:56px;width:150px;height:150px;border-radius:50%;background:var(--on-accent)}
[data-theme=bento] .cover .deco .d2::after{content:"";position:absolute;left:48px;top:48px;width:64px;height:64px;border-radius:20px;background:var(--inv-accent)}
[data-theme=bento] .cover:has(>.ip) .deco .d1{height:auto;bottom:64px;background:var(--soft)}
[data-theme=bento] .cover:has(>.ip) .deco .d1::after{display:none}
[data-theme=bento] .cover:has(>.ip) .deco :is(.d2,.d3){display:none}
[data-theme=bento] .cover-meta{gap:12px;letter-spacing:.02em;margin-bottom:44px;color:var(--body2)}
[data-theme=bento] .cover-meta span{background:var(--bg);border-radius:999px;padding:6px 20px;font-weight:600}
[data-theme=bento] .cover-meta span:first-child{background:var(--ink);color:var(--bg)}
[data-theme=bento] .cover-title{font-size:150px;line-height:1.06;letter-spacing:-.04em;font-weight:900;max-width:960px}
[data-theme=bento] .cover-sub{max-width:900px;font-size:32px}
[data-theme=bento] .cover .byline,[data-theme=bento] .end .byline{margin-top:64px}
[data-theme=bento] .end::after{content:"";position:absolute;right:64px;top:64px;bottom:64px;width:588px;border-radius:36px;background:var(--accent);z-index:0}
[data-theme=bento] .end:has(>.ip)::after{background:var(--soft)}
[data-theme=bento] .end .big{font-size:150px;font-weight:900;letter-spacing:-.04em;max-width:960px}
[data-theme=bento] .end .big-sub{max-width:900px}
[data-theme=bento] .end:has(>.qrs)::before{width:1356px}
[data-theme=bento] .end:has(>.qrs)::after{width:416px}
[data-theme=bento] .end .qr img{border:0;box-shadow:0 0 0 1px var(--line)}
/* ---- 章节页：左边一大块强调色格放编号，右边白格放标题 ---- */
[data-theme=bento] .divider{display:grid;grid-template-columns:472px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:end;column-gap:148px}
[data-theme=bento] .divider::before{content:"";position:absolute;left:684px;right:64px;top:64px;bottom:64px;border-radius:36px;background:var(--box-bg);z-index:0}
[data-theme=bento] .divider::after{content:"";position:absolute;left:64px;top:64px;bottom:64px;width:600px;border-radius:36px;background:var(--accent);z-index:0}
[data-theme=bento] .divider .dv-no{grid-row:1/3;align-self:center;justify-self:center;color:var(--on-accent);font-size:300px;line-height:1;letter-spacing:-.07em;padding-right:.06em}
[data-theme=bento] .divider .dv-title{margin-top:0;font-size:112px;line-height:1.1}
[data-theme=bento] .divider .dv-sub{align-self:start;margin-top:24px}
[data-theme=bento] .divider:has(>.ip) :is(.dv-title,.dv-sub){max-width:620px}
[data-theme=bento] .slide>.dv-map{left:748px;bottom:120px;gap:10px}
[data-theme=bento] .dv-map li{height:10px;border-radius:5px}
[data-theme=bento] .dv-map li.done{background:var(--ink)}
/* ---- 英文 ---- */
[data-theme=bento]:lang(en) .title{font-size:66px}
[data-theme=bento]:lang(en) .cover-title{font-size:124px;line-height:1.02}
[data-theme=bento]:lang(en) .end .big{font-size:124px}
[data-theme=bento]:lang(en) .divider .dv-title{font-size:96px}
[data-theme=bento]:lang(en) .checks li{font-size:38px}
[data-theme=bento]:lang(en) .checks:has(>li:nth-child(5)) li{font-size:32px}
/* ---- 风格 17 · bento 结束 ---- */

/* ================= 风格 18 · 大字（bigtype） =================
   大字报：一页一句超大的粗黑体标题，墨黑加一种强调色（默认橙红），几乎没有装饰。
   字重拉开对比：标题、数字 900，导语和副标题 350；正文小一号但字重够、行距松。
   卡片、列表不用底色，只用一条粗墨线分开；封面和结尾页整页铺强调色，章节页整页墨黑配巨号编号。
   标题放大后，内容区的卡片去掉左右留白、字号收小一档，容量和通用版式一致 */
[data-theme=bigtype]{
  --frame:#d9d5cc;--bg:#f3f0e9;--ink:#0d0d0d;--body2:#2e2c29;--muted:#5e5a53;--faint:#a19c92;--line:#d6d1c6;
  --accent:#ec3f0b;--accent2:#ec3f0b;--accent-ink:#cb3609;--on-accent:#0d0d0d;--soft:#f7e2d7;--soft-line:#f0a283;
  --good:var(--ink);--bad:var(--accent);
  --box-bg:transparent;--box-border:0;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --em-ink:var(--accent);--em-bg:transparent;--em-pad:0;
  --rule:4px solid var(--ink);--bg-ink:var(--ink);--bg-accent-ink:var(--accent-ink);
  --f-head:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Inter",var(--cjk-sans),sans-serif;
  --title-w:900;--h3-w:800;--num-w:900;--num-style:normal}
/* 海报页（封面、结尾）的配色：整页铺强调色，文字用强调色上的墨色，标题里的强调换成底色 */
[data-theme=bigtype]{--poster:var(--accent);--poster-ink:var(--on-accent);--poster-em:var(--bg);--poster-em-bg:transparent;--poster-em-pad:0;--night:var(--ink);--night-ink:var(--bg);--night-accent:var(--accent)}
[data-theme=bigtype] :is(.title,.big,.cover-title,.dv-title,.yr-key){letter-spacing:-.035em;text-wrap:balance}
[data-theme=bigtype] :is(.title,.big,.cover-title,.yr-key) em{color:var(--em-ink);background:var(--em-bg);padding:var(--em-pad);-webkit-box-decoration-break:clone;box-decoration-break:clone}
[data-theme=bigtype] .hd{margin-bottom:46px}
[data-theme=bigtype] .title{font-size:110px;line-height:1.06}
[data-theme=bigtype] .kicker{font-size:22px;font-weight:800;letter-spacing:.16em;color:var(--ink);margin-bottom:22px}
[data-theme=bigtype] .kicker b{font-size:22px;font-weight:900;letter-spacing:.04em;color:var(--accent-ink)}
[data-theme=bigtype] .kicker b::after{content:"";display:inline-block;width:56px;height:4px;background:var(--ink);vertical-align:middle;margin-left:18px}
[data-theme=bigtype] .lead{font-size:32px;font-weight:350;color:var(--body2);margin-top:22px}
[data-theme=bigtype] :is(.big-sub,.cover-sub,.dv-sub){font-weight:350}
/* 卡片和各种格子：没有底色，只有一条粗墨线；重点一格整块铺强调色 */
[data-theme=bigtype] .box{border-top:var(--rule);padding:26px 0 0}
[data-theme=bigtype] .box.key{background:var(--accent);color:var(--on-accent);border-top-color:var(--ink);padding:26px 28px 28px;
  --ink:var(--on-accent);--body2:var(--on-accent);--muted:var(--on-accent);--accent-ink:var(--on-accent);--soft:transparent;--soft-line:var(--on-accent);--line:color-mix(in srgb,var(--on-accent) 30%,transparent);--faint:var(--on-accent);--bg:var(--accent)}
[data-theme=bigtype] .no{font-size:52px;letter-spacing:-.04em}
[data-theme=bigtype] .card{gap:12px}
[data-theme=bigtype] .card h3{font-size:36px;line-height:1.24;letter-spacing:-.01em}
[data-theme=bigtype] .card p{font-size:26px;line-height:1.55}
[data-theme=bigtype] .card.lg h3{font-size:42px}
[data-theme=bigtype] .card .meta{border-top:2px solid var(--ink);color:var(--ink)}
[data-theme=bigtype] :is(.steps3,.steps4) .no{font-size:120px;line-height:.86;letter-spacing:-.06em}
[data-theme=bigtype] .badge{background:none;border:2px solid currentColor;color:var(--accent-ink);font-weight:800;letter-spacing:.04em}
[data-theme=bigtype] :is(.badge.solid,.tag){background:var(--ink);color:var(--bg);border:0;font-weight:800}
[data-theme=bigtype] .box>.tag{top:-17px;right:0}
[data-theme=bigtype] .box.key>.tag{right:24px}
[data-theme=bigtype] .sn{width:auto;height:auto;background:none;color:var(--accent-ink);font-size:64px;letter-spacing:-.04em;place-items:start;border-radius:0}
[data-theme=bigtype] .step{padding:26px 0 0}
[data-theme=bigtype] .step.key{padding:26px 28px 28px}
[data-theme=bigtype] .q::before{border-radius:0;background:var(--accent);color:var(--on-accent);font-weight:900}
[data-theme=bigtype] .qa .box{padding:24px 0 0}
[data-theme=bigtype] .ans{padding-left:68px}
/* 数据：数字特大、900 字重 */
[data-theme=bigtype] .stat{padding:26px 0 0}
[data-theme=bigtype] .stat .n{font-size:172px;line-height:.92;letter-spacing:-.06em}
[data-theme=bigtype] .stat.sm .n,[data-theme=bigtype] .stats3 .stat .n{font-size:136px}
[data-theme=bigtype] .stats3 .stat:first-child .n{font-size:160px}
[data-theme=bigtype] .stat .n small{font-weight:800;letter-spacing:-.01em}
[data-theme=bigtype] .stat:first-child .n{color:var(--accent-ink)}
[data-theme=bigtype] .stat.key .n{color:inherit}
[data-theme=bigtype] .stat .l{font-size:34px;font-weight:800}
[data-theme=bigtype] .stat .s{font-size:25px}
[data-theme=bigtype] .metric b{letter-spacing:-.05em;font-weight:900}
[data-theme=bigtype] .price .box{padding:26px 0 0}
[data-theme=bigtype] .price .amt{letter-spacing:-.05em}
[data-theme=bigtype] .price .quota{border-top:2px solid var(--ink)}
[data-theme=bigtype] .repo .star::before{color:var(--accent)}
/* 列表 */
[data-theme=bigtype] .rows{gap:0}
[data-theme=bigtype] .row{border-top:3px solid var(--ink);padding:22px 0}
[data-theme=bigtype] .rows .row:last-child{border-bottom:3px solid var(--ink)}
[data-theme=bigtype] .row.key{padding:22px 24px}
[data-theme=bigtype] .row .n{font-size:52px;letter-spacing:-.04em}
[data-theme=bigtype] .row h3{font-size:34px;font-weight:800}
[data-theme=bigtype] .row p{font-size:26px}
[data-theme=bigtype] .rows.tight .row{padding:16px 0}
[data-theme=bigtype] .rows.lg .row{padding:28px 0}
[data-theme=bigtype] .split.half .rows.tight .row{padding:14px 0}
[data-theme=bigtype] .checks{gap:26px}
[data-theme=bigtype] .checks li{font-weight:800;font-size:46px;letter-spacing:-.01em}
[data-theme=bigtype] .checks li::before{border-radius:0;background:var(--ink);color:var(--bg);width:64px;height:64px;font-size:36px}
[data-theme=bigtype] .checks.donts li{font-size:34px;font-weight:700}
[data-theme=bigtype] .checks.donts li::before{background:var(--accent);color:var(--on-accent);width:56px;height:56px;font-size:28px}
[data-theme=bigtype] .tl::before{height:4px;background:var(--ink)}
[data-theme=bigtype] .tl>li::before{border-radius:0;width:22px;height:22px;top:11px;background:var(--accent);box-shadow:0 0 0 8px var(--bg)}
[data-theme=bigtype] .tl .when{font-size:44px;letter-spacing:-.04em}
[data-theme=bigtype] .tl h3{font-weight:800}
[data-theme=bigtype] .tl .out{border-top:2px solid var(--ink)}
/* 对比、表格：粗线开头、细线分行 */
[data-theme=bigtype] .cmp>*{border-top:2px solid var(--ink)}
[data-theme=bigtype] .cmp>.h{border-top:0}
[data-theme=bigtype] .cmp .h span{border-radius:0;padding:8px 22px;font-weight:900}
[data-theme=bigtype] .cmp .h.t1 span{background:var(--ink);color:var(--bg)}
[data-theme=bigtype] .cmp .h.t2 span{background:var(--accent);color:var(--on-accent);border:0}
[data-theme=bigtype] .cmp .l{color:var(--ink);font-weight:800}
[data-theme=bigtype] .tbl{border-top:var(--rule)}
[data-theme=bigtype] .tbl th{font-family:var(--f-body);font-size:24px;font-weight:800;letter-spacing:.08em;border-bottom:2px solid var(--ink);padding-top:18px;padding-bottom:18px}
[data-theme=bigtype] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=bigtype] .tbl td:first-child,[data-theme=bigtype] .tbl th:first-child{color:var(--ink);font-weight:800}
[data-theme=bigtype] .tbl tr:last-child td{border-bottom:3px solid var(--ink)}
/* 其他内容块 */
[data-theme=bigtype] .agenda3 .box{padding:26px 0 0}
[data-theme=bigtype] .agenda3 h3{letter-spacing:.16em}
[data-theme=bigtype] .agenda3 li{border-top:1px solid var(--line)}
[data-theme=bigtype] .road .box{min-height:0;padding:26px 0 0;gap:22px}
[data-theme=bigtype] .road .no{font-size:72px;line-height:.9;letter-spacing:-.05em}
[data-theme=bigtype] .road .box.key{padding:26px 24px 24px}
[data-theme=bigtype] :is(.callout,.tip){background:none;border:0;border-radius:0;border-left:10px solid var(--accent);padding:6px 0 6px 32px;font-weight:800}
[data-theme=bigtype] .tip b{color:var(--accent-ink);letter-spacing:.16em}
[data-theme=bigtype] .callout b{color:var(--accent-ink)}
[data-theme=bigtype] .chips li{background:none;border:2px solid var(--ink);font-weight:800}
[data-theme=bigtype] .tabs li{border:2px solid var(--ink);color:var(--ink);font-weight:700}
[data-theme=bigtype] .tabs li.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
[data-theme=bigtype] .pairs .box{padding:22px 0}
[data-theme=bigtype] .pairs .box.key{background:none;color:var(--bg-ink);padding:22px 0;border-top-color:var(--accent);--ink:var(--bg-ink);--body2:var(--bg-ink);--accent-ink:var(--bg-accent-ink)}
[data-theme=bigtype] .pairs .box::before{border-radius:0}
[data-theme=bigtype] .pairs .box.bad::before{background:var(--accent);color:var(--on-accent)}
[data-theme=bigtype] .pairs .box.good::before{background:var(--ink);color:var(--bg)}
[data-theme=bigtype] .pairs .ph-h,[data-theme=bigtype] .lanes .lh{color:var(--ink);font-weight:800}
[data-theme=bigtype] .lanes .box{padding:22px 0}
[data-theme=bigtype] .arrow,[data-theme=bigtype] .eq .op{color:var(--ink)}
[data-theme=bigtype] .kol .box{padding:40px 12px 30px}
[data-theme=bigtype] .kol .box.key{padding:40px 16px 30px}
[data-theme=bigtype] .kol .av{border-radius:0;border:0;background:var(--ink);color:var(--bg)}
[data-theme=bigtype] .kol .box.key .av{background:var(--bg);color:var(--ink)}
[data-theme=bigtype] .prod h3{letter-spacing:-.04em}
[data-theme=bigtype] .quote::before{color:var(--accent);font-weight:900}
[data-theme=bigtype] .keep .box{padding:30px 0 0}
[data-theme=bigtype] .keep .box.key{padding:30px 30px 30px}
[data-theme=bigtype] .eq .box{padding:30px 0 0}
[data-theme=bigtype] .eq .eq-k{padding:30px 24px}
[data-theme=bigtype] .vcheck{background:var(--ink);color:var(--bg);border-radius:0}
[data-theme=bigtype] .pipe .node{padding:24px 6px 26px}
[data-theme=bigtype] .pipe .node::after,[data-theme=bigtype] .wire i{background:var(--ink)}
[data-theme=bigtype] .pipe .back{border-color:var(--accent);border-width:4px;border-radius:0}
[data-theme=bigtype] .pipe .back::before{border-bottom-color:var(--accent)}
[data-theme=bigtype] .org .team .box{padding:24px 0 0}
[data-theme=bigtype] .org .boss{padding:30px 30px}
[data-theme=bigtype] .job dt{border-radius:0;background:none;border:2px solid currentColor}
[data-theme=bigtype] .ph{border-radius:0;border:3px dashed var(--faint)}
[data-theme=bigtype] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:3px solid var(--ink);box-shadow:none}
[data-theme=bigtype] .bio{border-left:8px solid var(--accent);font-weight:350}
[data-theme=bigtype] .avatar{background:var(--ink);color:var(--bg);border-radius:0}
[data-theme=bigtype] .ring-hint{border-radius:0;background:var(--ink);color:var(--bg)}
[data-theme=bigtype] .ft{color:var(--ink);font-weight:800;font-size:18px;letter-spacing:.12em}
[data-theme=bigtype] .ft span:last-child{color:var(--accent-ink)}
[data-theme=bigtype] .hello .title{font-size:112px;line-height:1.04}
[data-theme=bigtype] .hello-fig::before{left:6%;right:6%;top:10%;bottom:14%;border-radius:0;background:var(--accent);opacity:1}
/* 金句页：整页就是这句话 */
[data-theme=bigtype] .stmt .big{font-size:132px;line-height:1.1;max-width:none}
[data-theme=bigtype] .stmt .big.md{font-size:100px;line-height:1.14}
[data-theme=bigtype] .stmt .big-sub{font-size:36px;color:var(--body2)}
[data-theme=bigtype] .stmt .kicker{margin-bottom:40px}
[data-theme=bigtype] .stmt .big+.chips{margin-top:28px}
[data-theme=bigtype] .stmt.has-ip :is(.big,.big-sub){max-width:1300px}
/* 封面与结尾：整页铺强调色，巨号标题压在左下 */
[data-theme=bigtype] :is(.cover,.end){background:var(--poster);color:var(--poster-ink);justify-content:flex-end;padding-bottom:110px;
  --ink:var(--poster-ink);--body2:var(--poster-ink);--muted:var(--poster-ink);--faint:var(--poster-ink);--accent-ink:var(--poster-ink);--em-ink:var(--poster-em);--em-bg:var(--poster-em-bg);--em-pad:var(--poster-em-pad);--line:var(--poster-ink)}
[data-theme=bigtype] .cover-meta{position:absolute;top:96px;left:128px;right:128px;margin:0;justify-content:space-between;font-size:22px;font-weight:800;letter-spacing:.16em;color:var(--poster-ink);border-top:4px solid var(--poster-ink);padding-top:16px}
/* 行距比网页上看起来要的多留一点：导出 PPTX 后 PowerPoint 按固定行距排，大字的第二行会往下沉 */
[data-theme=bigtype] .cover-title{font-size:220px;line-height:1.02;letter-spacing:-.055em;margin-bottom:60px;font-weight:900}
[data-theme=bigtype] .cover:has(>.ip) .cover-title{font-size:176px}
[data-theme=bigtype] .cover-sub{font-size:34px;max-width:1200px;color:var(--poster-ink)}
[data-theme=bigtype] .cover .byline,[data-theme=bigtype] .end .byline{margin-top:48px}
[data-theme=bigtype] :is(.cover,.end) .avatar{background:var(--poster-ink);color:var(--poster)}
[data-theme=bigtype] :is(.cover,.end) .byline .logo{border-left-color:var(--poster-ink)}
[data-theme=bigtype] .end .big{font-size:220px;line-height:1.02;letter-spacing:-.055em;font-weight:900}
[data-theme=bigtype] .end .big-sub{font-size:36px;color:var(--poster-ink);margin-top:56px}
[data-theme=bigtype] .end:has(>.qrs) .big{font-size:150px}
[data-theme=bigtype] .end .qr figcaption{color:var(--poster-ink)}
[data-theme=bigtype] .end .qr img{border:0}
/* 章节页：整页墨黑，右上角一个巨号编号，标题在左下 */
[data-theme=bigtype] .divider{background:var(--night);color:var(--night-ink);justify-content:flex-end;padding-bottom:190px;
  --ink:var(--night-ink);--body2:var(--night-ink);--muted:color-mix(in srgb,var(--night-ink) 70%,var(--night));--line:color-mix(in srgb,var(--night-ink) 25%,var(--night))}
[data-theme=bigtype] .divider .dv-no{position:absolute;top:72px;right:128px;font-size:520px;line-height:.82;letter-spacing:-.07em;color:var(--night-accent);z-index:1}
[data-theme=bigtype] .divider .dv-title{font-size:140px;line-height:1.02;letter-spacing:-.045em;margin-top:0}
[data-theme=bigtype] .divider .dv-sub{color:var(--muted);font-size:36px;margin-top:24px}
[data-theme=bigtype] .divider:has(>.ip) :is(.dv-title,.dv-sub){max-width:1100px}
[data-theme=bigtype] .divider:has(>.ip) .dv-no{right:auto;left:128px}
[data-theme=bigtype] .divider .dv-map{gap:6px}
[data-theme=bigtype] .divider .dv-map li{height:6px;border-radius:0;background:color-mix(in srgb,var(--night-ink) 22%,var(--night))}
[data-theme=bigtype] .divider .dv-map li.done{background:var(--night-ink)}
[data-theme=bigtype] .divider .dv-map li.now{background:var(--night-accent)}
[data-theme=bigtype] .divider .dv-map li span{color:var(--muted)}
[data-theme=bigtype] .divider .dv-map li.now span{color:var(--night-ink)}
/* 英文：拉丁字母更宽，标题收一档 */
[data-theme=bigtype]:lang(en) .title{font-size:94px;line-height:1.0;letter-spacing:-.045em}
[data-theme=bigtype]:lang(en) .cover-title{font-size:176px;line-height:.98}
[data-theme=bigtype]:lang(en) .cover:has(>.ip) .cover-title{font-size:140px}
[data-theme=bigtype]:lang(en) .end .big{font-size:176px;line-height:.98}
[data-theme=bigtype]:lang(en) .end:has(>.qrs) .big{font-size:104px}
[data-theme=bigtype]:lang(en) .stmt .big{font-size:112px;line-height:1.04}
[data-theme=bigtype]:lang(en) .stmt .big.md{font-size:84px;line-height:1.08}
[data-theme=bigtype]:lang(en) .divider .dv-title{font-size:120px;line-height:.98}
[data-theme=bigtype]:lang(en) .hello .title{font-size:96px}
[data-theme=bigtype]:lang(en) .kicker{letter-spacing:.1em}
[data-theme=bigtype]:lang(en) .checks li{font-size:40px}
/* ---- 风格 18 · bigtype 结束 ---- */

/* ================= 风格 19 · 清新（fresh） =================
   日系清新：云白底、低饱和的鼠尾草绿配一点雾蓝；标题中等字重、字距放松，英文和数字用圆润的 Quicksand；
   卡片是极浅的纸色加一根细线框，序号、眉题、标签都做成小号的胶囊「小标签」，行距放宽、留白多。
   装饰只有封面、章节页、结尾页上两三个淡色的平面圆和一个细线圆，不用渐变、不用阴影。
   和温暖课堂的区别：没有多彩章节色和粗圆体；和柔光的区别：没有模糊光斑和毛玻璃，靠细线和小标签 */
[data-theme=fresh]{
  --frame:#e4e1d7;--bg:#f6f4ee;--ink:#2f3a34;--body2:#4d5852;--muted:#606b65;--faint:#a3aaa4;--line:#dcdfd5;
  --accent:#7a9a83;--accent2:#8ea7b8;--accent-ink:#4f6f5a;--on-accent:#ffffff;--soft:#e6ece4;--soft-line:#b8c8bb;
  --deco-a:color-mix(in srgb,var(--accent) 18%,var(--bg));--deco-b:color-mix(in srgb,var(--accent2) 20%,var(--bg));--bad-soft:color-mix(in srgb,var(--bad) 16%,var(--bg));
  --good:#5b8a68;--bad:#b9705f;
  --box-bg:#fcfbf7;--box-border:1px solid var(--line);--box-radius:20px;--box-shadow:none;--chip-radius:999px;
  --f-head:"Quicksand",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Quicksand",var(--cjk-sans),sans-serif;
  --title-w:500;--h3-w:500;--num-w:400;--num-style:normal}
[data-theme=fresh] .slide{line-height:1.7}
[data-theme=fresh] :is(.title,.big,.dv-title,.cover-title,.yr-key){letter-spacing:.02em;text-wrap:balance}
[data-theme=fresh] :is(.title,.big,.cover-title,.yr-key) em{color:var(--accent-ink)}
[data-theme=fresh] .title{font-size:70px;line-height:1.34}
[data-theme=fresh] .hd{margin-bottom:48px}
/* 眉题：No.01 加一根细线 */
[data-theme=fresh] .kicker{font-size:22px;font-weight:500;letter-spacing:.14em;color:var(--muted);gap:16px;margin-bottom:20px}
[data-theme=fresh] .kicker b{font-size:24px;font-weight:500;letter-spacing:.04em;color:var(--accent-ink)}
[data-theme=fresh] .kicker b::before{content:"No.";font-size:.8em;margin-right:2px}
[data-theme=fresh] .kicker b::after{content:"";display:inline-block;width:36px;height:1px;background:var(--faint);vertical-align:middle;margin-left:16px}
[data-theme=fresh] .lead{font-size:31px;line-height:1.75;color:var(--body2)}
[data-theme=fresh] .box.key{background:var(--soft);border-color:var(--soft-line)}
/* 序号、标签：小胶囊 */
[data-theme=fresh] .no{display:inline-flex;align-self:flex-start;align-items:center;padding:5px 16px;border-radius:999px;background:var(--soft);font-size:22px;line-height:1.2;font-weight:600;letter-spacing:.06em}
[data-theme=fresh] .box.key .no{background:var(--box-bg)}
[data-theme=fresh] :is(.steps3,.steps4) .no,[data-theme=fresh] .steps4 .no{font-size:24px}
[data-theme=fresh] .card{gap:14px}
[data-theme=fresh] .card h3{font-size:36px;line-height:1.4;letter-spacing:.02em}
[data-theme=fresh] .card p{font-size:26px;line-height:1.75}
[data-theme=fresh] .card .meta{border-top:1px dashed var(--soft-line);font-weight:600}
[data-theme=fresh] :is(.steps3,.steps4) h3{font-size:40px}
[data-theme=fresh] .badge{border:0;background:var(--soft);font-weight:600;letter-spacing:.04em;padding:4px 16px}
[data-theme=fresh] :is(.badge.solid,.tag){background:var(--accent-ink);color:var(--on-accent);border:0;font-weight:600;letter-spacing:.04em}
[data-theme=fresh] .box>.tag{top:-16px;right:24px}
[data-theme=fresh] .sn{width:52px;height:52px;background:var(--soft);color:var(--accent-ink);font-size:24px;font-weight:600}
[data-theme=fresh] .step.key .sn{background:var(--accent-ink);color:var(--on-accent)}
[data-theme=fresh] .step h3{font-size:38px;letter-spacing:.02em}
[data-theme=fresh] .q::before{content:"Q";border-radius:50%;background:var(--soft);color:var(--accent-ink);font-weight:600}
[data-theme=fresh] .q{font-weight:500}
/* 数据：圆润的细数字 */
[data-theme=fresh] .stat .n{font-weight:300;letter-spacing:-.02em;color:var(--accent-ink)}
[data-theme=fresh] .stat .n small{font-family:var(--f-body);font-weight:500;color:var(--ink)}
[data-theme=fresh] .stat .l{font-weight:500;font-size:32px}
[data-theme=fresh] .metric b{font-weight:300;letter-spacing:-.02em}
[data-theme=fresh] .price .amt{font-weight:300;letter-spacing:-.02em}
[data-theme=fresh] .price .plan{font-weight:500}
[data-theme=fresh] .price .quota{border-top:1px dashed var(--soft-line)}
[data-theme=fresh] .price .quota b{font-weight:400}
[data-theme=fresh] .repo .star{font-weight:400}
[data-theme=fresh] .repo .star::before{color:var(--accent)}
/* 列表：细线分隔，不套卡片 */
[data-theme=fresh] .rows{gap:0}
[data-theme=fresh] .row{background:none;border:0;border-radius:0;border-top:1px solid var(--line);padding:24px 8px}
[data-theme=fresh] .rows .row:last-child{border-bottom:1px solid var(--line)}
[data-theme=fresh] .row.key{background:var(--soft);border-radius:16px;border-color:transparent}
[data-theme=fresh] .row .n{font-size:40px;font-weight:300;letter-spacing:0}
[data-theme=fresh] .row h3{font-weight:500;letter-spacing:.02em}
[data-theme=fresh] .rows.tight .row{padding:18px 8px}
[data-theme=fresh] .rows.lg .row{padding:30px 8px}
[data-theme=fresh] .split.half .rows.tight .row{padding:16px 8px}
[data-theme=fresh] .checks li{font-weight:500;font-size:44px;letter-spacing:.02em}
[data-theme=fresh] .checks li::before{background:var(--soft);color:var(--accent-ink);width:64px;height:64px;font-size:30px}
[data-theme=fresh] .checks.donts li{font-weight:400;font-size:34px}
[data-theme=fresh] .checks.donts li::before{background:var(--bad-soft);color:var(--bad);width:56px;height:56px;font-size:26px}
[data-theme=fresh] .tl::before{height:1px;background:var(--soft-line);top:22px}
[data-theme=fresh] .tl>li::before{width:22px;height:22px;top:12px;left:4px;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 0 8px var(--bg)}
[data-theme=fresh] .tl>li:first-child::before{background:var(--accent)}
[data-theme=fresh] .tl .when{font-weight:500;letter-spacing:.02em}
[data-theme=fresh] .tl h3{font-weight:500}
[data-theme=fresh] .tl .out{border-top:1px dashed var(--soft-line)}
[data-theme=fresh] .tl .out b{letter-spacing:.14em;color:var(--accent-ink)}
/* 对比、表格：细线 */
[data-theme=fresh] .cmp>*{border-top:1px solid var(--line)}
[data-theme=fresh] .cmp>.h{border-top:0}
[data-theme=fresh] .cmp .h span{font-weight:500;font-size:30px;padding:8px 26px;letter-spacing:.04em}
[data-theme=fresh] .cmp .h.t1 span{background:var(--accent-ink);color:var(--on-accent)}
[data-theme=fresh] .cmp .h.t2 span{background:var(--deco-b);color:var(--ink);border:0}
[data-theme=fresh] .cmp .l{font-weight:500;letter-spacing:.1em}
[data-theme=fresh] .cmp .c{font-weight:400;font-size:32px}
[data-theme=fresh] .tbl{border-top:1px solid var(--ink)}
[data-theme=fresh] .tbl th{font-family:var(--f-body);font-size:24px;font-weight:600;letter-spacing:.1em;color:var(--accent-ink);border-bottom:1px solid var(--soft-line)}
[data-theme=fresh] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=fresh] .tbl td:first-child,[data-theme=fresh] .tbl th:first-child{font-weight:600}
/* 其他内容块 */
[data-theme=fresh] .agenda3 h3{letter-spacing:.2em;font-weight:600;font-size:24px}
[data-theme=fresh] .agenda3 li{border-top:1px solid var(--line);font-weight:500}
[data-theme=fresh] .agenda3 li b{font-weight:400}
[data-theme=fresh] .road .box{min-height:250px;gap:28px}
[data-theme=fresh] .road h3{font-weight:500}
[data-theme=fresh] :is(.callout,.tip){border:0;border-radius:18px;background:var(--soft);font-weight:500}
[data-theme=fresh] .tip b{display:inline-block;padding:2px 14px;border-radius:999px;background:var(--box-bg);font-size:20px;letter-spacing:.1em;margin-bottom:12px}
[data-theme=fresh] .chips li{background:var(--box-bg);border:1px solid var(--line);font-weight:500;letter-spacing:.02em}
[data-theme=fresh] .tabs li{border:1px solid var(--line);font-weight:500}
[data-theme=fresh] .tabs li.on{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--on-accent)}
[data-theme=fresh] .pairs .ph-h,[data-theme=fresh] .lanes .lh{letter-spacing:.12em;font-weight:600;color:var(--accent-ink)}
[data-theme=fresh] .pairs .box.bad::before{background:var(--bad-soft);color:var(--bad)}
[data-theme=fresh] .pairs .box.good::before{background:var(--box-bg);color:var(--good);box-shadow:inset 0 0 0 1px var(--soft-line)}
[data-theme=fresh] .lanes .lt{font-weight:500}
[data-theme=fresh] .arrow,[data-theme=fresh] .eq .op{color:var(--soft-line)}
[data-theme=fresh] .eq .op{font-weight:300}
[data-theme=fresh] .kol .av{border:1px solid var(--soft-line);font-weight:500}
[data-theme=fresh] .kol .box.key .av{background:var(--box-bg)}
[data-theme=fresh] .prod h3{font-weight:400;letter-spacing:.02em}
[data-theme=fresh] .quote{font-weight:500;letter-spacing:.02em}
[data-theme=fresh] .quote::before{color:var(--accent);font-weight:400}
[data-theme=fresh] .keep h3{font-weight:500}
[data-theme=fresh] .keep .chips li{background:var(--bg)}
[data-theme=fresh] .vcheck{background:var(--accent-ink);color:var(--on-accent)}
[data-theme=fresh] .eq .eq-k b{font-weight:500}
[data-theme=fresh] .eq .no{padding:0;background:none;font-size:26px}
[data-theme=fresh] .pipe .node::after,[data-theme=fresh] .wire i{background:var(--soft-line)}
[data-theme=fresh] .pipe .back{border-width:1.5px;border-color:var(--accent);border-style:dashed}
[data-theme=fresh] .pipe .back::before{border-bottom-color:var(--accent)}
[data-theme=fresh] .org .out{font-weight:600}
[data-theme=fresh] .job dt{border-radius:999px;border:0;padding:4px 16px}
[data-theme=fresh] .ph{border:1.5px dashed var(--soft-line);border-radius:var(--box-radius);background:var(--box-bg)}
[data-theme=fresh] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:var(--box-radius);border:1px solid var(--line);box-shadow:none}
[data-theme=fresh] .bio{border-left:1.5px solid var(--accent);font-size:32px;line-height:1.9}
[data-theme=fresh] .avatar{background:var(--soft);color:var(--accent-ink);font-weight:600}
[data-theme=fresh] .ring-hint{background:var(--accent-ink);color:var(--on-accent);font-weight:600}
[data-theme=fresh] .note{color:var(--muted)}
[data-theme=fresh] .ft{color:var(--muted);font-size:19px;letter-spacing:.1em}
[data-theme=fresh] .ft span:last-child{font-family:var(--f-num);letter-spacing:.06em}
[data-theme=fresh] .hello .title{font-size:88px}
[data-theme=fresh] .hello-fig::before{left:0;right:4%;top:10%;bottom:16%;border-radius:50%;background:var(--deco-a)}
/* 金句页：一句话配一根短细线，右下角一个淡色圆 */
[data-theme=fresh] .stmt::before{content:"";position:absolute;right:-120px;bottom:-200px;width:620px;height:620px;border-radius:50%;background:var(--deco-a);z-index:0}
[data-theme=fresh] .stmt::after{content:"";position:absolute;right:300px;bottom:120px;width:180px;height:180px;border-radius:50%;border:1.5px solid var(--soft-line);z-index:0}
[data-theme=fresh] .stmt .big{font-size:88px;line-height:1.42;font-weight:500}
[data-theme=fresh] .stmt .big.md{font-size:70px;line-height:1.5}
[data-theme=fresh] .stmt .big-sub{font-size:34px;line-height:1.8}
/* 封面与结尾：右侧两个淡色平面圆叠一个细线圆 */
[data-theme=fresh] .cover .deco>*{display:block;position:absolute;border-radius:50%}
[data-theme=fresh] .cover .deco .d1{right:120px;top:150px;width:640px;height:640px;background:var(--deco-a)}
[data-theme=fresh] .cover .deco .d2{right:560px;top:560px;width:300px;height:300px;background:var(--deco-b)}
[data-theme=fresh] .cover .deco .d3{right:60px;top:90px;width:300px;height:300px;border:1.5px solid var(--soft-line)}
[data-theme=fresh] .cover:has(>.ip) .deco .d2{right:620px;top:640px;width:240px;height:240px}
[data-theme=fresh] .cover-meta{gap:12px;letter-spacing:.08em;margin-bottom:48px}
[data-theme=fresh] .cover-meta span{padding:4px 18px;border:1px solid var(--soft-line);border-radius:999px;color:var(--accent-ink);font-weight:500;font-size:22px}
[data-theme=fresh] .cover-title{font-size:128px;line-height:1.3;font-weight:500;letter-spacing:.03em;max-width:1100px}
[data-theme=fresh] .cover-sub{font-size:32px;line-height:1.8;max-width:1000px}
[data-theme=fresh] .cover:has(>.ip) :is(.cover-title,.cover-sub){max-width:960px}
[data-theme=fresh] .end::before{content:"";position:absolute;right:140px;top:170px;width:600px;height:600px;border-radius:50%;background:var(--deco-a);z-index:0}
[data-theme=fresh] .end::after{content:"";position:absolute;right:80px;top:110px;width:260px;height:260px;border-radius:50%;border:1.5px solid var(--soft-line);z-index:0}
[data-theme=fresh] .end:has(>.qrs)::before{right:60px;top:auto;bottom:-140px;width:520px;height:520px}
[data-theme=fresh] .end:has(>.qrs)::after{display:none}
[data-theme=fresh] .end .big{font-size:128px;font-weight:500;letter-spacing:.04em}
[data-theme=fresh] .end .big-sub{line-height:1.8}
/* 章节页：整页浅鼠尾草底，细字号大编号，下方一排小圆点 */
[data-theme=fresh] .divider{background:var(--soft)}
[data-theme=fresh] .divider::before{content:"";position:absolute;right:-160px;top:-160px;width:700px;height:700px;border-radius:50%;background:var(--bg);opacity:.7;z-index:0}
[data-theme=fresh] .divider::after{content:"";position:absolute;right:420px;top:400px;width:200px;height:200px;border-radius:50%;border:1.5px solid var(--soft-line);z-index:0}
[data-theme=fresh] .divider .dv-no{font-size:200px;font-weight:300;letter-spacing:.02em;line-height:1;color:var(--accent-ink)}
[data-theme=fresh] .divider .dv-no::before{content:"No.";font-size:.22em;font-weight:500;letter-spacing:.1em;vertical-align:.25em;margin-right:.3em}
[data-theme=fresh] .divider .dv-title{font-size:100px;font-weight:500;letter-spacing:.04em;margin-top:28px}
[data-theme=fresh] .divider .dv-sub{line-height:1.8}
[data-theme=fresh] .dv-map{gap:18px;grid-template-columns:repeat(12,26px)}
[data-theme=fresh] .dv-map li{width:14px;height:14px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--soft-line)}
[data-theme=fresh] .dv-map li.done{background:var(--soft-line);box-shadow:none}
[data-theme=fresh] .dv-map li.now{background:var(--accent-ink);box-shadow:none}
[data-theme=fresh] .dv-map li span{top:24px;font-size:18px;letter-spacing:.04em}
/* 英文 */
/* Quicksand 比思源黑体细：英文标题、小标题加一档字重，投影时看得清 */
[data-theme=fresh]:lang(en){--title-w:600;--h3-w:600}
[data-theme=fresh]:lang(en) :is(.title,.big,.dv-title,.cover-title){letter-spacing:0}
[data-theme=fresh]:lang(en) .title{font-size:64px;line-height:1.22}
[data-theme=fresh]:lang(en) .cover-title{font-size:116px;line-height:1.1}
[data-theme=fresh]:lang(en) .end .big{font-size:116px}
[data-theme=fresh]:lang(en) .stmt .big{font-size:78px;line-height:1.28}
[data-theme=fresh]:lang(en) .stmt .big.md{font-size:62px;line-height:1.32}
[data-theme=fresh]:lang(en) .divider .dv-title{font-size:90px;line-height:1.12}
[data-theme=fresh]:lang(en) .kicker{letter-spacing:.08em}
[data-theme=fresh]:lang(en) .checks li{font-size:40px}
/* ---- 风格 19 · fresh 结束 ---- */

/* ================= 风格 20 · 多巴胺（memphis） =================
   多巴胺·孟菲斯：奶白底，粉、黄、蓝、薄荷四种高饱和色撞色；装饰是干净的几何碎片（圆、三角、波浪线、点阵、锯齿），
   用 SVG 蒙版加纯色画出来，颜色跟着配色走。不描边、不投影（和「波普」分开），不用手绘线条。
   内容页只在右上角和左下角页边留一小簇碎片；封面、结尾页拼一组大色块，章节页按章节整页铺一种颜色。
   标题和数字用宽体的 Unbounded 配思源黑体粗体，强调字下面一条蓝色波浪线。
   注意：Chrome 打印 PDF 时，超过约 250px 的蒙版会画错（下半截变成方块），所以蒙版只用在波浪线、锯齿、点阵这些小元素上，
   大圆、半圆用背景渐变或圆角，三角用 clip-path */
[data-theme=memphis]{
  --frame:#f1e5d8;--bg:#fffaf3;--ink:#1d1a2b;--body2:#413c55;--muted:#5f5a72;--faint:#a8a1b4;--line:#eee3d6;
  --accent:#ff4f9a;--accent2:#ff4f9a;--accent-ink:#d4136b;--on-accent:#1d1a2b;--soft:#ffe9ef;--soft-line:#ffb6cf;
  --m1:var(--accent);--m1-on:var(--on-accent);--m2:#ffc83d;--m2-on:#1d1a2b;--m3:#3d63ff;--m3-on:#fff;--m4:#1ec99a;--m4-on:#1d1a2b;--m5:#ff8a3d;--m6:#8c63ff;
  --wave:var(--m3);
  --good:#0f9f74;--bad:#e5484d;
  --box-bg:#fff;--box-border:0;--box-radius:24px;--box-shadow:0 0 0 2px var(--line);--chip-radius:999px;
  --f-head:"Unbounded",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Unbounded",var(--cjk-sans),sans-serif;
  --title-w:800;--h3-w:700;--num-w:700;--num-style:normal;
  /* 几何碎片：黑色剪影当蒙版，颜色由背景色决定 */
  --mz-wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 30'%3E%3Cpath d='M6 15Q19.5 3 33 15T60 15T87 15T114 15' fill='none' stroke='%23000' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E");
  --mz-zig:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 30'%3E%3Cpath d='M5 24 20 6 35 24 50 6 65 24 80 6 95 24 110 6' fill='none' stroke='%23000' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mz-tri:polygon(50% 0,100% 100%,0 100%);
  --mz-dots:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 104 130'%3E%3Cdefs%3E%3Cpattern id='p' width='26' height='26' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='13' cy='13' r='4.5'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='104' height='130' fill='url(%23p)'/%3E%3C/svg%3E");
}
/* 每章换一组碎片颜色：a 大圆，b 波浪线，c 三角，d 点阵 */
[data-theme=memphis] .slide{--t-a:var(--m2);--t-b:var(--m3);--t-c:var(--m1);--t-d:var(--m6)}
[data-theme=memphis] .slide[data-tone="2"]{--t-a:var(--m4);--t-b:var(--m1);--t-c:var(--m2);--t-d:var(--m3)}
[data-theme=memphis] .slide[data-tone="3"]{--t-a:var(--m1);--t-b:var(--m4);--t-c:var(--m3);--t-d:var(--m5)}
[data-theme=memphis] .slide[data-tone="4"]{--t-a:var(--m3);--t-b:var(--m2);--t-c:var(--m4);--t-d:var(--m1)}
/* 内容页：右上角一个大圆（背景）、一个小三角，页脚上方的波浪线和左下角的点阵挂在页脚的伪元素上，都在页边留白里 */
[data-theme=memphis] .slide{background:radial-gradient(circle 118px at 1898px -8px,var(--t-a) 117px,transparent 118px),var(--bg)}
[data-theme=memphis] .slide::before{content:"";position:absolute;top:150px;right:36px;width:52px;height:46px;z-index:0;pointer-events:none;background:var(--t-c);clip-path:var(--mz-tri)}
[data-theme=memphis] .slide>.ft::before,[data-theme=memphis] .slide>.ft::after{content:"";position:absolute;pointer-events:none}
[data-theme=memphis] .slide>.ft::before{left:-106px;bottom:74px;width:78px;height:130px;background:var(--t-d);opacity:.55;-webkit-mask:var(--mz-dots) 0 0/104px 130px no-repeat;mask:var(--mz-dots) 0 0/104px 130px no-repeat}
[data-theme=memphis] .slide>.ft::after{right:86px;bottom:962px;width:168px;height:42px;background:var(--t-b);-webkit-mask:var(--mz-wave) 0 0/100% 100% no-repeat;mask:var(--mz-wave) 0 0/100% 100% no-repeat}

[data-theme=memphis] :is(.title,.cover-title,.dv-title,.big,.yr-key){letter-spacing:-.01em}
[data-theme=memphis] :is(.title,.big,.cover-title,.yr-key) em{text-decoration:underline wavy var(--wave);text-decoration-thickness:.07em;text-underline-offset:.2em;text-decoration-skip-ink:none}
[data-theme=memphis] .title{font-size:76px;line-height:1.22}
[data-theme=memphis] .kicker{color:var(--ink);font-weight:700;letter-spacing:.02em;gap:16px}
[data-theme=memphis] .kicker b{display:inline-grid;place-items:center;min-width:62px;height:42px;padding:0 14px;border-radius:21px;background:var(--t-b);color:var(--m3-on);font-size:20px;letter-spacing:0}
[data-theme=memphis] .slide[data-tone="2"] .kicker b{color:var(--m1-on)}
[data-theme=memphis] .slide[data-tone="4"] .kicker b{color:var(--m2-on)}
[data-theme=memphis] .slide[data-tone="3"] .kicker b{color:var(--m4-on)}
[data-theme=memphis] .lead{color:var(--body2)}
/* 卡片：白卡片加一圈浅线；轮换色的卡片铺四种颜色的浅底，重点卡片整块铺强调色 */
[data-theme=memphis] .cyc>.box:nth-of-type(4n+1){--cy:var(--m1);--cy-on:var(--m1-on)}
[data-theme=memphis] .cyc>.box:nth-of-type(4n+2){--cy:var(--m2);--cy-on:var(--m2-on);--cy-mix:26%}
[data-theme=memphis] .cyc>.box:nth-of-type(4n+3){--cy:var(--m3);--cy-on:var(--m3-on)}
[data-theme=memphis] .cyc>.box:nth-of-type(4n){--cy:var(--m4);--cy-on:var(--m4-on);--cy-mix:16%}
[data-theme=memphis] .flow>.box:nth-of-type(4n+1){--cy:var(--m1);--cy-on:var(--m1-on)}
[data-theme=memphis] .flow>.box:nth-of-type(4n+3){--cy:var(--m3);--cy-on:var(--m3-on)}
[data-theme=memphis] .flow>.box:nth-of-type(4n+5){--cy:var(--m4);--cy-on:var(--m4-on);--cy-mix:16%}
[data-theme=memphis] .cyc>.box:not(.key){background:color-mix(in srgb,var(--cy) var(--cy-mix,13%),var(--box-bg));box-shadow:none}
[data-theme=memphis] .box.key{background:var(--accent);color:var(--on-accent);box-shadow:none}
[data-theme=memphis] .box.key :is(p,.meta,.s,.yr,.quota,.out,.no,.ans,.metric b,.quota b,h3,.l,.amt small){color:inherit}
[data-theme=memphis] .box.key .card .meta,[data-theme=memphis] .box.key.card .meta{border-top-color:currentColor}
[data-theme=memphis] .no{display:inline-grid;place-items:center;align-self:flex-start;min-width:56px;height:56px;padding:0 12px;border-radius:28px;background:var(--cy,var(--m3));color:var(--cy-on,var(--m3-on));font-size:22px}
[data-theme=memphis] .box.key .no{background:var(--ink);color:var(--bg)}
[data-theme=memphis] .road .no,[data-theme=memphis] .steps4 .no{font-size:22px}
[data-theme=memphis] .card .meta{border-top:3px dotted var(--faint);color:var(--ink)}
[data-theme=memphis] .row .n{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--m2);color:var(--m2-on);font-size:28px}
[data-theme=memphis] .rows>.row:nth-child(4n+2) .n{background:var(--m3);color:var(--m3-on)}
[data-theme=memphis] .rows>.row:nth-child(4n+3) .n{background:var(--m4);color:var(--m4-on)}
[data-theme=memphis] .rows>.row:nth-child(4n) .n{background:var(--m1);color:var(--m1-on)}
[data-theme=memphis] .box.key.row .n{background:var(--ink);color:var(--bg)}
[data-theme=memphis] .sn{background:var(--cy,var(--m3));color:var(--cy-on,var(--m3-on))}
[data-theme=memphis] .box.key .sn{background:var(--ink);color:var(--bg)}
[data-theme=memphis] .q::before{border-radius:50%;background:var(--m3);color:var(--m3-on)}
[data-theme=memphis] .qa>.box:nth-child(4n+2) .q::before{background:var(--m1);color:var(--m1-on)}
[data-theme=memphis] .qa>.box:nth-child(4n+3) .q::before{background:var(--m4);color:var(--m4-on)}
[data-theme=memphis] .qa>.box:nth-child(4n) .q::before{background:var(--m2);color:var(--m2-on)}
[data-theme=memphis] .badge{border:0;background:var(--soft);color:var(--ink);font-weight:800}
[data-theme=memphis] .badge.solid{background:var(--ink);color:var(--bg)}
[data-theme=memphis] .tag{background:var(--m2);color:var(--m2-on);border:0;font-weight:800}
[data-theme=memphis] .box>.tag{top:-20px}
[data-theme=memphis] .chips li{border:0;box-shadow:none;background:color-mix(in srgb,var(--m1) 16%,var(--box-bg));font-weight:700}
[data-theme=memphis] .chips li:nth-child(4n+2){background:color-mix(in srgb,var(--m2) 30%,var(--box-bg))}
[data-theme=memphis] .chips li:nth-child(4n+3){background:color-mix(in srgb,var(--m3) 16%,var(--box-bg))}
[data-theme=memphis] .chips li:nth-child(4n){background:color-mix(in srgb,var(--m4) 20%,var(--box-bg))}
[data-theme=memphis] .tabs li{border:2px solid var(--line);color:var(--muted);font-weight:700}
[data-theme=memphis] .tabs li.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
/* 提示条：黄色浅底；小贴士：粉色浅底，标题是一颗实心胶囊 */
[data-theme=memphis] .callout{border:0;border-radius:var(--box-radius);background:color-mix(in srgb,var(--m2) 24%,var(--box-bg))}
[data-theme=memphis] .callout b{color:var(--ink);text-decoration:underline wavy var(--wave);text-decoration-thickness:3px;text-underline-offset:8px;text-decoration-skip-ink:none}
[data-theme=memphis] .tip{border:0;border-radius:var(--box-radius);background:var(--soft)}
[data-theme=memphis] .tip b{width:fit-content;padding:4px 16px;border-radius:999px;background:var(--accent);color:var(--on-accent);letter-spacing:.06em}
/* 对勾、叉：彩色圆点轮换，叉统一用红 */
[data-theme=memphis] .checks li::before{background:var(--m4);color:var(--m4-on)}
[data-theme=memphis] .checks li:nth-child(4n+2)::before{background:var(--m2);color:var(--m2-on)}
[data-theme=memphis] .checks li:nth-child(4n+3)::before{background:var(--m1);color:var(--m1-on)}
[data-theme=memphis] .checks li:nth-child(4n)::before{background:var(--m3);color:var(--m3-on)}
[data-theme=memphis] .checks.donts li::before{background:var(--bad);color:#fff}
[data-theme=memphis] .pairs .box.good::before{background:var(--m4);color:var(--m4-on)}
[data-theme=memphis] .pairs .box.bad{background:var(--box-bg)}
/* 时间线：一串圆点连成线（长蒙版在 PDF 里会画错），节点是圆、方、三角轮换 */
[data-theme=memphis] .tl::before{top:16px;height:12px;background:radial-gradient(circle,var(--m3) 5px,transparent 5.5px) 0 50%/22px 12px repeat-x}
[data-theme=memphis] .tl>li::before{width:36px;height:36px;top:4px;box-shadow:0 0 0 8px var(--bg);background:var(--m1)}
[data-theme=memphis] .tl>li:nth-child(4n+2)::before{background:var(--m2);border-radius:8px}
[data-theme=memphis] .tl>li:nth-child(4n+3)::before{background:var(--m4);border-radius:0;clip-path:polygon(50% 0,100% 92%,0 92%);box-shadow:none}
[data-theme=memphis] .tl>li:nth-child(4n)::before{background:var(--m3)}
[data-theme=memphis] .tl .when{font-family:var(--f-num);font-weight:700;color:var(--accent-ink)}
[data-theme=memphis] .tl .out{border-top:3px dotted var(--faint)}
[data-theme=memphis] .cmp>*{border-top:3px dotted var(--line)}
[data-theme=memphis] .cmp>.h{border-top:0}
[data-theme=memphis] .cmp .h.t1 span{background:var(--accent);color:var(--on-accent)}
[data-theme=memphis] .cmp .h.t2 span{background:var(--m3);color:var(--m3-on);border:0}
/* 表格：表头一条强调色，首列浅色，圆角容器 */
[data-theme=memphis] .tbl{border-collapse:separate;border-spacing:0;background:var(--box-bg);border-radius:var(--box-radius);overflow:hidden;box-shadow:0 0 0 2px var(--line)}
[data-theme=memphis] .tbl th{background:var(--m3);color:var(--m3-on)}
[data-theme=memphis] .tbl th:first-child{color:var(--m3-on)}
[data-theme=memphis] .tbl td{border-top:2px solid var(--line)}
[data-theme=memphis] .tbl td:first-child{background:color-mix(in srgb,var(--m2) 18%,var(--box-bg));color:var(--ink)}
[data-theme=memphis] :is(.stat .n,.price .amt){letter-spacing:-.03em}
[data-theme=memphis] .stat .n{font-size:124px}
[data-theme=memphis] .stats3 .stat .n{font-size:112px}
[data-theme=memphis] .stat.sm .n{font-size:96px}
[data-theme=memphis] .price .amt{font-size:88px}
[data-theme=memphis] .stat .n small{font-family:var(--f-body);font-weight:800}
[data-theme=memphis] .price .quota{border-top:3px dotted var(--faint)}
[data-theme=memphis] .price .quota b{color:var(--ink)}
[data-theme=memphis] .metric b{color:var(--ink)}
[data-theme=memphis] .job dt{border:0;background:var(--ink);color:var(--bg)}
[data-theme=memphis] .avatar{background:var(--m2);color:var(--m2-on)}
[data-theme=memphis] .kol .av{border:0;background:color-mix(in srgb,var(--m3) 16%,var(--box-bg));color:var(--ink)}
[data-theme=memphis] .kol>.box:nth-child(4n+2) .av{background:color-mix(in srgb,var(--m2) 36%,var(--box-bg))}
[data-theme=memphis] .kol>.box:nth-child(4n+3) .av{background:color-mix(in srgb,var(--m1) 20%,var(--box-bg))}
[data-theme=memphis] .kol>.box:nth-child(4n) .av{background:color-mix(in srgb,var(--m4) 24%,var(--box-bg))}
[data-theme=memphis] .bio{border-left:8px solid var(--m3);border-radius:0}
[data-theme=memphis] .ph{border:3px dashed var(--faint);border-radius:var(--box-radius);background:repeating-linear-gradient(-45deg,transparent 0 18px,var(--soft) 18px 22px)}
[data-theme=memphis] .wire i{background:var(--faint)}
[data-theme=memphis] .arrow,[data-theme=memphis] .eq .op{color:var(--m3)}
/* 等式按弹性布局排：三项、四项也排在一行 */
[data-theme=memphis] .eq{display:flex}
[data-theme=memphis] .eq>.op{flex:0 0 96px}
[data-theme=memphis] .eq>.box{flex:1 1 0;min-width:0}
[data-theme=memphis] .eq>.eq-k{flex:0 0 auto}
[data-theme=memphis] .pipe .node::after{background:var(--m3)}
[data-theme=memphis] .org .out{color:var(--accent-ink)}
[data-theme=memphis] .cyc .out{color:var(--ink)}
[data-theme=memphis] .box.key .out{color:inherit}
[data-theme=memphis] .quote::before{color:var(--m3)}
/* 截图、二维码：不描边，右下方垫一块黄色 */
[data-theme=memphis] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img){border:0;border-radius:var(--box-radius);box-shadow:14px 14px 0 var(--m2)}
[data-theme=memphis] .qr img{border:0;border-radius:var(--box-radius);box-shadow:10px 10px 0 var(--m2)}
[data-theme=memphis] .ring-hint{background:var(--m3);color:var(--m3-on)}
[data-theme=memphis] .ft{color:var(--muted);font-weight:600}
[data-theme=memphis] .ft span:last-child{font-family:var(--f-num);font-size:18px}
/* 自我介绍：形象后面一个大黄圆 */
[data-theme=memphis] .hello-fig::before{left:6%;right:4%;top:14%;bottom:auto;aspect-ratio:1;border-radius:50%;background:var(--m2)}

/* 封面与结尾：右侧拼一组大色块——黄色大圆、蓝色半圆、粉色三角、薄荷波浪线、紫色点阵、橙色锯齿和加号 */
[data-theme=memphis] :is(.cover,.end)::before,[data-theme=memphis] :is(.cover,.end)::after,[data-theme=memphis] .cover .deco::before,[data-theme=memphis] .cover .deco::after{content:"";position:absolute;z-index:0;pointer-events:none;clip-path:none}
[data-theme=memphis] :is(.cover,.end)::before{top:120px;right:400px;width:240px;height:60px;background:var(--m4);-webkit-mask:var(--mz-wave) 0 0/100% 100% no-repeat;mask:var(--mz-wave) 0 0/100% 100% no-repeat}
[data-theme=memphis] :is(.cover,.end)::after{top:auto;right:540px;bottom:56px;width:210px;height:52px;background:var(--m5);-webkit-mask:var(--mz-zig) 0 0/100% 100% no-repeat;mask:var(--mz-zig) 0 0/100% 100% no-repeat}
[data-theme=memphis] .cover .deco::before{right:92px;bottom:120px;width:104px;height:130px;background:var(--m6);-webkit-mask:var(--mz-dots) 0 0/100% 100% no-repeat;mask:var(--mz-dots) 0 0/100% 100% no-repeat}
[data-theme=memphis] .cover .deco::after{right:690px;bottom:300px;width:52px;height:52px;background:linear-gradient(var(--m5),var(--m5)) center/16px 100% no-repeat,linear-gradient(var(--m5),var(--m5)) center/100% 16px no-repeat}
[data-theme=memphis] .cover .deco>*{display:block;position:absolute}
[data-theme=memphis] .cover .deco .d1{right:-150px;top:170px;width:640px;height:640px;border-radius:50%;background:var(--m2)}
[data-theme=memphis] .cover .deco .d2{right:430px;bottom:0;width:380px;height:190px;border-radius:190px 190px 0 0;background:var(--m3)}
[data-theme=memphis] .cover .deco .d3{right:150px;top:84px;width:210px;height:185px;background:var(--m1);clip-path:var(--mz-tri);rotate:14deg}
[data-theme=memphis] .cover :is(.cover-title,.cover-sub){max-width:1080px}
[data-theme=memphis] .cover-meta{gap:14px;color:var(--ink);font-weight:700;letter-spacing:.04em}
[data-theme=memphis] .cover-meta span{padding:6px 22px;border-radius:999px;background:var(--m3);color:var(--m3-on)}
[data-theme=memphis] .cover-meta span+span{background:var(--m2);color:var(--m2-on)}
[data-theme=memphis] .cover-meta span+span+span{background:var(--m4);color:var(--m4-on)}
[data-theme=memphis] .cover-title{font-size:164px;line-height:1.1;margin-bottom:64px}
[data-theme=memphis] .cover-sub{font-weight:500}
[data-theme=memphis] .avatar{box-shadow:0 0 0 6px var(--bg),0 0 0 9px var(--m1)}
[data-theme=memphis] .end .big{font-size:150px;line-height:1.1}
[data-theme=memphis] .end :is(.big,.big-sub){max-width:1080px}
/* 结尾页没有封面的装饰元素：大圆和加号画在背景里 */
[data-theme=memphis] .end{background:linear-gradient(var(--m5),var(--m5)) right 708px bottom 300px/16px 52px no-repeat,linear-gradient(var(--m5),var(--m5)) right 690px bottom 318px/52px 16px no-repeat,radial-gradient(circle 320px at 1750px 490px,var(--m2) 319px,transparent 320px),var(--bg)}
/* 有形象时：大圆退到形象身后，文字只占左边 */
[data-theme=memphis] .cover:has(>.ip) .deco .d1{right:180px;top:250px;width:620px;height:620px}
[data-theme=memphis] .cover:has(>.ip) .deco .d2{right:-60px;bottom:0;width:340px;height:170px}
[data-theme=memphis] .cover:has(>.ip) .deco .d3{right:120px;top:96px;width:170px;height:150px}
[data-theme=memphis] .cover:has(>.ip)::before{top:150px;right:640px}
[data-theme=memphis] .cover:has(>.ip) .deco::before{right:40px;bottom:300px}
[data-theme=memphis] .cover:has(>.ip) .deco::after{right:820px;bottom:180px}
[data-theme=memphis] .end:has(>.ip){background:radial-gradient(circle 300px at 1470px 560px,var(--m2) 299px,transparent 300px),var(--bg)}
[data-theme=memphis] .cover:has(>.ip) :is(.cover-title,.cover-sub),[data-theme=memphis] .end:has(>.ip) :is(.big,.big-sub){max-width:990px}
[data-theme=memphis] .end:has(>.qrs){background:var(--bg)}
[data-theme=memphis] .end:has(>.qrs) :is(.big,.big-sub){max-width:600px}
[data-theme=memphis] .end:has(>.qrs) .big{font-size:112px}
[data-theme=memphis] .end:has(>.qrs)::before{right:200px}

/* 金句页：底边升起一个半圆，右上方一个三角；波浪线和点阵与内容页一样挂在页脚上 */
[data-theme=memphis] .stmt{background:radial-gradient(circle 200px at 1120px 1080px,var(--t-b) 199px,transparent 200px),var(--bg)}
[data-theme=memphis] .stmt::before{top:128px;right:64px;width:62px;height:55px;background:var(--t-a)}
[data-theme=memphis] .stmt .big{font-size:96px;line-height:1.3}
[data-theme=memphis] .stmt .big.md{font-size:76px;line-height:1.4}

/* 章节页：每章整页铺一种颜色，大号编号压在一个白圆上，右侧一组碎片 */
[data-theme=memphis] .divider{--dv:var(--m1);--dv-ink:var(--m1-on);--dv-s1:var(--m2);--dv-s2:var(--m3);background:var(--dv);color:var(--dv-ink)}
[data-theme=memphis] .divider[data-tone="2"]{--dv:var(--m3);--dv-ink:var(--m3-on);--dv-s1:var(--m1);--dv-s2:var(--m2)}
[data-theme=memphis] .divider[data-tone="3"]{--dv:var(--m2);--dv-ink:var(--m2-on);--dv-s1:var(--m4);--dv-s2:var(--m1)}
[data-theme=memphis] .divider[data-tone="4"]{--dv:var(--m4);--dv-ink:var(--m4-on);--dv-s1:var(--m3);--dv-s2:var(--m2)}
[data-theme=memphis] .divider{background:radial-gradient(circle 350px at 1690px 470px,var(--dv-s1) 349px,transparent 350px),var(--dv)}
[data-theme=memphis] .divider::before{top:130px;right:680px;width:240px;height:60px;background:var(--bg);clip-path:none;-webkit-mask:var(--mz-wave) 0 0/100% 100% no-repeat;mask:var(--mz-wave) 0 0/100% 100% no-repeat}
[data-theme=memphis] .divider::after{content:"";position:absolute;right:560px;bottom:170px;width:150px;height:132px;z-index:0;pointer-events:none;background:var(--dv-s2);clip-path:var(--mz-tri)}
[data-theme=memphis] .divider .dv-map::after{content:"";position:absolute;right:-18px;bottom:44px;width:104px;height:130px;background:var(--dv-ink);opacity:.45;-webkit-mask:var(--mz-dots) 0 0/100% 100% no-repeat;mask:var(--mz-dots) 0 0/100% 100% no-repeat}
[data-theme=memphis] .divider .dv-no{position:relative;display:grid;place-items:center;width:300px;height:300px;border-radius:50%;background:var(--bg);color:var(--ink);font-size:132px;line-height:1;letter-spacing:-.04em}
[data-theme=memphis] .divider .dv-title{font-size:120px;margin-top:48px;max-width:1080px}
[data-theme=memphis] .divider .dv-sub{color:inherit;opacity:.9;font-weight:600;max-width:1080px}
[data-theme=memphis] .divider .dv-map li{height:14px;border-radius:7px;background:color-mix(in srgb,var(--dv-ink) 22%,transparent)}
[data-theme=memphis] .divider .dv-map li.done{background:color-mix(in srgb,var(--dv-ink) 50%,transparent)}
[data-theme=memphis] .divider .dv-map li.now{background:var(--bg)}
[data-theme=memphis] .divider .dv-map li span,[data-theme=memphis] .divider .dv-map li.now span{color:var(--dv-ink);font-weight:700}
/* 英文：Unbounded 是宽体，标题再收小一档 */
[data-theme=memphis]:lang(en) .title{font-size:62px;line-height:1.18}
[data-theme=memphis]:lang(en) .cover-title{font-size:120px;line-height:1.08}
[data-theme=memphis]:lang(en) .dv-title{font-size:96px}
[data-theme=memphis]:lang(en) .stmt .big{font-size:80px;line-height:1.22}
[data-theme=memphis]:lang(en) .stmt .big.md{font-size:62px;line-height:1.28}
[data-theme=memphis]:lang(en) .end .big{font-size:120px}
[data-theme=memphis]:lang(en) .end:has(>.qrs) .big{font-size:84px}
/* ---- 风格 20 · memphis 结束 ---- */

/* ================= 风格 21 · 备忘录（memo） =================
   手机备忘录：顶部一条便签黄的标题栏（左边「‹ 章节」，右边页码和分享、更多两个图标，页脚就挪到这里），
   下面是浅横线纸；眉题像时间戳，灰色小字带一个钟表图标。列表是圆形勾选框，重点句用荧光笔底，标签写成 #话题。
   系统感的无衬线字体（Inter + 思源黑体），不用手写体、不画涂鸦。章节页整页是一张便签，右下角折一个角 */
[data-theme=memo]{
  --frame:#e4e1d8;--bg:#fdfcf8;--ink:#1c1c1e;--body2:#3a3a3c;--muted:#6c6c70;--faint:#aeaeb2;--line:#e6e2d8;
  --accent:#ffcf33;--accent2:#ffcf33;--accent-ink:#8a6700;--on-accent:#1c1c1e;--soft:#fff5cc;--soft-line:#f2d36b;
  --hl:color-mix(in srgb,var(--accent) 62%,var(--bg));--rule:color-mix(in srgb,var(--ink) 8%,var(--bg));--fill:color-mix(in srgb,var(--ink) 5%,var(--bg));
  --good:#1f8038;--bad:#d70015;
  --box-bg:#fff;--box-border:1px solid var(--line);--box-radius:20px;--box-shadow:none;--chip-radius:999px;
  --f-head:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Inter",var(--cjk-sans),sans-serif;
  --title-w:800;--h3-w:700;--num-w:700;--num-style:normal;
  --mo-back:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 30' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3 3 15l11 12'/%3E%3C/svg%3E");
  /* 标题栏上的「‹」是背景图，颜色写死：深色字用 dark，自定义了深色强调色（标题栏上是白字）时清单换成 light */
  --mo-chev-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 30' fill='none' stroke='%231c1c1e' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3 3 15l11 12'/%3E%3C/svg%3E");--mo-chev-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 30' fill='none' stroke='%23ffffff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3 3 15l11 12'/%3E%3C/svg%3E");--mo-chev:var(--mo-chev-dark);
  --mo-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  --mo-icons:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 112 40' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6v18M13 13l7-7 7 7M10 18H7v17h26V18h-3'/%3E%3Ccircle cx='92' cy='20' r='16'/%3E%3Ccircle cx='84' cy='20' r='1' stroke-width='4'/%3E%3Ccircle cx='92' cy='20' r='1' stroke-width='4'/%3E%3Ccircle cx='100' cy='20' r='1' stroke-width='4'/%3E%3C/svg%3E")}
/* 纸面：每 56px 一条浅横线；顶部标题栏盖住最上面一条 */
[data-theme=memo] .slide{padding:124px 128px 96px;background:linear-gradient(transparent 55px,var(--rule) 55px) 0 8px/100% 56px,var(--bg)}
[data-theme=memo] .slide::before{content:"";position:absolute;left:0;right:0;top:0;height:64px;z-index:0;pointer-events:none;background:var(--accent);box-shadow:0 1px 0 color-mix(in srgb,var(--ink) 12%,var(--accent))}
[data-theme=memo] .slide::after{content:"";position:absolute;right:56px;top:14px;width:101px;height:36px;z-index:0;pointer-events:none;background:var(--on-accent);-webkit-mask:var(--mo-icons) 0 0/100% 100% no-repeat;mask:var(--mo-icons) 0 0/100% 100% no-repeat}
[data-theme=memo] .slide>.ft{top:0;bottom:auto;left:44px;right:190px;height:64px;align-items:center;font-size:24px;font-weight:600;color:var(--on-accent)}
[data-theme=memo] .slide>.ft span:first-child::before{content:"";display:inline-block;width:16px;height:27px;margin-right:16px;vertical-align:-4px;background:currentColor;-webkit-mask:var(--mo-back) center/contain no-repeat;mask:var(--mo-back) center/contain no-repeat}
/* 没有章节的页：返回键后面写「备忘录」 */
[data-theme=memo] .slide>.ft span:first-child:empty::after{content:"备忘录"}
[data-theme=memo]:lang(zh-TW) .slide>.ft span:first-child:empty::after,[data-theme=memo]:lang(zh-Hant) .slide>.ft span:first-child:empty::after{content:"備忘錄"}
[data-theme=memo]:lang(en) .slide>.ft span:first-child:empty::after{content:"Notes"}
[data-theme=memo] .slide>.ft span:last-child{font-variant-numeric:tabular-nums;font-weight:500;opacity:.8}
/* 封面、章节页、结尾页、自我介绍没有页脚：标题栏左边写「‹ 备忘录」 */
/* 「‹」画成图形：伪元素里只能放一种字号 */
[data-theme=memo] :is(.cover,.divider,.end,.nofoot)::before{content:"备忘录";display:flex;align-items:center;padding-left:76px;font:600 24px/1 var(--f-body);color:var(--on-accent);background:var(--mo-chev) 44px 50%/16px 27px no-repeat,var(--accent)}
[data-theme=memo]:lang(zh-TW) :is(.cover,.divider,.end,.nofoot)::before,[data-theme=memo]:lang(zh-Hant) :is(.cover,.divider,.end,.nofoot)::before{content:"備忘錄"}
[data-theme=memo]:lang(en) :is(.cover,.divider,.end,.nofoot)::before{content:"Notes"}

/* 眉题：时间戳样式，灰色小字，前面一个钟表 */
[data-theme=memo] .kicker{gap:12px;font-size:24px;font-weight:500;color:var(--muted);letter-spacing:.02em}
[data-theme=memo] .kicker::before{content:"";flex:none;width:24px;height:24px;background:currentColor;-webkit-mask:var(--mo-clock) center/contain no-repeat;mask:var(--mo-clock) center/contain no-repeat}
[data-theme=memo] .kicker b{color:inherit;font-weight:600;font-variant-numeric:tabular-nums}
[data-theme=memo] .kicker b::after{content:"·";margin-left:12px}
[data-theme=memo] .hd{margin-bottom:48px}
[data-theme=memo] :is(.title,.cover-title,.dv-title,.big,.yr-key){letter-spacing:-.015em}
[data-theme=memo] .title{font-size:76px;line-height:1.22}
/* 强调：墨色字加荧光笔底 */
[data-theme=memo] :is(.title,.big,.cover-title,.yr-key,.dv-title) em{color:inherit;background:linear-gradient(transparent 56%,var(--hl) 56%,var(--hl) 94%,transparent 94%);-webkit-box-decoration-break:clone;box-decoration-break:clone}
[data-theme=memo] .lead{color:var(--body2)}

/* 卡片：白卡片细线框，重点卡片是一张浅黄便签 */
[data-theme=memo] .box.key{background:var(--soft);border-color:var(--soft-line)}
[data-theme=memo] .no{font-size:26px;color:var(--muted);font-variant-numeric:tabular-nums}
[data-theme=memo] .card .meta{border-top:1px solid var(--line);color:var(--ink)}
[data-theme=memo] .box.key .card .meta,[data-theme=memo] .box.key.card .meta{border-top-color:var(--soft-line)}
[data-theme=memo] :is(.org .out,.lanes .lt,.agenda3 h3,.price .quota b,.metric b,.pairs .key b,.tl .when){color:var(--ink)}
[data-theme=memo] .agenda3 h3{letter-spacing:.08em}
[data-theme=memo] .agenda3 li b{color:var(--muted)}
/* 竖向列表：像备忘录里的一组清单——连成一块白底，行与行之间一条细线，序号是空心勾选圈，重点那一行勾上 */
[data-theme=memo] .rows{gap:0;background:var(--box-bg);border:1px solid var(--line);border-radius:var(--box-radius);overflow:hidden}
[data-theme=memo] .rows>.row{border:0;border-radius:0;background:none}
[data-theme=memo] .rows>.row+.row{border-top:1px solid var(--line)}
[data-theme=memo] .rows>.row.key{background:var(--soft)}
[data-theme=memo] .row .n{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:3px solid var(--faint);font-size:22px;color:var(--muted);font-variant-numeric:tabular-nums}
[data-theme=memo] .row.key .n{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
[data-theme=memo] .rows.nonum .row{grid-template-columns:44px minmax(0,1fr)}
[data-theme=memo] .rows.nonum .row::before{content:"";width:38px;height:38px;border-radius:50%;border:3px solid var(--faint);box-sizing:border-box}
[data-theme=memo] .rows.nonum .row.key::before{border-color:var(--accent);background:var(--accent)}
[data-theme=memo] .sn{background:var(--accent);color:var(--on-accent)}
[data-theme=memo] .q::before{border-radius:50%;background:var(--accent);color:var(--on-accent)}
[data-theme=memo] .badge{border:0;background:var(--fill);color:var(--body2);font-weight:600}
[data-theme=memo] .badge.solid,[data-theme=memo] .tag{background:var(--accent);color:var(--on-accent);border:0;font-weight:700}
/* 标签：#话题 */
[data-theme=memo] .chips li{border:0;background:var(--soft);font-weight:600}
[data-theme=memo] .chips li::before{content:"#";margin-right:.12em;color:var(--accent-ink);font-weight:700}
/* 分段控件 */
[data-theme=memo] .tabs{width:fit-content;gap:0;padding:4px;border-radius:14px;background:var(--fill)}
[data-theme=memo] .tabs li{border:0;border-radius:10px;color:var(--body2);font-weight:600}
[data-theme=memo] .tabs li.on{background:var(--box-bg);color:var(--ink);box-shadow:0 0 0 1px var(--line)}
[data-theme=memo] .callout{border:0;border-radius:16px;background:var(--fill)}
[data-theme=memo] .callout b{color:var(--ink);background:linear-gradient(transparent 56%,var(--hl) 56%,var(--hl) 94%,transparent 94%)}
[data-theme=memo] .tip{border-left:6px solid var(--accent);border-radius:0 16px 16px 0;background:var(--soft)}
[data-theme=memo] .tip b{color:var(--ink)}
/* 对勾：实心勾选圈；叉：空心红圈 */
[data-theme=memo] .checks{gap:26px}
[data-theme=memo] .checks li::before{width:60px;height:60px;background:var(--accent);color:var(--on-accent);font-size:32px}
[data-theme=memo] .checks.donts li::before{width:56px;height:56px;background:none;border:3px solid var(--bad);color:var(--bad);font-size:26px;box-sizing:border-box}
[data-theme=memo] .pairs .box.bad::before{background:none;border:3px solid var(--bad);color:var(--bad);box-sizing:border-box}
[data-theme=memo] .tl::before{height:2px;background:var(--line)}
[data-theme=memo] .tl>li::before{width:30px;height:30px;top:7px;background:var(--bg);border:3px solid var(--accent);box-shadow:0 0 0 8px var(--bg)}
[data-theme=memo] .tl .out{border-top:1px solid var(--line)}
[data-theme=memo] .cmp>*{border-top-color:var(--line)}
[data-theme=memo] .cmp .h.t1 span{background:var(--accent);color:var(--on-accent)}
[data-theme=memo] .cmp .h.t2 span{background:var(--fill);color:var(--ink);border:0}
/* 表格：备忘录里的表格，满格细线 */
[data-theme=memo] .tbl{border-collapse:separate;border-spacing:0;background:var(--box-bg);border:1px solid var(--line);border-radius:16px;overflow:hidden}
[data-theme=memo] .tbl th{background:var(--fill);font-family:var(--f-body);font-weight:700;font-size:28px}
[data-theme=memo] .tbl :is(th,td){border-bottom:1px solid var(--line)}
[data-theme=memo] .tbl :is(th,td)+:is(th,td){border-left:1px solid var(--line)}
[data-theme=memo] .tbl tr:last-child td{border-bottom:0}
[data-theme=memo] .tbl td:first-child,[data-theme=memo] .tbl th:first-child{color:var(--ink)}
[data-theme=memo] :is(.stat .n,.price .amt){letter-spacing:-.03em;font-variant-numeric:tabular-nums}
[data-theme=memo] .stat .n small{color:var(--muted);font-family:var(--f-body)}
[data-theme=memo] .price .quota{border-top:1px solid var(--line)}
[data-theme=memo] .job dt{border:0;background:var(--fill);color:var(--ink)}
[data-theme=memo] .avatar{background:var(--accent);color:var(--on-accent)}
[data-theme=memo] .kol .av{border:0;background:var(--soft);color:var(--ink)}
[data-theme=memo] .bio{border-left:6px solid var(--accent)}
[data-theme=memo] .ph{border:2px dashed var(--faint);border-radius:16px;background:var(--fill)}
[data-theme=memo] .arrow,[data-theme=memo] .eq .op{color:var(--faint)}
[data-theme=memo] .pipe .back{border-color:var(--faint)}
[data-theme=memo] .pipe .back::before{border-bottom-color:var(--faint)}
[data-theme=memo] .pipe .back span{color:var(--muted)}
[data-theme=memo] .quote::before{color:var(--accent-ink)}
/* 等式按弹性布局排：三项、四项也排在一行 */
[data-theme=memo] .eq{display:flex}
[data-theme=memo] .eq>.op{flex:0 0 96px}
[data-theme=memo] .eq>.box{flex:1 1 0;min-width:0}
[data-theme=memo] .eq>.eq-k{flex:0 0 auto}
/* 柔和投影用 drop-shadow：带模糊的 box-shadow 在 PDF（预览.app 打开）里会变成一块灰色方块 */
[data-theme=memo] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:16px;border:1px solid var(--line);box-shadow:none;filter:drop-shadow(0 10px 16px rgba(0,0,0,.1))}
[data-theme=memo] .slide>.tallshot{top:100px}
[data-theme=memo] .ring-hint{background:var(--accent);color:var(--on-accent)}
[data-theme=memo] .mark .draw{stroke:var(--bad)}
/* 自我介绍：形象后面一张浅黄便签 */
[data-theme=memo] .hello-fig::before{left:4%;right:6%;top:10%;bottom:16%;border-radius:28px;background:var(--soft)}

/* 封面与结尾：一条新备忘录——时间戳居中在上，大标题，副标题是正文 */
[data-theme=memo] :is(.cover,.end){padding-top:124px}
[data-theme=memo] .cover-meta{gap:0;margin-bottom:36px;color:var(--muted);font-size:24px;font-weight:500;letter-spacing:.02em}
[data-theme=memo] .cover-meta::before{content:"";flex:none;width:24px;height:24px;margin:2px 12px 0 0;background:currentColor;-webkit-mask:var(--mo-clock) center/contain no-repeat;mask:var(--mo-clock) center/contain no-repeat}
[data-theme=memo] .cover-meta span+span::before{content:"·";margin:0 14px}
[data-theme=memo] .cover-title{font-size:150px;line-height:1.12;letter-spacing:-.025em}
[data-theme=memo] .cover-sub{color:var(--body2)}
/* 右侧一张小清单卡片：两条已勾选、一条未勾选，示意这是一张待办便签；有形象时不画 */
[data-theme=memo] .cover .deco::before{content:"";position:absolute;right:128px;top:50%;width:520px;height:300px;margin-top:-110px;border-radius:28px;background:var(--box-bg);border:1px solid var(--line);filter:drop-shadow(0 16px 24px rgba(0,0,0,.08))}
[data-theme=memo] .cover .deco>*{display:block;position:absolute;right:168px;width:440px;height:44px;top:50%}
[data-theme=memo] .cover .deco>*::before{content:"";position:absolute;left:0;top:3px;width:38px;height:38px;border-radius:50%;box-sizing:border-box;background:var(--accent)}
[data-theme=memo] .cover .deco>*::after{content:"";position:absolute;left:62px;right:60px;top:17px;height:10px;border-radius:5px;background:var(--line)}
[data-theme=memo] .cover .deco .d1{margin-top:-70px}
[data-theme=memo] .cover .deco .d2{margin-top:10px}
[data-theme=memo] .cover .deco .d2::after{right:120px}
[data-theme=memo] .cover .deco .d3{margin-top:90px}
[data-theme=memo] .cover .deco .d3::before{background:none;border:3px solid var(--faint)}
[data-theme=memo] .cover .deco .d3::after{right:180px;background:color-mix(in srgb,var(--ink) 22%,var(--bg))}
[data-theme=memo] .cover:has(>.ip) .deco{display:none}
[data-theme=memo] .cover:not(:has(>.ip)) :is(.cover-title,.cover-sub){max-width:1100px}
[data-theme=memo] .end .big{font-size:150px;letter-spacing:-.025em}
[data-theme=memo] .end:has(>.qrs) .big{font-size:104px}

/* 金句页：左边一条黄色竖线，像备忘录里的引用块 */
[data-theme=memo] .stmt .big{padding-left:48px;border-left:8px solid var(--accent);font-size:94px;line-height:1.3}
[data-theme=memo] .stmt .big.md{font-size:74px;line-height:1.38}
[data-theme=memo] .stmt .big+.big{margin-top:0;padding-top:14px}
[data-theme=memo] .stmt :is(.big-sub,.chips,.label,.botrow){margin-left:56px}
[data-theme=memo] .stmt .big+.chips{margin-top:32px}

/* 章节页：整页一张便签，右下角折一个角 */
[data-theme=memo] .divider{--flap:color-mix(in srgb,var(--ink) 16%,var(--accent));color:var(--on-accent)}
[data-theme=memo] .divider::before{background-color:color-mix(in srgb,var(--ink) 7%,var(--accent));box-shadow:none}
[data-theme=memo] .divider::after{background:var(--on-accent)}
[data-theme=memo] .divider .dv-no{color:var(--on-accent);font-size:220px;font-weight:800;letter-spacing:-.04em;opacity:.9}
[data-theme=memo] .divider .dv-title{font-size:120px;margin-top:24px;letter-spacing:-.02em}
[data-theme=memo] .divider .dv-sub{color:inherit;opacity:.82}
[data-theme=memo] .divider .dv-map li{background:color-mix(in srgb,var(--on-accent) 18%,var(--accent));height:8px}
[data-theme=memo] .divider .dv-map li.done{background:color-mix(in srgb,var(--on-accent) 45%,var(--accent))}
[data-theme=memo] .divider .dv-map li.now{background:var(--on-accent)}
[data-theme=memo] .divider .dv-map li span,[data-theme=memo] .divider .dv-map li.now span{color:var(--on-accent)}
[data-theme=memo] .divider{background:linear-gradient(to bottom right,var(--flap) 50%,var(--bg) 50%) right 0 bottom 0/180px 180px no-repeat,linear-gradient(transparent 55px,color-mix(in srgb,var(--ink) 7%,var(--accent)) 55px) 0 8px/100% 56px,var(--accent)}
/* 英文 */
[data-theme=memo]:lang(en) .title{font-size:70px}
[data-theme=memo]:lang(en) .cover-title{font-size:124px;line-height:1.06}
/* ---- 风格 21 · memo 结束 ---- */

/* ================= 风格 22 · 包豪斯（bauhaus） =================
   三原色与几何：米色纸底、墨黑粗线；红（强调色）、黄（--bh-y）、蓝（--bh-b）只用作色块和图形。圆、方、三角都是实色的 CSS 形状，
   换配色、自定义颜色时跟着变量走（不用渐变和滤镜，导出 PDF 不走样）。标题 Archivo 粗体配思源黑体。
   内容页右上角一圆一方；卡片顶上一道粗色条、列表左边一道粗色条，按红黄蓝轮换；
   封面右侧一组构成：大黄圆、红方块、蓝三角、两道黑杠；章节页整页按章节轮换红、蓝、黄、黑 */
[data-theme=bauhaus]{
  --frame:#d9cfbc;--bg:#f1ebdd;--ink:#161616;--body2:#2f2c27;--muted:#57524a;--faint:#9a9284;--line:#161616;
  --accent:#d7262b;--accent2:#d7262b;--accent-ink:#c41f24;--on-accent:#fff;--soft:#f3d9cf;--soft-line:#e08d86;
  --bh-y:#f2b705;--bh-b:#1f4fa3;--bh-k:var(--ink);
  --good:#1f7a4d;--bad:#c41f24;
  --box-bg:#f8f4ea;--box-border:3px solid var(--bh-k);--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:"Archivo",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC",sans-serif;--f-num:"Archivo",var(--cjk-sans),sans-serif;
  --title-w:900;--h3-w:800;--num-w:900;--num-style:normal}
/* 内容页：右上角一个黄圆压着一个红方块 */
[data-theme=bauhaus] .slide::before,[data-theme=bauhaus] .slide::after{content:"";position:absolute;z-index:0;pointer-events:none}
[data-theme=bauhaus] .slide::before{right:56px;top:34px;width:76px;height:76px;border-radius:50%;background:var(--bh-y)}
[data-theme=bauhaus] .slide::after{right:110px;top:76px;width:44px;height:44px;background:var(--accent)}
[data-theme=bauhaus] .kicker{color:var(--ink);font-weight:800;letter-spacing:.08em;text-transform:uppercase}
[data-theme=bauhaus] .kicker b{background:var(--bh-k);color:var(--bg);padding:4px 14px;font-size:24px}
[data-theme=bauhaus] .title{letter-spacing:-.01em;line-height:1.14}
[data-theme=bauhaus] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{color:var(--accent-ink)}
[data-theme=bauhaus] .slide>.ft{bottom:40px;padding-top:12px;border-top:3px solid var(--bh-k);color:var(--ink);font-weight:700;font-size:18px;letter-spacing:.06em;text-transform:uppercase}
/* 卡片：墨线方框，顶上一道粗色条，红黄蓝轮换；重点卡片整块黄 */
[data-theme=bauhaus] .grid>.box{border-top-width:16px}
[data-theme=bauhaus] .grid>.box:nth-child(3n+1){border-top-color:var(--accent)}
[data-theme=bauhaus] .grid>.box:nth-child(3n+2){border-top-color:var(--bh-y)}
[data-theme=bauhaus] .grid>.box:nth-child(3n){border-top-color:var(--bh-b)}
[data-theme=bauhaus] .box.key{background:var(--bh-y);color:#161616}
[data-theme=bauhaus] .box.key :is(h3,p,.meta,.no,.l,.s,.n){color:#161616}
[data-theme=bauhaus] .box.key .card .meta,[data-theme=bauhaus] .box.key .meta{border-top-color:#161616}
[data-theme=bauhaus] .no{color:var(--accent-ink)}
[data-theme=bauhaus] .card .meta{border-top:3px solid var(--bh-k);color:var(--ink)}
/* 竖向列表：左边一道粗色条 */
[data-theme=bauhaus] .rows>.row{border-left-width:18px}
[data-theme=bauhaus] .rows>.row:nth-child(3n+1){border-left-color:var(--accent)}
[data-theme=bauhaus] .rows>.row:nth-child(3n+2){border-left-color:var(--bh-y)}
[data-theme=bauhaus] .rows>.row:nth-child(3n){border-left-color:var(--bh-b)}
[data-theme=bauhaus] .row .n{color:var(--ink)}
[data-theme=bauhaus] .sn{background:var(--bh-k);color:var(--bg)}
[data-theme=bauhaus] .flow .step:nth-of-type(2) .sn{background:var(--accent);color:var(--on-accent)}
[data-theme=bauhaus] .q::before{border-radius:50%;background:var(--accent)}
[data-theme=bauhaus] .badge{border:2px solid var(--bh-k);background:var(--bh-y);color:#161616}
[data-theme=bauhaus] :is(.badge.solid,.tag){background:var(--bh-k);color:var(--bg);border-color:var(--bh-k)}
[data-theme=bauhaus] .chips li{background:var(--box-bg);border:3px solid var(--bh-k);font-weight:700}
[data-theme=bauhaus] .tabs li{border:2px solid var(--bh-k);color:var(--ink)}
[data-theme=bauhaus] .callout{border-radius:0;background:var(--bh-y);border:3px solid var(--bh-k);color:#161616}
[data-theme=bauhaus] .callout b{color:#161616}
[data-theme=bauhaus] .tip{border-radius:0;background:var(--box-bg);border:3px solid var(--bh-k);border-left:18px solid var(--accent)}
[data-theme=bauhaus] .tip b{color:var(--accent-ink)}
[data-theme=bauhaus] .checks li::before,[data-theme=bauhaus] .pairs .box.bad::before,[data-theme=bauhaus] .pairs .box.good::before{border-radius:0}
/* 时间线：粗黑线上依次是红圆、黄方、蓝三角 */
[data-theme=bauhaus] .tl::before{height:6px;top:19px;background:var(--bh-k)}
[data-theme=bauhaus] .tl>li::before{width:40px;height:40px;top:2px;box-shadow:none;background:var(--accent)}
[data-theme=bauhaus] .tl>li:nth-child(3n+2)::before{border-radius:0;background:var(--bh-y)}
[data-theme=bauhaus] .tl>li:nth-child(3n)::before{border-radius:0;background:var(--bh-b);clip-path:polygon(50% 0,100% 100%,0 100%)}
[data-theme=bauhaus] .tl .when{color:var(--ink)}
[data-theme=bauhaus] .tl .out{border-top:3px solid var(--bh-k)}
[data-theme=bauhaus] .cmp>*{border-top:3px solid var(--bh-k)}
[data-theme=bauhaus] .cmp>.h{border-top:0}
[data-theme=bauhaus] .cmp .h span{border-radius:0}
[data-theme=bauhaus] .cmp .h.t2 span{background:var(--bh-b);color:#fff;border:0}
[data-theme=bauhaus] .tbl{border:3px solid var(--bh-k)}
[data-theme=bauhaus] .tbl th{background:var(--bh-k);color:var(--bg)}
[data-theme=bauhaus] .tbl td{border-top:2px solid var(--bh-k)}
[data-theme=bauhaus] .tbl td:first-child{color:var(--ink)}
[data-theme=bauhaus] :is(.stat .n,.price .amt){letter-spacing:-.03em}
[data-theme=bauhaus] .stat .n small{color:var(--accent-ink)}
[data-theme=bauhaus] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:3px solid var(--bh-k);box-shadow:12px 12px 0 var(--bh-y)}
[data-theme=bauhaus] .ph{border-radius:0;border:3px dashed var(--bh-k)}
[data-theme=bauhaus] .avatar{border-radius:50%;background:var(--bh-b);color:#fff}
[data-theme=bauhaus] .kol .av{border:3px solid var(--bh-k);background:var(--bh-y);color:#161616}
[data-theme=bauhaus] .bio{border-left:18px solid var(--accent)}
[data-theme=bauhaus] .wire i{background:var(--bh-k)}
[data-theme=bauhaus] :is(.arrow,.pipe .node::after){color:var(--bh-k)}
[data-theme=bauhaus] .pipe .node::after{background:var(--bh-k)}
[data-theme=bauhaus] .ring-hint{border-radius:0}
/* 封面：右侧一组构成——大黄圆、红方块、蓝三角，一道竖黑杠、一道横黑杠 */
[data-theme=bauhaus] .cover::before{right:640px;top:0;width:34px;height:1080px;border-radius:0;background:var(--bh-k)}
[data-theme=bauhaus] .cover::after{right:0;top:640px;width:780px;height:26px;background:var(--bh-k)}
[data-theme=bauhaus] .cover .deco>*{display:block;position:absolute}
[data-theme=bauhaus] .cover .d1{right:150px;top:110px;width:520px;height:520px;border-radius:50%;background:var(--bh-y)}
[data-theme=bauhaus] .cover .d2{right:460px;top:520px;width:300px;height:300px;background:var(--accent)}
[data-theme=bauhaus] .cover .d3{right:96px;bottom:0;width:380px;height:390px;background:var(--bh-b);clip-path:polygon(50% 0,100% 100%,0 100%)}
[data-theme=bauhaus] .cover :is(.cover-title,.cover-sub){max-width:1060px}
[data-theme=bauhaus] .cover-meta{color:var(--ink);font-weight:800;letter-spacing:.1em;text-transform:uppercase}
[data-theme=bauhaus] .cover-meta span:first-child{background:var(--bh-k);color:var(--bg);padding:2px 14px}
[data-theme=bauhaus] .cover-title{font-size:150px;line-height:1.04;letter-spacing:-.02em}
[data-theme=bauhaus] .avatar{flex:none}
/* 有形象时构成缩小，挪到形象后面 */
[data-theme=bauhaus] .cover:has(>.ip) .d1{width:440px;height:440px;right:170px;top:150px}
[data-theme=bauhaus] .cover:has(>.ip) :is(.d2,.d3){display:none}
[data-theme=bauhaus] .cover:has(>.ip)::before{right:760px}
/* 章节页：整页铺色，按章节轮换红、蓝、黄、黑；右下角一个大圆，左上一道黑杠 */
[data-theme=bauhaus] .divider{--dv-bg:var(--accent);--dv-ink:#fff;--dv-shape:var(--bh-y);background:var(--dv-bg);color:var(--dv-ink)}
[data-theme=bauhaus] .divider[data-tone="2"]{--dv-bg:var(--bh-b);--dv-ink:#fff;--dv-shape:var(--accent)}
[data-theme=bauhaus] .divider[data-tone="3"]{--dv-bg:var(--bh-y);--dv-ink:#161616;--dv-shape:var(--bh-b)}
[data-theme=bauhaus] .divider[data-tone="4"]{--dv-bg:#161616;--dv-ink:#f1ebdd;--dv-shape:var(--bh-y)}
[data-theme=bauhaus] .divider::before{right:-120px;top:auto;bottom:-160px;width:760px;height:760px;border-radius:50%;background:var(--dv-shape)}
[data-theme=bauhaus] .divider::after{left:128px;right:auto;top:0;width:300px;height:30px;background:var(--dv-ink)}
[data-theme=bauhaus] .divider:has(>.ip)::before{width:600px;height:600px}
[data-theme=bauhaus] .divider .dv-no{color:var(--dv-ink);font-size:300px;letter-spacing:-.05em}
[data-theme=bauhaus] .divider .dv-title{max-width:1240px}
[data-theme=bauhaus] .divider .dv-sub{color:var(--dv-ink);opacity:.86;max-width:1180px}
[data-theme=bauhaus] .divider .dv-map li{background:color-mix(in srgb,var(--dv-ink) 28%,transparent);height:10px;border-radius:0}
[data-theme=bauhaus] .divider .dv-map li.done{background:color-mix(in srgb,var(--dv-ink) 60%,transparent)}
[data-theme=bauhaus] .divider .dv-map li.now{background:var(--dv-ink)}
[data-theme=bauhaus] .divider .dv-map li span,[data-theme=bauhaus] .divider .dv-map li.now span{color:var(--dv-ink)}
/* 金句页：左下一个红色四分之一圆，右上一个蓝方块 */
[data-theme=bauhaus] .stmt::before{left:-1px;right:auto;top:auto;bottom:0;width:340px;height:340px;border-radius:0 340px 0 0;background:var(--accent)}
[data-theme=bauhaus] .stmt::after{right:0;top:0;width:200px;height:200px;background:var(--bh-b)}
[data-theme=bauhaus] .stmt.has-ip::after{display:none}
[data-theme=bauhaus] .stmt .kicker{margin-bottom:36px}
[data-theme=bauhaus] .stmt .big{line-height:1.22}
/* 结尾页：和封面一样的构成，换个方向 */
[data-theme=bauhaus] .end::before{right:0;top:180px;width:600px;height:600px;border-radius:50%;background:var(--accent)}
[data-theme=bauhaus] .end::after{right:440px;top:auto;bottom:0;width:30px;height:520px;background:var(--bh-k)}
[data-theme=bauhaus] .end:has(>.ip)::before{width:520px;height:520px;top:260px;right:120px}
[data-theme=bauhaus] .end:has(>.qrs)::before{width:300px;height:300px;top:auto;bottom:120px;right:60px}
[data-theme=bauhaus] .end:has(>.qrs)::after{display:none}
[data-theme=bauhaus] .end :is(.big,.big-sub){max-width:1080px}
[data-theme=bauhaus]:lang(en) .title{font-size:66px;line-height:1.08}
[data-theme=bauhaus]:lang(en) .cover-title{font-size:132px;line-height:1}
[data-theme=bauhaus]:lang(en) .divider .dv-title{font-size:96px}
[data-theme=bauhaus]:lang(en) .kicker{letter-spacing:.06em}
/* ---- 风格 22 · bauhaus 结束 ---- */

/* ================= 风格 23 · 北欧自然（nordic） =================
   燕麦色底、森林绿的字、陶土色强调；标题用 Newsreader 衬线配思源宋体，正文 Hanken Grotesk。
   页面角落是几块卵石形的色块（--nd-a 鼠尾草、--nd-b 沙色，CSS 圆角，实色），卡片大圆角、浅色底、无线框。
   封面右侧一组卵石，章节页的编号落在一块大卵石上 */
[data-theme=nordic]{
  --frame:#ddd7c9;--bg:#f3f0e8;--ink:#1f2a23;--body2:#3b463e;--muted:#5a645c;--faint:#9aa197;--line:#dbd5c7;
  --accent:#b45a3c;--accent2:#b45a3c;--accent-ink:#a14e32;--on-accent:#fff;--soft:#efe0d6;--soft-line:#dcaa95;
  --nd-a:#d3dbc9;--nd-b:#e7dfcc;
  --good:#4c6b46;--bad:#a23a3a;
  --box-bg:#ebe7dd;--box-border:0;--box-radius:28px;--box-shadow:none;
  --f-head:"Newsreader",var(--cjk-serif),"Songti SC","STSong",serif;--f-body:"Hanken Grotesk",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Newsreader",var(--cjk-serif),serif;
  --title-w:600;--h3-w:600;--num-w:500;--num-style:italic}
/* 内容页：右下角一大块鼠尾草色卵石，右上角一小块沙色 */
[data-theme=nordic] .slide::before,[data-theme=nordic] .slide::after{content:"";position:absolute;z-index:0;pointer-events:none}
[data-theme=nordic] .slide::before{right:-150px;bottom:-190px;width:560px;height:440px;border-radius:58% 42% 50% 50% / 56% 50% 50% 44%;background:var(--nd-a);opacity:.7}
[data-theme=nordic] .slide::after{right:70px;top:-70px;width:250px;height:190px;border-radius:46% 54% 62% 38% / 50% 42% 58% 50%;background:var(--nd-b)}
[data-theme=nordic] .kicker{color:var(--muted);font-weight:500;letter-spacing:.12em}
[data-theme=nordic] .kicker b{font-size:30px;font-weight:500}
[data-theme=nordic] .kicker b::after{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--accent);margin-left:16px;vertical-align:5px}
[data-theme=nordic] :is(.title,.cover-title,.dv-title,.big){letter-spacing:-.005em}
[data-theme=nordic] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{color:var(--accent-ink)}
[data-theme=nordic]:lang(en) :is(.title,.big,.cover-title,.dv-title,.yr-key) em{font-style:italic;font-weight:500}
[data-theme=nordic] .lead{color:var(--body2)}
[data-theme=nordic] .slide>.ft{color:var(--muted);font-size:19px;letter-spacing:.06em}
[data-theme=nordic] .slide>.ft span:last-child{font-family:var(--f-num);font-style:italic;font-size:22px}
[data-theme=nordic] .box.key{background:var(--nd-a)}
[data-theme=nordic] .no{font-size:34px}
[data-theme=nordic] .row .n{font-size:54px}
[data-theme=nordic] .card .meta{border-top:1px solid var(--soft-line)}
[data-theme=nordic] .sn{border-radius:58% 42% 50% 50% / 56% 50% 50% 44%;font-size:32px}
[data-theme=nordic] .q::before{border-radius:50%;font-style:italic}
[data-theme=nordic] .badge{border:0;background:var(--soft)}
[data-theme=nordic] .chips li{border:0;background:var(--box-bg);font-weight:500}
[data-theme=nordic] :is(.callout,.tip){border:0;border-radius:24px;background:var(--soft)}
[data-theme=nordic] .tip{border-left:0;box-shadow:inset 6px 0 0 var(--accent)}
[data-theme=nordic] .tip b{letter-spacing:.14em}
[data-theme=nordic] .tl::before{height:2px;top:22px;background:var(--soft-line)}
[data-theme=nordic] .tl>li::before{border-radius:58% 42% 50% 50% / 56% 50% 50% 44%;box-shadow:0 0 0 8px var(--bg)}
[data-theme=nordic] .tl .out{border-top:1px solid var(--soft-line)}
[data-theme=nordic] .cmp>*{border-top-color:var(--line)}
[data-theme=nordic] .tbl{border-collapse:separate;border-spacing:0;background:var(--box-bg);border-radius:28px;overflow:hidden}
[data-theme=nordic] .tbl th{color:var(--accent-ink)}
[data-theme=nordic] .tbl td{border-top:1px solid var(--line)}
[data-theme=nordic] :is(.stat .n,.price .amt){color:var(--accent-ink);font-weight:500;letter-spacing:-.02em}
[data-theme=nordic] .stat .n small{font-style:normal;color:var(--muted)}
[data-theme=nordic] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:24px;border:0;box-shadow:0 24px 60px -34px rgba(31,42,35,.45)}
[data-theme=nordic] .ph{border-radius:28px;border:2px dashed var(--soft-line)}
[data-theme=nordic] .avatar{background:var(--accent);color:var(--on-accent)}
[data-theme=nordic] .kol .av{border:0;background:var(--nd-a);color:var(--ink)}
[data-theme=nordic] .bio{border-left:3px solid var(--accent);font-family:var(--f-head)}
/* 封面、结尾页：右侧一组卵石——大的鼠尾草、中的陶土、小的沙色 */
[data-theme=nordic] :is(.cover,.end)::before{right:-120px;top:auto;bottom:-120px;width:900px;height:760px;opacity:1}
[data-theme=nordic] :is(.cover,.end)::after{right:470px;top:560px;width:280px;height:224px;background:var(--accent);opacity:.85}
[data-theme=nordic] .cover .deco>*{display:block;position:absolute}
[data-theme=nordic] .cover .d1{right:150px;top:70px;width:180px;height:150px;border-radius:52% 48% 40% 60% / 58% 44% 56% 42%;background:var(--nd-b)}
[data-theme=nordic] :is(.cover,.end):has(>.ip)::after{display:none}
[data-theme=nordic] .end:has(>.qrs)::after{display:none}
[data-theme=nordic] .cover :is(.cover-title,.cover-sub){max-width:1100px}
[data-theme=nordic] .end :is(.big,.big-sub){max-width:1100px}
[data-theme=nordic] .cover-meta{letter-spacing:.14em;color:var(--muted)}
[data-theme=nordic] .cover-meta span+span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:28px;vertical-align:4px}
[data-theme=nordic] .cover-title{font-size:156px;line-height:1.08}
/* 章节页：编号落在一块大卵石上 */
[data-theme=nordic] .divider::before{left:40px;right:auto;top:60px;bottom:auto;width:560px;height:460px;opacity:1}
[data-theme=nordic] .divider::after{right:-60px;top:auto;bottom:-80px;width:520px;height:420px;background:var(--nd-a);opacity:.7}
[data-theme=nordic] .divider .dv-no{font-size:280px;font-weight:400;margin-left:40px}
[data-theme=nordic] .divider .dv-map li{height:4px;border-radius:2px}
[data-theme=nordic] .stmt::before{right:-160px;bottom:-200px;width:700px;height:560px}
[data-theme=nordic] .stmt .big{line-height:1.3}
[data-theme=nordic]:lang(en) .title{font-size:72px;line-height:1.08}
[data-theme=nordic]:lang(en) .cover-title{font-size:140px;line-height:1}
/* ---- 风格 23 · nordic 结束 ---- */

/* ================= 风格 24 · 极光（borealis） =================
   深夜蓝黑的底，顶上一道极光：两团柔光（--au-a、--au-b）横向拉长、模糊；封面、章节页、结尾页更亮，另有几颗星。
   卡片是半透明的玻璃（深色底上一层白，细白边）；标题用细体 Hanken Grotesk，数字更细。文字一律实色 */
[data-theme=borealis]{
  --frame:#000;--bg:#060a12;--ink:#e8f1f2;--body2:#b7c4c9;--muted:#8d9aa3;--faint:#566470;--line:#1c2532;
  --accent:#5ef0c0;--accent2:#5ef0c0;--accent-ink:#6ff5c9;--on-accent:#04110c;--soft:rgba(94,240,192,.08);--soft-line:rgba(94,240,192,.36);
  --au-a:#2fe0a6;--au-b:#7c6cf2;
  --good:#5ef0c0;--bad:#ff7f8a;
  --box-bg:rgba(255,255,255,.045);--box-border:1px solid rgba(255,255,255,.12);--box-radius:24px;--box-shadow:0 30px 60px -40px rgba(0,0,0,.9);
  --f-head:"Hanken Grotesk",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:var(--f-head);--f-num:"Hanken Grotesk",var(--cjk-sans),sans-serif;
  --title-w:300;--h3-w:500;--num-w:200;--num-style:normal}
[data-theme=borealis] .slide::before,[data-theme=borealis] .slide::after{content:"";position:absolute;z-index:0;pointer-events:none}
/* 极光：两团柔光斜着拉开，模糊 */
[data-theme=borealis] .slide::before{left:-10%;right:-10%;top:-360px;height:640px;background:radial-gradient(38% 46% at 30% 58%,var(--au-a),transparent 72%),radial-gradient(34% 42% at 72% 46%,var(--au-b),transparent 72%);filter:blur(70px);opacity:.3;transform:rotate(-4deg)}
[data-theme=borealis] .kicker{color:var(--muted);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:22px}
[data-theme=borealis] .kicker b{font-weight:300;font-size:30px;letter-spacing:.04em}
[data-theme=borealis] :is(.title,.cover-title,.dv-title,.big){letter-spacing:-.02em}
[data-theme=borealis] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{font-weight:400}
[data-theme=borealis] .slide>.ft{color:var(--faint);letter-spacing:.14em;font-size:18px;text-transform:uppercase}
[data-theme=borealis] .box{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
[data-theme=borealis] .box.key{border-color:var(--soft-line);background:rgba(255,255,255,.07);box-shadow:0 0 0 1px var(--soft-line),0 30px 80px -30px color-mix(in srgb,var(--accent) 45%,transparent)}
[data-theme=borealis] :is(.card h3,.row h3,.step h3,.org h3,.pipe .node h3,.eq h3,.keep h3,.road h3){font-weight:500}
[data-theme=borealis] .no{font-size:34px;font-weight:200}
[data-theme=borealis] .row .n{font-size:58px}
[data-theme=borealis] .card .meta{border-top:1px solid rgba(255,255,255,.12)}
[data-theme=borealis] .sn{background:var(--soft);border:1px solid var(--soft-line);color:var(--accent-ink);font-weight:300}
[data-theme=borealis] .q::before{border-radius:50%;background:var(--soft);border:1px solid var(--soft-line);color:var(--accent-ink);font-weight:500}
[data-theme=borealis] .badge{background:var(--soft)}
[data-theme=borealis] :is(.badge.solid,.tag){color:var(--on-accent)}
[data-theme=borealis] .chips li{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);font-weight:400}
[data-theme=borealis] .tabs li{border-color:rgba(255,255,255,.14)}
[data-theme=borealis] :is(.callout,.tip){border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);font-weight:500}
[data-theme=borealis] .tip{border-left:1px solid rgba(255,255,255,.12);box-shadow:inset 4px 0 0 var(--accent)}
[data-theme=borealis] .checks li::before{background:var(--soft);border:1px solid var(--good);color:var(--good)}
[data-theme=borealis] .checks.donts li::before{background:rgba(255,127,138,.1);border-color:var(--bad);color:var(--bad)}
[data-theme=borealis] .tl::before{height:2px;top:22px;background:linear-gradient(90deg,var(--au-a),var(--au-b))}
[data-theme=borealis] .tl>li::before{width:18px;height:18px;top:14px;left:6px;box-shadow:0 0 0 7px var(--bg),0 0 26px 4px var(--accent)}
[data-theme=borealis] .tl .out{border-top:1px solid rgba(255,255,255,.12)}
[data-theme=borealis] .cmp>*{border-top-color:rgba(255,255,255,.1)}
[data-theme=borealis] .cmp .h.t1 span{color:var(--on-accent)}
[data-theme=borealis] .tbl{border-collapse:separate;border-spacing:0;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:24px;overflow:hidden}
[data-theme=borealis] .tbl th{color:var(--accent-ink);font-weight:500}
[data-theme=borealis] .tbl td{border-top:1px solid rgba(255,255,255,.08)}
[data-theme=borealis] :is(.stat .n,.price .amt){color:var(--accent-ink);letter-spacing:-.04em}
[data-theme=borealis] .stat .n small{color:var(--muted);font-weight:400}
[data-theme=borealis] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:20px;border:1px solid rgba(255,255,255,.16);box-shadow:0 40px 90px -40px rgba(0,0,0,.95)}
[data-theme=borealis] .ph{border:1px dashed rgba(255,255,255,.22);border-radius:24px}
[data-theme=borealis] .avatar{background:var(--soft);border:1px solid var(--soft-line);color:var(--accent-ink)}
[data-theme=borealis] .kol .av{border:1px solid var(--soft-line);background:var(--soft)}
[data-theme=borealis] .bio{border-left:2px solid var(--accent);font-weight:300}
[data-theme=borealis] .wire i,[data-theme=borealis] .pipe .node::after{background:rgba(255,255,255,.22)}
[data-theme=borealis] .arrow{color:rgba(255,255,255,.3)}
/* 大页面：极光更亮、更低，另有几颗星；底部一道地平线的微光 */
[data-theme=borealis] :is(.cover,.divider,.stmt,.end)::before{top:-260px;height:820px;opacity:.62;filter:blur(80px)}
[data-theme=borealis] :is(.cover,.divider,.stmt,.end)::after{inset:0;background:
  radial-gradient(2px 2px at 8% 14%,rgba(255,255,255,.85),transparent),radial-gradient(1.5px 1.5px at 19% 31%,rgba(255,255,255,.6),transparent),radial-gradient(2px 2px at 33% 9%,rgba(255,255,255,.7),transparent),
  radial-gradient(1.5px 1.5px at 47% 22%,rgba(255,255,255,.5),transparent),radial-gradient(2px 2px at 61% 7%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 74% 27%,rgba(255,255,255,.55),transparent),
  radial-gradient(2px 2px at 86% 12%,rgba(255,255,255,.75),transparent),radial-gradient(1.5px 1.5px at 93% 38%,rgba(255,255,255,.5),transparent),radial-gradient(1.5px 1.5px at 56% 41%,rgba(255,255,255,.4),transparent),
  radial-gradient(60% 34% at 50% 108%,color-mix(in srgb,var(--au-a) 20%,transparent),transparent 70%)}
[data-theme=borealis] .cover-meta{color:var(--muted);letter-spacing:.24em;text-transform:uppercase;font-size:22px}
[data-theme=borealis] .cover-meta span+span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:28px;vertical-align:5px}
[data-theme=borealis] .cover-title{font-size:168px;line-height:1.06}
[data-theme=borealis] .avatar{flex:none}
[data-theme=borealis] .divider .dv-no{font-size:300px;font-weight:100;letter-spacing:-.06em}
[data-theme=borealis] .divider .dv-map li{height:2px;background:rgba(255,255,255,.14)}
[data-theme=borealis] .divider .dv-map li.done{background:rgba(255,255,255,.4)}
[data-theme=borealis] .stmt .big{line-height:1.28}
[data-theme=borealis] .end .big{font-weight:200}
[data-theme=borealis]:lang(en) .title{font-size:70px;line-height:1.1}
[data-theme=borealis]:lang(en) .cover-title{font-size:148px;line-height:1}
/* ---- 风格 24 · borealis 结束 ---- */

/* ================= 风格 25 · 青绿山水（qinglu） =================
   宣纸色底、石绿（强调色）与石青（--ql-2）、一点赭石（--ql-sun）；标题思源宋体。
   封面、章节页、结尾页底部是一幅青绿山水（SVG，远山石青、中景石绿、近山深色，一轮日头；左边低、往右越来越高，左侧的字不压在山上），内容页底边一道淡淡的远山（--ql-band）；
   山水图的颜色由主题清单按配色换（index.ts 的 qingluArt），只用实色和透明度。右上角一枚朱印 */
[data-theme=qinglu]{
  --frame:#d9d2c0;--bg:#f2eee3;--ink:#1d2b29;--body2:#38453f;--muted:#5a655f;--faint:#9ca199;--line:#d4ccba;
  --accent:#2e7d67;--accent2:#2a5d8a;--accent-ink:#2a735f;--on-accent:#fff;--soft:#e2e6db;--soft-line:#93b8a9;
  --ql-2:#2a5d8a;--ql-sun:#c8955a;--ql-seal:#b03a2e;--ql-paper:#f8f5ed;
  --ql-hills:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201920%20420'%20preserveAspectRatio%3D'xMidYMax%20slice'%3E%3Ccircle%20cx%3D'1560'%20cy%3D'74'%20r%3D'50'%20fill%3D'%23c8955a'%20fill-opacity%3D'.85'%2F%3E%3Cpath%20d%3D'M0%20300Q60%20290%20110%20262Q150%20240%20190%20256Q240%20276%20290%20232Q330%20198%20370%20216Q420%20238%20470%20222Q520%20206%20560%20172Q592%20146%20625%20160Q662%20176%20700%20160Q745%20146%20780%2070Q805%2020%20835%2082Q865%20144%20900%20168Q950%20196%20990%20150Q1030%20104%201065%20138Q1105%20176%201150%20150Q1195%20122%201230%2060Q1255%2020%201285%2076Q1315%20132%201350%20150Q1400%20176%201440%20130Q1480%2084%201515%20120Q1555%20160%201600%20140Q1650%20118%201690%2064Q1720%2026%201750%2084Q1780%20140%201820%20156Q1870%20176%201920%20150V420H0Z'%20fill%3D'%234f7fa6'%20fill-opacity%3D'.42'%2F%3E%3Cpath%20d%3D'M0%20330Q70%20320%20120%20298Q160%20282%20200%20296Q245%20312%20290%20280Q325%20254%20365%20268Q410%20286%20470%20270Q540%20282%20590%20222Q630%20174%20675%20210Q725%20252%20790%20262Q860%20272%20910%20214Q950%20168%20995%20206Q1045%20248%201110%20258Q1180%20268%201230%20210Q1270%20162%201315%20204Q1365%20250%201430%20262Q1500%20272%201550%20216Q1590%20172%201635%20208Q1690%20252%201760%20258Q1840%20264%201920%20232V420H0Z'%20fill%3D'%232e7d67'%20fill-opacity%3D'.78'%2F%3E%3Cpath%20d%3D'M0%20370Q110%20350%20210%20330Q310%20310%20400%20344Q490%20378%20600%20364Q710%20350%20810%20322Q910%20296%201000%20330Q1090%20364%201210%20358Q1330%20352%201430%20326Q1530%20300%201630%20334Q1730%20368%201830%20356Q1880%20350%201920%20344V420H0Z'%20fill%3D'%231f4d45'%20fill-opacity%3D'.9'%2F%3E%3C%2Fsvg%3E");--ql-band:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201920%20180'%20preserveAspectRatio%3D'xMidYMax%20slice'%3E%3Cpath%20d%3D'M0%20120Q90%2096%20160%2070Q220%2050%20280%2084Q340%20118%20410%2062Q470%2016%20540%2070Q610%20122%20690%20104Q770%2086%20840%2048Q910%2014%20980%2064Q1050%20112%201130%20100Q1210%2088%201280%2052Q1350%2020%201420%2074Q1490%20126%201580%20110Q1670%2094%201740%2062Q1810%2032%201870%2076Q1900%2096%201920%20100V180H0Z'%20fill%3D'%234f7fa6'%20fill-opacity%3D'.32'%2F%3E%3Cpath%20d%3D'M0%20150Q120%20128%20220%20112Q330%2096%20430%20128Q530%20160%20650%20146Q770%20132%20870%20108Q970%2086%201080%20120Q1190%20154%201310%20144Q1430%20134%201530%20112Q1630%2092%201740%20126Q1830%20152%201920%20140V180H0Z'%20fill%3D'%232e7d67'%20fill-opacity%3D'.5'%2F%3E%3C%2Fsvg%3E");
  --good:#2e7d67;--bad:#a8452f;
  --box-bg:#ebe6d8;--box-border:0;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:var(--cjk-serif),"Songti SC","STSong",serif;--f-body:var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Newsreader",var(--cjk-serif),serif;
  --title-w:700;--h3-w:700;--num-w:500;--num-style:normal}
[data-theme=qinglu] .slide::before,[data-theme=qinglu] .slide::after{content:"";position:absolute;z-index:0;pointer-events:none}
/* 内容页：底边一道远山，右上角一枚朱印 */
[data-theme=qinglu] .slide::after{left:0;right:0;bottom:0;height:180px;background:var(--ql-band) center bottom/100% 180px no-repeat;opacity:.55}
[data-theme=qinglu] .slide::before{right:128px;top:52px;width:34px;height:34px;background:var(--ql-seal);box-shadow:inset 0 0 0 3px var(--ql-seal),inset 0 0 0 5px rgba(255,255,255,.75)}
[data-theme=qinglu] .kicker{color:var(--accent-ink);letter-spacing:.24em;font-weight:600}
[data-theme=qinglu] .kicker b{font-size:30px;letter-spacing:.02em}
[data-theme=qinglu] .kicker b::after{content:"";display:inline-block;width:40px;height:1px;background:var(--soft-line);margin-left:18px;vertical-align:8px}
[data-theme=qinglu] .title{letter-spacing:.02em;line-height:1.24}
[data-theme=qinglu] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{color:var(--accent-ink)}
[data-theme=qinglu] .slide>.ft{color:var(--muted);letter-spacing:.14em;font-size:19px}
[data-theme=qinglu] .box{border-top:2px solid var(--accent)}
[data-theme=qinglu] .box.key{background:var(--soft);border-top-color:var(--ql-2);outline:1px solid var(--soft-line);outline-offset:-8px}
[data-theme=qinglu] .no{font-size:34px}
[data-theme=qinglu] .row .n{font-size:54px}
[data-theme=qinglu] .card .meta{border-top:1px solid var(--soft-line)}
[data-theme=qinglu] .sn{border-radius:50%;background:none;border:2px solid var(--accent);color:var(--accent-ink);font-weight:600}
[data-theme=qinglu] .q::before{border-radius:0;background:var(--ql-seal);color:#fff}
[data-theme=qinglu] .badge{border:1px solid var(--soft-line);background:none}
[data-theme=qinglu] .chips li{background:none;border:1px solid var(--soft-line);font-weight:600}
[data-theme=qinglu] .callout{border-radius:0;border:0;border-top:2px solid var(--ql-2);background:var(--soft)}
[data-theme=qinglu] .tip{border-radius:0;border-left:4px solid var(--accent);background:var(--soft)}
[data-theme=qinglu] .tip b{letter-spacing:.24em}
[data-theme=qinglu] .tl::before{height:1px;top:20px;background:var(--accent)}
[data-theme=qinglu] .tl>li::before{width:22px;height:22px;top:10px;left:4px;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 0 8px var(--bg)}
[data-theme=qinglu] .tl .out{border-top:1px solid var(--soft-line)}
[data-theme=qinglu] .cmp>*{border-top-color:var(--soft-line)}
[data-theme=qinglu] .cmp .h span{border-radius:0}
[data-theme=qinglu] .cmp .h.t2 span{background:none;border-color:var(--ql-2);color:var(--ql-2)}
[data-theme=qinglu] .tbl{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
[data-theme=qinglu] .tbl th{color:var(--accent-ink);border-bottom:1px solid var(--ink)}
[data-theme=qinglu] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=qinglu] .tbl tr:last-child td{border-bottom:0}
[data-theme=qinglu] :is(.stat .n,.price .amt){color:var(--accent-ink)}
[data-theme=qinglu] .stat .n small{color:var(--muted);font-family:var(--f-head)}
[data-theme=qinglu] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:1px solid var(--line);box-shadow:0 0 0 10px var(--ql-paper),0 0 0 11px var(--soft-line)}
[data-theme=qinglu] .ph{border-radius:0;border:1px dashed var(--soft-line)}
[data-theme=qinglu] .avatar{border-radius:0;background:var(--accent);color:var(--on-accent)}
[data-theme=qinglu] .kol .av{border-radius:0;border:1px solid var(--soft-line)}
[data-theme=qinglu] .bio{border-left:2px solid var(--accent);font-family:var(--f-head);font-weight:600}
[data-theme=qinglu] .wire i,[data-theme=qinglu] .pipe .node::after{background:var(--soft-line)}
/* 大页面：底部一整幅山水 */
[data-theme=qinglu] :is(.cover,.divider,.stmt,.end)::after{height:420px;background:var(--ql-hills) center bottom/100% 420px no-repeat;opacity:1}
[data-theme=qinglu] .end:has(>.qrs)::after{height:260px;background-size:100% 260px}
[data-theme=qinglu] .stmt::after{opacity:.5}
[data-theme=qinglu] :is(.cover,.divider,.stmt,.end)::before{right:auto;left:128px;top:72px;width:46px;height:46px}
[data-theme=qinglu] :is(.cover,.end){justify-content:flex-start;padding-top:150px}
[data-theme=qinglu] .cover-meta{color:var(--accent-ink);letter-spacing:.4em;font-weight:600}
[data-theme=qinglu] .cover-meta span+span::before{content:"·";margin-right:28px;color:var(--faint)}
[data-theme=qinglu] .cover-title{font-size:150px;line-height:1.16;letter-spacing:.04em;margin-bottom:36px}
[data-theme=qinglu] .cover :is(.cover-title,.cover-sub){max-width:1240px}
[data-theme=qinglu] .cover .byline,[data-theme=qinglu] .end .byline{margin-top:48px}
[data-theme=qinglu] .avatar{flex:none}
[data-theme=qinglu] .divider{justify-content:flex-start;padding-top:170px}
[data-theme=qinglu] .divider .dv-no{font-size:200px;font-weight:400}
[data-theme=qinglu] .divider .dv-title{margin-top:24px;letter-spacing:.06em}
[data-theme=qinglu] .divider .dv-map{top:110px;bottom:auto;left:auto;width:720px}
[data-theme=qinglu] .dv-map li{height:2px;border-radius:0}
[data-theme=qinglu] .stmt .big{line-height:1.36;letter-spacing:.03em}
[data-theme=qinglu] .stmt{justify-content:flex-start;padding-top:200px}
[data-theme=qinglu] .end .big{letter-spacing:.08em}
[data-theme=qinglu] .end:has(>.qrs){justify-content:center;padding-top:96px}
[data-theme=qinglu]:lang(en) .title{font-size:68px;line-height:1.14;letter-spacing:0}
[data-theme=qinglu]:lang(en) .cover-title{font-size:132px;line-height:1.04;letter-spacing:0}
[data-theme=qinglu]:lang(en) :is(.dv-title,.big){letter-spacing:0}
[data-theme=qinglu]:lang(en) .kicker{letter-spacing:.12em}
/* ---- 风格 25 · qinglu 结束 ---- */

/* ================= 风格 26 · 孔版印刷（riso） =================
   纸色底，两种专色：强调色（默认荧光粉）和第二色（--rs-2，蓝）。图形用正片叠底叠印，重叠处出第三种颜色；
   标题里的强调错开一点第二色（套印不准的样子），卡片是墨线框加一块错开的粉色。整页一层细颗粒（和柔光一样的噪点，普通混合）。
   导出 PPTX 时错开的那层字影去掉，只留文字本身 */
[data-theme=riso]{
  --frame:#ddd5c2;--bg:#f4eee1;--ink:#1d2152;--body2:#33376a;--muted:#555985;--faint:#9b9bb3;--line:#d3ccd2;
  --accent:#ff48b0;--accent2:#ff48b0;--accent-ink:#c5127a;--on-accent:#1d2152;--soft:#fbdaea;--soft-line:#f29ac8;
  --rs-2:#0078bf;--rs-em:var(--accent-ink);--rs-em-shadow:var(--rs-2);
  --good:#00915a;--bad:#e8422b;
  --box-bg:#faf6ee;--box-border:2.5px solid var(--ink);--box-radius:10px;--box-shadow:7px 7px 0 var(--accent);
  --f-head:"Bricolage Grotesque",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC",sans-serif;--f-num:"Bricolage Grotesque",var(--cjk-sans),sans-serif;
  --title-w:800;--h3-w:800;--num-w:800;--num-style:normal}
[data-theme=riso] .slide{background:var(--bg)}
[data-theme=riso] .slide::before,[data-theme=riso] .slide::after{content:"";position:absolute;z-index:0;pointer-events:none}
/* 颗粒 */
[data-theme=riso] .slide::after{inset:0;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* 内容页：右上角两枚叠印的圆 */
[data-theme=riso] .slide::before{right:-70px;top:-120px;width:250px;height:250px;border-radius:50%;background:var(--accent);mix-blend-mode:multiply;opacity:.9;box-shadow:-120px 40px 0 -40px var(--rs-2)}
[data-theme=riso] .kicker{color:var(--ink);font-weight:800;letter-spacing:.1em;text-transform:uppercase}
[data-theme=riso] .kicker b{background:var(--accent);color:var(--on-accent);padding:2px 12px;border-radius:4px;rotate:-3deg}
[data-theme=riso] :is(.title,.big,.cover-title,.dv-title){letter-spacing:-.01em}
[data-theme=riso] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{color:var(--rs-em);text-shadow:4px 3px 0 color-mix(in srgb,var(--rs-em-shadow) 55%,transparent)}
[data-theme=riso] .slide>.ft{color:var(--muted);font-weight:700;letter-spacing:.08em;font-size:18px;text-transform:uppercase}
[data-theme=riso] .box.key{box-shadow:9px 9px 0 var(--rs-2);background:var(--soft)}
[data-theme=riso] .no{color:var(--accent-ink)}
[data-theme=riso] .row .n{color:var(--ink);text-shadow:3px 3px 0 color-mix(in srgb,var(--accent) 70%,transparent)}
[data-theme=riso] .card .meta{border-top:2px dashed var(--ink);color:var(--accent-ink)}
[data-theme=riso] .sn{background:var(--accent);color:var(--on-accent);box-shadow:5px 4px 0 color-mix(in srgb,var(--rs-2) 70%,transparent)}
[data-theme=riso] .q::before{border-radius:50%;background:var(--accent);color:var(--on-accent)}
[data-theme=riso] .badge{border:2px solid var(--ink);background:var(--soft);color:var(--ink)}
[data-theme=riso] :is(.badge.solid,.tag){background:var(--rs-2);border-color:var(--rs-2);color:#fff}
[data-theme=riso] .chips li{border:2.5px solid var(--ink);background:var(--box-bg);font-weight:700}
[data-theme=riso] .tabs li{border:2px solid var(--ink);color:var(--ink)}
[data-theme=riso] .callout{border:2.5px solid var(--ink);border-radius:10px;background:var(--soft)}
[data-theme=riso] .tip{border:2.5px solid var(--ink);border-left:12px solid var(--accent);border-radius:10px;background:var(--box-bg)}
[data-theme=riso] .tip b{color:var(--accent-ink)}
[data-theme=riso] .tl::before{height:0;top:20px;border-top:3px dashed var(--ink);background:none}
[data-theme=riso] .tl>li::before{box-shadow:5px 4px 0 color-mix(in srgb,var(--rs-2) 70%,transparent)}
[data-theme=riso] .tl .out{border-top:2px dashed var(--ink)}
[data-theme=riso] .cmp>*{border-top:2px solid var(--ink)}
[data-theme=riso] .cmp>.h{border-top:0}
[data-theme=riso] .cmp .h.t1 span{color:var(--on-accent)}
[data-theme=riso] .cmp .h.t2 span{background:var(--rs-2);color:#fff;border:0}
[data-theme=riso] .tbl{border:2.5px solid var(--ink);border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;background:var(--box-bg)}
[data-theme=riso] .tbl th{background:var(--soft);border-bottom:2.5px solid var(--ink)}
[data-theme=riso] .tbl td{border-top:1.5px solid var(--line)}
[data-theme=riso] :is(.stat .n,.price .amt){color:var(--ink);text-shadow:5px 4px 0 color-mix(in srgb,var(--accent) 75%,transparent)}
[data-theme=riso] :is(.stat .n,.price .amt) small{color:var(--accent-ink);text-shadow:none}
[data-theme=riso] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:10px;border:2.5px solid var(--ink);box-shadow:10px 10px 0 color-mix(in srgb,var(--rs-2) 80%,transparent)}
[data-theme=riso] .ph{border:2.5px dashed var(--ink);border-radius:10px}
[data-theme=riso] .avatar{background:var(--rs-2);color:#fff}
[data-theme=riso] .kol .av{border:2.5px solid var(--ink);background:var(--soft);color:var(--ink)}
[data-theme=riso] .bio{border-left:10px solid var(--accent)}
[data-theme=riso] .checks li::before,[data-theme=riso] .pairs .box.bad::before,[data-theme=riso] .pairs .box.good::before{box-shadow:4px 3px 0 color-mix(in srgb,var(--rs-2) 60%,transparent)}
/* 封面、结尾：一大一小两个叠印的形状，粉色的大圆、蓝色的斜方块 */
[data-theme=riso] .cover .deco>*{display:block;position:absolute;mix-blend-mode:multiply}
[data-theme=riso] .cover .d1{right:120px;top:120px;width:640px;height:640px;border-radius:50%;background:var(--accent);opacity:.92}
[data-theme=riso] .cover .d2{right:420px;top:420px;width:420px;height:420px;background:var(--rs-2);opacity:.85;rotate:12deg}
[data-theme=riso] .cover .d3{right:60px;top:60px;width:180px;height:180px;border-radius:50%;border:16px solid var(--rs-2);opacity:.85}
[data-theme=riso] .cover::before,[data-theme=riso] .end::before{display:none}
[data-theme=riso] .cover :is(.cover-title,.cover-sub){max-width:1080px}
[data-theme=riso] .cover:has(>.ip) .d2{display:none}
[data-theme=riso] .cover-meta{color:var(--ink);font-weight:800;letter-spacing:.12em;text-transform:uppercase}
[data-theme=riso] .cover-meta span:first-child{background:var(--accent);color:var(--on-accent);padding:2px 14px;border-radius:4px}
[data-theme=riso] .cover-title{font-size:156px;line-height:1.04}
[data-theme=riso] .avatar{flex:none}
[data-theme=riso] .end{background:radial-gradient(circle 330px at 1580px 520px,color-mix(in srgb,var(--accent) 90%,transparent) 99%,transparent 100%),var(--bg)}
[data-theme=riso] .end:has(>.qrs){background:var(--bg)}
[data-theme=riso] .end :is(.big,.big-sub){max-width:1080px}
/* 章节页：整页铺一种专色，按章节轮换粉、蓝；一个叠印的大圆 */
[data-theme=riso] .divider{--dv-bg:var(--accent);--dv-ink:var(--on-accent);--dv-shape:var(--rs-2);background:var(--dv-bg);color:var(--dv-ink)}
[data-theme=riso] .divider:is([data-tone="2"],[data-tone="4"]){--dv-bg:var(--rs-2);--dv-ink:#fff;--dv-shape:var(--accent)}
[data-theme=riso] .divider::before{right:120px;top:auto;bottom:-200px;width:760px;height:760px;background:var(--dv-shape);mix-blend-mode:multiply;opacity:.85;box-shadow:none}
[data-theme=riso] .divider:has(>.ip)::before{width:600px;height:600px}
[data-theme=riso] .divider .dv-no{color:var(--dv-ink);font-size:300px;letter-spacing:-.04em}
[data-theme=riso] .divider .dv-sub{color:var(--dv-ink);opacity:.9}
[data-theme=riso] .divider .dv-map li{background:color-mix(in srgb,var(--dv-ink) 30%,transparent)}
[data-theme=riso] .divider .dv-map li.done{background:color-mix(in srgb,var(--dv-ink) 60%,transparent)}
[data-theme=riso] .divider .dv-map li.now{background:var(--dv-ink)}
[data-theme=riso] .divider .dv-map li span,[data-theme=riso] .divider .dv-map li.now span{color:var(--dv-ink)}
[data-theme=riso] .stmt::before{right:-100px;top:auto;bottom:-140px;width:520px;height:520px;opacity:.85;box-shadow:-220px -120px 0 -120px var(--rs-2)}
[data-theme=riso] .stmt.has-ip::before{display:none}
[data-theme=riso]:lang(en) .title{font-size:70px;line-height:1.08}
[data-theme=riso]:lang(en) .cover-title{font-size:140px;line-height:.98}
/* ---- 风格 26 · riso 结束 ---- */

/* ================= 风格 27 · 电影（cinema） =================
   宽银幕：所有页面上下各一道黑边（内阴影），页脚落在下黑边里像字幕；封面、结尾的黑边更宽（约 2.39:1 的画幅）。
   近黑底带一点调色（--cn-tint），四周暗角，一层胶片颗粒；标题 Newsreader 配思源宋体，眉题像场记板一样全大写、字距拉开。
   封面、章节页、结尾页居中，四角取景框 */
[data-theme=cinema]{
  --frame:#000;--bg:#0d0c0b;--ink:#f1ece2;--body2:#c8c1b4;--muted:#9a9285;--faint:#5f5a52;--line:#26231f;
  --accent:#e0a458;--accent2:#e0a458;--accent-ink:#e8b06a;--on-accent:#0d0c0b;--soft:rgba(224,164,88,.08);--soft-line:rgba(224,164,88,.42);
  --cn-tint:rgba(224,164,88,.1);--cn-bar:#000;
  --good:#8fc79b;--bad:#e3796f;
  --box-bg:#151310;--box-border:1px solid #2a2621;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:"Newsreader",var(--cjk-serif),"Songti SC","STSong",serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-num:"Newsreader",var(--cjk-serif),serif;
  --title-w:600;--h3-w:600;--num-w:500;--num-style:italic}
[data-theme=cinema] .slide{box-shadow:inset 0 52px 0 var(--cn-bar),inset 0 -52px 0 var(--cn-bar)}
[data-theme=cinema] .slide::before,[data-theme=cinema] .slide::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}
/* 暗角和调色 */
[data-theme=cinema] .slide::before{background:radial-gradient(ellipse 80% 70% at 50% 50%,transparent 58%,rgba(0,0,0,.6) 100%),radial-gradient(900px 600px at 12% 0%,var(--cn-tint),transparent 70%)}
/* 胶片颗粒 */
[data-theme=cinema] .slide::after{opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
[data-theme=cinema] .kicker{color:var(--accent-ink);font-family:var(--f-body);font-size:20px;font-weight:600;letter-spacing:.32em;text-transform:uppercase}
[data-theme=cinema] .kicker b{font-family:var(--f-body);font-style:normal;font-weight:600;font-size:20px;letter-spacing:.2em}
[data-theme=cinema] .kicker b::after{content:"";display:inline-block;width:44px;height:1px;background:var(--soft-line);margin-left:18px;vertical-align:6px}
[data-theme=cinema] .title{letter-spacing:.01em;line-height:1.22}
[data-theme=cinema] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{color:var(--accent-ink)}
[data-theme=cinema]:lang(en) :is(.title,.big,.cover-title,.dv-title,.yr-key) em{font-style:italic;font-weight:500}
[data-theme=cinema] .slide>.ft{bottom:14px;color:var(--muted);font-size:17px;letter-spacing:.24em;text-transform:uppercase}
[data-theme=cinema] .slide>.ft span:last-child{font-family:var(--f-num);font-style:italic;letter-spacing:.06em;font-size:20px}
[data-theme=cinema] .box.key{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--soft-line)}
[data-theme=cinema] .no{font-size:34px}
[data-theme=cinema] .row .n{font-size:54px}
[data-theme=cinema] .card .meta{border-top:1px solid var(--line)}
[data-theme=cinema] .sn{border-radius:0;background:none;border:1px solid var(--accent);color:var(--accent-ink)}
[data-theme=cinema] .q::before{border-radius:0;background:none;border:1px solid var(--accent);color:var(--accent-ink)}
[data-theme=cinema] .badge{border-radius:0;background:none;letter-spacing:.1em}
[data-theme=cinema] .chips li{border-radius:0;background:none;border:1px solid var(--line);font-weight:500;letter-spacing:.04em}
[data-theme=cinema] .tabs li{border-color:var(--line)}
[data-theme=cinema] :is(.callout,.tip){border-radius:0;background:var(--soft);border:1px solid var(--soft-line)}
[data-theme=cinema] .tip{border-left:3px solid var(--accent)}
[data-theme=cinema] .tip b{letter-spacing:.3em;text-transform:uppercase}
[data-theme=cinema] .checks li::before{background:none;border:1px solid var(--good);color:var(--good);border-radius:0}
[data-theme=cinema] .checks.donts li::before{border-color:var(--bad);color:var(--bad)}
[data-theme=cinema] .pairs .box.bad::before,[data-theme=cinema] .pairs .box.good::before{background:none;border:1px solid currentColor;border-radius:0}
[data-theme=cinema] .pairs .box.bad::before{color:var(--bad)}
[data-theme=cinema] .pairs .box.good::before{color:var(--good)}
/* 时间线：一条胶片，节点是齿孔 */
[data-theme=cinema] .tl::before{height:1px;top:20px;background:var(--soft-line)}
[data-theme=cinema] .tl>li::before{width:16px;height:24px;top:8px;left:6px;border-radius:3px;box-shadow:0 0 0 8px var(--bg)}
[data-theme=cinema] .tl .out{border-top:1px solid var(--line)}
[data-theme=cinema] .cmp>*{border-top-color:var(--line)}
[data-theme=cinema] .cmp .h span{border-radius:0;letter-spacing:.06em}
[data-theme=cinema] .cmp .h.t2 span{background:none;border-color:var(--accent)}
[data-theme=cinema] .tbl{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent)}
[data-theme=cinema] .tbl th{color:var(--accent-ink);border-bottom:1px solid var(--soft-line);font-weight:600}
[data-theme=cinema] .tbl td{border-bottom:1px solid var(--line)}
[data-theme=cinema] .tbl tr:last-child td{border-bottom:0}
[data-theme=cinema] :is(.stat .n,.price .amt){color:var(--accent-ink)}
[data-theme=cinema] .stat .n small{font-style:normal;color:var(--muted)}
[data-theme=cinema] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:1px solid #2a2621;box-shadow:0 30px 80px -30px rgba(0,0,0,.9)}
[data-theme=cinema] .ph{border-radius:0;border:1px dashed var(--soft-line)}
[data-theme=cinema] .avatar{border-radius:50%;background:var(--accent);color:var(--on-accent)}
[data-theme=cinema] .kol .av{border:1px solid var(--soft-line);background:var(--soft)}
[data-theme=cinema] .bio{border-left:1px solid var(--accent);font-family:var(--f-head)}
[data-theme=cinema] .wire i,[data-theme=cinema] .pipe .node::after{background:var(--soft-line)}
[data-theme=cinema] .ring-hint{border-radius:0;letter-spacing:.1em}
/* 大页面：更宽的黑边、居中、四角取景框 */
[data-theme=cinema] :is(.cover,.divider,.stmt,.end){--cn-bar-h:132px;box-shadow:inset 0 var(--cn-bar-h) 0 var(--cn-bar),inset 0 calc(var(--cn-bar-h) * -1) 0 var(--cn-bar);align-items:center;text-align:center}
[data-theme=cinema] :is(.cover,.divider,.stmt,.end)::after{inset:162px 80px;opacity:1;background:
  linear-gradient(var(--soft-line),var(--soft-line)) 0 0/48px 1px no-repeat,linear-gradient(var(--soft-line),var(--soft-line)) 0 0/1px 48px no-repeat,
  linear-gradient(var(--soft-line),var(--soft-line)) 100% 0/48px 1px no-repeat,linear-gradient(var(--soft-line),var(--soft-line)) 100% 0/1px 48px no-repeat,
  linear-gradient(var(--soft-line),var(--soft-line)) 0 100%/48px 1px no-repeat,linear-gradient(var(--soft-line),var(--soft-line)) 0 100%/1px 48px no-repeat,
  linear-gradient(var(--soft-line),var(--soft-line)) 100% 100%/48px 1px no-repeat,linear-gradient(var(--soft-line),var(--soft-line)) 100% 100%/1px 48px no-repeat}
[data-theme=cinema] :is(.cover,.end) .byline{justify-content:center;text-align:left}
[data-theme=cinema] :is(.cover-sub,.big-sub,.dv-sub){margin-left:auto;margin-right:auto}
[data-theme=cinema] .cover-meta{justify-content:center;color:var(--accent-ink);font-size:20px;letter-spacing:.4em;text-transform:uppercase}
[data-theme=cinema] .cover-meta span+span::before{content:"/";margin-right:28px;color:var(--faint)}
[data-theme=cinema] .cover-title{font-size:150px;line-height:1.1;letter-spacing:.02em;margin-bottom:34px}
[data-theme=cinema] .cover .byline{margin-top:52px}
[data-theme=cinema] .avatar{flex:none}
[data-theme=cinema] .end .big{font-size:140px;letter-spacing:.06em}
[data-theme=cinema] .divider .dv-no{align-self:center;font-size:200px}
[data-theme=cinema] .divider .dv-title{margin-top:20px;letter-spacing:.04em}
[data-theme=cinema] .divider .dv-map{left:50%;right:auto;width:720px;margin-left:-360px;top:auto;bottom:160px;gap:6px}
[data-theme=cinema] .dv-map li{height:2px;border-radius:0}
[data-theme=cinema] .stmt .kicker{justify-content:center}
[data-theme=cinema] .stmt .big{line-height:1.34}
[data-theme=cinema] .stmt :is(.chips,.botrow){justify-content:center}
[data-theme=cinema] .stmt>.ft,[data-theme=cinema] :is(.cover,.divider,.end)>.ft{bottom:52px}
/* 有形象、有二维码时改回左对齐 */
[data-theme=cinema] :is(.cover,.end,.stmt,.divider):is(:has(>.ip),:has(>.qrs)){align-items:flex-start;text-align:left}
[data-theme=cinema] :is(.cover,.end):is(:has(>.ip),:has(>.qrs)) :is(.cover-meta,.byline){justify-content:flex-start}
[data-theme=cinema] :is(.cover,.end,.stmt,.divider):is(:has(>.ip),:has(>.qrs)) :is(.cover-sub,.big-sub,.dv-sub){margin-left:0}
[data-theme=cinema] .divider:has(>.ip) .dv-no{align-self:flex-start}
[data-theme=cinema] .stmt.has-ip .kicker{justify-content:flex-start}
[data-theme=cinema] .stmt.has-ip :is(.chips,.botrow){justify-content:flex-start}
[data-theme=cinema]:lang(en) .title{font-size:70px;line-height:1.1;letter-spacing:0}
[data-theme=cinema]:lang(en) .cover-title{font-size:136px;line-height:1.02;letter-spacing:0}
[data-theme=cinema]:lang(en) .kicker{letter-spacing:.24em}
/* ---- 风格 27 · cinema 结束 ---- */

/* ================= 风格 28 · 动态排版（kinetic） =================
   近黑底、荧光强调色，标题用很宽的 Unbounded（中文是思源黑体特粗），强调是整块色底。左边一道竖色条、右上角一截斜条纹，像在动。
   章节页整页铺强调色，巨大的半透明编号压在右边；放映时标题从左边划入（导出 PDF、PPTX 不受影响）。
   「白纸」配色把底换成白、章节页换成黑（--kn-panel、--kn-on-panel） */
[data-theme=kinetic]{
  --frame:#000;--bg:#0e0e0e;--ink:#f5f5f0;--body2:#c9c9c2;--muted:#9a9a93;--faint:#5e5e59;--line:#2a2a28;
  --accent:#d4ff2a;--accent2:#d4ff2a;--accent-ink:#d4ff2a;--on-accent:#0e0e0e;--soft:rgba(212,255,42,.08);--soft-line:rgba(212,255,42,.4);
  --kn-panel:var(--accent);--kn-on-panel:var(--on-accent);
  --good:#61e294;--bad:#ff6b5b;
  --box-bg:#181817;--box-border:0;--box-radius:0px;--box-shadow:none;--chip-radius:0px;
  --f-head:"Unbounded",var(--cjk-sans),"PingFang SC","Hiragino Sans GB",sans-serif;--f-body:"Inter",var(--cjk-sans),"PingFang SC",sans-serif;--f-num:"Unbounded",var(--cjk-sans),sans-serif;
  --title-w:800;--h3-w:700;--num-w:700;--num-style:normal}
[data-theme=kinetic] .slide::before,[data-theme=kinetic] .slide::after{content:"";position:absolute;z-index:0;pointer-events:none}
[data-theme=kinetic] .slide::before{left:0;top:0;bottom:0;width:14px;background:var(--accent)}
[data-theme=kinetic] .slide::after{right:128px;top:46px;width:300px;height:22px;background:repeating-linear-gradient(-60deg,var(--accent) 0 8px,transparent 8px 22px)}
[data-theme=kinetic] .kicker{color:var(--ink);font-family:var(--f-head);font-size:20px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
[data-theme=kinetic] .kicker b{font-size:22px;color:var(--accent-ink)}
[data-theme=kinetic] .title{font-size:74px;line-height:1.14;letter-spacing:-.02em}
[data-theme=kinetic] :is(.title,.big,.cover-title,.dv-title,.yr-key) em{color:var(--on-accent);background:var(--accent);padding:0 .1em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
[data-theme=kinetic] .lead{color:var(--body2)}
[data-theme=kinetic] .slide>.ft{color:var(--muted);font-family:var(--f-head);font-size:16px;letter-spacing:.14em;text-transform:uppercase}
[data-theme=kinetic] .box{border-left:6px solid var(--line)}
[data-theme=kinetic] .box.key{border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--box-bg))}
[data-theme=kinetic] :is(.card h3,.row h3,.step h3,.org h3,.pipe .node h3,.eq h3,.keep h3,.road h3,.q){letter-spacing:-.01em}
[data-theme=kinetic] .no{font-size:30px}
[data-theme=kinetic] .row .n{font-size:44px}
[data-theme=kinetic] .card .meta{border-top:2px solid var(--line)}
[data-theme=kinetic] .sn{border-radius:0;font-size:26px}
[data-theme=kinetic] .q::before{border-radius:0}
[data-theme=kinetic] .badge{border-radius:0;background:none;border:2px solid var(--accent);text-transform:uppercase;letter-spacing:.06em}
[data-theme=kinetic] .box.key .badge{background:var(--accent);color:var(--on-accent)}
[data-theme=kinetic] .chips li{border:2px solid var(--ink);background:none;font-weight:700}
[data-theme=kinetic] .tabs li{border-color:var(--line)}
[data-theme=kinetic] .callout{border-radius:0;border:0;background:var(--accent);color:var(--on-accent)}
[data-theme=kinetic] .callout b{color:var(--on-accent)}
[data-theme=kinetic] .tip{border-radius:0;border-left:12px solid var(--accent);background:var(--box-bg)}
[data-theme=kinetic] .tip b{font-family:var(--f-head);letter-spacing:.12em}
[data-theme=kinetic] .checks li::before,[data-theme=kinetic] .pairs .box.bad::before,[data-theme=kinetic] .pairs .box.good::before{border-radius:0}
[data-theme=kinetic] .tl::before{height:4px;top:18px;background:var(--line)}
[data-theme=kinetic] .tl>li::before{border-radius:0;width:28px;height:28px;top:6px;rotate:45deg;box-shadow:0 0 0 8px var(--bg)}
[data-theme=kinetic] .tl .when{font-size:32px}
[data-theme=kinetic] .tl .out{border-top:2px solid var(--line)}
[data-theme=kinetic] .cmp>*{border-top:2px solid var(--line)}
[data-theme=kinetic] .cmp>.h{border-top:0}
[data-theme=kinetic] .cmp .h span{border-radius:0;font-size:30px}
[data-theme=kinetic] .cmp .h.t2 span{background:none;border:2px solid var(--accent)}
[data-theme=kinetic] .tbl th{color:var(--accent-ink);border-bottom:4px solid var(--accent);font-size:28px}
[data-theme=kinetic] .tbl td{border-bottom:2px solid var(--line)}
[data-theme=kinetic] :is(.stat .n,.price .amt){color:var(--ink);letter-spacing:-.04em}
[data-theme=kinetic] .stat .n{font-size:130px}
[data-theme=kinetic] .stat .n small{color:var(--accent-ink)}
[data-theme=kinetic] .stats3 .stat .n{font-size:112px}
[data-theme=kinetic] .stat.sm .n{font-size:96px}
[data-theme=kinetic] .price .amt{font-size:84px}
[data-theme=kinetic] .metric b{font-size:96px}
[data-theme=kinetic] :is(.shotbox img,.tallshot img,.yr-shot,.yr-follow img,.qr img){border-radius:0;border:0;box-shadow:12px 12px 0 var(--accent)}
[data-theme=kinetic] .ph{border-radius:0;border:2px dashed var(--faint)}
[data-theme=kinetic] .avatar{border-radius:0;background:var(--accent);color:var(--on-accent)}
[data-theme=kinetic] .kol .av{border-radius:0;border:2px solid var(--accent);background:none}
[data-theme=kinetic] .bio{border-left:8px solid var(--accent)}
[data-theme=kinetic] .wire i,[data-theme=kinetic] .pipe .node::after{background:var(--faint)}
[data-theme=kinetic] .ring-hint{border-radius:0}
/* 放映时标题从左边划入 */
@keyframes kn-in{from{clip-path:inset(0 100% 0 0);translate:-48px 0}to{clip-path:inset(0 0 0 0);translate:0 0}}
@media (prefers-reduced-motion:no-preference){
  [data-theme=kinetic] .slide.active :is(.hd .title,.cover-title,.dv-title,.stmt .big){animation:kn-in .8s var(--ease) both;animation-delay:calc(var(--i,0) * 70ms + 120ms)}
}
/* 封面：底部一整道斜条纹，右上角一块强调色 */
[data-theme=kinetic] .cover::after,[data-theme=kinetic] .end::after{right:0;left:0;top:auto;bottom:0;width:auto;height:90px;background:repeating-linear-gradient(-60deg,var(--accent) 0 14px,transparent 14px 40px)}
[data-theme=kinetic] .cover .deco>*{display:block;position:absolute}
[data-theme=kinetic] .cover .d1{right:0;top:0;width:420px;height:420px;background:var(--accent);clip-path:polygon(40% 0,100% 0,100% 100%)}
[data-theme=kinetic] .cover:has(>.ip) .d1{width:300px;height:300px}
[data-theme=kinetic] .cover-meta{color:var(--accent-ink);font-family:var(--f-head);font-size:20px;letter-spacing:.16em;text-transform:uppercase}
[data-theme=kinetic] .cover-meta span+span::before{content:"→";margin-right:28px;color:var(--faint)}
[data-theme=kinetic] .cover-title{font-size:150px;line-height:1.04;letter-spacing:-.03em}
[data-theme=kinetic] .cover :is(.cover-title,.cover-sub){max-width:1500px}
[data-theme=kinetic] .avatar{flex:none}
[data-theme=kinetic] .end .big{font-size:150px;letter-spacing:-.03em}
/* 章节页：整页强调色，巨大的半透明编号压在右边 */
[data-theme=kinetic] .divider{background:var(--kn-panel);color:var(--kn-on-panel)}
[data-theme=kinetic] .divider::before{background:var(--kn-on-panel)}
[data-theme=kinetic] .divider::after{right:128px;background:repeating-linear-gradient(-60deg,var(--kn-on-panel) 0 8px,transparent 8px 22px)}
[data-theme=kinetic] .divider .dv-no{position:absolute;right:128px;top:150px;z-index:0;font-size:500px;line-height:.8;letter-spacing:-.06em;color:var(--kn-on-panel);opacity:.14}
[data-theme=kinetic] .divider:has(>.ip) .dv-no{right:auto;left:128px}
[data-theme=kinetic] .divider .dv-title{margin-top:0;font-size:120px;letter-spacing:-.03em}
[data-theme=kinetic] .divider .dv-title em{color:var(--kn-panel);background:var(--kn-on-panel)}
[data-theme=kinetic] .divider .dv-sub{color:var(--kn-on-panel);opacity:.85}
[data-theme=kinetic] .divider .dv-map li{background:color-mix(in srgb,var(--kn-on-panel) 25%,transparent);height:8px;border-radius:0}
[data-theme=kinetic] .divider .dv-map li.done{background:color-mix(in srgb,var(--kn-on-panel) 55%,transparent)}
[data-theme=kinetic] .divider .dv-map li.now{background:var(--kn-on-panel)}
[data-theme=kinetic] .divider .dv-map li span,[data-theme=kinetic] .divider .dv-map li.now span{color:var(--kn-on-panel)}
[data-theme=kinetic] .stmt .big{line-height:1.22;letter-spacing:-.02em}
[data-theme=kinetic]:lang(en) .title{font-size:56px;line-height:1.12}
[data-theme=kinetic]:lang(en) .cover-title{font-size:112px;line-height:1.02}
[data-theme=kinetic]:lang(en) .divider .dv-title{font-size:84px}
[data-theme=kinetic]:lang(en) .big{font-size:70px;line-height:1.14}
[data-theme=kinetic]:lang(en) .big.md{font-size:56px}
[data-theme=kinetic]:lang(en) .end .big{font-size:112px}
[data-theme=kinetic]:lang(en) :is(.card h3,.row h3){font-size:32px}
[data-theme=kinetic]:lang(en) .step h3{font-size:36px}
/* ---- 风格 28 · kinetic 结束 ---- */

/* 右侧竖长截图（tall-media）从页面顶上开始，会盖住这几套右上角的装饰：有截图时不画 */
[data-theme=bauhaus] .slide:has(>.tallshot)::before,[data-theme=bauhaus] .slide:has(>.tallshot)::after,
[data-theme=nordic] .slide:has(>.tallshot)::after,[data-theme=riso] .slide:has(>.tallshot)::before,
[data-theme=qinglu] .slide:has(>.tallshot)::before,[data-theme=kinetic] .slide:has(>.tallshot)::after{display:none}

/* ================= 工具条与进度 ================= */
/* 手机上工具条比屏幕宽：限制在屏幕以内、放不下时横向滚动，否则浏览器会为了放下它把整页缩小（只看得到一角） */
.toolbar{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:50;display:flex;gap:4px;padding:5px;max-width:calc(100vw - 16px);box-sizing:border-box;overflow-x:auto;scrollbar-width:none;background:rgba(22,22,24,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;font:500 13px/1 -apple-system,"PingFang SC",sans-serif;color:#ddd;transition:opacity .4s;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.toolbar::-webkit-scrollbar{display:none}
.toolbar button{all:unset;flex-shrink:0;cursor:pointer;padding:8px 14px;border-radius:999px;white-space:nowrap}
.toolbar button:hover{background:rgba(255,255,255,.12)}
/* 按钮用了 all: unset，键盘聚焦时补上焦点框（画在按钮里面，不被工具条的滚动区域裁掉） */
.toolbar button:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.toolbar button[aria-pressed=true]{background:#fff;color:#111}
.toolbar button[aria-pressed=true]:focus-visible{outline-color:#111}
.toolbar .sep{flex-shrink:0;width:1px;margin:4px 4px;background:rgba(255,255,255,.18)}
.toolbar .hint{padding:8px 12px;color:#b0b0b0;white-space:nowrap}
body.idle .toolbar{opacity:0;pointer-events:none}
/* 用键盘操作工具条时不隐藏 */
body.idle .toolbar:has(:focus-visible){opacity:1;pointer-events:auto}
body.idle{cursor:none}
.progress{position:fixed;left:0;right:0;bottom:0;height:4px;z-index:50}
.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .4s var(--ease)}
@media (max-width:900px){.toolbar .hint{display:none}}
/* 嵌入演讲者视图时不显示工具条和进度；下一页预览（still）直接显示结果；观众窗口的「进入全屏」按钮 */
body.embed .toolbar,body.embed .progress{display:none}
body.still *,body.still *::before,body.still *::after{animation:none!important;transition:none!important}
.fs-prompt{all:unset;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;padding:18px 32px;border-radius:999px;background:rgba(22,22,24,.86);color:#fff;font:600 18px/1 -apple-system,"PingFang SC",sans-serif;cursor:pointer;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.fs-prompt:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* ================= 画笔（D）：右下角的开关；打开后在整页上画，点击不翻页 ================= */
.pen-tools{position:fixed;right:14px;bottom:18px;z-index:50;display:flex;align-items:center;gap:4px;padding:5px;max-width:calc(100vw - 28px);box-sizing:border-box;background:rgba(22,22,24,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;font:500 13px/1 -apple-system,"PingFang SC",sans-serif;color:#ddd;transition:opacity .4s;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.pen-tools button{all:unset;flex-shrink:0;cursor:pointer;padding:8px 14px;border-radius:999px;white-space:nowrap}
.pen-tools button:hover{background:rgba(255,255,255,.12)}
.pen-tools button:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.pen-tools button[aria-pressed=true]{background:#fff;color:#111}
.pen-tools button[aria-pressed=true]:focus-visible{outline-color:#111}
.pen-tools button:disabled{opacity:.4;cursor:default;background:none}
.pen-opts{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px}
.pen-opts[hidden]{display:none}
.pen-tools .pen-color{width:20px;height:20px;padding:0;margin:0 4px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 2px rgba(255,255,255,.3)}
.pen-tools .pen-color:hover,.pen-tools .pen-color[aria-pressed=true]{background:var(--c)}
.pen-tools .pen-color[aria-pressed=true]{box-shadow:0 0 0 2px #161618,0 0 0 4px #fff}
.pen-toggle::before{content:"";display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 21l1.2-4.6L16.5 4.1a2.1 2.1 0 0 1 3 0l.4.4a2.1 2.1 0 0 1 0 3L7.6 19.8Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M14.5 6.1l3.4 3.4' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 21l1.2-4.6L16.5 4.1a2.1 2.1 0 0 1 3 0l.4.4a2.1 2.1 0 0 1 0 3L7.6 19.8Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M14.5 6.1l3.4 3.4' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat}
/* 画布盖在整页上、跟着舞台缩放；只有打开画笔时接收点击和触摸，光标换成笔（笔尖在左下角） */
.stage>.pen-layer{position:absolute;inset:0;width:100%;height:100%;z-index:10;pointer-events:none}
body.pen .stage>.pen-layer{pointer-events:auto;touch-action:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M3 29 6 19 23 2 30 9 13 26Z' fill='%23ff3b30' stroke='%23fff' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='m6 19 7 7-10 3Z' fill='%23fff' stroke='%23111' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='m3 29 2-6 4 4Z' fill='%23111'/%3E%3Cpath d='m20 5 7 7M9 20 22 7' fill='none' stroke='%23111' stroke-width='1.5'/%3E%3C/svg%3E") 3 29,crosshair}
body.pen .stage{-webkit-user-select:none;user-select:none}
body.idle:not(.pen) .pen-tools{opacity:0;pointer-events:none}
body.idle .pen-tools:has(:focus-visible){opacity:1;pointer-events:auto}
body.overview .pen-tools,body.overview .stage>.pen-layer,body.embed .pen-tools{display:none}
@media (max-width:600px){.pen-tools{right:8px;bottom:12px}.pen-tools button{padding:8px 10px}}

/* ================= 总览模式（O 键） ================= */
body.overview{overflow:auto;cursor:default}
body.overview .toolbar{opacity:1;pointer-events:auto}
body.overview .progress{display:none}
body.overview .stage{position:static;transform:none!important;width:auto;height:auto;background:none;overflow:visible;display:grid;grid-template-columns:repeat(auto-fill,384px);justify-content:center;gap:28px;padding:84px 32px 48px}
body.overview .slide{position:relative;inset:auto;width:1920px;height:1080px;zoom:.2;opacity:1;visibility:visible;transform:none;transition:none;cursor:pointer;border-radius:36px}
body.overview .slide *{animation:none!important}
body.overview .frag{opacity:1;translate:0 0;transition:none}
body.overview .slide.active{outline:22px solid var(--accent)}
body.overview .slide[data-hidden]{display:none}
body.overview .slide>.ov-num{display:block;position:absolute;left:0;top:0;z-index:5;padding:16px 40px;background:rgba(0,0,0,.72);color:#fff;font:700 96px/1 Inter,sans-serif;border-bottom-right-radius:36px}

/* ================= 打印 / 导出 PDF ================= */
@media print{
  @page{size:1920px 1080px;margin:0}
  html,body{height:auto;overflow:visible;background:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .toolbar,.progress,.pen-tools,.pen-layer{display:none}
  .stage{position:static;transform:none!important;width:1920px;height:auto;overflow:visible}
  .slide{position:relative;width:1920px;height:1080px;opacity:1;visibility:visible;transform:none;transition:none;break-after:page}
  .slide *{animation:none!important}
  .frag{opacity:1;translate:0 0}
}

/* 减少动态效果：翻页、分步、入场动效之外，工具条、进度条、换主题的过渡也都去掉（数字滚动由播放器处理） */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}


/* 区块之间的额外间距 */
.body>.rows+.grid{margin-top:32px}
