/* ============================================================
   让 AI 真正落地 · 演讲视觉系统
   画布 1600×900，所有尺寸都是画布坐标
   ============================================================ */

:root{
  --blue:#3B82F6;
  --gold:#F5A623;
  --green:#22C55E;
  --red:#EF4444;
  --fg:#E8EEF9;
  --muted:#8CA3C7;
  --bg:#0A1120;
  --bg-2:#14264D;
  --line:#24344F;
  --panel:rgba(20,38,77,.42);
  --font:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html.reveal-viewport,
.reveal-viewport,
body{
  background:radial-gradient(1200px 800px at 70% 20%, #14264D 0%, #0A1120 60%) fixed;
}

/* ---------- reveal 基础覆盖 ---------- */
.reveal{
  font-family:var(--font);
  font-size:32px;
  color:var(--fg);
  font-weight:400;
}
.reveal .slides{ text-align:left; }
.reveal .slides section{
  height:100%;
  padding:64px 88px 96px;
  box-sizing:border-box;
}
.reveal .slides section.cover{ padding:0; }
.reveal h1,.reveal h2,.reveal h3{ font-family:var(--font); color:#fff; text-transform:none; }
.reveal h2{
  font-size:60px;
  font-weight:800;
  line-height:1.16;
  letter-spacing:-0.01em;
  margin:0 0 30px;
}
.reveal h3{ font-size:32px; font-weight:700; margin:0 0 12px; }
.reveal p{ margin:0 0 14px; }
.reveal strong{ color:#fff; font-weight:700; }
.reveal em{ font-style:normal; }

.slide-inner{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:0;
}
.center-inner{ align-items:center; justify-content:center; text-align:center; }
.narrow-title h2{ font-size:56px; }

.kicker{
  font-size:24px;
  font-weight:700;
  color:var(--gold);
  letter-spacing:.08em;
  margin-bottom:14px;
}
.muted{ color:var(--muted); }
.small{ font-size:24px; }
.gold{ color:var(--gold); }
.blue{ color:var(--blue); }
.gold-t{ fill:var(--gold); color:var(--gold); }
.blue-t{ fill:var(--blue); color:var(--blue); }
.green-t{ fill:var(--green); color:var(--green); }
.red-t{ fill:var(--red); color:var(--red); }

/* ---------- 全套 HUD ---------- */
.hud{ position:fixed; inset:0; pointer-events:none; z-index:40; }
.hud-tr{
  position:absolute; top:26px; right:36px;
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
}
.chapter{ display:flex; align-items:center; gap:10px; font-size:19px; font-weight:600; }
.chapter i{ color:var(--line); font-style:normal; }
.chapter span{ opacity:.3; transition:opacity .3s ease, color .3s ease; white-space:nowrap; }
.chapter span.active{ opacity:1; color:var(--gold); }
.timer{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:22px; font-weight:600; color:var(--muted);
  letter-spacing:.04em;
}
.timer.warn{ color:var(--red); }
.hud-brand{
  position:absolute; left:36px; bottom:26px;
  font-size:20px; color:rgba(140,163,199,.66); letter-spacing:.02em;
}
.hud-page{
  position:absolute; right:36px; bottom:26px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:20px; color:rgba(140,163,199,.66);
}

/* ============================================================
   S0 封面
   ============================================================ */
.cover{ position:relative; overflow:hidden; }
.cover-canvas{ position:absolute; inset:0; width:100%; height:100%; }
.cover-inner{
  position:relative; z-index:2;
  padding:120px 110px;
  justify-content:center;
  background:radial-gradient(900px 620px at 72% 28%, rgba(59,130,246,.20) 0%, rgba(10,17,32,0) 62%);
}
.cover-title{
  font-size:104px !important;
  font-weight:800 !important;
  line-height:1.1 !important;
  margin:0 0 24px !important;
  letter-spacing:-0.02em;
}
.cover-title span{ display:inline-block; margin-right:.06em; }
.cover-title span:nth-child(3){ color:var(--gold); }
.cover-sub{ font-size:34px; color:#C7D6EC; margin-bottom:44px !important; }
.cover-tags{ display:flex; gap:16px; margin-bottom:64px; }
.tag{
  display:inline-block; padding:10px 22px; border-radius:999px;
  border:1px solid rgba(59,130,246,.5); background:rgba(59,130,246,.12);
  font-size:24px; color:#BFD5F5;
}
.cover-by{ display:flex; align-items:center; gap:16px; font-size:26px; color:var(--muted); }
.avatar{
  width:52px; height:52px; border-radius:50%;
  background:linear-gradient(140deg,#2B4C86,#16305C);
  border:2px solid rgba(140,163,199,.4);
}

/* ============================================================
   S1 两个数字
   ============================================================ */
.two-stat{ display:flex; align-items:center; flex:1; gap:40px; }
.stat-col{ flex:1; min-width:0; }
.stat-divider{ width:1px; align-self:stretch; background:linear-gradient(180deg,transparent,var(--line),transparent); }
.stat-num{
  font-size:176px; font-weight:800; line-height:1;
  letter-spacing:-0.04em; font-variant-numeric:tabular-nums;
}
.stat-num.red{ color:var(--red); }
.stat-num.gold{ color:var(--gold); }
.stat-num.blue{ color:var(--blue); }
.stat-cap{ font-size:28px; color:#C7D6EC; margin-top:20px; line-height:1.5; }
.stat-cap .muted{ font-size:24px; display:inline-block; margin-top:8px; }
.punch{
  font-size:52px; font-weight:800; text-align:center;
  padding:14px 0 2px; color:#fff;
}
.punch em{ color:var(--gold); }

/* ============================================================
   S2 七大痛点
   ============================================================ */
.pain-grid{
  list-style:none; margin:0 0 8px; padding:0;
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
}
.pain-grid li{
  position:relative;
  background:var(--panel);
  border:1px solid var(--line);
  border-left:4px solid var(--red);
  border-radius:10px;
  padding:24px 22px 24px 26px;
  font-size:25px; line-height:1.45; color:#D6E1F2;
  display:flex; align-items:center; min-height:132px;
}
.pain-grid li:nth-child(n+5){ min-height:132px; }

/* ============================================================
   通用卡片 / 三列
   ============================================================ */
.tri{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;
  padding:34px 30px;
  min-width:0;
}
.card p{ font-size:26px; line-height:1.55; color:#C7D6EC; margin:0; }
.card.dim{ opacity:.72; }
.card.hot{
  border-color:var(--gold);
  background:linear-gradient(180deg, rgba(245,166,35,.14), rgba(20,38,77,.42));
  box-shadow:0 0 0 1px rgba(245,166,35,.35), 0 22px 60px -24px rgba(245,166,35,.55);
}
.card-idx{
  font-size:20px; font-weight:800; color:var(--muted);
  letter-spacing:.14em; margin-bottom:14px;
}
.card.hot .card-idx{ color:var(--gold); }

/* ============================================================
   S4 三把锁
   ============================================================ */
.locks{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.lock{
  background:var(--panel); border:1px solid var(--line); border-radius:12px;
  padding:34px 30px; text-align:center;
}
.lock-icon{ width:84px; height:84px; margin:0 auto 18px; display:block; }
.lock-icon rect,.lock-icon path,.lock-icon circle{
  fill:none; stroke:var(--red); stroke-width:3;
  stroke-linecap:round; stroke-linejoin:round;
}
.lock h3{ font-size:36px; margin-bottom:12px; }
.lock p{ font-size:25px; color:#C7D6EC; line-height:1.5; margin:0; }
.keys{ display:flex; align-items:center; justify-content:center; gap:22px; margin-top:auto; padding-bottom:10px; }
.key{ font-size:44px; opacity:.55; }
.keys-cap{ font-size:26px; color:var(--gold); margin-left:14px; }

/* ============================================================
   S5 单点提效
   ============================================================ */
.split-2{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; flex:1; align-items:center; }
.bars{ margin-top:30px; display:flex; flex-direction:column; gap:16px; }
/* 三列：行业名 / 条形 / 数值，数值列固定宽度，避免换行 */
.bar-row{
  display:grid; grid-template-columns:190px 1fr 132px;
  align-items:center; gap:16px; font-size:24px; color:#C7D6EC;
}
.bar-row > span{ flex:none; }
.bar-row .bar{
  display:block; height:26px; border-radius:6px;
  background:linear-gradient(90deg,#1E3E77,#2F5EA8);
  width:var(--w,60%);
  transform-origin:left center;
}
.bar-row .bar.new{ background:linear-gradient(90deg,#2E6F4C,#22C55E); }
.bar-row .bar.ind{ background:linear-gradient(90deg,#2C5CA6,#3B82F6); width:0; }
.bar-row .bar.ind.visible{ width:var(--w,60%); transition:width .9s cubic-bezier(.22,.61,.36,1); }
.bar-row .bar.fragment{ width:0; }
.bar-row .bar.fragment.visible{ width:var(--w,60%); transition:width .9s cubic-bezier(.22,.61,.36,1); }
.bar-row b{ font-size:23px; color:var(--gold); font-weight:700; white-space:nowrap; }
.bar-row b.muted{ color:var(--muted); font-weight:600; }
.turn p{ font-size:40px; font-weight:700; line-height:1.4; margin:0 0 10px; }
.turn .strike{ color:#7E8FA9; text-decoration:line-through; text-decoration-color:var(--red); text-decoration-thickness:4px; }
.turn .gold{ color:var(--gold); font-size:46px; }
.right-note{ margin-top:16px !important; }
.center-note{ text-align:center; margin-top:22px !important; }
.bars-wide{ display:flex; flex-direction:column; gap:24px; margin-top:20px; flex:1; justify-content:center; }
.bars-wide .bar{ height:32px; }
.bars-wide .bar-row b{ font-size:26px; }

/* ============================================================
   SVG 图示通用
   ============================================================ */
.dg{ width:100%; max-height:100%; display:block; margin:0 auto; flex:1 1 auto; min-height:0; }
.dg text{ font-family:var(--font); }
.dg .ref{ fill:none; stroke:#26385A; stroke-width:2; stroke-dasharray:8 10; }
.dg .node{ fill:#0D1A31; stroke-width:3.5; }
.dg .node.blue{ stroke:var(--blue); }
.dg .node.green-c{ stroke:var(--green); }
.dg .node.gold-c{ stroke:var(--gold); }
.dg .node.assist-c{ fill:#2A2110; stroke:var(--gold); stroke-width:5; }
.dg .ni{ fill:none; stroke:var(--muted); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.dg .nlabel{ fill:var(--fg); font-size:30px; font-weight:700; text-anchor:middle; }
.dg .assist-t{ fill:var(--gold); font-size:30px; font-weight:800; text-anchor:middle; }
.dg .pulse{ fill:none; stroke:var(--gold); stroke-width:2; opacity:.5; animation:pulse 2.4s ease-out infinite; transform-box:fill-box; transform-origin:center; }
@keyframes pulse{ 0%{transform:scale(.92);opacity:.55} 100%{transform:scale(1.28);opacity:0} }

.dg .ln{ fill:none; stroke-width:4.5; stroke-linecap:round; }
.dg .ln.ok{ stroke:var(--green); }
.dg .ln.bad{ stroke:var(--red); }
.dg .ln.solid-gold{ stroke:var(--gold); }
.dg .ln.flow-gold{ stroke:var(--gold); stroke-dasharray:16 11; animation:dashflow 1.05s linear infinite; }
.dg .flow{ stroke-dasharray:16 11; animation:dashflow 1.05s linear infinite; }
@keyframes dashflow{ to{ stroke-dashoffset:-27 } }
.dg .draw{ stroke-dasharray:1000; stroke-dashoffset:1000; transition:stroke-dashoffset .85s ease .12s; }
.dg .fragment.visible .draw{ stroke-dashoffset:0; }

.dg .llab{ font-size:23px; font-weight:700; text-anchor:middle; }
.dg .xmark{ font-size:38px; font-weight:800; fill:var(--red); text-anchor:middle; }
.dg .quote-line{ font-size:0; }

.dg .fragment{ transition:opacity .4s ease; }
.dg .node-wrap{ transform-box:fill-box; transform-origin:center; }
.dg .fragment.visible .node-wrap{ animation:pop .62s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes pop{ from{ transform:scale(.2); opacity:0 } to{ transform:scale(1); opacity:1 } }

/* S8 漏斗与甩锅三角 */
.dg .funnel polygon{ stroke-width:2.5; }
.dg .f1{ fill:rgba(59,130,246,.34); stroke:var(--blue); }
.dg .f2{ fill:rgba(59,130,246,.24); stroke:var(--blue); }
.dg .f3{ fill:rgba(239,68,68,.22); stroke:var(--red); }
.dg .flab{ font-size:26px; fill:#C7D6EC; font-weight:600; }
.dg .tedge{ fill:none; stroke:var(--red); stroke-width:5; stroke-dasharray:18 12; animation:dashflow 1.3s linear infinite; }
.dg .tv circle{ fill:#1A0F14; stroke:var(--red); stroke-width:3.5; }
.dg .tv text{ fill:#FFD9D9; font-size:28px; font-weight:700; text-anchor:middle; }
.dg .tcap{ font-size:25px; fill:#F3B9B9; text-anchor:middle; font-weight:600; }
.dg .boss-ring{ fill:#0D1A31; stroke:var(--gold); stroke-width:4; }
.dg .boss-t{ fill:var(--gold); font-size:28px; font-weight:800; text-anchor:middle; }
.dg .boss-q{ fill:#C7D6EC; font-size:23px; text-anchor:middle; }
.dg .fragment.visible .boss-ring{ animation:pulseRing 2.6s ease-out infinite; transform-box:fill-box; transform-origin:center; }
@keyframes pulseRing{ 0%{transform:scale(1);opacity:1} 100%{transform:scale(1.18);opacity:.7} }

/* S9 辅助线布局 */
.assist-wrap{ display:grid; grid-template-columns:1fr 500px; gap:30px; flex:1; min-height:0; }
.assist-cap{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; justify-content:center; gap:12px; }
.assist-cap li{
  background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--gold);
  border-radius:10px; padding:14px 18px; font-size:23px; line-height:1.45; color:#D6E1F2;
}
.assist-cap b{ color:var(--gold); display:block; font-size:21px; margin-bottom:4px; }

/* S10 传统串联 vs 中台双向闭环 */
.dg .rail{ stroke:#2B3F63; stroke-width:3; }
.dg .frame{ fill:none; stroke:#2B3F63; stroke-width:2.5; }
.dg .frame.hot{ stroke:rgba(59,130,246,.6); }
.dg .nbox{ fill:#101D36; stroke:#33455F; stroke-width:2.5; }
.dg .nbox.on{ stroke:var(--blue); transition:stroke .45s ease; }
.dg .nlabel2{ fill:var(--fg); font-size:25px; font-weight:600; text-anchor:middle; }
.dg .nlabel2.sm{ font-size:24px; }
.dg .ctext{ fill:var(--gold); font-size:27px; font-weight:800; text-anchor:middle; }
.dg .fcap{ fill:var(--muted); font-size:25px; font-weight:700; text-anchor:middle; }
.dg .fcap.hot{ fill:var(--blue); }
.dg .fcap.warn{ fill:#A9B8CE; }
.dg .oneway{ stroke:#5B7BA8; stroke-width:3.5; fill:none; }
.dg .oneway.visible{ stroke:#7DA2D8; transition:stroke .45s ease; }
.dg .alab{ fill:#9FB3CE; font-size:24px; text-anchor:middle; }
.dg .diag{ stroke:var(--blue); stroke-width:3; fill:none; opacity:.95; }
.dg .diag.visible{ animation:dashflow 1.1s linear infinite; stroke-dasharray:16 11; }
.dg .ring-track{ fill:none; stroke:rgba(245,166,35,.28); stroke-width:2; }
.dg .ring-arc{ fill:none; stroke:var(--gold); stroke-width:4; stroke-linecap:round; }
.dg .loop{ transform-box:fill-box; transform-origin:center; }
.dg .loop.visible{ animation:spin 7s linear infinite; }
.dg .leader{ stroke:rgba(140,163,199,.7); stroke-width:1.5; stroke-dasharray:5 5; }
.dg .leader-halo{ stroke:#0A1120; stroke-width:7; }
.dg .leader-t{ fill:var(--fg); font-size:28px; font-weight:700; }

/* S11 同心三环 */
.loop-wrap{ display:grid; grid-template-columns:1fr 540px; gap:30px; flex:1; min-height:0; }
.dg .ring circle{ fill:none; stroke-width:3; }
.dg .ring .arc{ fill:none; stroke-width:9; stroke-linecap:round; }
.dg .r1 circle{ stroke:rgba(245,166,35,.35); }
.dg .r1 .arc{ stroke:var(--gold); }
.dg .r2 circle{ stroke:rgba(59,130,246,.32); }
.dg .r2 .arc{ stroke:var(--blue); }
.dg .r3 circle{ stroke:rgba(34,197,94,.30); }
.dg .r3 .arc{ stroke:var(--green); }
.dg .ring{ transform-box:fill-box; transform-origin:center; }
.dg .ring.visible{ animation:spin 34s linear infinite; }
.dg .r2.visible{ animation-duration:26s; }
.dg .r1.visible{ animation-duration:18s; }
@keyframes spin{ to{ transform:rotate(360deg) } }
.dg .rlab{ font-size:27px; font-weight:800; text-anchor:middle; }
.dg .core{ fill:#241B08; stroke:var(--gold); stroke-width:4; }
.dg .core-glow{ fill:rgba(245,166,35,.16); animation:pulseRing 2.8s ease-out infinite; transform-box:fill-box; transform-origin:center; }
.dg .core-t{ fill:var(--gold); font-size:26px; font-weight:800; text-anchor:middle; }
.loop-cap{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; justify-content:center; gap:13px; }
.loop-cap li{
  background:var(--panel); border:1px solid var(--line);
  border-radius:10px; padding:15px 20px; font-size:23px; line-height:1.45; color:#D6E1F2;
}
.loop-cap b{ display:block; font-size:21px; margin-bottom:4px; }
.loop-cap .loop-sum{ border-color:rgba(245,166,35,.5); color:var(--gold); font-weight:700; text-align:center; }

/* S12 案例卡 */
.case{ text-align:center; padding:24px 22px; }
.case-ico{ width:96px; height:96px; margin:0 auto 12px; display:block; }
.case-ico path,.case-ico rect,.case-ico circle{ fill:none; stroke:var(--blue); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.case-ico .sun,.case-ico .ring{ stroke:var(--gold); }
.case-ico .wave{ stroke:var(--green); }
.case h3{ font-size:32px; color:#fff; }
.case-mech{ font-size:23px; color:#B9C7DE; min-height:72px; }
.case-res{ font-size:26px; }
.case-res b{ color:var(--gold); }

/* S12 报表入口面板 */
.report{
  display:grid; grid-template-columns:132px 1fr auto;
  align-items:center; gap:28px;
  margin-top:auto; padding:20px 32px;
  border-radius:12px;
  background:linear-gradient(90deg, rgba(59,130,246,.16), rgba(20,38,77,.42));
  border:1px solid rgba(59,130,246,.5);
  text-decoration:none; color:inherit;
  transition:border-color .25s ease, background .25s ease;
}
.report:hover,
.report:focus-visible{
  border-color:var(--gold);
  background:linear-gradient(90deg, rgba(245,166,35,.16), rgba(20,38,77,.42));
  outline:none;
}
.report-chart{ display:flex; align-items:flex-end; gap:7px; height:62px; }
.report-chart i{
  flex:1; height:var(--h); border-radius:3px 3px 0 0;
  background:linear-gradient(180deg,#5B9DD9,#2C5CA6);
}
.report:hover .report-chart i{ background:linear-gradient(180deg,#F5A623,#B8791A); }
.report-txt b{ display:block; font-size:30px; font-weight:700; color:#fff; margin-bottom:6px; }
.report-txt em{ font-style:normal; font-size:23px; color:var(--muted); }
.report-go{
  font-size:26px; font-weight:700; color:var(--gold); white-space:nowrap;
}

/* S13 扫码 */
.qr-wrap{ position:relative; margin:14px 0 34px; }
/* 真实二维码：白底卡片，保证对比度和可扫性 */
.qr{
  width:320px; height:320px; padding:12px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  background:#fff;
  box-shadow:0 18px 50px -20px rgba(0,0,0,.75);
}
.qr img{ width:100%; height:100%; object-fit:contain; display:block; border-radius:8px; }
/* 还没有正式素材时用虚线占位框 */
.qr.placeholder{
  flex-direction:column; gap:10px;
  background:linear-gradient(150deg,#16305C,#0D1A31);
  border:2px dashed rgba(140,163,199,.5);
  color:var(--muted); font-size:24px;
}
.qr.placeholder small{ font-size:19px; opacity:.7; }
.qr-pulse{
  position:absolute; inset:-26px; border-radius:28px;
  border:2px solid rgba(245,166,35,.55);
  animation:pulseRing 2.8s ease-out infinite;
}
.steps3{ list-style:none; display:flex; gap:22px; margin:0 0 20px; padding:0; }
.steps3 li{
  padding:14px 30px; border-radius:999px;
  border:1px solid rgba(59,130,246,.55); background:rgba(59,130,246,.14);
  font-size:26px; color:#CFE0F8;
}
.steps3 li::after{ content:"→"; margin-left:22px; color:var(--muted); }
.steps3 li:last-child::after{ content:""; margin:0; }
.small-qr{ width:240px; height:240px; }

/* S14 旧流程 */
.dg .st rect{ fill:#101D36; stroke:var(--line); stroke-width:3; }
.dg .st text{ fill:var(--fg); font-size:30px; font-weight:700; text-anchor:middle; }
.dg .roll.visible{ animation:rollX 4.5s ease-in-out forwards; }
@keyframes rollX{ 0%{transform:translateX(0)} 100%{transform:translateX(700px)} }
.dg .ball{ fill:#16305C; stroke:var(--blue); stroke-width:3.5; }
.dg .ball-t{ fill:#CFE0F8; font-size:24px; text-anchor:middle; }
.dg .red-b{ fill:#3A1216; stroke:var(--red); }
.dg .drop-t{ font-size:24px; text-anchor:middle; font-weight:600; }
.dg .drop.visible{ animation:fall 1.1s ease-in forwards; }
@keyframes fall{ 0%{ transform:translateY(-140px); opacity:0 } 100%{ transform:translateY(0); opacity:1 } }
.dg .qm{ fill:var(--red); font-size:52px; font-weight:800; text-anchor:middle; }

/* S15 三条服务线 */
.dg .l1{ stroke:var(--green); }
.dg .l2{ stroke:var(--blue); }
.dg .l3{ stroke:var(--gold); }
.dg .rail{ stroke-width:4; }
.dg .llab-t{ font-size:25px; font-weight:700; fill:#C7D6EC; }
.dg .cell-c{ fill:rgba(20,38,77,.5); stroke:var(--line); stroke-width:3; }
.dg .cell-a{ fill:none; stroke:var(--blue); stroke-width:9; stroke-linecap:round; }
.dg .cell{ transform-box:fill-box; transform-origin:center; }
.dg .cell.visible{ animation:spin 6s linear infinite; }
.dg .cell.visible .cell-c{ stroke:rgba(59,130,246,.75); transition:stroke .5s ease; }
.dg .journey{ stroke:var(--gold); stroke-width:3.5; opacity:.9; }
.dg .jlab{ fill:var(--gold); font-size:25px; font-weight:700; }
.dg .pairarrow{ stroke:#7E97BB; stroke-width:2; opacity:.42; }
.dg .footline{ fill:var(--gold); font-size:30px; font-weight:700; text-anchor:middle; }

/* S16 三个递进难点 */
.stairs{ display:flex; flex-direction:column; gap:10px; flex:1; justify-content:center; }
.stair{ display:flex; gap:26px; align-items:flex-start; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:24px 30px; }
.stair:nth-of-type(1){ margin-right:150px; }
.stair:nth-of-type(3){ margin-right:150px; }
.stair-idx{ font-size:38px; font-weight:800; color:var(--gold); line-height:1; }
.stair-body h3{ font-size:31px; margin-bottom:8px; }
.stair-body p{ font-size:25px; color:#C7D6EC; line-height:1.5; margin:0; }
.stair-arrow{ text-align:center; font-size:30px; color:var(--red); line-height:1; }

/* S17 未来 */
.big-gold{ font-size:88px; font-weight:800; color:var(--gold); line-height:1.28; margin:0 0 40px; }
.future-sub{ font-size:34px; color:#C7D6EC; line-height:1.6; }
.light-band{
  position:absolute; left:0; right:0; bottom:180px; height:2px;
  background:linear-gradient(90deg,transparent,rgba(245,166,35,.8),transparent);
  transform:scaleX(0);
}
.light-band.visible{ transform:scaleX(1); transition:transform 1.1s cubic-bezier(.22,.61,.36,1); }

/* S18 结尾 */
.thanks{ font-size:96px; font-weight:800; color:#fff; margin-bottom:18px; }
.thanks-sub{ font-size:32px; color:var(--gold); margin-bottom:48px; }
.end-row{ display:flex; align-items:center; gap:52px; }
.end-line{ font-size:32px; color:#C7D6EC; line-height:1.6; text-align:left; margin:0; }

/* ---------- fragment 动效 ---------- */
.reveal .slides section .fragment.fade-up{ transform:translateY(26px); transition:opacity .55s ease, transform .55s cubic-bezier(.22,.61,.36,1); }
.reveal .slides section .fragment.fade-up.visible{ transform:none; }
.reveal .slides section .fragment.flip{ transform:perspective(900px) rotateY(-18deg); transition:opacity .6s ease, transform .6s cubic-bezier(.22,.61,.36,1); }
.reveal .slides section .fragment.flip.visible{ transform:none; }
.reveal .slides section .fragment.rise{ transform:translateY(40px); transition:opacity .5s ease, transform .6s cubic-bezier(.22,.61,.36,1); }
.reveal .slides section .fragment.rise.visible{ transform:none; }
.dg .fragment.visible .node-wrap{ animation-delay:.05s; }

/* ---------- 打印 / 导出 PDF：呈现终态 ---------- */
html.print-pdf .hud{ display:none !important; }
html.print-pdf .fragment,
html.print-pdf .dg .fragment{
  opacity:1 !important; visibility:visible !important; transform:none !important;
}
html.print-pdf .dg .draw{ stroke-dashoffset:0 !important; }
html.print-pdf .dg .streak rect{ animation:none !important; opacity:0 !important; }
html.print-pdf .bar-row .bar{ width:var(--w,60%) !important; }
html.print-pdf .light-band{ transform:scaleX(1) !important; }
html.print-pdf .reveal .slides section{ page-break-after:always; }

/* ---------- 小屏兜底（reveal 会整体缩放，这里只防溢出） ---------- */
@media (max-width:900px){
  .hud-brand,.hud-page{ font-size:16px; }
}
