/* 《WorkBuddy企业AI落地实战》官网 · 「AI实战营」页专用样式（camp.css）
 * 来源：原《专题页-企业智能体实战训练营/index.html》内嵌样式块。
 * 处理（2026-10-15）：① 全部选择器作用域化到 .camp-page（避免 .wrap/.card/.nav/.hero 等同名类污染全站）；
 *   ② 色值重映射为官网色系（主色官网红 #d7000f、点缀橙 #e87a00、白/浅暖底、近黑文字）；
 *   ③ 剔除自带 footer / nav / #progress 与 builder 注入样式。仅在本页加载，⛔ 不并入 main.css。
 *   ④ 末段「官网风格覆盖块」＝官网风格对齐 + 首屏可见性三层保障 + 右侧浮动目录（.camp-rail）
 *      与 html 锚点滚动对齐；其中 html / .camp-rail / main + .site-footer 是**作用域外**选择器
 *      （页面级 chrome 与页脚留白，均在 .camp-page 之外），已在原处逐条标注 ——
 *      本页有且仅有这三类例外。
 * 生成器：.workbuddy/transform-camp.js（可重跑） */
.camp-page{
  --orange:#d7000f;
  --orange-2:#e8542a;
  --orange-deep:#a8000c;
  --orange-soft:#fbe0dd;
  --amber:#e87a00;
  --ink:#17181c;
  --ink-2:#4a4844;
  --muted:#6b655f;
  --bg:#ffffff;
  --bg-2:#faf6f1;
  --card:#FFFFFF;
  --line:#ebe3dc;
  --line-2:#ddd3c9;
  --shadow:0 6px 24px rgba(70,25,35,.08);
  --shadow-lg:0 10px 40px rgba(70,25,35,.14);
  --radius:14px;
  --maxw:1120px;
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei','Hiragino Sans GB',sans-serif;
}
.camp-page *{box-sizing:border-box;margin:0;padding:0}
/* scroll-behavior / scroll-padding-top 已上移至 OVERRIDE 的 html 层（作用域化会使其失效） */
.camp-page{
  font-family:var(--font);
  background:var(--bg);
  color:var(--ink);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.camp-page img{max-width:100%;display:block}
.camp-page a{color:inherit;text-decoration:none}
.camp-page ::selection{background:var(--orange-soft);color:var(--orange-deep)}
.camp-page ::-webkit-scrollbar{width:10px;height:10px}
.camp-page ::-webkit-scrollbar-track{background:#f2ece6}
.camp-page ::-webkit-scrollbar-thumb{background:#E2C9B2;border-radius:8px;border:2px solid #f2ece6}
.camp-page ::-webkit-scrollbar-thumb:hover{background:var(--orange)}
.camp-page .hero{
  position:relative;overflow:hidden;
  background:radial-gradient(120% 130% at 82% -10%,#17181c 0%,#17181c 42%,#131417 100%);
  color:#fff;
  padding:96px 24px 84px;
}
.camp-page .hero::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.030) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.030) 1px,transparent 1px);
  background-size:56px 56px;mask-image:radial-gradient(90% 80% at 50% 20%,#000,transparent 78%);
  -webkit-mask-image:radial-gradient(90% 80% at 50% 20%,#000,transparent 78%);
}
.camp-page .hero .glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;pointer-events:none}
.camp-page .hero .g1{width:520px;height:520px;background:#d7000f;top:-220px;right:-120px;opacity:.34}
.camp-page .hero .g2{width:420px;height:420px;background:#e87a00;bottom:-220px;left:-100px;opacity:.20}
.camp-page .hero-inner{position:relative;max-width:var(--maxw);margin:0 auto}
.camp-page .eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  padding:7px 15px;border-radius:999px;
  background:rgba(215,0,15,.14);border:1px solid rgba(232,122,0,.34);
  color:#f0a869;font-size:13px;letter-spacing:.6px;margin-bottom:26px;
}
.camp-page .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:#e8542a;box-shadow:0 0 0 4px rgba(232,122,0,.18)}
.camp-page .hero h1{font-size:clamp(34px,5.4vw,60px);line-height:1.16;font-weight:800;letter-spacing:-.5px;max-width:14em}
.camp-page .hero h1 em{font-style:normal;background:linear-gradient(100deg,#e8542a,#f0a869 60%,#f7c9a3);-webkit-background-clip:text;background-clip:text;color:transparent}
.camp-page .hero .lead{margin-top:22px;font-size:clamp(15px,1.6vw,18px);line-height:1.85;color:#6b655f;max-width:56em}
.camp-page .hero .lead b{color:#fff;font-weight:600}
.camp-page .hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.camp-page .hero-tags span{padding:8px 15px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);font-size:13.5px;color:#4a4844}
.camp-page .hero-tags span i{font-style:normal;color:#f0a869;font-weight:700;margin-right:6px}
.camp-page .hero-stats{
  margin-top:52px;display:grid;gap:1px;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.10);border-radius:16px;overflow:hidden;
  grid-template-columns:repeat(4,1fr);
}
.camp-page .hero-stats .st{background:rgba(23,17,12,.55);padding:22px 20px}
.camp-page .hero-stats .st b{display:block;font-size:30px;font-weight:800;color:#fff;line-height:1.15;letter-spacing:-.5px}
.camp-page .hero-stats .st b i{font-style:normal;font-size:16px;color:#f0a869;margin-left:2px}
.camp-page .hero-stats .st span{font-size:13px;color:#8a8580}
.camp-page .scroll-hint{margin-top:44px;display:flex;align-items:center;gap:10px;color:#6b655f;font-size:13px}
.camp-page .scroll-hint .bar{width:34px;height:1px;background:#ddd3c9;position:relative;overflow:hidden}
.camp-page .scroll-hint .bar::after{content:"";position:absolute;left:0;top:0;height:1px;width:14px;background:var(--orange);animation:slide 1.9s infinite}
@keyframes slide{0%{transform:translateX(-14px)}100%{transform:translateX(34px)}}
.camp-page .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.camp-page section{padding:84px 0}
.camp-page section:nth-of-type(even){background:linear-gradient(180deg,#ffffff,#FDF5EE 40%,#ffffff)}
.camp-page .sec-head{margin-bottom:44px;max-width:64em}
.camp-page .sec-num{
  display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;
  color:var(--orange-deep);letter-spacing:2px;text-transform:uppercase;margin-bottom:14px;
}
.camp-page .sec-num::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--orange)}
.camp-page .sec-head h2{font-size:clamp(25px,3.2vw,38px);line-height:1.28;font-weight:800;letter-spacing:-.4px}
.camp-page .sec-head h2 mark{background:linear-gradient(180deg,transparent 62%,var(--orange-soft) 62%);color:inherit;padding:0 3px}
.camp-page .sec-head p{margin-top:16px;color:var(--ink-2);font-size:16px;line-height:1.9}
.camp-page h3.blk{font-size:clamp(19px,2.1vw,23px);font-weight:700;letter-spacing:-.2px;margin:56px 0 20px;display:flex;align-items:center;gap:11px}
.camp-page h3.blk::before{content:"";width:4px;height:20px;border-radius:3px;background:linear-gradient(180deg,var(--orange),var(--amber));flex-shrink:0}
.camp-page h3.blk:first-child{margin-top:0}
.camp-page h4.sub{font-size:17px;font-weight:700;margin:0 0 12px;color:var(--ink)}
.camp-page .rv{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.7,.3,1),transform .7s cubic-bezier(.22,.7,.3,1)}
.camp-page .rv.in{opacity:1;transform:none}
.camp-page .grid{display:grid;gap:20px}
.camp-page .g2{grid-template-columns:repeat(2,1fr)}
.camp-page .g3{grid-template-columns:repeat(3,1fr)}
.camp-page .g4{grid-template-columns:repeat(4,1fr)}
.camp-page .card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);transition:.28s;position:relative;overflow:hidden;
}
.camp-page .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.camp-page .card .ic{
  width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  background:linear-gradient(135deg,var(--orange),var(--amber));color:#fff;
}
.camp-page .card .ic svg{width:21px;height:21px}
.camp-page .card h4{font-size:17px;font-weight:700;margin-bottom:9px}
.camp-page .card p{font-size:14.5px;color:var(--ink-2);line-height:1.8}
.camp-page .card ul{margin-top:10px;padding-left:0;list-style:none;display:grid;gap:8px}
.camp-page .card ul li{font-size:14.5px;color:var(--ink-2);display:flex;gap:9px;line-height:1.78}
.camp-page .card ul li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--orange);flex-shrink:0;margin-top:9px}
.camp-page .card.accent{background:linear-gradient(160deg,#fbf1ef,#FFFFFF 55%);border-color:#FBDCC2}
.camp-page .card.accent::after{content:"";position:absolute;right:-46px;top:-46px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(215,0,15,.10),transparent 70%)}
.camp-page .card .tagline{font-size:12.5px;font-weight:700;color:var(--orange-deep);letter-spacing:1.4px;margin-bottom:8px}
.camp-page .stat-row{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}
.camp-page .stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.camp-page .stat .k{font-size:13px;color:var(--muted);letter-spacing:.6px}
.camp-page .stat .v{font-size:34px;font-weight:800;line-height:1.2;letter-spacing:-1px;color:var(--orange-deep)}
.camp-page .stat .v i{font-style:normal;font-size:16px;font-weight:700;margin-left:2px;color:var(--ink-2)}
.camp-page .stat .d{font-size:14px;color:var(--ink-2);margin-top:6px;line-height:1.75}
.camp-page .stat .bar{height:7px;border-radius:99px;background:#F4E8DC;margin-top:15px;overflow:hidden}
.camp-page .stat .bar > i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--orange),var(--amber));transition:width 1.3s cubic-bezier(.22,.8,.25,1)}
.camp-page .flow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin:8px 0 4px}
.camp-page .flow .fc{border-radius:var(--radius);padding:24px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
.camp-page .flow .fc.old{background:#f7f2ee;border-style:dashed}
.camp-page .flow .fc.new{background:linear-gradient(150deg,#fdeeeb,#fff);border-color:#f3cac1}
.camp-page .flow .fc .lb{font-size:12.5px;letter-spacing:1.4px;font-weight:700;color:var(--muted);margin-bottom:8px}
.camp-page .flow .fc.new .lb{color:var(--orange-deep)}
.camp-page .flow .fc h4{font-size:19px;margin-bottom:10px;font-weight:700}
.camp-page .flow .fc ul{list-style:none;display:grid;gap:7px}
.camp-page .flow .fc ul li{font-size:14px;color:var(--ink-2);display:flex;gap:8px}
.camp-page .flow .fc ul li::before{content:"–";color:var(--orange);font-weight:700}
.camp-page .flow .arw{display:grid;place-items:center;color:var(--orange)}
.camp-page .flow .arw svg{width:38px;height:38px}
.camp-page .market{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:end;margin-top:6px}
.camp-page .mk{text-align:center}
.camp-page .mk .val{font-size:26px;font-weight:800;color:var(--orange-deep);letter-spacing:-.6px}
.camp-page .mk .val i{font-style:normal;font-size:14px;color:var(--ink-2)}
.camp-page .mk .col{height:var(--h);border-radius:12px 12px 6px 6px;background:linear-gradient(180deg,var(--orange-2),var(--orange));margin:12px auto 0;width:78%;position:relative;box-shadow:0 10px 24px rgba(215,0,15,.22)}
.camp-page .mk.m1 .col{background:linear-gradient(180deg,#FFC38C,#FF9A45);box-shadow:0 10px 24px rgba(232,122,0,.20)}
.camp-page .mk.m3 .col{background:linear-gradient(180deg,#e8542a,#a8000c);box-shadow:0 14px 30px rgba(217,83,0,.26)}
.camp-page .mk .yr{font-size:13.5px;color:var(--muted);margin-top:11px}
.camp-page .mk .note{font-size:12.5px;color:var(--muted);margin-top:3px}
.camp-page .rings{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px}
.camp-page .ring{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);display:flex;align-items:center;gap:18px}
.camp-page .ring svg{width:82px;height:82px;flex-shrink:0;transform:rotate(-90deg)}
.camp-page .ring svg circle{fill:none;stroke-width:9;stroke-linecap:round}
.camp-page .ring .txt b{display:block;font-size:15px;font-weight:700;line-height:1.5}
.camp-page .ring .txt span{font-size:13.5px;color:var(--ink-2)}
.camp-page .tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.camp-page table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:620px}
.camp-page thead th{
  background:linear-gradient(180deg,#fdeeeb,#fbe0da);color:var(--orange-deep);
  text-align:left;padding:15px 18px;font-weight:700;font-size:14px;letter-spacing:.4px;
  border-bottom:1px solid #f0d6cf;white-space:nowrap;
}
.camp-page tbody td{padding:15px 18px;border-bottom:1px solid #f2ece8;color:var(--ink-2);vertical-align:top;line-height:1.75}
.camp-page tbody tr:last-child td{border-bottom:none}
.camp-page tbody tr:nth-child(even){background:#fffdfc}
.camp-page tbody tr:hover{background:#fbf1ef}
.camp-page tbody td:first-child{color:var(--ink);font-weight:600;white-space:nowrap}
.camp-page .pill{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12.5px;font-weight:600;background:var(--orange-soft);color:var(--orange-deep);white-space:nowrap}
.camp-page .vcmp{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:6px}
.camp-page .vcard{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);transition:.28s;display:flex;flex-direction:column;
}
.camp-page .vcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.camp-page .vcard .top{padding:22px 24px;background:linear-gradient(150deg,#fdeeeb,#FFFAF5);border-bottom:1px solid var(--line)}
.camp-page .vcard.hot .top{background:linear-gradient(150deg,var(--orange),#e8542a);color:#fff}
.camp-page .vcard.hot .top .nm{color:#fff}
.camp-page .vcard.hot .top .lb{color:rgba(255,255,255,.82)}
.camp-page .vcard .nm{font-size:24px;font-weight:800;letter-spacing:-.4px;color:var(--ink)}
.camp-page .vcard .lb{font-size:13px;color:var(--muted);letter-spacing:1px;margin-bottom:6px}
.camp-page .vcard .badge{float:right;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:99px;background:rgba(255,255,255,.22);color:#fff;border:1px solid rgba(255,255,255,.4)}
.camp-page .vcard .body{padding:20px 24px 24px;flex:1}
.camp-page .vcard .row{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed #ece4dd;font-size:14.5px}
.camp-page .vcard .row:last-child{border-bottom:none}
.camp-page .vcard .row .k{color:var(--muted);width:76px;flex-shrink:0;font-size:13.5px}
.camp-page .vcard .row .v{color:var(--ink-2);flex:1;line-height:1.75}
.camp-page .vcard .row .v b{color:var(--orange-deep);font-weight:700}
.camp-page .tbd{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);background:#f7f2ee;border:1px dashed var(--line-2);border-radius:9px;padding:8px 13px;margin-top:12px}
.camp-page .gal{display:grid;gap:18px}
.camp-page .gal figure{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:zoom-in;transition:.28s}
.camp-page .gal figure:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.camp-page .gal figure img{width:100%;aspect-ratio:16/9;object-fit:contain;background:#faf6f1}
.camp-page .gal figcaption{padding:13px 17px;font-size:13.5px;color:var(--ink-2);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.camp-page .gal figcaption b{font-weight:600;color:var(--ink)}
.camp-page .gal figcaption span{font-size:12.5px;color:var(--muted)}
.camp-page .logos{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:8px}
.camp-page .logo-i{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.25s;cursor:zoom-in}
.camp-page .logo-i:hover{border-color:#f0c4bb;box-shadow:0 10px 26px rgba(215,0,15,.13);transform:translateY(-3px)}
.camp-page .logo-i img{width:100%;aspect-ratio:471/279;object-fit:cover;background:#faf6f1}
.camp-page .logo-i .cap{padding:9px 11px;font-size:12.5px;color:var(--ink-2);text-align:center;border-top:1px solid #f5efe9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.camp-page .tl{position:relative;padding-left:34px;margin-top:10px}
.camp-page .tl::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--orange-soft),var(--orange),var(--orange-soft));border-radius:2px}
.camp-page .tl .node{position:relative;margin-bottom:22px}
.camp-page .tl .node::before{content:"";position:absolute;left:-32px;top:24px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--orange);box-shadow:0 0 0 4px rgba(215,0,15,.10)}
.camp-page .tl .node .box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;box-shadow:var(--shadow);transition:.25s}
.camp-page .tl .node .box:hover{border-color:#f0c4bb;box-shadow:var(--shadow-lg)}
.camp-page .tl .node .hd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.camp-page .tl .node .hd h4{font-size:18.5px;font-weight:700;letter-spacing:-.2px}
.camp-page .tl .node .hd .fm{font-size:12.5px;color:var(--orange-deep);background:var(--orange-soft);padding:4px 11px;border-radius:99px;font-weight:600}
.camp-page .tl .node ul{list-style:none;display:grid;gap:9px}
.camp-page .tl .node ul li{font-size:14.5px;color:var(--ink-2);line-height:1.8;display:flex;gap:10px}
.camp-page .tl .node ul li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--orange);flex-shrink:0;margin-top:9px}
.camp-page .tl .node ul li b{color:var(--ink);font-weight:700}
.camp-page .tl .node .out{margin-top:15px;padding:12px 15px;border-radius:12px;background:linear-gradient(120deg,#fdf1ef,#ffffff);border:1px solid #f5d5d8;font-size:14px;color:var(--orange-deep);font-weight:600;display:flex;gap:9px;align-items:flex-start}
.camp-page .tl .node .out svg{width:16px;height:16px;flex-shrink:0;margin-top:5px}
.camp-page .daybar{display:flex;align-items:center;gap:14px;margin:50px 0 20px}
.camp-page .daybar .n{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--orange),var(--amber));color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px;flex-shrink:0;box-shadow:0 6px 16px rgba(215,0,15,.28)}
.camp-page .daybar h4{font-size:19px;font-weight:700}
.camp-page .daybar .ln{flex:1;height:1px;background:linear-gradient(90deg,var(--line-2),transparent)}
.camp-page .filterbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.camp-page .filterbar input{
  font-family:var(--font);font-size:14px;padding:10px 15px;border-radius:11px;
  border:1px solid var(--line-2);background:#fff;color:var(--ink);outline:none;min-width:230px;transition:.2s;
}
.camp-page .filterbar input:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgba(215,0,15,.10)}
.camp-page .chip{
  font-size:13px;padding:8px 14px;border-radius:99px;border:1px solid var(--line-2);
  background:#fff;color:var(--ink-2);cursor:pointer;transition:.2s;font-family:var(--font);
}
.camp-page .chip:hover{border-color:var(--orange);color:var(--orange-deep)}
.camp-page .chip.on{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:600}
.camp-page .count{font-size:13px;color:var(--muted);margin-left:auto}
.camp-page .guide{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.camp-page .gcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:.28s}
.camp-page .gcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.camp-page .gcard .goal{font-size:13px;color:var(--muted);letter-spacing:.5px;margin-bottom:10px}
.camp-page .gcard h4{font-size:19px;font-weight:700;margin-bottom:12px}
.camp-page .gcard .ans{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:700;color:var(--orange-deep);background:var(--orange-soft);padding:9px 16px;border-radius:11px}
.camp-page .gcard::after{content:"";position:absolute;right:-40px;bottom:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(215,0,15,.09),transparent 70%)}
.camp-page #lb{position:fixed;inset:0;background:rgba(20,14,9,.92);z-index:1000;display:none;align-items:center;justify-content:center;padding:40px;cursor:zoom-out;backdrop-filter:blur(6px)}
.camp-page #lb.on{display:flex;animation:fade .22s ease}
.camp-page #lb img{max-width:100%;max-height:88vh;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.camp-page #lb .cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#CFC4BA;font-size:14px}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media(max-width:1024px){
.camp-page .g4{grid-template-columns:repeat(2,1fr)}
.camp-page .g3{grid-template-columns:repeat(2,1fr)}
.camp-page .stat-row{grid-template-columns:1fr}
.camp-page .rings{grid-template-columns:1fr}
.camp-page .logos{grid-template-columns:repeat(3,1fr)}
.camp-page .vcmp{grid-template-columns:1fr}
.camp-page .guide{grid-template-columns:1fr}
.camp-page .hero-stats{grid-template-columns:repeat(2,1fr)}
.camp-page .market{gap:10px}
}
@media(max-width:720px){
.camp-page section{padding:60px 0}
.camp-page .g2, .camp-page .g3, .camp-page .g4{grid-template-columns:1fr}
.camp-page .wrap{padding:0 18px}
.camp-page .logos{grid-template-columns:repeat(2,1fr)}
.camp-page .flow{grid-template-columns:1fr;gap:12px}
.camp-page .flow .arw{transform:rotate(90deg)}
.camp-page .hero{padding:66px 18px 60px}


.camp-page .card, .camp-page .tl .node .box{padding:20px}
.camp-page .hero-stats{grid-template-columns:1fr}
}
.camp-page .lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.camp-page .lcard{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);position:relative;
  transition:transform .42s cubic-bezier(.2,.7,.3,1),box-shadow .42s;
}
.camp-page .lcard:hover{transform:translateY(-6px);box-shadow:0 24px 48px -22px rgba(180,80,0,.34)}
.camp-page .lcard .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:#eae3dd;flex-shrink:0}
.camp-page .lcard .ph img{width:100%;height:100%;object-fit:cover;display:block}
.camp-page .lcard:nth-child(1) .ph img{object-position:34% 50%}
.camp-page .lcard:nth-child(2) .ph img{object-position:center 16%}
.camp-page .lcard:nth-child(3) .ph img{object-position:center 6%}
.camp-page .lcard .ph::after{content:'';position:absolute;left:0;right:0;bottom:0;height:66%;
  background:linear-gradient(to top,rgba(23,24,28,.94),rgba(23,24,28,.58) 48%,transparent)}
.camp-page .lcard .ov{position:absolute;left:0;right:0;bottom:0;padding:18px 22px 16px;z-index:2}
.camp-page .lcard .ov .tag{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.06em;color:#fff;
  background:var(--orange);padding:4px 11px;border-radius:99px;margin-bottom:9px}
/* .tag.joint 原「半透明白底 + 白描边」已移除（2026-10-15 用户裁定：主讲/联合统一官网红底）⇒ 统一继承 .tag 规则 */
.camp-page .lcard .ov h4{font-size:26px;font-weight:800;color:#fff;letter-spacing:-.4px;line-height:1.12}
.camp-page .lcard .ov .role{font-size:12.5px;color:rgba(255,255,255,.84);margin-top:7px;line-height:1.55}
.camp-page .lcard .bd{padding:20px 22px 22px;flex:1;display:flex;flex-direction:column}
.camp-page .lcard ul.bl{list-style:none;display:grid;gap:9px}
.camp-page .lcard ul.bl li{font-size:13.5px;line-height:1.62;color:var(--ink-2);display:flex;gap:9px}
.camp-page .lcard ul.bl li svg{width:14px;height:14px;flex-shrink:0;margin-top:4px;color:var(--orange)}
.camp-page .lcard ul.bl li b{color:var(--ink);font-weight:700}
.camp-page .lcard .chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:16px}
.camp-page .lcard .chips span{font-size:11.5px;font-weight:700;color:var(--orange-deep);
  background:var(--orange-soft);padding:5px 11px;border-radius:99px}
@media(max-width:1024px){
.camp-page .lgrid{grid-template-columns:repeat(2,1fr)}
.camp-page .lgrid > .lcard:last-child{grid-column:1 / -1;flex-direction:row}
.camp-page .lgrid > .lcard:last-child .ph{width:290px;aspect-ratio:auto;height:auto;flex-shrink:0}
.camp-page .lgrid > .lcard:last-child .ph img{object-position:center 12%}
.camp-page .lgrid > .lcard:last-child .bd{flex:1;min-width:0}
}
@media(max-width:720px){
.camp-page .lgrid{grid-template-columns:1fr}
.camp-page .lgrid > .lcard:last-child{grid-column:auto;flex-direction:column}
.camp-page .lgrid > .lcard:last-child .ph{width:auto;aspect-ratio:4/3;height:auto}
.camp-page .lgrid > .lcard:last-child .ph img{object-position:center 6%}
.camp-page .lcard .ov{padding:14px 18px 12px}
.camp-page .lcard .bd{padding:18px 18px 18px}
.camp-page .lcard .chips{padding-top:14px}
}
.camp-page [data-par]{will-change:transform;backface-visibility:hidden}
.camp-page .hero-visual{
  position:absolute;right:0;top:-6px;width:min(32vw,376px);
  border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(215,0,15,.16);
  z-index:2;will-change:transform;
}
.camp-page .hero-visual img{width:100%;height:246px;object-fit:cover;display:block}
.camp-page .hero-visual .cap{
  position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;
  background:linear-gradient(180deg,transparent,rgba(15,10,6,.92));
  font-size:12.5px;color:#D3C8BE;letter-spacing:.2px;
}
.camp-page .hero-visual .cap b{color:#f0a869;font-weight:700}
.camp-page .hero-visual .ring{
  position:absolute;right:12px;top:12px;
  padding:5px 11px;border-radius:999px;font-size:11.5px;font-weight:700;
  background:linear-gradient(135deg,var(--orange),var(--amber));color:#fff;
  box-shadow:0 6px 18px rgba(215,0,15,.5);
}
@media (min-width:1101px){
.camp-page .hero h1{max-width:min(14em,56%)}
.camp-page .hero .lead{max-width:min(56em,57%)}
.camp-page .hero-tags{max-width:57%}
}
@media (max-width:1100px){
.camp-page .hero-visual{display:none}
}
.camp-page .pband{
  position:relative;overflow:hidden;isolation:isolate;
  min-height:clamp(330px,46vh,470px);
  display:flex;align-items:center;
}
.camp-page .pband .pbg{
  position:absolute;left:-2%;right:-2%;top:-24%;bottom:-24%;
  background-size:cover;background-position:center;
  z-index:0;will-change:transform;
  filter:saturate(.50) brightness(.58) contrast(1.06);
}
.camp-page .pband .pveil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(104deg,rgba(23,24,28,.95) 0%,rgba(23,24,28,.87) 36%,rgba(60,18,20,.64) 70%,rgba(150,20,25,.42) 100%);
}
.camp-page .pband .pveil::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(72% 130% at 10% 50%,rgba(8,8,10,.70),transparent 64%);
}
.camp-page .pband .pveil::after{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:62px 62px;
  -webkit-mask-image:radial-gradient(78% 92% at 28% 50%,#000,transparent 74%);
  mask-image:radial-gradient(78% 92% at 28% 50%,#000,transparent 74%);
}
.camp-page .pband .pglow{position:absolute;z-index:1;border-radius:50%;filter:blur(110px);pointer-events:none}
.camp-page .pband .pglow.a{width:440px;height:440px;background:#d7000f;opacity:.34;top:-190px;right:-70px}
.camp-page .pband .pglow.b{width:380px;height:380px;background:#e87a00;opacity:.17;bottom:-200px;left:-70px}
.camp-page .pband .pin{
  position:relative;z-index:3;width:100%;
  max-width:var(--maxw);margin:0 auto;padding:62px 24px;color:#fff;
}
.camp-page .pband .pk{
  display:inline-flex;align-items:center;gap:9px;
  font-size:12.5px;letter-spacing:2.2px;font-weight:700;
  color:#f0a869;margin-bottom:18px;text-transform:uppercase;
}
.camp-page .pband .pk::before{content:"";width:26px;height:2px;background:linear-gradient(90deg,var(--orange),transparent);border-radius:2px}
.camp-page .pband h2{
  font-size:clamp(27px,3.9vw,46px);line-height:1.22;font-weight:800;
  letter-spacing:-.6px;color:#fff;max-width:24em;
}
.camp-page .pband h2 em{font-style:normal;background:linear-gradient(100deg,#e8542a,#FFC98A);-webkit-background-clip:text;background-clip:text;color:transparent}
.camp-page .pband .pd{margin-top:16px;font-size:clamp(14.5px,1.5vw,17px);line-height:1.88;color:#C4B8AE;max-width:52em}
.camp-page .pband .pd b{color:#fff;font-weight:600}
.camp-page .pband .pduel{margin-top:30px;display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.camp-page .pband .pduel .d{padding:11px 18px;border-radius:12px;font-size:14px;line-height:1.6}
.camp-page .pband .pduel .d1{
  background:rgba(255,255,255,.045);border:1px dashed rgba(255,255,255,.20);
  color:#8C8177;text-decoration:line-through;text-decoration-color:rgba(232,122,0,.55);
  text-decoration-thickness:1.5px;
}
.camp-page .pband .pduel .d2{
  background:linear-gradient(135deg,rgba(215,0,15,.24),rgba(232,122,0,.10));
  border:1px solid rgba(232,122,0,.46);color:#fff;font-weight:600;
  box-shadow:0 10px 30px rgba(215,0,15,.24);
}
.camp-page .pband .pduel .ar{color:#e8542a;display:grid;place-items:center;flex-shrink:0}
.camp-page .pband .pduel .ar svg{width:20px;height:20px}
.camp-page .pband .pnums{margin-top:32px;display:flex;flex-wrap:wrap;gap:40px}
.camp-page .pband .pnums .n{min-width:104px}
.camp-page .pband .pnums .n b{
  display:block;font-size:clamp(36px,4.8vw,56px);font-weight:800;
  line-height:1.02;letter-spacing:-1.6px;
  background:linear-gradient(118deg,#e8542a,#FFCB8E);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.camp-page .pband .pnums .n b i{font-style:normal;font-size:17px;margin-left:3px;-webkit-text-fill-color:#f0a869;color:#f0a869}
.camp-page .pband .pnums .n span{display:block;margin-top:5px;font-size:13px;color:#A0948A}
.camp-page .flow .fc.old{
  background:#f2ece6;border:1px dashed #DED5CA;color:#6b655f;
  filter:saturate(.42) contrast(.94);
}
.camp-page .flow .fc.old h4{color:#7A7168}
.camp-page .flow .fc.old li{color:#968D83}
.camp-page .flow .fc.old li::before{color:#C4BAAE}
.camp-page .flow .fc.old .lb{background:#eae4de;color:#7E756B}
.camp-page .flow .fc.new{
  background:linear-gradient(158deg,#17181c,#3a1216 62%,#221114);
  border:1px solid rgba(232,122,0,.42);
  box-shadow:0 20px 52px rgba(215,0,15,.22);
}
.camp-page .flow .fc.new h4{color:#fff}
.camp-page .flow .fc.new li{color:#CFC3B8}
.camp-page .flow .fc.new .lb{background:linear-gradient(135deg,var(--orange),var(--amber));color:#fff}
.camp-page .flow .arw{color:var(--orange)}
.camp-page .pband + section{padding-top:76px}
@media (max-width:900px){
.camp-page .pband{min-height:auto}
.camp-page .pband .pin{padding:48px 24px}
.camp-page .pband .pnums{gap:28px}
}
@media (prefers-reduced-motion: reduce){
.camp-page [data-par]{transform:none !important}
}

/* ===================== 官网风格对齐（2026-10-15） =====================
   主色：官网红 #d7000f；点缀：官网橙 #e87a00；底：白 / 浅暖 #faf6f1；文字：近黑 #17181c。
   版式沿用原专题页 index 结构，仅做色调与官网一致化。 */
.camp-page {
  background: #fff; color: #2a2a2e;
  --brand: #d7000f; --accent: #e87a00;
  --ink-deep: #17181c; --bg-alt: #faf6f1;
}
/* —— hero：深棕 → 官网浅色渐变 —— */
.camp-page .hero {
  background: radial-gradient(1200px 420px at 72% -10%, #fdeee7 0%, #faf6f1 58%, #fff 100%);
  color: #17181c; padding: 72px 24px 64px; border-bottom: 1px solid #ebe3dc;
}
.camp-page .hero::before {
  background-image: linear-gradient(rgba(215,0,15,.05) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(215,0,15,.05) 1px, transparent 1px);
}
.camp-page .hero .glow { opacity: .55; }
.camp-page .hero .g1 { background: #d7000f; opacity: .10; }
.camp-page .hero .g2 { background: #e87a00; opacity: .12; }
.camp-page .hero h1 { color: #17181c; }
.camp-page .hero h1 em { background: linear-gradient(100deg,#d7000f,#e87a00 62%,#f0a869); -webkit-background-clip: text; background-clip: text; color: transparent; }
.camp-page .hero .lead { color: #4a4844; }
.camp-page .hero .lead b { color: #17181c; }
.camp-page .eyebrow { background: rgba(215,0,15,.08); border: 1px solid rgba(215,0,15,.22); color: #a8000c; }
.camp-page .eyebrow .dot { background: #d7000f; box-shadow: 0 0 0 4px rgba(215,0,15,.14); }
.camp-page .hero-tags span { background: #fff; border: 1px solid #ebe3dc; color: #4a4844; box-shadow: 0 2px 8px rgba(70,25,35,.05); }
.camp-page .hero-tags span i { color: #d7000f; }
.camp-page .hero-stats { background: #ebe3dc; border: 1px solid #ebe3dc; }
.camp-page .hero-stats .st { background: #fff; }
.camp-page .hero-stats .st b { color: #17181c; }
.camp-page .hero-stats .st b i { color: #d7000f; }
.camp-page .hero-stats .st span { color: #6b655f; }
.camp-page .scroll-hint { color: #6b655f; }
.camp-page .scroll-hint .bar { background: #ddd3c9; }
.camp-page .hero-visual { border: 1px solid #ebe3dc; box-shadow: 0 20px 50px rgba(70,25,35,.16); }
.camp-page .hero-visual .ring { background: linear-gradient(135deg,#d7000f,#e87a00); box-shadow: 0 6px 18px rgba(215,0,15,.4); }
.camp-page .hero-visual .cap { color: #6b655f; }
.camp-page .hero-visual .cap b { color: #a8000c; }
/* —— 深色视差横幅：保留明暗对比，改为官网近黑 + 红调 —— */
.camp-page .pband .pveil { background: linear-gradient(104deg,rgba(23,24,28,.96) 0%,rgba(23,24,28,.88) 36%,rgba(74,12,16,.66) 70%,rgba(120,16,20,.44) 100%); }
.camp-page .pband .pglow.a { background: #d7000f; }
.camp-page .pband .pglow.b { background: #e87a00; }
.camp-page .pband .pk { color: #f0a869; }
.camp-page .pband h2 em { background: linear-gradient(100deg,#f0705f,#f0a869); -webkit-background-clip: text; background-clip: text; color: transparent; }
.camp-page .pband .pd { color: #c9c3bd; }
.camp-page .pband .pd b { color: #fff; }
.camp-page .pband .pduel .d1 { color: #9a938b; text-decoration-color: rgba(232,122,0,.5); }
.camp-page .pband .pduel .d2 { background: linear-gradient(135deg,rgba(215,0,15,.28),rgba(232,122,0,.12)); border: 1px solid rgba(215,0,15,.42); box-shadow: 0 10px 30px rgba(215,0,15,.22); }
.camp-page .pband .pduel .ar { color: #e87a00; }
.camp-page .pband .pnums .n b { background: linear-gradient(118deg,#f0705f,#f0b184); -webkit-background-clip: text; background-clip: text; color: transparent; }
.camp-page .pband .pnums .n b i { -webkit-text-fill-color: #f0a869; color: #f0a869; }
.camp-page .pband .pnums .n span { color: #a29a92; }
/* —— 新旧对比卡 —— */
.camp-page .flow .fc.new { background: linear-gradient(158deg,#17181c,#3a1216 62%,#221114); border: 1px solid rgba(215,0,15,.36); box-shadow: 0 20px 52px rgba(215,0,15,.20); }
.camp-page .flow .fc.old { background: #f2ece6; border: 1px dashed #ddd3c9; }
/* —— 讲师卡照片：按**原照片**显示，⛔ 不加任何遮罩 / 调色（用户 2026-10-16 裁定「三位老师的
   卡片墙照片以原照片效果显示，不添加任何的遮罩效果」——**推翻同日早前「降灰度·改暖色调」方案**）——
   须同时关掉三处，漏一处即残留：
     ① 原专题页自带 .lcard .ph::after 的**底部深色渐变遮罩**；
     ② 同日早前新增的 .lcard .ph::before **暖色柔光层**；
     ③ 同日早前给 .ph img 加的 sepia / saturate **调色滤镜**。
   关闭方式用 content:none（整条伪元素不再生成）——比 background:transparent 更彻底、语义更明确。
   ⇒ 照片以**原始色彩与明暗**呈现；object-fit:cover 保留，卡槽比例 4:3 与照片一致 ⇒ 仍零裁切。
   ⚠️ .ov（讲师标签 / 姓名 / 职务）文字**保留、位置不变**；去掉遮罩后文字直接压在照片上，
      可读性取决于照片自身明暗 —— 须以截图实测确认（勿只凭推断）。 */
.camp-page .lcard .ph img { filter: none; }
.camp-page .lcard .ph::before { content: none; }
.camp-page .lcard .ph::after { content: none; }
/* —— 讲师标签：主讲 / 联合 统一为官网红底白字（用户 2026-10-15 裁定「背景色都为统一的红色」）——
   原样式里 .tag（主讲讲师）已是官网红，只有 .tag.joint（联合讲师）被覆写成半透明白
   ＋ 白色描边 ⇒ 两类标签观感不一致。上方「3c 步」已把那条覆写整条移除（.tag.joint
   因此继承 .tag 的官网红）；此处再写一条**显式**红底规则兜底，意图一目了然、也便于护栏断言。
   选择器同时写 .tag 与 .tag.joint，是为了在同特异度下用「更靠后」压过任何残留声明。 */
.camp-page .lcard .ov .tag,
.camp-page .lcard .ov .tag.joint { background: #d7000f; border: 0; color: #fff; }
/* —— 讲师卡网格：取消「最后一张卡独占整行 / 横向巨卡」特例（2026-10-16 · 讲师管理）————
   源页原设计**假定恰好 3 位讲师**：≤1024px 时第 3 张 grid-column:1/-1 且 flex-direction:row
   （横向巨卡）。后台「讲师管理」支持自由增删 ⇒ 卡片数量不再固定，该特例会让「最后一位」
   莫名其妙变成横向巨卡 ⇒ 一律回到常规竖卡，按数量自然换行。
   列数（沿源页基础规则，未改）：PC ≥1025px 3 列 → 平板 ≤1024px 2 列 → 手机 ≤720px 1 列。
   ⚠️ 本块只针对 .lgrid 讲师网格；上方对应特例的存在性已在生成器内断言（源页若删会自动报错）。
   定格：本节与源页两条 :last-child 同特异度、位于文件更后 ⇒ 稳定胜出。 */
@media (max-width: 1024px) {
  .camp-page .lgrid > .lcard:last-child { grid-column: auto; flex-direction: column; }
  .camp-page .lgrid > .lcard:last-child .ph { width: auto; aspect-ratio: 4/3; height: auto; flex-shrink: 0; }
  .camp-page .lgrid > .lcard:last-child .bd { flex: 1; min-width: 0; }
}
@media (max-width: 720px) {
  .camp-page .lgrid > .lcard:last-child { grid-column: auto; flex-direction: column; }
  .camp-page .lgrid > .lcard:last-child .ph { width: auto; aspect-ratio: 4/3; height: auto; flex-shrink: 0; }
}
/* —— 冲突中和：官网 main.css 全局规则的额外声明，避免污染 —— */
.camp-page .sec-head { text-align: left; }
.camp-page .card h2, .camp-page .card h3, .camp-page .card h4 { margin-top: 0; }
.camp-page .wrap { max-width: var(--maxw); }
/* —— 免责/口径小注 —— */
.camp-page .camp-src-note {
  font-size: 12.5px; color: #6b655f; line-height: 1.75;
  margin: 0 0 18px; padding: 10px 14px; background: #faf6f1;
  border-left: 3px solid #d7000f; border-radius: 0 8px 8px 0;
}
/* —— 首屏可见性三层保障（SEO/GEO · 2026-10-15） ——————————————————————
   ① 本块 = CSS 超时兜底：JS 未执行（被拦 / 抛错 / 超时）时 1.8s 后自动显形，
      避免 .rv（opacity:0）内容永久不可见（原专题页只有 IntersectionObserver，无任何兜底）；
   ② 取消开关：camp.js 初始化时给 <html> 加 .camp-js，正常态由脚本接管动效（本兜底停用）；
   ③ <noscript> 兜底：禁用 JS 时直接 opacity:1（由 build-site.js 按 page.noscript 注入）。
   ⚠️ ①②两条必须拆开：合在一条里会在「慢网脚本晚到」时产生一次可见闪烁。 */
.camp-page .rv { animation: camp-rv-failsafe 0s linear 1.8s forwards; }
@keyframes camp-rv-failsafe { to { opacity: 1; transform: none; } }
html.camp-js .camp-page .rv { animation: none; }
/* —— 锚点滚动对齐（2026-10-15 · 任务 AB 修根因） ——————————————————————
   原页规则是 html{scroll-behavior:smooth;scroll-padding-top:78px}；
   第 5 步把 html 作用域化成了 .camp-page ⇒ 实际滚动容器是 <html>，
   该规则被装到非滚动元素上 = 完全失效（平滑滚动与「避开吸顶头」双双丢失）。
   本页导航升级为 # 锚点目录后必须修回：
     · scroll-behavior:smooth —— 点击目录平滑滚动；
     · scroll-padding-top:84px —— 站点 header 吸顶高 64px，锚点落位需再留 20px 余量，
       否则区块标题会被吸顶头盖住。
   ⚠️ 本块是 camp.css 中**唯一**作用于 .camp-page 之外的选择器（页面级），
      因 camp.css 仅在本页加载，故不污染其它页面。 */
html { scroll-behavior: smooth; scroll-padding-top: 84px; }

/* —— 右侧浮动目录（rail · 2026-10-15 用户裁定） ——————————————————————
   原专题页顶部 # 锚点导航 → 右侧随滚动浮动的导航（position:fixed 跟随视口）。
   由 .workbuddy/transform-camp.js 第 4c 步生成 HTML（<nav id="campRail">），
   滚动联动高亮由 camp.js 的 scroll-spy 负责（选择器 #campRail a，加 .active）。
   ⚠️ 该 nav 位于 .camp-page **之外**（页面级 chrome），故本块选择器不带 .camp-page 前缀。
   ⛔ 类名必须保持 .camp-rail 前缀：main.css 存在全局 .nav/.nav-links 规则，沿用即被污染。 */
.camp-rail {
  position: fixed; top: 50%; right: 14px; transform: translateY(-50%);
  z-index: 40; margin: 0; padding: 8px;
  display: flex; flex-direction: column; gap: 2px;
  background: rgba(255, 255, 255, .88);
  border: 1px solid #ebe3dc; border-radius: 14px;
  box-shadow: 0 10px 30px rgba(70, 25, 35, .10);
  backdrop-filter: saturate(180%) blur(10px); -webkit-backdrop-filter: saturate(180%) blur(10px);
  pointer-events: none;               /* 只有条目可点，底板不挡正文点击 */
}
.camp-rail a {
  pointer-events: auto;
  display: flex; align-items: center; gap: 7px;
  padding: 6px 8px; border-radius: 9px;
  font-size: 12.5px; line-height: 1.2; color: #6b655f; white-space: nowrap;
  text-decoration: none; transition: background .18s, color .18s;
}
.camp-rail a .camp-rail__dot {
  width: 6px; height: 6px; border-radius: 50%; background: #ddd3c9;
  flex: 0 0 auto; transition: background .18s, box-shadow .18s;
}
.camp-rail a:hover { background: #faf6f1; color: #a8000c; }
.camp-rail a.active { background: rgba(215, 0, 15, .08); color: #a8000c; font-weight: 600; }
.camp-rail a.active .camp-rail__dot { background: #d7000f; box-shadow: 0 0 0 3px rgba(215, 0, 15, .14); }
.camp-rail a:focus-visible { outline: 2px solid #d7000f; outline-offset: 2px; }
/* 中等宽度（860–1299px）：收成「贴边无底板圆点条」
   —— 该区间内容已贴满左右留白（max-width 未生效），带文字/带底板必然压住卡片右缘
      （实测：1240px 展开态压住最右文字 26px）。故① 简称 hide（读屏仍读 aria-label 全称）；
      ② 去底板，只留 6px 圆点；③ 条宽压到 22px、贴右边 4px ⇒
      圆点落在正文右留白（24px）之外 ⇒ 实测 860–1299px 与文字/图片**零重叠**。
      实测依据：正文右界 = 视口宽 − 24（.wrap 内边距），圆点位于视口宽 −21 ~ −15。 */
@media (max-width: 1299px) {
  .camp-rail {
    right: 4px; padding: 6px 3px; gap: 2px;
    background: none; border: 0; box-shadow: none;
    backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .camp-rail a { padding: 7px 5px; }
  .camp-rail a:hover, .camp-rail a.active { background: rgba(215, 0, 15, .10); }
  .camp-rail a .camp-rail__t { display: none; }
}
/* 手机端（<860px）：竖向右侧目录不适用于窄屏（纵向压住正文、命中区也太小）
   ⇒ **同一套 DOM** 改成「底部吸附·横滑胶囊条」（2026-10-15 用户要求「手机端请完善」）：
      · 固定视口底部、横向可滑；当前项＝红底白字实心胶囊，并由 camp.js 自动滚进可视区；
      · 桌面端的圆点隐藏（胶囊条上无意义）、两字简称改为实显；
      · 底部叠加 iPhone 安全区（未加 viewport-fit=cover 时 env 取 0，无害）；
      · 容器恢复 pointer-events（否则拖动空白处不能横滑）；
      · 末尾为站点页脚预留下内边距 —— 否则胶囊条会压住版权行/备案号（页脚不在 .camp-page 内，
        故此处是本文件第 3 类作用域外选择器（main + .site-footer），同样仅本页生效）。 */
@media (max-width: 859px) {
  .camp-rail {
    top: auto; bottom: 0; left: 0; right: 0; transform: none;
    flex-direction: row; align-items: center; gap: 6px;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .94); border: 0; border-top: 1px solid #ebe3dc;
    border-radius: 0; box-shadow: 0 -6px 22px rgba(70, 25, 35, .12);
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
    pointer-events: auto;
  }
  .camp-rail::-webkit-scrollbar { display: none; }
  .camp-rail a {
    flex: 0 0 auto; padding: 9px 14px; border-radius: 999px;
    font-size: 13px; line-height: 1.25; min-height: 38px;   /* 命中区 38px 高（原 32px；WCAG 2.5.8 AA 需 ≥24px，向 44px 靠拢） */
    color: #4a4844; display: inline-flex; align-items: center;
  }
  .camp-rail a .camp-rail__dot { display: none; }
  .camp-rail a .camp-rail__t { display: inline; }
  .camp-rail a:hover { background: #faf6f1; }
  .camp-rail a.active { background: #d7000f; color: #fff; font-weight: 600; }
  main + .site-footer { padding-bottom: 80px; }
}

/* —— hero 区 CTA「我要参加训练营」→ /enterprise/#pilot 表单入口（2026-10-16 · 用户指令） ——
   ⚠️ 本注释内 ⛔ 不得出现反引号（OVERRIDE 是模板字面量，反引号会直接 SyntaxError）。
   ① .hv-media：把「ring + 图 + cap」重新包成**与图片等大的定位盒子** ⇒ .cap（bottom:0）
      与 .ring（top:12px）的几何逐像素不变（包装由生成器 4d 步完成，原因见生成器注释）。
   ② .hv-cta / .hero-cta：卡片底部白底 + 官网红**圆角胶囊按钮**（用户要求「圆角按钮」）。
   ⛔ 按钮必须留在 .hero-visual 内：源页给该卡施加视差位移（translate3d/rotate），
      卡内节点随卡同步移动；做成卡外静态节点会在滚动约 88px 后被图片压住。 */
.camp-page .hero-visual .hv-media { position: relative; }
.camp-page .hero-visual .hv-cta { background: #fff; padding: 12px; }
.camp-page .hero-cta {
  display: flex; align-items: center; justify-content: center;
  padding: 12px 18px; border-radius: 999px;
  background: #d7000f; color: #fff;
  font-size: 14.5px; font-weight: 700; line-height: 1.2; letter-spacing: .4px;
  text-decoration: none; white-space: nowrap;
  box-shadow: 0 8px 20px rgba(215, 0, 15, .30);
  transition: background .18s, box-shadow .18s, transform .18s;
}
.camp-page .hero-cta:hover { background: #a8000c; box-shadow: 0 10px 24px rgba(215, 0, 15, .38); transform: translateY(-1px); }
.camp-page .hero-cta:active { transform: translateY(0); }
.camp-page .hero-cta:focus-visible { outline: 2px solid #d7000f; outline-offset: 3px; }
/* 窄屏（≤1100px）：.hero-visual 整体 display:none（源页原设计）⇒ 卡内 CTA 会一并消失。
   ⛔ 不允许「窄屏静默丢失 CTA」⇒ 另设同 href 的流式 CTA（.hero-cta--flow），接在首屏文案末尾。
   桌面端隐藏流式那份 ⇒ 两份恒只显示一份（同一 href，无逻辑重复，见生成器 4e 步）。 */
.camp-page .hero-cta--flow { display: none; }
@media (max-width: 1100px) {
  .camp-page .hero-cta--flow {
    display: inline-flex; width: auto; margin-top: 26px; padding: 13px 28px; font-size: 15px;
  }
}
/* —— 底部横幅 CTA 文本改链接（.pband .pduel 内，同一表单入口）——
   原为 <span class="d d2">（不可点）⇒ 改 <a class="d d2">；类选择器与元素无关 ⇒
   几何/配色不变，只需补 a 的去下划线 / 继承颜色 / hover 反馈。 */
.camp-page .pband .pduel a.d { text-decoration: none; color: inherit; cursor: pointer; }
.camp-page .pband .pduel a.d2 { transition: border-color .18s, box-shadow .18s; }
.camp-page .pband .pduel a.d2:hover { border-color: rgba(215, 0, 15, .72); box-shadow: 0 12px 34px rgba(215, 0, 15, .32); }
.camp-page .pband .pduel a.d2:focus-visible { outline: 2px solid #d7000f; outline-offset: 3px; }
