/* home-demo 八维模型 — fully ported, scoped to #products */
#products.hm-section{
  padding:0!important;
  background:var(--page,#F6FAFF);
  overflow:hidden;
  font-family:"Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
#products .hm-dim{scroll-margin-top:88px}
#products #ai{scroll-margin-top:88px}

@property --aiAng{syntax:"<angle>";initial-value:0deg;inherits:false}
#products{
  --blue-50:#EDF6FF;
  --blue-100:#D9EBFF;
  --blue-200:#B6D8FA;
  --blue-400:#3A93FF;
  --blue-600:#0A67D0;
  --blue-800:#0A4A96;
  --blue-900:#07305E;
  --gold:#F5C518;
  --orange:#FF8A00;
  --ink:#0F2233;
  --ink-2:#3C5C7A;
  --muted:#7089A3;
  --line:#E1EEFB;
  --surface:#FFFFFF;
  --page:#F6FAFF;
  --r-sm:12px;
  --r-md:18px;
  --r-lg:26px;
  --r-xl:34px;
  --sh-1:0 2px 10px rgba(10,74,150,.05);
  --sh-2:0 10px 30px rgba(10,74,150,.09);
  --sh-3:0 20px 48px rgba(10,74,150,.13);
  --sh-4:0 30px 70px rgba(10,74,150,.18);
  --ease:cubic-bezier(.4,0,.2,1);
  --pop:cubic-bezier(.34,1.56,.64,1);
}





#products .hm-wrap{max-width:1200px;margin:0 auto;padding:0 20px}

/* ============ HERO ============ */
#products .hm-head{position:relative;padding:72px 20px 40px;text-align:center;overflow:hidden}
#products .hm-head::before{
  content:"";position:absolute;top:-42%;left:50%;transform:translateX(-50%);
  width:min(1000px,150vw);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(58,147,255,.14) 0%,rgba(58,147,255,.05) 42%,transparent 68%);
  pointer-events:none;
}
#products .hm-head::after{
  content:"";position:absolute;left:-12%;top:2%;width:440px;height:440px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,197,24,.13) 0%,transparent 68%);pointer-events:none;
}
#products .hm-badge{
  position:relative;display:inline-flex;align-items:center;gap:8px;padding:8px 18px;
  background:rgba(255,255,255,.9);border:1px solid var(--blue-100);border-radius:999px;
  font-size:13px;font-weight:500;color:var(--blue-600);box-shadow:var(--sh-1);
  backdrop-filter:blur(10px);animation:hm-fadeDown .8s var(--ease) both;
}
#products .hm-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--blue-400)}
#products .hm-head h1{
  position:relative;margin:22px 0 16px;font-size:clamp(28px,5.6vw,46px);font-weight:700;
  letter-spacing:-.5px;line-height:1.28;color:var(--blue-900);animation:hm-fadeUp .8s var(--ease) .08s both;
}
#products .hm-head h1 em{
  font-style:normal;
  background:linear-gradient(115deg,var(--blue-800) 0%,var(--blue-600) 55%,var(--blue-400) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
#products .hm-sub{
  position:relative;max-width:760px;margin:0 auto 30px;font-size:clamp(14px,2.2vw,16.5px);
  color:var(--ink-2);line-height:1.9;animation:hm-fadeUp .8s var(--ease) .16s both;
}
#products .hm-meta{
  position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;
  font-size:13.5px;color:var(--muted);animation:hm-fadeUp .8s var(--ease) .24s both;
}
#products .hm-meta span{display:inline-flex;align-items:center;gap:7px}
#products .hm-meta span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue-400)}

/* ============ LAYER 1 · ORBIT ============ */
#products .hm-matrix{padding:36px 0 96px;position:relative}
#products .hm-orbit{display:grid;grid-template-columns:1fr;gap:20px;align-items:center}
@media(min-width:1024px){
  #products .hm-orbit{grid-template-columns:minmax(0,1fr) minmax(280px,360px) minmax(0,1fr);gap:26px}
}
#products .hm-orbit-col{display:grid;gap:14px}
@media(min-width:640px) and (max-width:1023px){#products .hm-orbit-col{grid-template-columns:1fr 1fr;gap:14px}}
#products .hm-orbit-core{order:-1;display:flex;justify-content:center}
@media(min-width:1024px){#products .hm-orbit-core{order:0}}
@media(max-width:1023px){#products .hm-orbit-core{order:-1}}

#products .hm-card{
  position:relative;display:flex;align-items:center;gap:14px;
  padding:16px 18px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);box-shadow:var(--sh-1);cursor:pointer;text-align:right;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
  opacity:0;transform:translateY(26px) scale(.95);
  outline:none;
}
#products .hm-card.in{animation:hm-cardIn .62s var(--pop) forwards;animation-delay:var(--d,0s)}
#products .hm-card::before{
  content:"";position:absolute;inset:0;border-radius:var(--r-md);
  background:linear-gradient(120deg,rgba(58,147,255,.07),transparent 60%);
  opacity:0;transition:opacity .3s var(--ease);pointer-events:none;
}
#products .hm-card:hover,#products .hm-card:focus-visible{transform:translateY(-6px);box-shadow:var(--sh-3);border-color:var(--blue-200)}
#products .hm-card:hover::before,#products .hm-card:focus-visible::before{opacity:1}
#products .hm-card:focus-visible{box-shadow:var(--sh-3),0 0 0 3px rgba(58,147,255,.35)}
#products .hm-card.is-ai{border-color:rgba(10,103,208,.35);background:linear-gradient(180deg,#fff,#f5faff)}
#products .hm-card.is-ai::after{
  content:"";position:absolute;inset:-1px;border-radius:calc(var(--r-md) + 1px);
  pointer-events:none;z-index:-1;
  box-shadow:0 0 0 1px rgba(10,103,208,.18),0 10px 28px rgba(10,103,208,.08);
}
#products .hm-card.is-ai .hm-shimmer{
  position:absolute;inset:0;border-radius:var(--r-md);pointer-events:none;overflow:hidden;
}
#products .hm-card.is-ai .hm-shimmer::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 25%,rgba(58,147,255,.1) 50%,transparent 75%);
  background-size:250% 100%;animation:hm-sweep 3.4s var(--ease) infinite;
}
#products .hm-ai-tag{
  position:absolute;top:-9px;right:14px;padding:2px 9px;border-radius:999px;
  background:#0A67D0;color:#fff;
  font-size:10.5px;font-weight:700;letter-spacing:.6px;box-shadow:0 3px 10px rgba(10,103,208,.22);
}
#products .o-
.hm-card h3{font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.4}
#products .hm-card .hm-osub{font-size:12.5px;color:var(--blue-600);font-weight:500;margin-top:2px}
#products .hm-card .hm-odesc{font-size:12px;color:var(--muted);line-height:1.6;margin-top:5px}
#products .hm-num{
  flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  font-size:15px;font-weight:700;color:var(--blue-600);
  background:linear-gradient(150deg,var(--blue-50),#fff);border:1px solid var(--blue-100);
  position:relative;z-index:1;transition:all .3s var(--ease);
}
#products .hm-card:hover .hm-num,#products .hm-card:focus-visible .hm-num{
  background:linear-gradient(140deg,var(--blue-600),var(--blue-800));color:#fff;border-color:transparent;
  transform:scale(1.06);
}
#products .hm-orbit-col.left .hm-card{flex-direction:row}
#products .hm-orbit-col.right .hm-card{flex-direction:row-reverse;text-align:left}
#products .hm-orbit-col.left .hm-card .hm-beam,#products .hm-orbit-col.right .hm-card .hm-beam{
  position:absolute;top:50%;height:2px;width:26px;transform:translateY(-50%) scaleX(0);
  background:linear-gradient(90deg,rgba(58,147,255,.1),var(--blue-400));border-radius:2px;
}
#products .hm-orbit-col.left .hm-card .hm-beam{right:-26px;transform-origin:left}
#products .hm-orbit-col.right .hm-card .hm-beam{left:-26px;transform-origin:right;background:linear-gradient(270deg,rgba(58,147,255,.1),var(--blue-400))}
#products .hm-card.in .hm-beam{animation:hm-beamOut .5s var(--ease) forwards;animation-delay:calc(var(--d,0s) + .34s)}
@media(max-width:1023px){
  #products .hm-orbit-col.left .hm-card,#products .hm-orbit-col.right .hm-card{flex-direction:row-reverse;text-align:left}
  #products .hm-orbit-col .hm-card .hm-beam{display:none}
}

/* core */
#products .hm-core{position:relative;width:100%;max-width:400px;margin:0 auto;display:flex;align-items:center;justify-content:center}
#products .hm-core-glow{
  position:absolute;inset:-8%;border-radius:50%;
  background:radial-gradient(circle,rgba(58,147,255,.2) 0%,rgba(58,147,255,.06) 46%,transparent 70%);
  animation:hm-breathe 5s var(--ease) infinite;
}
#products .hm-core-svg{position:relative;width:100%;height:auto;animation:hm-coreIn 1s var(--pop) both}
#products .hm-ring-1{transform-origin:210px 196px;animation:hm-spin 26s linear infinite}
#products .hm-ring-2{transform-origin:210px 196px;animation:hm-spin 18s linear infinite reverse}
#products .hm-nodes{transform-origin:210px 196px;animation:hm-spin 26s linear infinite}
#products .hm-core-caption{
  position:absolute;bottom:2%;left:50%;transform:translateX(-50%);
  font-size:12.5px;font-weight:700;letter-spacing:2px;color:var(--blue-600);
  background:rgba(255,255,255,.9);border:1px solid var(--blue-100);border-radius:999px;
  padding:6px 16px;white-space:nowrap;box-shadow:var(--sh-1);backdrop-filter:blur(8px);
}

/* ============ LAYER 2 · DIMENSIONS ============ */
#products .hm-dims{padding:0 0 80px}
#products .hm-dim{padding:64px 0;position:relative}
#products .hm-dim + .hm-dim{border-top:1px solid var(--line)}
#products .hm-dim-grid{display:grid;grid-template-columns:1fr;gap:34px;align-items:center}
@media(min-width:960px){#products .hm-dim-grid{grid-template-columns:1fr 1fr;gap:58px}}
#products .hm-dim-copy{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
#products .hm-dim-art{opacity:0;transform:translateY(28px) scale(.97);transition:opacity .8s var(--ease) .1s,transform .8s var(--ease) .1s}
#products .hm-dim.in .hm-dim-copy,#products .hm-dim.in .hm-dim-art{opacity:1;transform:none}
@media(min-width:960px){#products .hm-dim.rev .hm-dim-copy{order:2}}
#products .hm-dim-badge{
  display:inline-flex;align-items:center;gap:9px;padding:6px 15px;border-radius:999px;
  background:var(--blue-50);border:1px solid var(--blue-100);color:var(--blue-600);
  font-size:12.5px;font-weight:700;letter-spacing:1.4px;margin-bottom:16px;
}
#products .hm-dim-badge i{width:7px;height:7px;border-radius:50%;background:var(--blue-400);font-style:normal}
#products .hm-dim h3{font-size:clamp(21px,3.2vw,28px);font-weight:700;color:var(--blue-900);line-height:1.35;letter-spacing:-.3px}
#products .hm-dim .hm-dim-sub{margin-top:6px;font-size:15px;font-weight:500;color:var(--blue-600)}
#products .hm-dim .hm-dim-p{margin-top:16px;font-size:14.5px;color:var(--ink-2);line-height:1.95}
#products .hm-sub-list{list-style:none;margin-top:24px;display:grid;gap:10px}
@media(min-width:560px){#products .hm-sub-list{grid-template-columns:1fr 1fr}}
#products .hm-sub-list li{
  display:flex;gap:11px;align-items:flex-start;padding:13px 15px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-sm);transition:all .25s var(--ease);
}
#products .hm-sub-list li:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--blue-200)}
#products .hm-sub-list .tick{
  flex:0 0 auto;width:20px;height:20px;border-radius:7px;margin-top:2px;
  background:linear-gradient(140deg,var(--blue-600),var(--blue-800));display:grid;place-items:center;
}
#products .hm-sub-list .tick svg{width:12px;height:12px;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
#products .hm-sub-list b{display:block;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.5}
#products .hm-sub-list em{display:block;font-style:normal;font-size:12px;color:var(--muted);line-height:1.6;margin-top:2px}
#products .hm-dim-art-inner{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-2);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
#products .hm-dim-art-inner:hover{transform:translateY(-6px);box-shadow:var(--sh-4)}
#products .hm-dim-art-inner svg{width:100%;height:auto;display:block}
#products .hm-dim-art.is-ai .hm-dim-art-inner{border-color:rgba(10,103,208,.28);box-shadow:0 16px 40px rgba(10,103,208,.12)}
#products .hm-dim-art.is-ai .hm-art-glow{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 25%,rgba(58,147,255,.1) 50%,transparent 75%);
  background-size:250% 100%;animation:hm-sweep 4s var(--ease) infinite;
}
#products .hm-art-tag{
  position:absolute;top:14px;left:14px;padding:4px 11px;border-radius:999px;
  background:rgba(255,255,255,.92);border:1px solid var(--blue-100);color:var(--blue-600);
  font-size:11.5px;font-weight:700;letter-spacing:.5px;backdrop-filter:blur(6px);
}
#products .hm-art-tag.gold{background:#0A67D0;color:#fff;border-color:transparent}

/* ============ ANIM ============ */
@keyframes hm-fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes hm-fadeDown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes hm-cardIn{from{opacity:0;transform:translateY(26px) scale(.95)}to{opacity:1;transform:none}}
@keyframes hm-coreIn{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
@keyframes hm-beamOut{from{transform:translateY(-50%) scaleX(0)}to{transform:translateY(-50%) scaleX(1)}}
@keyframes hm-spin{to{transform:rotate(360deg)}}
@keyframes hm-aiSpin{to{--aiAng:360deg}}
@keyframes hm-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.25)}}
@keyframes hm-breathe{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
@keyframes hm-sweep{0%{background-position:220% 0}100%{background-position:-120% 0}}
@media(prefers-reduced-motion:reduce){
  #products *,#products *::before,#products *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  #products .hm-card,#products .hm-dim-copy,#products .hm-dim-art{opacity:1!important;transform:none!important}
}
