/* ═══ 分类页 v7 · 上半部按三月 2026-10-02 的参考图 ═══
   结构:左 = 面包屑 + 大标题 + 常用推荐卡(2×2 + 1 张通栏);右 = 动画舞台(手写标语 + 主动画 + 角落胶囊)。
   下半部沿用 cat-v6 的筛选条 + 卡片网格。
   三版动画(?v=a|b|c)共用这套版式,只换右侧舞台:
     A 轨道:主体(地球 / AI 核心 / 播放球)+ 倾斜轨道环 + 标签
     B 点阵:canvas 3D 粒子(城市灯光地球 / 神经网络 / 视频帧环)
     C 平面:倾斜平面 / 流程 / 胶片轮播
   依赖 v6.css 的 token(--bg、--ink、--line、--cta 等)。 */

/* 10-03 去掉了面包屑和大标题,左栏直接从卡片开始 */
.v7h{position:relative;padding:34px 0 56px;overflow:hidden}
.v7-in>div:first-child{align-self:center}
.v7-in{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,1fr);gap:26px;align-items:stretch;position:relative;z-index:1}

/* ── 左:面包屑 + 标题 + 卡片 ── */
.crumb{font-size:13px;color:var(--ink-3);margin-bottom:12px}
.crumb a{color:#8fb0ff}
.crumb i{font-style:normal;margin:0 8px;opacity:.6}
.v7-t{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin:0 0 20px}
.v7-t h1{margin:0;font-size:clamp(34px,3.3vw,46px);font-weight:900;letter-spacing:.02em;line-height:1.1}
.v7-t p{margin:0;font-size:15.5px;color:var(--ink-2)}

/* 卡片 v2(三月 10-03:「左侧和背景同化太严重」)
   之前:深底 + 深照片 + 1px 暗边,五张卡一模一样,整块读成一片灰。
   现在:每张卡一个主色 --ac(底色、流光边框、按钮、小动画都走它),照片上叠代码小动画,
   悬停时跟手倾斜 + 光斑跟随,加载时依次浮上来(只这一次)。 */
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
.v7-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;perspective:1200px}
.v7c{--ac:120,140,255;--mx:50%;--my:50%;
  position:relative;display:block;width:100%;height:178px;padding:0;text-align:left;
  font:inherit;color:inherit;cursor:pointer;border:0;border-radius:16px;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(120% 140% at 0% 0%,rgba(var(--ac),.22) 0%,transparent 46%),
    linear-gradient(160deg,#141b3a 0%,#0d1330 55%,#0a0f26 100%);
  box-shadow:0 18px 40px -22px rgba(var(--ac),.55),0 0 0 1px rgba(255,255,255,.03),inset 0 1px 0 rgba(255,255,255,.08);
  transition:transform .25s ease-out,box-shadow .3s;
  animation:rise .8s cubic-bezier(.2,.75,.25,1) both;animation-delay:calc(var(--i,0) * 90ms)}
@keyframes rise{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
.v7c.wide{grid-column:1/-1}
/* 流光边框:conic 渐变只留一圈 1px(mask 挖空中间),角度一直转;每张卡起点错开 */
.v7c::before{content:"";position:absolute;inset:0;z-index:5;border-radius:inherit;padding:1px;pointer-events:none;
  background:
    conic-gradient(from var(--ang),transparent 0 62%,rgba(var(--ac),.95) 74%,#fff 76%,rgba(var(--ac),.95) 78%,transparent 90%),
    linear-gradient(160deg,rgba(var(--ac),.55),rgba(var(--ac),.12) 40%,rgba(255,255,255,.06));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:ang calc(7s * var(--k,1)) linear infinite;animation-delay:calc(var(--i,0) * -1.4s)}
@keyframes ang{to{--ang:360deg}}
/* 跟手光斑 */
.v7c::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(260px circle at var(--mx) var(--my),rgba(var(--ac),.22),transparent 62%)}
.v7c:hover::after{opacity:1}
.v7c:hover{box-shadow:0 26px 50px -20px rgba(var(--ac),.75),0 0 0 1px rgba(255,255,255,.05),inset 0 1px 0 rgba(255,255,255,.1)}

/* 照片:退到右半边当底,染一层主色,上面压小动画 */
.v7c .im{position:absolute;inset:0 0 0 38%;z-index:0}
.v7c.wide .im{inset:0 0 0 46%}
.v7c .im img{width:100%;height:100%;object-fit:cover;opacity:.62;filter:saturate(.85);transition:transform .6s}
.v7c:hover .im img{transform:scale(1.05)}
.v7c .im::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(var(--ac),.22);mix-blend-mode:color}
.v7c .im::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,#10173a 0%,rgba(16,23,58,.82) 24%,rgba(13,19,48,.25) 70%,rgba(10,15,38,.5))}
.v7c .fx{position:absolute;z-index:3;right:10px;top:50%;width:min(46%,230px);transform:translateY(-54%);
  color:rgb(var(--ac));overflow:visible;filter:drop-shadow(0 0 8px rgba(var(--ac),.55))}
.v7c.wide .fx{right:6%;width:min(34%,240px)}
/* 底部有 logo 排的卡,小动画往上让一点 */
.v7c:has(.lg) .fx{transform:translateY(-66%)}

.v7c .tx{position:absolute;z-index:4;left:22px;top:18px;right:44%;bottom:16px;display:flex;flex-direction:column}
.v7c.wide .tx{right:48%}
.v7c h3{margin:0 0 7px;font-size:21px;font-weight:800;letter-spacing:.02em;
  text-shadow:0 0 22px rgba(var(--ac),.45)}
.v7c p{margin:0;font-size:13px;color:#b9c3e0;line-height:1.62;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.v7btn{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:10px;
  height:32px;padding:0 15px;border-radius:999px;font-size:13px;font-weight:700;
  border:1px solid rgba(var(--ac),.6);background:rgba(var(--ac),.14);color:#fff;
  box-shadow:0 0 18px -6px rgba(var(--ac),.8);transition:background .2s,border-color .2s,color .2s}
.v7c:hover .v7btn{background:rgb(var(--ac));border-color:transparent;color:#070a18}
.v7c .tag{position:absolute;z-index:4;top:12px;right:12px;font-size:11px;padding:2px 9px;border-radius:999px;
  background:rgba(5,7,14,.7);border:1px solid rgba(var(--ac),.5);color:rgb(var(--ac))}
/* 跨境卡:右下角一排真 logo,告诉你里面有哪几家 */
.v7c .lg{position:absolute;z-index:4;right:12px;bottom:10px;display:flex;align-items:center;gap:12px;height:28px;
  padding:5px 10px;border-radius:9px;background:rgba(6,9,22,.72);border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(6px)}
/* 跟弹框同一套等面积缩放(面积小一号),长条字标和方标看上去一样大 */
.v7c .lg img{height:clamp(8px,calc(sqrt(240 / var(--ar,3)) * 1px),16px);width:auto;max-width:60px;object-fit:contain;opacity:.95}

/* 小动画节奏:时长都乘 --k,减少动态时放大 --k = 放慢 */
.fx *{transform-box:fill-box;transform-origin:center}
.fx-ping{animation:fxPing calc(2.4s * var(--k,1)) ease-out infinite;animation-delay:var(--d)}
@keyframes fxPing{from{transform:scale(1);opacity:.9}to{transform:scale(4.2);opacity:0}}
.fx-bob{animation:fxBob calc(2.4s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d);transform-origin:center bottom}
@keyframes fxBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.fx-flow{animation:fxFlow calc(1.6s * var(--k,1)) linear infinite}
@keyframes fxFlow{to{stroke-dashoffset:-16}}
.fx-led{animation:fxLed calc(1.3s * var(--k,1)) steps(2,jump-none) infinite;animation-delay:var(--d)}
@keyframes fxLed{50%{opacity:.18}}
.fx-load{transform-origin:left center;animation:fxLoad calc(2.8s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d)}
@keyframes fxLoad{0%,100%{transform:scaleX(.25)}50%{transform:scaleX(.9)}}
.fx-scan{animation:fxScan calc(3s * var(--k,1)) ease-in-out infinite}
@keyframes fxScan{0%,100%{transform:translateY(0);opacity:.2}50%{transform:translateY(84px);opacity:.8}}
.fx-shine{animation:fxShine calc(2.6s * var(--k,1)) ease-in-out infinite}
@keyframes fxShine{0%,100%{opacity:0}50%{opacity:.28}}
.fx-bar{transform-origin:center bottom;animation:fxBar calc(2s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d)}
@keyframes fxBar{0%,15%{opacity:.18;transform:scaleY(.4)}35%,80%{opacity:1;transform:scaleY(1)}100%{opacity:.18;transform:scaleY(.4)}}
.fx-float{animation:fxFloat calc(3.2s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d)}
@keyframes fxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.fx-wave{animation:fxWave calc(1.8s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d)}
@keyframes fxWave{0%,100%{opacity:.15}40%{opacity:1}}
.fx-link{animation:fxLink calc(3.6s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d)}
@keyframes fxLink{0%,10%{opacity:0}30%,80%{opacity:1}100%{opacity:0}}
.fx-grow{transform-origin:center bottom;animation:fxGrow calc(3s * var(--k,1)) cubic-bezier(.3,.8,.3,1) infinite;animation-delay:var(--d)}
@keyframes fxGrow{0%{transform:scaleY(.1)}35%,85%{transform:scaleY(1)}100%{transform:scaleY(.1)}}
.fx-draw{stroke-dasharray:200;animation:fxDraw calc(3s * var(--k,1)) ease-in-out infinite}
@keyframes fxDraw{0%{stroke-dashoffset:200}50%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:-200}}
.fx-pop{animation:fxPop calc(3.6s * var(--k,1)) cubic-bezier(.3,1.4,.4,1) infinite;animation-delay:var(--d)}
@keyframes fxPop{0%{opacity:0;transform:scale(.6)}12%,82%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}
.fx-dot{animation:fxDot calc(1s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d)}
@keyframes fxDot{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-3px);opacity:1}}
.fx-typing{transform-origin:left center;animation:fxType calc(3.4s * var(--k,1)) steps(12) infinite;animation-delay:var(--d)}
@keyframes fxType{0%{transform:scaleX(0)}30%,90%{transform:scaleX(1)}100%{transform:scaleX(0)}}
.fx-caret{animation:fxLed calc(.9s * var(--k,1)) steps(2,jump-none) infinite}
.fx-tw{animation:fxTw calc(2.2s * var(--k,1)) ease-in-out infinite;animation-delay:var(--d)}
@keyframes fxTw{0%,100%{opacity:.1;transform:scale(.5) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}
.fx-eq{transform-origin:center bottom;animation:fxEq calc(.9s * var(--k,1)) ease-in-out infinite alternate;animation-delay:var(--d)}
@keyframes fxEq{from{transform:scaleY(.3)}to{transform:scaleY(1.5)}}
.fx-prog{transform-origin:left center;animation:fxProg calc(6s * var(--k,1)) linear infinite}
@keyframes fxProg{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ── 右:动画舞台 ── */
.stage{position:relative;min-height:560px}
.v7-script{position:absolute;z-index:4;top:4px;left:4%;right:0;pointer-events:none;
  transform:rotate(-4deg);transform-origin:left top}
.v7-script b{display:block;font-family:"STXingkai","华文行楷","Ma Shan Zheng","KaiTi","楷体",cursive;
  font-weight:400;font-size:clamp(28px,2.6vw,38px);letter-spacing:.08em;line-height:1.2;
  background:linear-gradient(90deg,#fff,#cfd8ff 60%,#a99bff);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 14px rgba(140,150,255,.35))}
.v7-script span{display:block;margin:6px 0 0 14%;font-size:14px;color:#b8c2e6;letter-spacing:.06em}
.anim{position:absolute;inset:0;z-index:2}
.pill{position:absolute;z-index:5;right:2%;bottom:2%;display:inline-flex;align-items:center;gap:10px;
  height:40px;padding:0 18px;border-radius:999px;font-size:13.5px;color:#dfe5ff;
  border:1px solid rgba(140,160,255,.45);background:rgba(10,14,34,.6);backdrop-filter:blur(8px);
  box-shadow:0 0 24px -6px rgba(110,120,255,.5)}
.pill svg{width:18px;height:18px;color:#9fb6ff}

/* 玻璃标签:A/C 版里的地区、智能体名 */
.gtag{position:absolute;z-index:6;transform:translate(-50%,-50%);white-space:nowrap;
  padding:6px 13px;border-radius:10px;font-size:13px;font-weight:600;color:#eef1ff;
  border:1px solid rgba(150,170,255,.45);background:rgba(12,16,40,.66);backdrop-filter:blur(6px);
  box-shadow:0 0 18px -4px rgba(120,130,255,.55);transition:opacity .3s}
.gnode{position:absolute;z-index:5;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);
  background:#cfd6ff;box-shadow:0 0 0 3px rgba(150,140,255,.25),0 0 14px 3px rgba(150,140,255,.8)}
.gnode::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid rgba(170,160,255,.8);
  animation:ping 2.6s ease-out infinite}
@keyframes ping{from{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}

/* ── A 版:轨道系统(正方形容器,里面按 % 摆,SVG viewBox 0 0 100 100 不会变形) ── */
/* 参考图里地球几乎占满右栏高度 → 容器放到舞台宽的 118%(轨道允许探出舞台一点) */
.sys{position:absolute;left:53%;top:55%;width:min(118%,640px);aspect-ratio:1;transform:translate(-50%,-50%)}
.sys .body{position:absolute;inset:17%;border-radius:50%}
.sys .globe3d,.sys .globe-sh,.sys .globe-rim{position:absolute;inset:0;border-radius:50%}
/* 贴图 0% 时正对美洲;负延迟跳到动画的 30.5% 处 = 欧非居中开场,跟参考图一致 */
.sys .globe3d{animation-duration:90s;animation-delay:-27.5s}
.sys svg.orb{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:3;pointer-events:none}
.sys .chip{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;
  padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;color:#eef1ff;
  border:1px solid rgba(150,170,255,.5);background:rgba(14,18,44,.78);backdrop-filter:blur(6px);
  box-shadow:0 0 18px -4px rgba(130,120,255,.6);will-change:transform,opacity}
/* AI 核心:层叠径向渐变 + 一层旋转的锥形渐变当「内部涌动」 */
.core{position:absolute;inset:0;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 34% 28%,#cbbcff 0%,#7a62f0 16%,#3a2bb0 40%,#160f55 66%,#070920 90%);
  box-shadow:0 0 90px 10px rgba(110,90,255,.35),0 0 200px 40px rgba(70,60,220,.18),
    inset -30px -40px 80px rgba(0,0,0,.65),inset 10px 12px 30px rgba(255,255,255,.18)}
.core::before{content:"";position:absolute;inset:-30%;
  background:conic-gradient(from 0deg,transparent,rgba(120,200,255,.55),transparent 30%,rgba(190,120,255,.5),transparent 62%,rgba(90,140,255,.5),transparent);
  filter:blur(18px);mix-blend-mode:screen;animation:swirl 14s linear infinite}
.core::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:repeating-radial-gradient(circle at 50% 50%,transparent 0 14px,rgba(200,210,255,.05) 15px 16px);
  animation:breath 5s ease-in-out infinite}
@keyframes swirl{to{transform:rotate(360deg)}}
@keyframes breath{50%{transform:scale(1.08);opacity:.6}}
.sys .wire{position:absolute;inset:0;width:100%;height:100%;z-index:1;border-radius:50%;
  -webkit-mask:radial-gradient(circle,#000 62%,transparent 71%);mask:radial-gradient(circle,#000 62%,transparent 71%)}
/* 发光的「核」:球心一团亮光,慢呼吸 */
.sys .nucleus{position:absolute;inset:30%;z-index:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(200,180,255,.7) 18%,rgba(140,110,255,.25) 46%,transparent 70%);
  filter:blur(2px);animation:nuc 4s ease-in-out infinite;mix-blend-mode:screen}
@keyframes nuc{50%{transform:scale(1.18);opacity:.75}}
.core.vid{background:radial-gradient(circle at 34% 28%,#e0f6ff 0%,#7fd0ff 14%,#3c7bf0 36%,#152a7c 62%,#060a22 88%);
  box-shadow:0 0 90px 10px rgba(70,150,255,.35),0 0 200px 40px rgba(50,110,230,.18),
    inset -30px -40px 80px rgba(0,0,0,.6),inset 10px 12px 30px rgba(255,255,255,.2)}
.core .play{position:absolute;z-index:2;left:50%;top:50%;width:26%;height:26%;transform:translate(-38%,-50%);
  filter:drop-shadow(0 0 16px rgba(255,255,255,.8))}
.ripple{position:absolute;inset:17%;border-radius:50%;border:1px solid rgba(140,190,255,.5);
  animation:ripple 3.6s ease-out infinite;pointer-events:none}
.ripple.r2{animation-delay:1.2s}.ripple.r3{animation-delay:2.4s}
@keyframes ripple{from{transform:scale(1);opacity:.7}to{transform:scale(1.55);opacity:0}}

/* ── B 版:canvas 铺满舞台 ── */
.anim canvas{position:absolute;inset:0;display:block}

/* ── C 版:智能体流程 ── */
/* 上沿留给手写标语(之前 12% 时流程标题和副标语撞在一起) */
.flow{position:absolute;inset:25% 3% 11% 3%}
.flow .fh{position:absolute;left:0;top:-9%;font-size:13px;color:var(--ink-2)}
.flow .fh b{color:#fff;font-size:17px;margin-right:10px}
.flow svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.step{position:absolute;transform:translate(-50%,-50%);width:min(46%,210px);padding:12px 14px;border-radius:13px;
  border:1px solid rgba(140,160,255,.25);background:rgba(12,16,38,.72);backdrop-filter:blur(6px);
  transition:border-color .4s,box-shadow .4s,background .4s}
.step small{display:block;font-size:11px;color:var(--ink-3);letter-spacing:.1em;margin-bottom:3px}
.step b{display:block;font-size:14.5px}
.step .ok{position:absolute;right:12px;top:12px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  font-size:12px;background:rgba(100,220,160,.15);color:#7ff0b8;opacity:0;transform:scale(.6);transition:all .35s}
.step.on{border-color:rgba(150,140,255,.85);background:rgba(40,34,110,.6);box-shadow:0 0 30px -6px rgba(130,110,255,.75)}
.step.done .ok{opacity:1;transform:scale(1)}
/* ── C 版:视频胶片轮播(CSS 3D 圆柱) ── */
.reel{position:absolute;left:50%;top:54%;width:220px;height:150px;transform:translate(-50%,-50%);perspective:1100px}
.reel .cyl{position:absolute;inset:0;transform-style:preserve-3d}
.reel .fr{position:absolute;inset:0;border-radius:12px;overflow:hidden;backface-visibility:hidden;
  border:1px solid rgba(140,170,255,.35);background:#0b1020;box-shadow:0 0 30px -10px rgba(80,120,255,.6)}
.reel .fr img{width:100%;height:100%;object-fit:cover;opacity:.55}
.reel .fr span{position:absolute;left:10px;right:10px;bottom:9px;font-size:12px;font-weight:600;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 6px #000}
.reel .fr.front{border-color:rgba(170,150,255,.95);box-shadow:0 0 40px -6px rgba(140,110,255,.9)}
.reel-cap{position:absolute;left:8%;right:8%;bottom:14%;text-align:center;font-size:14px;color:#dfe5ff;min-height:2.6em}
.reel-cap small{display:block;color:var(--ink-3);font-size:12px;margin-bottom:4px}
.reel-bar{position:absolute;left:20%;right:20%;bottom:10%;height:3px;border-radius:3px;background:rgba(150,170,230,.15);overflow:hidden}
.reel-bar i{display:block;height:100%;width:0;background:var(--cta)}

/* ── 版本切换(设计稿用) ── */
.vsw{position:fixed;z-index:70;left:16px;bottom:16px;display:flex;gap:4px;padding:4px;border-radius:999px;
  background:rgba(8,11,24,.88);border:1px solid var(--line-2);backdrop-filter:blur(10px);font-size:12.5px}
.vsw span{padding:6px 10px;color:var(--ink-3)}
.vsw a{padding:6px 12px;border-radius:999px;color:var(--ink-2);white-space:nowrap}
.vsw a[aria-current]{background:var(--cta);color:#fff}

/* ── 响应式 ── */
@media (max-width:1100px){
  .v7-in{grid-template-columns:minmax(0,1fr)}
  .stage{min-height:480px;order:-1}
  .v7-script{left:0}
}
@media (max-width:600px){
  .v7-cards{grid-template-columns:minmax(0,1fr)}
  /* 标题 + 两行描述 + 按钮 = 141px,140 装不下,按钮会压住第二行 */
  .v7c{height:176px}
  .v7c .tx{right:34%}.v7c.wide .tx{right:34%}
  .v7c .fx{width:40%;right:4px}
  .v7c .lg{display:none}
  .stage{min-height:400px}
  /* 流程版内容多:舞台加高,标题和末步都要避开上方标语、右下胶囊 */
  .stage:has(.flow){min-height:500px}
  .flow{inset:24% 0 14% 0}
  .flow .fh{top:-8%}
  /* 胶片版:帧缩小上移,给底下字幕让位 */
  .reel{width:170px;height:116px;top:44%}
  .reel-cap{bottom:15%;font-size:13px}
  .reel-bar{bottom:12%}
  /* 版本条:窄屏只留字母 + 名字,去掉「设计稿版本」 */
  .vsw span{display:none}
  .vsw a{padding:6px 9px;font-size:11.5px}
  .v7-script b{font-size:26px}
  .pill{height:34px;font-size:12px;padding:0 13px}
  .gtag{font-size:11.5px;padding:4px 9px}
  .sys .chip{font-size:11.5px;padding:5px 10px}
  .step{width:62%}
  .vsw{left:50%;transform:translateX(-50%);bottom:10px}
}
/* 三月机器上开着「减少动态效果」—— 规矩是放慢,不是停掉(见 修改记录) */
@media (prefers-reduced-motion:reduce){
  /* 上面那条特异性更高,会盖掉 v6.css 里的减速 → 这里重新放慢,延迟按同一比例换算 */
  .sys .globe3d{animation-duration:300s;animation-delay:-91.5s}
  .core::before{animation-duration:40s}
  .core::after{animation-duration:12s}
  .sys .nucleus{animation-duration:10s}
  .ripple{animation-duration:9s}
  .gnode::after{animation-duration:6s}
  .v7c{--k:2.6}
  .v7c .im img{transition:none}
}
