/* =========================================================
   华美博扬 HUAMEI BOYANG — Brand Site
   Design tokens / Reset / Layout system
   ========================================================= */

:root{
  --ink:#061121;
  --bg:#0A1B33;
  --bg-2:#08162766;
  --panel:#0C2140;
  --panel-2:#0E2549;
  --line:#1E4574;
  --line-soft:#173558;

  --blue:#0B84FF;
  --blue-dim:#0A6BD0;
  --cyan:#00C0FF;
  --red:#FF3B3B;

  --white:#F2F5F8;
  --muted:#8FA6C0;
  --muted-2:#6C86A3;

  --r-s:6px;
  --r-m:14px;
  --r-l:22px;

  --gut:64px;
  --maxw:1440px;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.4,0,.2,1);

  --ff:"PingFang SC","HarmonyOS Sans SC","Noto Sans SC","Source Han Sans SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ff-lat:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scrollbar-color:#25456d var(--ink);
}

body{
  margin:0;
  background:var(--bg);
  color:var(--white);
  font-family:var(--ff);
  font-size:16px;
  line-height:1.75;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

body.is-locked{overflow:hidden;}

img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
input,textarea,select{font:inherit;color:inherit;}
::selection{background:var(--blue);color:#fff;}

/* scrollbar */
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:var(--ink);}
::-webkit-scrollbar-thumb{background:#25456d;border-radius:9px;}
::-webkit-scrollbar-thumb:hover{background:var(--blue);}

/* ---------- layout primitives ---------- */
.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gut);
}

.sec{position:relative;padding-block:clamp(88px,9vw,168px);scroll-margin-top:88px;}
.sec--tight{padding-block:clamp(64px,6vw,104px);}
.sec--line{border-top:1px solid var(--line-soft);}

.grid{display:grid;gap:clamp(18px,2vw,32px);}

/* ---------- type ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--ff-lat);
  font-size:11px;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;
  color:var(--cyan);
}
.eyebrow::before{
  content:"";width:24px;height:1px;background:var(--cyan);
  opacity:.7;
}
.eyebrow--red{color:var(--red);}
.eyebrow--red::before{background:var(--red);}

.h-xl{
  font-size:clamp(44px,7.2vw,104px);
  line-height:.96;
  font-weight:800;
  letter-spacing:-.045em;
  margin:0;
}
.h-l{
  font-size:clamp(30px,4.2vw,58px);
  line-height:1.1;
  font-weight:800;
  letter-spacing:-.035em;
  margin:0;
}
.h-m{
  font-size:clamp(22px,2.4vw,32px);
  line-height:1.3;
  font-weight:700;
  letter-spacing:-.02em;
  margin:0;
}
.h-s{
  font-size:clamp(16px,1.3vw,19px);
  line-height:1.45;
  font-weight:700;
  letter-spacing:-.01em;
  margin:0;
}

.lead{
  font-size:clamp(15px,1.25vw,18px);
  line-height:1.85;
  color:#B9C9DC;
  font-weight:400;
}
.tiny{
  font-family:var(--ff-lat);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted-2);font-weight:500;
}
.mono-num{
  font-family:var(--ff-lat);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.03em;
}

/* ---------- reveal ---------- */
[data-rv]{
  opacity:0;
  transform:translate3d(0,28px,0);
  transition:opacity .9s var(--ease),transform 1s var(--ease);
  will-change:opacity,transform;
}
[data-rv].is-in{opacity:1;transform:none;}
/* 静态验收：?noanim=1 */
.no-anim *,.no-anim *::before,.no-anim *::after{
  transition:none !important;
  animation:none !important;
}
.no-anim [data-rv]{opacity:1 !important;transform:none !important;clip-path:none !important;}
[data-rv="left"]{transform:translate3d(-34px,0,0);}
[data-rv="right"]{transform:translate3d(34px,0,0);}
[data-rv="scale"]{transform:scale(.955);opacity:0;}
[data-rv="clip"]{
  clip-path:inset(0 0 100% 0);
  opacity:1;transform:none;
  transition:clip-path 1.1s var(--ease);
}
[data-rv="clip"].is-in{clip-path:inset(0 0 0 0);}

/* ---------- buttons ---------- */
.btn{
  --b:var(--blue);
  position:relative;
  display:inline-flex;align-items:center;gap:12px;
  height:54px;padding:0 26px;
  border-radius:100px;
  background:var(--b);
  color:#fff;
  font-size:14px;font-weight:600;letter-spacing:.02em;
  overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .3s;
  box-shadow:0 10px 34px -12px color-mix(in srgb,var(--b) 80%,transparent);
  isolation:isolate;
}
.btn i{
  font-style:normal;
  transition:transform .45s var(--ease);
  display:inline-block;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 44px -14px color-mix(in srgb,var(--b) 90%,transparent);}
.btn:hover i{transform:translateX(5px);}
.btn:active{transform:translateY(0) scale(.985);}

.btn--ghost{
  background:transparent;
  border:1px solid var(--line);
  color:var(--white);
  box-shadow:none;
}
.btn--ghost:hover{border-color:var(--blue);background:#0B84FF14;box-shadow:none;}

.btn--red{--b:var(--red);}

.link-arrow{
  display:inline-flex;align-items:center;gap:9px;
  font-size:13px;font-weight:600;letter-spacing:.04em;
  color:var(--cyan);
  border-bottom:1px solid #00C0FF33;
  padding-bottom:3px;
  transition:color .3s,border-color .3s,gap .35s var(--ease);
}
.link-arrow:hover{color:#fff;border-color:#fff;gap:14px;}

/* ---------- media / frame ---------- */
.frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--r-m);
  background:var(--panel);
  isolation:isolate;
}
.frame img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--ease),filter .8s var(--ease);
}
.frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,#0A1B3300 30%,#061121B8 100%);
  pointer-events:none;
}
.frame--flat::after{display:none;}
.frame--tint::before{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(135deg,#0B84FF2E,#0A1B3366 60%,#00C0FF1A);
  mix-blend-mode:screen;
  pointer-events:none;
}

/* =========================================================
   CURSOR + PROGRESS
   ========================================================= */
.cursor,.cursor-dot{
  position:fixed;top:0;left:0;z-index:9999;
  pointer-events:none;border-radius:50%;
  will-change:transform;
}
.cursor{
  width:38px;height:38px;
  border:1px solid #00C0FF66;
  transition:width .35s var(--ease),height .35s var(--ease),background .35s,border-color .35s,opacity .3s;
  mix-blend-mode:screen;
}
.cursor-dot{
  width:5px;height:5px;background:var(--cyan);
  transition:opacity .3s,transform .2s;
}
.cursor.is-hot{
  width:74px;height:74px;
  background:#0B84FF1F;
  border-color:var(--cyan);
}
body.no-cursor .cursor,body.no-cursor .cursor-dot{opacity:0;}

.progress{
  position:fixed;top:0;left:0;z-index:1002;
  height:2px;width:0%;
  background:linear-gradient(90deg,var(--blue),var(--cyan) 70%,var(--red));
  box-shadow:0 0 14px #0B84FFAA;
  transition:width .12s linear;
}

/* =========================================================
   TOP BAR + NAV
   ========================================================= */
.topbar{
  position:relative;z-index:1001;
  height:38px;
  background:#061121;
  border-bottom:1px solid var(--line-soft);
  overflow:hidden;
  display:flex;align-items:center;
  font-size:11.5px;letter-spacing:.05em;
  color:#9FB5CC;
}
.topbar__track{
  display:flex;
  white-space:nowrap;
  animation:marquee 52s linear infinite;
  will-change:transform;
}
.topbar__grp{
  display:flex;gap:56px;
  padding-right:56px;
  flex:0 0 auto;
}
.topbar:hover .topbar__track{animation-play-state:paused;}
.topbar__track span{display:inline-flex;align-items:center;gap:9px;}
.topbar__track span{display:inline-flex;align-items:center;gap:9px;}
.dot-live{
  width:6px;height:6px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 0 #FF3B3B99;
  animation:pulse 2s infinite;
  flex:0 0 auto;
}
@keyframes pulse{
  70%{box-shadow:0 0 0 8px #FF3B3B00;}
  100%{box-shadow:0 0 0 0 #FF3B3B00;}
}
@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

.nav{
  position:sticky;top:0;z-index:1000;
  height:76px;
  display:flex;align-items:center;
  background:#0A1B33CC;
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid transparent;
  transition:border-color .4s,background .4s,height .4s;
}
.nav.is-stuck{border-bottom-color:var(--line-soft);background:#081527D9;height:68px;}

.nav__in{
  width:100%;max-width:var(--maxw);margin-inline:auto;
  padding-inline:var(--gut);
  display:flex;align-items:center;gap:40px;
}

.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto;}
.brand__mark{
  width:38px;height:38px;border-radius:9px;
  background:linear-gradient(150deg,var(--blue),#0A5FBE 60%,var(--red));
  position:relative;
  display:grid;place-items:center;
  font-family:var(--ff-lat);font-size:14px;font-weight:800;
  letter-spacing:-.06em;color:#fff;
  box-shadow:0 8px 22px -10px #0B84FFCC;
  overflow:hidden;
}
.brand__mark::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(200deg,#ffffff3d,transparent 45%);
}
.brand__txt{display:flex;flex-direction:column;line-height:1.15;}
.brand__cn{font-size:17px;font-weight:800;letter-spacing:.12em;}
.brand__en{font-family:var(--ff-lat);font-size:8.5px;letter-spacing:.3em;color:var(--muted-2);font-weight:600;margin-top:3px;}

.nav__menu{display:flex;align-items:center;gap:4px;margin-left:auto;}
.nav__link{
  position:relative;
  padding:9px 15px;border-radius:100px;
  font-size:13.5px;font-weight:500;letter-spacing:.04em;
  color:#C6D5E5;
  transition:color .3s,background .3s;
}
.nav__link:hover{color:#fff;background:#FFFFFF0D;}
.nav__link.is-active{color:#fff;}
.nav__link.is-active::after{
  content:"";position:absolute;left:50%;bottom:1px;
  width:16px;height:2px;border-radius:2px;
  background:var(--cyan);transform:translateX(-50%);
}

.nav__side{display:flex;align-items:center;gap:14px;flex:0 0 auto;}
.lang{
  display:flex;align-items:center;
  border:1px solid var(--line);border-radius:100px;
  overflow:hidden;height:34px;padding:2px;
  background:#06112166;
}
.lang button,
.lang a,
.lang span{
  display:inline-flex;align-items:center;justify-content:center;
  padding:0 11px;height:100%;border-radius:100px;
  font-family:var(--ff-lat);font-size:11px;font-weight:600;letter-spacing:.1em;
  color:var(--muted-2);text-decoration:none;
  transition:color .3s,background .3s;
}
.lang button.is-on,
.lang a.is-on,
.lang span.is-on{background:var(--blue);color:#fff;}

.nav__cta{
  height:40px;padding:0 20px;border-radius:100px;
  display:inline-flex;align-items:center;gap:9px;
  background:#fff;color:#0A1B33;
  font-size:13px;font-weight:700;letter-spacing:.03em;
  transition:background .3s,color .3s,transform .4s var(--ease);
}
.nav__cta:hover{background:var(--red);color:#fff;transform:translateY(-1px);}

.burger{display:none;width:40px;height:40px;position:relative;}
.burger span{
  position:absolute;left:9px;width:22px;height:1.6px;background:#fff;
  border-radius:2px;transition:transform .45s var(--ease),opacity .3s,width .3s;
}
.burger span:nth-child(1){top:16px;}
.burger span:nth-child(2){top:22px;width:15px;}
.burger span:nth-child(3){top:28px;}
body.menu-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg);}
body.menu-open .burger span:nth-child(2){opacity:0;}
body.menu-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:999;
  background:#061121F7;
  backdrop-filter:blur(20px);
  padding:120px var(--gut) 40px;
  display:flex;flex-direction:column;gap:6px;
  opacity:0;visibility:hidden;
  transition:opacity .45s var(--ease),visibility .45s;
  overflow-y:auto;
}
body.menu-open .drawer{opacity:1;visibility:visible;}
.drawer a{
  font-size:26px;font-weight:800;letter-spacing:-.02em;
  padding:14px 0;border-bottom:1px solid var(--line-soft);
  opacity:0;transform:translateY(18px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),color .3s;
}
body.menu-open .drawer a{opacity:1;transform:none;}
.drawer a:hover{color:var(--cyan);}
.drawer__foot{margin-top:auto;padding-top:34px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted);}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  padding-top:clamp(48px,6vw,96px);
  padding-bottom:clamp(56px,7vw,110px);
  overflow:hidden;
}
.hero__bg{
  position:absolute;inset:0;z-index:0;
  pointer-events:none;
}
.hero__bg img{
  width:52%;height:68%;
  object-fit:cover;
  position:absolute;right:-8%;top:0;
  opacity:.42;
  mask-image:radial-gradient(110% 95% at 68% 38%,#000 18%,transparent 74%);
  -webkit-mask-image:radial-gradient(110% 95% at 68% 38%,#000 18%,transparent 74%);
  transform:scale(1.02);
}
.hero__grid{
  position:absolute;inset:0;
  background-image:linear-gradient(#1E457426 1px,transparent 1px),linear-gradient(90deg,#1E457426 1px,transparent 1px);
  background-size:88px 88px;
  mask-image:radial-gradient(90% 70% at 50% 10%,#000 10%,transparent 72%);
  -webkit-mask-image:radial-gradient(90% 70% at 50% 10%,#000 10%,transparent 72%);
}
.hero__glow{
  position:absolute;width:900px;height:900px;border-radius:50%;
  background:radial-gradient(circle,#0B84FF3A,transparent 62%);
  filter:blur(40px);
  left:-18%;top:-32%;
  pointer-events:none;
}

.hero__in{position:relative;z-index:2;}

.hero__top{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin-bottom:clamp(30px,4vw,58px);
  flex-wrap:wrap;
}
.hero__stamp{
  display:flex;align-items:center;gap:14px;
  padding:8px 16px 8px 10px;
  border:1px solid var(--line);border-radius:100px;
  background:#06112166;
  font-size:11.5px;color:#A9BED6;letter-spacing:.06em;
}
.hero__stamp b{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:22px;height:22px;padding:0 7px;
  border-radius:100px;background:var(--red);
  color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em;
}

.hero__title{position:relative;}
.hero__title .h-xl{display:block;}
.hero__title .l1{transform:translateX(0);}
.hero__title .l2{
  padding-left:.92em;
  background:linear-gradient(96deg,#FFFFFF 12%,#9CC9F5 46%,var(--cyan) 88%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero__title .l3{padding-left:.18em;display:flex;align-items:center;gap:.36em;flex-wrap:wrap;}
.hero__title .l3 em{
  font-style:normal;
  color:var(--red);
  position:relative;
}
.hero__title .l3 em::after{
  content:"";position:absolute;left:0;right:0;bottom:.06em;height:.06em;
  background:var(--red);opacity:.5;border-radius:2px;
}
.hero__title .cursor-blink{
  display:inline-block;width:.09em;height:.74em;
  background:var(--red);
  margin-left:.06em;
  animation:blink 1.1s steps(1) infinite;
  vertical-align:-.02em;
}
@keyframes blink{50%{opacity:0;}}

/* ghost number */
.hero__ghost{
  position:absolute;
  right:2%;top:-6%;
  font-family:var(--ff-lat);
  font-size:clamp(180px,26vw,360px);
  line-height:.8;font-weight:800;
  letter-spacing:-.06em;
  color:transparent;
  -webkit-text-stroke:1px #2E5C8F;
  opacity:.55;
  pointer-events:none;
  z-index:1;
  user-select:none;
}

.hero__body{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4vw,64px);
  align-items:end;
  margin-top:clamp(34px,4.6vw,66px);
}
.hero__copy{max-width:520px;}
.hero__copy .lead{margin:0 0 30px;}
.hero__actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}

.hero__meta{
  display:flex;gap:clamp(20px,3vw,48px);
  margin-top:38px;padding-top:26px;
  border-top:1px solid var(--line-soft);
  flex-wrap:wrap;
}
.hero__meta div{display:flex;flex-direction:column;gap:2px;}
.hero__meta b{
  font-family:var(--ff-lat);font-size:clamp(22px,2.4vw,30px);
  font-weight:800;letter-spacing:-.04em;line-height:1;
}
.hero__meta span{font-size:11.5px;color:var(--muted-2);letter-spacing:.08em;}

/* live monitor panel */
.monitor{
  position:relative;
  border:1px solid var(--line);
  border-radius:var(--r-m);
  background:linear-gradient(160deg,#0C2140E6,#071426E6);
  backdrop-filter:blur(10px);
  padding:18px 20px 20px;
  box-shadow:0 30px 80px -40px #000;
  overflow:hidden;
}
.monitor::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  opacity:.6;
}
.monitor__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-family:var(--ff-lat);font-size:10.5px;letter-spacing:.18em;
  color:#93AAC2;text-transform:uppercase;
  padding-bottom:14px;border-bottom:1px solid var(--line-soft);
}
.monitor__head .live{display:inline-flex;align-items:center;gap:7px;color:var(--red);font-weight:700;}
.monitor__big{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;padding:16px 0 6px;
}
.monitor__big b{
  font-family:var(--ff-lat);font-size:clamp(30px,3.4vw,42px);
  font-weight:800;letter-spacing:-.04em;line-height:1;
  font-variant-numeric:tabular-nums;
}
.monitor__big span{font-size:11.5px;color:var(--muted-2);}

.bars{
  display:flex;align-items:flex-end;gap:5px;height:64px;margin:14px 0 4px;
}
.bars i{
  flex:1;height:100%;border-radius:2px 2px 0 0;
  background:linear-gradient(180deg,var(--cyan),#0B84FF33);
  transform-origin:bottom;
  transform:scaleY(.55);
  animation:barPulse 3.4s var(--ease-io) infinite;
}
.bars i:nth-child(3n){height:82%;}
.bars i:nth-child(4n){height:64%;}
.bars i:nth-child(5n){height:91%;}
.bars i:nth-child(7n){height:52%;}
@keyframes barPulse{
  0%,100%{transform:scaleY(.45);opacity:.55;}
  50%{transform:scaleY(1);opacity:1;}
}
.no-anim .bars i{opacity:.85;}

.monitor__rows{display:flex;flex-direction:column;gap:9px;margin-top:14px;}
.monitor__row{
  display:flex;align-items:center;gap:10px;
  font-size:11.5px;color:#A9BED6;
  padding:8px 10px;border-radius:8px;
  background:#FFFFFF08;
  border:1px solid #FFFFFF0A;
}
.monitor__row b{
  font-family:var(--ff-lat);font-size:9.5px;letter-spacing:.1em;
  color:var(--cyan);flex:0 0 auto;
}
.monitor__row span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.monitor__row em{font-style:normal;color:var(--muted-2);font-family:var(--ff-lat);font-size:10px;}

/* 右侧竖排标注 */
.hero__rail{
  position:absolute;right:18px;top:50%;transform:translateY(-50%);
  z-index:3;display:flex;flex-direction:column;align-items:center;gap:14px;
  writing-mode:vertical-rl;
  font-family:var(--ff-lat);font-size:9.5px;letter-spacing:.34em;
  color:#4E7099;text-transform:uppercase;
  pointer-events:none;
}
.hero__rail::before,.hero__rail::after{
  content:"";width:1px;height:42px;background:linear-gradient(#1E4574,transparent);
}
.hero__rail::after{background:linear-gradient(transparent,#1E4574);}
@media (max-width:1180px){.hero__rail{display:none;}}

/* scroll cue */
.scroll-cue{
  position:absolute;left:var(--gut);bottom:26px;
  display:flex;align-items:center;gap:12px;
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.22em;
  color:var(--muted-2);text-transform:uppercase;
  z-index:3;
}
.scroll-cue i{
  width:1px;height:44px;background:linear-gradient(var(--cyan),transparent);
  position:relative;overflow:hidden;display:block;
}
.scroll-cue i::after{
  content:"";position:absolute;left:0;top:-44px;width:1px;height:44px;
  background:var(--cyan);
  animation:cueDown 2.2s var(--ease-io) infinite;
}
@keyframes cueDown{to{top:44px;}}

/* =========================================================
   STAT BAND
   ========================================================= */
.band{
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  background:linear-gradient(180deg,#08162700,#0C214066 50%,#08162700);
}
.band__grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;
}
.stat{
  padding:clamp(30px,4vw,52px) clamp(16px,2vw,34px);
  border-right:1px solid var(--line-soft);
  position:relative;
  overflow:hidden;
  transition:background .5s;
}
.stat:last-child{border-right:0;}
.stat:hover{background:#0B84FF0A;}
.stat__n{
  font-family:var(--ff-lat);
  font-size:clamp(34px,4.6vw,60px);
  font-weight:800;letter-spacing:-.05em;line-height:1;
  display:flex;align-items:baseline;gap:2px;
}
.stat__n small{font-size:.42em;font-weight:700;color:var(--blue);letter-spacing:0;}
.stat__l{margin-top:14px;font-size:12.5px;color:#A9BED6;letter-spacing:.06em;}
.stat__s{margin-top:4px;font-size:11px;color:var(--muted-2);}
.stat__idx{
  position:absolute;right:14px;top:14px;
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.14em;
  color:#3A5E85;
}

/* =========================================================
   SECTION HEAD (shared)
   ========================================================= */
.sh{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:clamp(20px,4vw,64px);
  margin-bottom:clamp(38px,5vw,72px);
  flex-wrap:wrap;
}
.sh__l{max-width:720px;}
.sh__l .eyebrow{margin-bottom:18px;}
.sh__l .h-l{margin-bottom:16px;}
.sh__l p{margin:0;max-width:560px;color:#A9BED6;font-size:15px;line-height:1.85;}
.sh__r{display:flex;align-items:center;gap:12px;padding-bottom:6px;}

/* =========================================================
   ABOUT SPLIT
   ========================================================= */
.split{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:clamp(30px,5vw,80px);
  align-items:center;
}
.split--rev{grid-template-columns:1.08fr .92fr;}
.split--rev .split__media{order:2;}

.split__media{position:relative;}
.split__media .frame{aspect-ratio:4/3.1;border-radius:var(--r-l);}
.split__media .frame img{transform:scale(1.02);}
.split__media:hover .frame img{transform:scale(1.06);}
.split__float{
  position:absolute;right:-18px;bottom:-26px;
  padding:16px 20px;border-radius:12px;
  background:#0C2140F2;border:1px solid var(--line);
  box-shadow:0 24px 60px -24px #000;
  backdrop-filter:blur(8px);
  display:flex;align-items:center;gap:14px;
  max-width:280px;
}
.split__float b{
  font-family:var(--ff-lat);font-size:26px;font-weight:800;
  letter-spacing:-.04em;color:var(--cyan);line-height:1;
}
.split__float span{font-size:11.5px;color:#A9BED6;line-height:1.4;}

.ability{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:34px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:12px;overflow:hidden;}
.ability div{
  background:var(--bg);padding:18px 20px;
  transition:background .4s;
}
.ability div:hover{background:#0C2140;}
.ability b{display:block;font-size:13.5px;margin-bottom:4px;}
.ability span{font-size:11.5px;color:var(--muted-2);line-height:1.6;display:block;}

/* =========================================================
   SERVICE CARDS
   ========================================================= */
.svc{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,1.6vw,22px);
}
.svc__card{
  position:relative;
  border:1px solid var(--line-soft);
  border-radius:var(--r-l);
  background:linear-gradient(170deg,#0C2140CC,#08162799);
  padding:clamp(22px,2.2vw,32px);
  min-height:270px;
  display:flex;flex-direction:column;
  overflow:hidden;
  transition:border-color .5s,transform .6s var(--ease),background .5s;
  transform-style:preserve-3d;
}
.svc__card::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),#0B84FF1F,transparent 70%);
  opacity:0;transition:opacity .5s;
  pointer-events:none;
}
.svc__card:hover{border-color:#2E6BAA;transform:translateY(-4px);}
.svc__card:hover::before{opacity:1;}

.svc__card--wide{grid-column:span 2;}
.svc__img{
  position:absolute;inset:0;z-index:0;
  opacity:.26;
  transition:opacity .7s var(--ease),transform 1.2s var(--ease);
}
.svc__img img{width:100%;height:100%;object-fit:cover;}
.svc__card:hover .svc__img{opacity:.34;transform:scale(1.05);}
.svc__card::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(160deg,#0C2140E0 20%,#081627C0 100%);
}
.svc__inner{position:relative;z-index:2;display:flex;flex-direction:column;height:100%;flex:1;}

.svc__no{
  font-family:var(--ff-lat);font-size:11px;font-weight:600;
  letter-spacing:.18em;color:#5C83AE;
  display:flex;align-items:center;gap:10px;
}
.svc__no::after{content:"";flex:1;height:1px;background:#1E457466;}
.svc__t{margin:auto 0 0;font-size:clamp(18px,1.9vw,23px);font-weight:700;letter-spacing:-.02em;line-height:1.3;}
.svc__d{margin:10px 0 0;font-size:12.5px;line-height:1.75;color:#93AAC2;max-width:34ch;}
.svc__tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px;}
.svc__tags span{
  font-size:10.5px;letter-spacing:.06em;
  padding:4px 10px;border-radius:100px;
  border:1px solid #2E5C8F;color:#A9BED6;
  background:#0A1B3366;
  transition:border-color .3s,color .3s;
}
.svc__card:hover .svc__tags span{border-color:#3C7CC4;}
.svc__go{
  display:inline-flex;align-items:center;gap:7px;
  margin-top:18px;font-size:12px;font-weight:600;color:var(--cyan);
  opacity:.75;transition:opacity .4s,gap .4s var(--ease);
}
.svc__card:hover .svc__go{opacity:1;gap:12px;}

/* =========================================================
   RESOURCES
   ========================================================= */
.res{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,1.6vw,22px);
}
.res__item{
  position:relative;border-radius:var(--r-l);overflow:hidden;
  aspect-ratio:3/3.5;
  border:1px solid var(--line-soft);
  display:flex;flex-direction:column;justify-content:flex-end;
  isolation:isolate;
}
.res__item img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:0;
  transition:transform 1.3s var(--ease);
  opacity:.72;
}
.res__item::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,#0A1B3310 10%,#061121F2 72%);
}
.res__item:hover img{transform:scale(1.06);}
.res__in{
  position:relative;z-index:2;padding:clamp(20px,2.2vw,30px);
  display:flex;flex-direction:column;flex:1;justify-content:flex-end;
}
.res__item .res__k{margin-bottom:auto;}
.res__k{
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.2em;
  color:var(--cyan);margin-bottom:auto;
}
.res__name{font-size:clamp(19px,2vw,24px);font-weight:800;letter-spacing:-.02em;margin:0 0 8px;}
.res__desc{font-size:12.5px;color:#A9BED6;line-height:1.7;margin:0;}
.res__fig{
  display:flex;gap:18px;margin-top:18px;padding-top:16px;
  border-top:1px solid #FFFFFF1A;
}
.res__fig div{display:flex;flex-direction:column;}
.res__fig b{font-family:var(--ff-lat);font-size:19px;font-weight:800;letter-spacing:-.03em;line-height:1;}
.res__fig span{font-size:10px;color:var(--muted-2);margin-top:4px;letter-spacing:.06em;}

/* =========================================================
   CASES — staggered canvas
   ========================================================= */
.cases{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(16px,2vw,28px);
  align-items:start;
}
.case{
  position:relative;
  border-radius:var(--r-l);overflow:hidden;
  display:block;
  background:var(--panel);
  border:1px solid var(--line-soft);
  isolation:isolate;
}
.case img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.4s var(--ease),opacity .6s;
  opacity:.9;
}
.case::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,#0611213D 0%,#06112194 46%,#061121F5 94%);
  transition:opacity .5s;
}
.case:hover img{transform:scale(1.055);opacity:1;}
.case__in{
  position:absolute;inset:auto 0 0 0;z-index:2;
  padding:clamp(20px,2.2vw,30px);
}
.case__tag{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.16em;
  color:var(--cyan);margin-bottom:12px;text-transform:uppercase;
}
.case__tag::before{content:"";width:14px;height:1px;background:var(--cyan);}
.case__t{font-size:clamp(17px,1.7vw,21px);font-weight:700;letter-spacing:-.01em;margin:0 0 6px;}
.case__d{font-size:12px;color:#A9BED6;margin:0;line-height:1.6;}
.case__fig{
  display:flex;align-items:baseline;gap:8px;margin-top:16px;
  padding-top:14px;border-top:1px solid #FFFFFF1A;
}
.case__fig b{
  font-family:var(--ff-lat);font-size:clamp(22px,2.4vw,30px);
  font-weight:800;letter-spacing:-.04em;line-height:1;color:#fff;
}
.case__fig b i{font-style:normal;color:var(--red);font-size:.6em;vertical-align:super;margin-left:2px;}
.case__fig span{font-size:11px;color:var(--muted-2);}

.c1{grid-column:1/8;aspect-ratio:16/10.4;}
.c2{grid-column:8/13;aspect-ratio:4/5;margin-top:clamp(20px,4vw,64px);}
.c3{grid-column:1/5;aspect-ratio:4/4.7;}
.c4{grid-column:5/13;aspect-ratio:16/9.6;}
.c4 .case__d{max-width:52ch;}
.c4 .case__fig{gap:14px;}
.case__fig b:nth-of-type(n+2){margin-left:auto;}

/* mini case rail */
.rail{
  display:grid;grid-template-columns:repeat(6,1fr);
  gap:12px;margin-top:clamp(26px,3vw,44px);
}
.rail__i{
  position:relative;border-radius:10px;overflow:hidden;
  aspect-ratio:4/3;border:1px solid var(--line-soft);
}
.rail__i img{width:100%;height:100%;object-fit:cover;opacity:.6;transition:opacity .5s,transform .9s var(--ease);}
.rail__i:hover img{opacity:.95;transform:scale(1.07);}
.rail__i span{
  position:absolute;left:0;right:0;bottom:0;
  padding:8px 10px;font-size:10.5px;color:#D6E3F2;
  background:linear-gradient(transparent,#061121D9);
  letter-spacing:.02em;
}

/* =========================================================
   VERIFY / PROGRESS BARS
   ========================================================= */
.verify{
  display:grid;grid-template-columns:.85fr 1.15fr;
  gap:clamp(30px,5vw,80px);align-items:center;
}
.verify .frame img{filter:brightness(.58) contrast(1.1) saturate(.85);}
.verify .frame::before{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(150deg,#0A1B33B8,#06112199 60%,#0B84FF26);
  pointer-events:none;
}
.bars-l{display:flex;flex-direction:column;gap:clamp(18px,2vw,26px);}
.bar-item{}
.bar-item__top{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin-bottom:10px;
}
.bar-item__top b{font-size:14.5px;font-weight:600;letter-spacing:.02em;}
.bar-item__top span{
  font-family:var(--ff-lat);font-size:12px;letter-spacing:.04em;
  color:var(--muted-2);font-variant-numeric:tabular-nums;
}
.bar-item__top span em{font-style:normal;color:var(--cyan);font-weight:700;}
.bar-track{
  height:6px;border-radius:100px;background:#14304F;
  position:relative;overflow:hidden;
}
.bar-fill{
  position:absolute;left:0;top:0;bottom:0;width:0;
  border-radius:100px;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  transition:width 1.6s var(--ease);
}
.bar-base{
  position:absolute;left:0;top:0;bottom:0;
  background:#FF3B3B26;border-radius:100px 0 0 100px;
}
.bar-mark{
  position:absolute;top:-5px;bottom:-5px;width:3px;
  background:var(--red);
  box-shadow:0 0 10px #FF3B3BCC,0 0 0 1px #061121AA;
  border-radius:3px;
  transform:translateX(-1.5px);
}
.bar-legend{display:flex;gap:20px;margin-top:26px;font-size:11px;color:var(--muted-2);flex-wrap:wrap;}
.bar-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:middle;}

/* =========================================================
   GLOBAL MAP BLOCK
   ========================================================= */
.globe{
  position:relative;
  border-radius:var(--r-l);
  overflow:hidden;
  border:1px solid var(--line);
  background:#061121;
  min-height:clamp(380px,44vw,560px);
  display:flex;align-items:center;
  isolation:isolate;
}
.globe img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.62;z-index:0;
}
.globe::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(70% 70% at 22% 40%,#061121F2 10%,#06112133 60%,transparent),
    linear-gradient(180deg,#06112100,#061121E0);
}
.globe__in{
  position:relative;z-index:2;
  padding:clamp(28px,4vw,64px);
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,60px);
  width:100%;
}
.globe__list{display:flex;flex-direction:column;gap:0;}
.globe__row{
  display:flex;gap:16px;padding:16px 0;
  border-bottom:1px solid #FFFFFF14;
  align-items:flex-start;
}
.globe__row:last-child{border-bottom:0;}
.globe__row b{
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.14em;
  color:var(--cyan);flex:0 0 34px;padding-top:3px;
}
.globe__row div{flex:1;}
.globe__row h4{margin:0 0 4px;font-size:14px;font-weight:700;letter-spacing:.01em;}
.globe__row p{margin:0;font-size:11.5px;color:#93AAC2;line-height:1.65;}

/* =========================================================
   LOGO WALL
   ========================================================= */
.wall{
  display:grid;grid-template-columns:repeat(6,1fr);
  border-top:1px solid var(--line-soft);
  border-left:1px solid var(--line-soft);
}
.wall div{
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  height:clamp(74px,8vw,104px);
  display:grid;place-items:center;
  font-size:13px;font-weight:600;letter-spacing:.08em;
  color:#7C93AD;
  transition:color .4s,background .4s;
  position:relative;
  text-align:center;padding:8px;
}
.wall div:hover{color:#fff;background:#0B84FF0F;}
.wall div small{display:block;font-family:var(--ff-lat);font-size:8px;letter-spacing:.18em;color:#3E5F85;margin-top:3px;}

/* award */
.awards{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.6vw,22px);}
.award{
  display:flex;align-items:center;gap:18px;
  border:1px solid var(--line-soft);border-radius:var(--r-m);
  padding:20px 22px;background:#0C214066;
  transition:border-color .4s,background .4s;
}
.award:hover{border-color:#2E6BAA;background:#0C2140;}
.award__ic{
  width:44px;height:44px;border-radius:10px;flex:0 0 auto;
  display:grid;place-items:center;
  background:linear-gradient(150deg,#FF3B3B,#8A1C1C);
  font-family:var(--ff-lat);font-size:13px;font-weight:800;letter-spacing:-.04em;
  box-shadow:0 10px 26px -12px #FF3B3BAA;
}
.award b{display:block;font-size:14px;font-weight:700;}
.award span{font-size:11.5px;color:var(--muted-2);}

/* =========================================================
   INSIGHT
   ========================================================= */
.ins{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px);}
.ins__c{
  border:1px solid var(--line-soft);border-radius:var(--r-m);
  overflow:hidden;background:#0B1B33;
  transition:border-color .5s,transform .6s var(--ease);
  display:flex;flex-direction:column;
}
.ins__c:hover{border-color:#2E6BAA;transform:translateY(-4px);}
.ins__c .frame{aspect-ratio:16/10;border-radius:0;}
.ins__c:hover .frame img{transform:scale(1.06);}
.ins__b{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1;}
.ins__meta{
  display:flex;align-items:center;gap:10px;
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.14em;
  color:var(--muted-2);margin-bottom:12px;text-transform:uppercase;
}
.ins__meta em{font-style:normal;color:var(--cyan);}
.ins__b h3{margin:0 0 8px;font-size:16px;font-weight:700;line-height:1.45;letter-spacing:-.01em;}
.ins__b p{margin:0;font-size:12px;color:#8FA6C0;line-height:1.7;}
.ins__b .link-arrow{margin-top:auto;padding-top:18px;font-size:11.5px;border-bottom:0;}

/* =========================================================
   CTA
   ========================================================= */
.cta{
  position:relative;overflow:hidden;
  border-top:1px solid var(--line-soft);
  background:#061121;
}
.cta__bg{
  position:absolute;inset:0;z-index:0;
}
.cta__bg img{width:100%;height:100%;object-fit:cover;opacity:.24;}
.cta__bg::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(80% 90% at 20% 30%,#0A1B33F2,#061121F7 70%);
}
.cta__in{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(34px,5vw,80px);
  align-items:start;
  padding-block:clamp(70px,8vw,120px);
}
.cta__l .h-l{margin:18px 0 20px;}
.cta__l .lead{max-width:440px;}
.cta__pts{display:flex;flex-direction:column;gap:12px;margin-top:30px;}
.cta__pts div{display:flex;align-items:center;gap:11px;font-size:12.5px;color:#A9BED6;}
.cta__pts i{
  width:16px;height:16px;border-radius:50%;flex:0 0 auto;
  background:#0B84FF26;border:1px solid #0B84FF66;
  display:grid;place-items:center;font-size:9px;color:var(--cyan);font-style:normal;
}

.form{
  border:1px solid var(--line);
  border-radius:var(--r-l);
  background:linear-gradient(165deg,#0C2140E6,#081627E6);
  backdrop-filter:blur(12px);
  padding:clamp(24px,2.6vw,34px);
  box-shadow:0 40px 100px -50px #000;
}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.field{margin-bottom:12px;}
.field label{
  display:block;font-size:10.5px;letter-spacing:.12em;
  color:var(--muted-2);margin-bottom:7px;
  font-family:var(--ff-lat);text-transform:uppercase;
}
.field input,.field textarea,.field select{
  width:100%;height:46px;padding:0 14px;
  background:#06112199;border:1px solid #1E457466;
  border-radius:9px;font-size:13.5px;color:#fff;
  transition:border-color .3s,background .3s;
  appearance:none;
}
.field textarea{height:88px;padding:12px 14px;resize:vertical;line-height:1.6;}
.field select{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2300C0FF' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:36px;
  background-color:#06112199;
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:0;border-color:var(--blue);background:#0B84FF0D;
}
.field input::placeholder,.field textarea::placeholder{color:#5A748F;}
.form .btn{width:100%;justify-content:center;margin-top:6px;}
.form__note{
  margin-top:14px;font-size:11px;color:var(--muted-2);
  text-align:center;line-height:1.7;
}
.form__ok{
  display:none;
  padding:16px;border-radius:10px;
  background:#0B84FF1A;border:1px solid #0B84FF55;
  font-size:12.5px;color:#BFE0FF;text-align:center;
}
.form.is-sent .form__ok{display:block;}
.form.is-sent .form__body{display:none;}

/* =========================================================
   FOOTER
   ========================================================= */
.foot{
  position:relative;overflow:hidden;
  border-top:1px solid var(--line-soft);
  background:#061121;
  padding-top:clamp(50px,6vw,80px);
}
.foot__cols{
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;
  gap:clamp(24px,4vw,56px);
  padding-bottom:clamp(40px,5vw,64px);
}
.foot__about p{font-size:12.5px;color:#8FA6C0;line-height:1.85;max-width:34ch;margin:18px 0 22px;}
.foot__soc{display:flex;gap:8px;}
.foot__soc a{
  width:34px;height:34px;border-radius:9px;
  border:1px solid var(--line-soft);
  display:grid;place-items:center;
  font-size:10px;color:#8FA6C0;
  transition:border-color .3s,color .3s,background .3s;
}
.foot__soc a:hover{border-color:var(--blue);color:#fff;background:#0B84FF1A;}
.foot h5{
  font-size:11px;letter-spacing:.16em;color:#5C7EA3;
  font-weight:600;margin:0 0 16px;text-transform:uppercase;
  font-family:var(--ff-lat);
}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.foot li a{font-size:12.5px;color:#A9BED6;transition:color .3s,padding-left .35s var(--ease);}
.foot li a:hover{color:#fff;padding-left:5px;}
.foot__contact div{font-size:12.5px;color:#A9BED6;margin-bottom:10px;line-height:1.7;}
.foot__contact b{display:block;font-size:10px;letter-spacing:.12em;color:#5C7EA3;margin-bottom:2px;font-family:var(--ff-lat);}
.foot__wordmark{
  font-family:var(--ff-lat);
  font-size:min(10.55vw,150px);
  font-weight:800;letter-spacing:-.055em;line-height:.82;
  color:transparent;
  -webkit-text-stroke:1px #1E4574;
  white-space:nowrap;
  margin-left:-.4vw;
  padding-bottom:.06em;
  user-select:none;
  opacity:.85;
}
.foot__bar{
  border-top:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;padding-block:22px;flex-wrap:wrap;
  font-size:11px;color:#5C7EA3;
}
.foot__bar div{display:flex;gap:18px;flex-wrap:wrap;}
.foot__bar a:hover{color:#fff;}

/* =========================================================
   FLOATING DOCK
   ========================================================= */
.dock{
  position:fixed;right:26px;bottom:26px;z-index:900;
  display:flex;flex-direction:column;gap:8px;
  opacity:0;transform:translateY(14px);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
  pointer-events:none;
}
.dock.is-on{opacity:1;transform:none;pointer-events:auto;}
.dock button,.dock a{
  width:44px;height:44px;border-radius:13px;
  background:#0C2140EB;border:1px solid var(--line);
  display:grid;place-items:center;
  backdrop-filter:blur(10px);
  color:#A9BED6;
  font-size:10px;
  transition:background .3s,color .3s,border-color .3s,transform .35s var(--ease);
  box-shadow:0 12px 30px -14px #000;
}
.dock button:hover,.dock a:hover{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(-2px);}
.dock .up{opacity:.9;}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  :root{--gut:40px;}
  .hero__body{grid-template-columns:minmax(0,1fr);}
  .hero__copy{max-width:none;}
  .monitor{max-width:520px;}
  .split,.split--rev{grid-template-columns:1fr;}
  .split--rev .split__media{order:0;}
  .svc{grid-template-columns:repeat(2,1fr);}
  .svc__card--wide{grid-column:span 2;}
  .res{grid-template-columns:1fr;gap:14px;}
  .res__item{aspect-ratio:16/9;}
  .cases{grid-template-columns:repeat(2,1fr);}
  .c1{grid-column:1/3;aspect-ratio:16/10;}
  .c2{grid-column:1/2;aspect-ratio:4/4.6;margin-top:0;}
  .c3{grid-column:2/3;aspect-ratio:4/4.6;margin-top:clamp(20px,4vw,48px);}
  .c4{grid-column:1/3;aspect-ratio:16/10;}
  .c4 .case__fig{flex-wrap:wrap;}
  .rail{grid-template-columns:repeat(3,1fr);}
  .verify{grid-template-columns:1fr;}
  .foot__cols{grid-template-columns:1fr 1fr;}
  .cta__in{grid-template-columns:1fr;}
  .globe__in{grid-template-columns:1fr;}
  .wall{grid-template-columns:repeat(4,1fr);}
  .stat__idx{display:none;}
}

@media (max-width:900px){
  .nav__menu{display:none;}
  .burger{display:block;}
  .nav__side .nav__cta{display:none;}
  .band__grid{grid-template-columns:repeat(2,1fr);}
  .stat:nth-child(2){border-right:0;}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--line-soft);}
  .awards{grid-template-columns:1fr;}
  .ins{grid-template-columns:1fr;}
  .ability{grid-template-columns:1fr;}
}

@media (max-width:720px){
  :root{--gut:20px;}
  .cursor,.cursor-dot{display:none;}
  body{font-size:15px;}
  .sec{padding-block:64px;}
  .hero{padding-top:34px;}
  .hero__title .l2{padding-left:.3em;}
  .hero__title .l3{padding-left:.1em;}
  .hero__ghost{font-size:150px;right:-4%;top:-2%;opacity:.3;}
  .hero__meta{gap:22px;}
  .hero__meta b{font-size:22px;}
  .scroll-cue{display:none;}
  .svc{grid-template-columns:1fr;}
  .svc__card{min-height:220px;}
  .svc__card--wide{grid-column:span 1;}
  .cases{grid-template-columns:1fr;}
  .c1,.c2,.c3,.c4{grid-column:1/-1;margin-top:0;}
  .c1{aspect-ratio:4/3.6;}
  .c2{aspect-ratio:4/4.2;}
  .c3{aspect-ratio:4/4.4;}
  .c4{aspect-ratio:4/4.6;}
  .c4 .case__fig{flex-wrap:wrap;gap:8px;}
  .c4 .case__fig b:nth-of-type(n+2){margin-left:0;}
  .rail{grid-template-columns:repeat(2,1fr);}
  .wall{grid-template-columns:repeat(2,1fr);}
  .foot__cols{grid-template-columns:1fr;}
  .form__row{grid-template-columns:1fr;}
  .topbar{font-size:10.5px;}
  .topbar__track{gap:36px;}
  .dock{right:14px;bottom:14px;}
  .dock button,.dock a{width:40px;height:40px;}
  .split__float{position:relative;right:auto;bottom:auto;margin-top:12px;max-width:none;}
  .sh__r{display:none;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}
  [data-rv]{opacity:1;transform:none;}
  [data-rv="clip"]{clip-path:none;}
}

/* =========================================================
   SUBPAGE — 通用页头 / 列表 / 流程
   ========================================================= */
.page-hero{
  position:relative;
  padding-top:clamp(56px,7vw,110px);
  padding-bottom:clamp(40px,5vw,70px);
  overflow:hidden;
  border-bottom:1px solid var(--line-soft);
}
.page-hero__bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(60% 90% at 88% 0%,#0B84FF26,transparent 62%),
    radial-gradient(50% 70% at 10% 10%,#00C0FF14,transparent 60%);
}
.page-hero__ghost{
  position:absolute;right:1%;top:4%;z-index:0;
  font-family:var(--ff-lat);font-size:clamp(96px,15vw,210px);
  font-weight:800;letter-spacing:-.06em;line-height:.82;
  color:transparent;-webkit-text-stroke:1px #2E5C8F;
  opacity:.32;user-select:none;pointer-events:none;
}
.page-hero__in{position:relative;z-index:2;}
.crumb{
  display:flex;align-items:center;gap:10px;
  font-family:var(--ff-lat);font-size:10.5px;letter-spacing:.16em;
  color:var(--muted-2);text-transform:uppercase;margin-bottom:26px;
}
.crumb a{transition:color .3s;}
.crumb a:hover{color:var(--cyan);}
.crumb i{font-style:normal;opacity:.5;}
.page-hero h1{
  font-size:clamp(40px,6.4vw,92px);line-height:.98;font-weight:800;
  letter-spacing:-.045em;margin:0 0 22px;
}
.page-hero h1 em{
  font-style:normal;
  background:linear-gradient(96deg,#fff 10%,#9CC9F5 46%,var(--cyan) 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.page-hero p{
  margin:0;max-width:600px;font-size:clamp(14px,1.2vw,17px);
  line-height:1.85;color:#A9BED6;
}
.page-hero__meta{
  display:flex;gap:clamp(24px,4vw,64px);margin-top:44px;
  padding-top:26px;border-top:1px solid var(--line-soft);flex-wrap:wrap;
}
.page-hero__meta div{display:flex;flex-direction:column;gap:2px;}
.page-hero__meta b{
  font-family:var(--ff-lat);font-size:clamp(24px,2.6vw,34px);
  font-weight:800;letter-spacing:-.04em;line-height:1;
}
.page-hero__meta span{font-size:11px;color:var(--muted-2);letter-spacing:.08em;}

/* 筛选胶囊 */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:clamp(28px,3.4vw,48px);}
.chips button{
  height:38px;padding:0 18px;border-radius:100px;
  border:1px solid var(--line-soft);
  font-size:12.5px;letter-spacing:.03em;color:#A9BED6;
  transition:border-color .3s,color .3s,background .3s;
}
.chips button:hover{border-color:#2E6BAA;color:#fff;}
.chips button.is-on{background:#fff;color:#0A1B33;border-color:#fff;font-weight:700;}

/* 案例长条行 */
.crow{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(24px,4vw,64px);align-items:center;
  padding-block:clamp(38px,5vw,70px);
  border-top:1px solid var(--line-soft);
}
.crow:first-of-type{border-top:0;}
.crow--rev .crow__media{order:2;}
.crow__media{position:relative;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line-soft);}
.crow__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease);}
.crow:hover .crow__media img{transform:scale(1.05);}
.crow__idx{
  font-family:var(--ff-lat);font-size:11px;letter-spacing:.2em;color:#5C83AE;
  display:flex;align-items:center;gap:12px;margin-bottom:18px;
}
.crow__idx::after{content:"";width:40px;height:1px;background:#1E4574;}
.crow__t{font-size:clamp(24px,3vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.16;margin:0 0 14px;}
.crow__d{font-size:14px;line-height:1.85;color:#A9BED6;margin:0 0 24px;max-width:46ch;}
.crow__figs{display:flex;gap:clamp(20px,3vw,44px);flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line-soft);}
.crow__figs div{display:flex;flex-direction:column;gap:2px;}
.crow__figs b{font-family:var(--ff-lat);font-size:clamp(22px,2.6vw,32px);font-weight:800;letter-spacing:-.04em;line-height:1;}
.crow__figs b i{font-style:normal;color:var(--red);font-size:.55em;vertical-align:super;}
.crow__figs span{font-size:11px;color:var(--muted-2);letter-spacing:.06em;}
.crow__tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;}
.crow__tags span{
  font-size:10.5px;letter-spacing:.06em;padding:4px 10px;border-radius:100px;
  border:1px solid #2E5C8F;color:#A9BED6;
}

/* 服务详情块 */
.sd{
  display:grid;grid-template-columns:.42fr .58fr;
  gap:clamp(24px,4vw,70px);
  padding-block:clamp(34px,4.4vw,60px);
  border-top:1px solid var(--line-soft);
}
.sd:first-of-type{border-top:0;}
.sd__no{
  font-family:var(--ff-lat);font-size:clamp(44px,6vw,88px);font-weight:800;
  letter-spacing:-.05em;line-height:.9;color:transparent;
  -webkit-text-stroke:1px #2E5C8F;
}
.sd__k{font-family:var(--ff-lat);font-size:10px;letter-spacing:.2em;color:var(--cyan);margin-top:14px;}
.sd h3{font-size:clamp(21px,2.4vw,30px);font-weight:800;letter-spacing:-.02em;margin:0 0 14px;}
.sd p{margin:0 0 20px;font-size:14px;line-height:1.85;color:#A9BED6;max-width:56ch;}
.sd__list{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin:0;padding:0;list-style:none;}
.sd__list li{
  font-size:12.5px;color:#B9C9DC;padding-left:18px;position:relative;line-height:1.7;
}
.sd__list li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:7px;height:7px;border-radius:2px;background:var(--blue);
}

/* 流程 */
.proc{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.4vw,20px);}
.proc__i{
  position:relative;padding-top:26px;border-top:1px solid var(--line);
}
.proc__i::before{
  content:"";position:absolute;left:0;top:-1px;width:34px;height:2px;background:var(--cyan);
}
.proc__i b{
  display:block;font-family:var(--ff-lat);font-size:10.5px;letter-spacing:.18em;
  color:var(--cyan);margin-bottom:10px;
}
.proc__i h4{margin:0 0 6px;font-size:15px;font-weight:700;letter-spacing:.01em;}
.proc__i p{margin:0;font-size:11.5px;line-height:1.7;color:#8FA6C0;}

/* 时间线 / 阶段 */
.tl{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px);}
.tl__i{position:relative;padding-top:22px;border-top:1px solid var(--line);}
.tl__i::before{
  content:"";position:absolute;left:0;top:-5px;width:9px;height:9px;border-radius:50%;
  background:var(--blue);box-shadow:0 0 0 4px #0B84FF26;
}
.tl__y{font-family:var(--ff-lat);font-size:12px;letter-spacing:.14em;color:var(--cyan);font-weight:700;}
.tl__i h4{margin:8px 0 6px;font-size:15px;font-weight:700;}
.tl__i p{margin:0;font-size:11.5px;line-height:1.7;color:#8FA6C0;}

/* 更多项目栅格 */
.more{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,18px);}
.more__i{
  position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;
  border:1px solid var(--line-soft);
}
.more__i img{width:100%;height:100%;object-fit:cover;opacity:.72;transition:opacity .5s,transform 1s var(--ease);}
.more__i:hover img{opacity:1;transform:scale(1.05);}
.more__i span{
  position:absolute;inset:auto 0 0 0;padding:14px 16px;font-size:11.5px;color:#D6E3F2;
  background:linear-gradient(transparent,#061121E6);
  display:flex;justify-content:space-between;gap:10px;
}
.more__i span em{font-style:normal;color:var(--muted-2);font-family:var(--ff-lat);font-size:10px;letter-spacing:.1em;}

/* 团队能力条 */
.cap{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px);}
.cap div{
  border:1px solid var(--line-soft);border-radius:var(--r-m);
  padding:22px;background:#0C214066;
}
.cap b{display:block;font-size:15px;font-weight:700;margin-bottom:8px;}
.cap p{margin:0;font-size:12px;line-height:1.75;color:#8FA6C0;}
.cap em{
  font-style:normal;display:block;font-family:var(--ff-lat);
  font-size:26px;font-weight:800;letter-spacing:-.04em;color:var(--cyan);
  margin-bottom:10px;line-height:1;
}

@media (max-width:1180px){
  .crow,.crow--rev{grid-template-columns:1fr;}
  .crow--rev .crow__media{order:0;}
  .sd{grid-template-columns:1fr;}
  .sd__no{font-size:56px;}
  .proc{grid-template-columns:repeat(2,1fr);}
  .tl{grid-template-columns:repeat(2,1fr);}
  .more{grid-template-columns:repeat(2,1fr);}
  .cap{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .proc{grid-template-columns:1fr;}
  .tl{grid-template-columns:1fr;}
  .more{grid-template-columns:1fr;}
  .sd__list{grid-template-columns:1fr;}
  .page-hero{padding-top:44px;}
}

/* =========================================================
   HOVER SYSTEM — 全站「移动浮现 / 移动放大」交互层
   原则：每个可点/可读的块，指针移上去都要有明确的空间反馈
        （浮起 + 描边亮起 + 内部图像放大 + 光斑跟随 + 箭头浮现）
   位移一律只给真指针设备；触屏走 :active 压感
   ========================================================= */
:root{
  --lift:-9px;          /* 大卡浮起 */
  --lift-s:-5px;        /* 小卡浮起 */
  --hv-ease:cubic-bezier(.2,.9,.3,1);
  --hv-glow:
    0 0 0 1px #0B84FF59,
    0 0 46px -12px #0B84FF4D,
    0 36px 80px -34px #000000D9;
  --hv-glow-s:
    0 0 0 1px #0B84FF4D,
    0 18px 40px -20px #000000CC;
}

/* 光斑底（指针位置由 JS 写入 --mx / --my） */
.case::before,
.res__item::before,
.rail__i::before,
.more__i::before,
.ins__c::before,
.award::before,
.cap div::before,
.crow__media::before,
.split__media .frame::before,
.sd::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  opacity:0;transition:opacity .45s var(--ease-io);
  background:radial-gradient(310px circle at var(--mx,50%) var(--my,50%),
    #0B84FF22,#00C0FF0F 44%,transparent 72%);
}

/* ---------- 1. 数据战报：顶部光线展开 + 数字浮起放大 ---------- */
.stat{
  transition:background .5s var(--ease-io),transform .5s var(--hv-ease);
}
.stat::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:3;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s var(--hv-ease);
  box-shadow:0 0 14px #0B84FF99;
}
.stat__n{transition:transform .5s var(--hv-ease);transform-origin:left bottom;}
.stat__l{transition:color .4s,transform .5s var(--hv-ease);}
.stat__idx{transition:color .4s,opacity .4s;}
.stat:hover{background:linear-gradient(180deg,#0B84FF16,#0B84FF03 70%,transparent);}
.stat:hover::before{transform:scaleX(1);}
.stat:hover .stat__n{transform:translateY(-3px) scale(1.055);}
.stat:hover .stat__n small{color:var(--cyan);}
.stat:hover .stat__l{color:#fff;transform:translateY(-1px);}
.stat:hover .stat__idx{color:var(--cyan);opacity:1;}

/* ---------- 2. 服务卡：整卡浮起 + 描边发光 + 图片推进 ---------- */
.svc__card{
  transition:border-color .45s,transform .55s var(--hv-ease),
             box-shadow .55s var(--hv-ease),background .5s;
}
.svc__t{transition:transform .5s var(--hv-ease),color .4s;}
.svc__no{transition:color .4s,letter-spacing .4s;}
.svc__d{transition:color .4s;}
.svc__go{transition:opacity .4s,gap .4s var(--hv-ease),transform .4s var(--hv-ease);}
.svc__card:hover{
  border-color:#3C7CC4;
  box-shadow:var(--hv-glow);
  transform:translateY(var(--lift)) scale(1.012);
}
.svc__card:hover .svc__img{opacity:.42;transform:scale(1.09);}
.svc__card:hover .svc__t{transform:translateY(-2px);color:#fff;}
.svc__card:hover .svc__no{color:var(--cyan);letter-spacing:.24em;}
.svc__card:hover .svc__d{color:#B4C8DC;}
.svc__card:hover .svc__go{opacity:1;gap:13px;transform:translateX(3px);}
.svc__card:hover .svc__tags span{border-color:#3C7CC4;color:#DCE9F7;background:#0B84FF1A;}

/* ---------- 3. 战略资源卡：浮起 + 图放大 + 蒙版变浅 + 右上箭头 ---------- */
.res__item{
  transition:transform .55s var(--hv-ease),box-shadow .55s var(--hv-ease),
             border-color .45s;
}
.res__item img{transition:transform 1.4s var(--hv-ease),opacity .6s;}
.res__item::after{transition:opacity .5s var(--ease-io);}
.res__name,.res__desc{transition:transform .5s var(--hv-ease),color .4s;}
.res__fig{transition:border-color .5s;}
.res__k{transition:color .4s,letter-spacing .4s;}
.res__name::after{
  content:"↗";
  display:inline-block;margin-left:10px;
  font-family:var(--ff-lat);font-size:.74em;font-weight:700;
  color:var(--cyan);vertical-align:.06em;
  opacity:0;transform:translate(-7px,5px);
  transition:opacity .4s var(--ease-io),transform .45s var(--hv-ease);
}
.res__item:hover{
  transform:translateY(var(--lift));
  box-shadow:var(--hv-glow);
  border-color:#3C7CC4;
}
.res__item:hover::before{opacity:1;}
.res__item:hover img{transform:scale(1.085);opacity:.94;}
.res__item:hover::after{opacity:.9;}
.res__item:hover .res__name{transform:translateY(-3px);}
.res__item:hover .res__desc{transform:translateY(-2px);color:#C3D4E6;}
.res__item:hover .res__k{color:#fff;letter-spacing:.26em;}
.res__item:hover .res__fig{border-color:#0B84FF66;}
.res__item:hover .res__name::after{opacity:1;transform:none;}

/* ---------- 4. 案例卡：浮起 + 推近 + 内容上浮 + 底线亮起 + 箭头 ---------- */
.case{
  transition:transform .55s var(--hv-ease),box-shadow .55s var(--hv-ease),
             border-color .45s;
}
.case img{transition:transform 1.5s var(--hv-ease),opacity .6s;}
.case::after{transition:opacity .5s var(--ease-io);}
.case__in{transition:transform .55s var(--hv-ease);}
.case__t{transition:color .4s;}
.case__d{transition:color .4s;}
.case__fig{transition:border-color .5s;}
.case__t::after{
  content:"↗";
  display:inline-block;margin-left:10px;
  font-family:var(--ff-lat);font-size:.74em;font-weight:700;
  color:var(--cyan);vertical-align:.06em;
  opacity:0;transform:translate(-7px,5px);
  transition:opacity .4s var(--ease-io),transform .45s var(--hv-ease);
}
.case:hover{
  transform:translateY(-10px);
  box-shadow:var(--hv-glow);
  border-color:#3C7CC4;
}
.case:hover::before{opacity:1;}
.case:hover::after{opacity:.9;}
.case:hover img{transform:scale(1.085);opacity:1;}
.case:hover .case__in{transform:translateY(-2px);}
.case:hover .case__t{color:#fff;}
.case:hover .case__d{color:#C3D4E6;}
.case:hover .case__fig{border-color:#0B84FF80;}
.case:hover .case__t::after{opacity:1;transform:none;}

/* ---------- 5. 迷你案例 / 更多项目：小浮起 + 放大 + 文字提亮 ---------- */
.rail__i{
  transition:transform .45s var(--hv-ease),box-shadow .45s,
             border-color .4s;
}
.rail__i img{transition:opacity .5s,transform 1.1s var(--hv-ease);}
.rail__i span{transition:color .4s,padding-left .45s var(--hv-ease);}
.rail__i:hover{
  transform:translateY(var(--lift-s)) scale(1.03);
  border-color:#3C7CC4;
  box-shadow:var(--hv-glow-s);
  z-index:2;
}
.rail__i:hover img{opacity:1;transform:scale(1.11);}
.rail__i:hover span{color:#fff;padding-left:14px;}

.more__i{
  transition:transform .45s var(--hv-ease),box-shadow .45s,
             border-color .4s;
}
.more__i img{transition:opacity .5s,transform 1.1s var(--hv-ease);}
.more__i:hover{
  transform:translateY(var(--lift-s)) scale(1.018);
  border-color:#3C7CC4;
  box-shadow:var(--hv-glow-s);
  z-index:2;
}
.more__i:hover::before{opacity:1;}
.more__i:hover img{opacity:1;transform:scale(1.1);}
.more__i:hover span em{color:var(--cyan);}

/* ---------- 6. 洞察卡 ---------- */
.ins__c{
  transition:border-color .45s,transform .55s var(--hv-ease),box-shadow .55s;
}
.ins__c:hover{
  transform:translateY(-8px);
  border-color:#3C7CC4;
  box-shadow:var(--hv-glow);
}
.ins__c:hover::before{opacity:1;}
.ins__c:hover .ins__b h3{color:#fff;}
.ins__b h3{transition:color .4s;}
.ins__b .link-arrow{transition:color .4s,border-color .4s,gap .4s var(--hv-ease);}
.ins__c:hover .ins__b .link-arrow{gap:13px;color:var(--cyan);}

/* ---------- 7. 客户墙：格子亮起 + 底部光线扫过 ---------- */
.wall div{
  transition:color .4s,background .4s,transform .45s var(--hv-ease),
             box-shadow .45s;
}
.wall div::after{
  content:"";position:absolute;left:50%;bottom:0;width:0;height:2px;z-index:3;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  box-shadow:0 0 12px #00C0FF99;
  transition:width .45s var(--hv-ease),left .45s var(--hv-ease);
}
.wall div small{transition:color .4s;}
.wall div:hover{
  color:#fff;background:#0B84FF14;
  transform:translateY(-3px);
  box-shadow:inset 0 0 0 1px #0B84FF40,0 14px 30px -18px #000;
  z-index:2;
}
.wall div:hover::after{width:100%;left:0;}
.wall div:hover small{color:var(--cyan);}

/* ---------- 8. 奖项卡：浮起 + 徽章旋转放大 + 红光 ---------- */
.award{
  transition:border-color .45s,background .45s,transform .5s var(--hv-ease),
             box-shadow .5s;
}
.award__ic{transition:transform .5s var(--hv-ease),box-shadow .5s;}
.award b{transition:color .4s;}
.award:hover{
  border-color:#3C7CC4;background:#0C2140;
  transform:translateY(var(--lift-s));
  box-shadow:0 24px 52px -28px #000,0 0 0 1px #0B84FF40;
}
.award:hover::before{opacity:1;}
.award:hover .award__ic{
  transform:rotate(-8deg) scale(1.1);
  box-shadow:0 16px 36px -12px #FF3B3BCC;
}
.award:hover b{color:#fff;}

/* ---------- 9. 能力条（首页）：左线亮起 ---------- */
.ability div{position:relative;transition:background .4s;}
.ability div::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;z-index:2;
  background:linear-gradient(180deg,var(--cyan),var(--blue));
  transform:scaleY(0);transform-origin:top;
  transition:transform .45s var(--hv-ease);
  box-shadow:0 0 12px #00C0FF99;
}
.ability div:hover{background:#0C2140;}
.ability div:hover::before{transform:scaleY(1);}
.ability b,.ability span{transition:transform .4s var(--hv-ease),color .4s;}
.ability div:hover b{transform:translateX(6px);color:#fff;}
.ability div:hover span{transform:translateX(6px);color:#A9BED6;}

/* ---------- 10. 全球网络行 ---------- */
.globe__row{
  position:relative;
  transition:background .4s,padding-left .4s var(--hv-ease);
}
.globe__row b{transition:color .4s;}
.globe__row h4{transition:color .4s;}
.globe__row p{transition:color .4s;}
.globe__row:hover{background:linear-gradient(90deg,#0B84FF16,transparent 72%);}
.globe__row:hover b{color:var(--cyan);}
.globe__row:hover h4{color:#fff;}
.globe__row:hover p{color:#A9BED6;}

/* ---------- 11. 效果验证：单行进度条聚焦 ---------- */
.bar{transition:transform .45s var(--hv-ease);transform-origin:left;}
.bar-fill{transition:width 1.1s var(--ease),box-shadow .4s;}
.bar:hover{transform:translateX(3px);}
.bar:hover .bar-fill{box-shadow:0 0 16px #0B84FFB3;}
.bar:hover b{color:#fff;}

/* ---------- 12. 关于页能力格 ---------- */
.cap div{
  transition:transform .5s var(--hv-ease),border-color .45s,
             box-shadow .5s,background .45s;
}
.cap em{transition:transform .5s var(--hv-ease),color .4s;}
.cap div:hover{
  transform:translateY(var(--lift-s));
  border-color:#3C7CC4;background:#0C2140AA;
  box-shadow:0 22px 48px -26px #000,0 0 0 1px #0B84FF40;
}
.cap div:hover::before{opacity:1;}
.cap div:hover em{transform:scale(1.08);color:#fff;}

/* ---------- 13. 案例页长条行 ---------- */
.crow__media{
  transition:box-shadow .5s var(--hv-ease),transform .5s var(--hv-ease),
             border-color .45s;
}
.crow__media img{transition:transform 1.4s var(--hv-ease);}
.crow__idx{
  transition:color .4s;
}
.crow__idx::after{transition:width .5s var(--hv-ease),background .4s;}
.crow__t{transition:color .4s,transform .5s var(--hv-ease);}
.crow__tags span{transition:border-color .35s,color .35s,background .35s;}
.crow:hover .crow__media{
  transform:translateY(-5px);
  box-shadow:var(--hv-glow);
  border-color:#3C7CC4;
}
.crow:hover .crow__media::before{opacity:1;}
.crow:hover .crow__media img{transform:scale(1.09);}
.crow:hover .crow__idx{color:var(--cyan);}
.crow:hover .crow__idx::after{width:76px;background:var(--cyan);}
.crow:hover .crow__t{color:#fff;transform:translateX(4px);}
.crow:hover .crow__tags span{border-color:#3C7CC4;color:#DCE9F7;background:#0B84FF1A;}

/* ---------- 14. 服务详情块 ---------- */
.sd{
  position:relative;
  transition:background .55s var(--ease-io);
}
.sd__no{transition:-webkit-text-stroke-color .45s,color .45s,transform .5s var(--hv-ease);}
.sd h3{transition:color .4s;}
.sd__list li{transition:color .4s,transform .4s var(--hv-ease);}
.sd:hover{background:radial-gradient(120% 130% at -6% 50%,#0B84FF17,transparent 66%);}
.sd:hover::before{opacity:1;}
.sd:hover .sd__no{
  color:#0B84FF1A;
  -webkit-text-stroke-color:#3C7CC4;
  transform:translateY(-3px);
}
.sd:hover h3{color:#fff;}
.sd:hover .sd__list li{color:#D2DFEE;}

/* ---------- 15. 流程 / 时间线：顶部光线延伸 ---------- */
.proc__i,.tl__i{transition:transform .5s var(--hv-ease);}
.proc__i::before{transition:width .55s var(--hv-ease),box-shadow .45s;}
.proc__i:hover{transform:translateY(-4px);}
.proc__i:hover::before{width:100%;box-shadow:0 0 14px #00C0FFCC;}
.proc__i h4,.proc__i p{transition:color .4s;}
.proc__i:hover h4{color:#fff;}
.proc__i:hover p{color:#A9BED6;}

.tl__i::before{transition:box-shadow .5s var(--hv-ease),transform .5s var(--hv-ease);}
.tl__i:hover{transform:translateY(-4px);}
.tl__i:hover::before{
  box-shadow:0 0 0 7px #0B84FF1F,0 0 22px #0B84FF99;
  transform:scale(1.15);
}
.tl__i h4,.tl__i p{transition:color .4s;}
.tl__i:hover h4{color:#fff;}
.tl__i:hover p{color:#A9BED6;}
.tl__y{transition:color .4s;}
.tl__i:hover .tl__y{color:#fff;}

/* ---------- 16. 筛选胶囊 / 子页数据 / 表单 ---------- */
.chips button{
  transition:border-color .3s,color .3s,background .3s,
             transform .35s var(--hv-ease),box-shadow .35s;
}
.chips button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px -14px #000;
}
.page-hero__meta div{position:relative;transition:transform .4s var(--hv-ease);}
.page-hero__meta b{transition:color .4s;}
.page-hero__meta div::after{
  content:"";position:absolute;left:0;bottom:-8px;height:1px;width:0;
  background:var(--cyan);transition:width .45s var(--hv-ease);
}
.page-hero__meta div:hover{transform:translateY(-3px);}
.page-hero__meta div:hover b{color:var(--cyan);}
.page-hero__meta div:hover::after{width:100%;}

.field input,.field textarea,.field select{transition:border-color .3s,background .3s,box-shadow .3s;}
.field input:hover,.field textarea:hover,.field select:hover{
  border-color:#2E6BAA;background:#0B84FF0A;
}

/* ---------- 17. 光标的「查看」态 ---------- */
.cursor::after{
  content:"VIEW";
  position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--ff-lat);font-size:9px;font-weight:700;
  letter-spacing:.18em;color:#EAF3FF;
  opacity:0;transition:opacity .28s;
}
.cursor.is-view{
  width:92px;height:92px;
  background:#0B84FF2E;
  border-color:var(--cyan);
  box-shadow:0 0 34px -8px #0B84FF80;
}
.cursor.is-view::after{opacity:1;}


/* ---------- 18. 层级修正：光斑永远在内容之下，文字不被染色 ---------- */
.award > *,
.cap div > *,
.ins__b,
.more__i span,
.rail__i span,
.sd > *{
  position:relative;
  z-index:3;
}

/* ---------- 19. 静态验收模式下仍可复现悬停位移（截图检查用） ---------- */
.no-anim .case:hover              {transform:translateY(-10px) !important;}
.no-anim .res__item:hover         {transform:translateY(-9px) !important;}
.no-anim .svc__card:hover         {transform:translateY(-9px) scale(1.012) !important;}
.no-anim .rail__i:hover           {transform:translateY(-5px) scale(1.03) !important;}
.no-anim .more__i:hover           {transform:translateY(-5px) scale(1.018) !important;}
.no-anim .ins__c:hover            {transform:translateY(-8px) !important;}
.no-anim .award:hover             {transform:translateY(-5px) !important;}
.no-anim .crow:hover .crow__media {transform:translateY(-5px) !important;}

/* =========================================================
   悬停只在真指针设备上生效；触屏给压感反馈
   ========================================================= */
@media (hover:hover) and (pointer:fine){
  .stat:hover              {transform:translateY(-2px);}
  .wall div:hover          {transform:translateY(-3px);}
  .award:hover             {transform:translateY(var(--lift-s));}
  .rail__i:hover           {transform:translateY(var(--lift-s)) scale(1.03);}
}
@media (hover:none){
  /* 触屏上 tapped 之后浏览器会保留 :hover，这里把位移与描边全部压平，
     只留 :active 的按压反馈，避免卡片「卡」在悬停态 */
  .stat:hover,.svc__card:hover,.res__item:hover,.case:hover,.rail__i:hover,
  .more__i:hover,.ins__c:hover,.award:hover,.cap div:hover,.crow:hover .crow__media,
  .proc__i:hover,.tl__i:hover,.sd:hover .sd__no,.page-hero__meta div:hover,
  .hero__meta div:hover,.hero__stamp:hover,.chips button:hover,
  .wall div:hover,.award:hover .award__ic,.cap div:hover em,
  .case:hover .case__in,.crow:hover .crow__t{
    transform:none;
  }
  .case:hover,.res__item:hover,.svc__card:hover,.rail__i:hover,.more__i:hover,
  .ins__c:hover,.award:hover,.cap div:hover,.crow:hover .crow__media{
    border-color:var(--line-soft);
    box-shadow:none;
  }
  .case:hover::before,.res__item:hover::before,.rail__i:hover::before,
  .more__i:hover::before,.ins__c:hover::before,.award:hover::before,
  .cap div:hover::before,.crow:hover .crow__media::before{opacity:0;}
  .case:hover .case__t::after,.res__item:hover .res__name::after{opacity:0;transform:translate(-7px,5px);}
  .case:hover img,.res__item:hover img,.rail__i:hover img,.more__i:hover img,
  .crow:hover .crow__media img,.svc__card:hover .svc__img{transform:scale(1.02);}
  .case:active,.svc__card:active,.res__item:active,.rail__i:active,.more__i:active{
    transform:scale(.985);
    transition:transform .12s var(--ease-io);
  }
}
@media (prefers-reduced-motion:reduce){
  .stat:hover,.svc__card:hover,.res__item:hover,.case:hover,.rail__i:hover,
  .more__i:hover,.ins__c:hover,.award:hover,.cap div:hover,.proc__i:hover,
  .tl__i:hover,.crow:hover .crow__media{
    transform:none !important;
  }
  .case:hover img,.res__item:hover img,.svc__card:hover .svc__img,
  .crow:hover .crow__media img{
    transform:none !important;
  }
}

/* ---------- 20. 首屏细节：指标 / 实时监测行 / 公告胶囊 ---------- */
.hero__meta div{transition:transform .4s var(--hv-ease);}
.hero__meta b{transition:color .35s;}
.hero__meta div:hover{transform:translateY(-3px);}
.hero__meta div:hover b{color:var(--cyan);}

.monitor__row{
  transition:background .35s,border-color .35s,padding-left .4s var(--hv-ease);
}
.monitor__row b,.monitor__row span,.monitor__row em{transition:color .35s;}
.monitor__row:hover{
  background:#0B84FF1A;
  border-color:#0B84FF40;
  padding-left:18px;
}
.monitor__row:hover b{color:var(--cyan);}
.monitor__row:hover span{color:#fff;}
.monitor__row:hover em{color:var(--cyan);}

.hero__stamp{
  transition:border-color .4s,background .4s,transform .4s var(--hv-ease);
}
.hero__stamp:hover{
  border-color:var(--cyan);
  background:#0B84FF1F;
  transform:translateY(-2px);
}

/* 移动端抽屉与页脚链接 */
.drawer a{transition:color .3s,padding-left .35s var(--hv-ease),background .3s;}
.drawer a:hover{padding-left:22px;}

/* ---------- 21. 过渡修正 ----------
   卡片同时承担「滚动入场淡入」与「悬停位移」两件事。
   上面给各卡片单独写的 transition 会覆盖 [data-rv] 的默认值，
   把 opacity 过渡弄丢（入场会硬闪）。这里统一补回来。
   排除 data-rv="clip"（首屏逐行裁切显现，走 clip-path）。      */
[data-rv]:not([data-rv="clip"]){
  transition:
    opacity .9s var(--ease),
    transform .55s var(--hv-ease),
    border-color .45s,
    box-shadow .55s var(--hv-ease),
    background .5s var(--ease-io),
    clip-path 1.1s var(--ease);
}

/* =========================================================
   22. 全球区域标签 / 媒体资源墙 / 服务行业标签
   （补齐 PDF 中此前未落位的资源类内容）
   ========================================================= */

/* 区域分布 */
.regions{display:flex;flex-wrap:wrap;gap:7px;}
.regions span{
  font-size:11px;letter-spacing:.04em;padding:5px 12px;border-radius:100px;
  border:1px solid #2E5C8F;color:#A9BED6;background:#0C214066;
  transition:border-color .35s,color .35s,background .35s,transform .35s var(--hv-ease);
}
.regions span:hover{
  border-color:var(--cyan);color:#fff;background:#0B84FF1F;
  transform:translateY(-2px);
}

/* 媒体资源墙 */
.media{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,1.4vw,18px);
}
.media__c{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;
  border:1px solid var(--line-soft);border-radius:var(--r-m);
  padding:clamp(18px,2vw,26px);
  background:#0C214080;
  transition:transform .5s var(--hv-ease),border-color .45s,
             box-shadow .5s var(--hv-ease),background .45s;
}
.media__c--wide{grid-column:span 2;}
.media__c--full{grid-column:span 3;}
.media__c::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  opacity:0;transition:opacity .45s var(--ease-io);
  background:radial-gradient(310px circle at var(--mx,50%) var(--my,50%),
    #0B84FF22,#00C0FF0F 44%,transparent 72%);
}
.media__c > *{position:relative;z-index:2;}
.media__k{
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.18em;
  color:var(--cyan);margin-bottom:14px;display:block;
}
.media__c b{
  display:block;font-size:clamp(16px,1.6vw,19px);font-weight:800;
  letter-spacing:-.01em;margin-bottom:8px;transition:color .4s;
}
.media__c p{margin:0;font-size:12.5px;line-height:1.8;color:#8FA6C0;transition:color .4s;}
.media__tags{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;
  padding-top:14px;border-top:1px solid #FFFFFF12;
}
.media__c--wide .media__tags{margin-top:16px;}
.media__tags span{
  font-size:10.5px;letter-spacing:.03em;padding:3px 9px;border-radius:100px;
  border:1px solid #2E5C8F;color:#A9BED6;
  transition:border-color .35s,color .35s,background .35s;
}
.media__c:hover{
  border-color:#3C7CC4;background:#0C2140;
  transform:translateY(-5px);
  box-shadow:var(--hv-glow);
}
.media__c:hover::before{opacity:1;}
.media__c:hover b{color:#fff;}
.media__c:hover p{color:#A9BED6;}
.media__c:hover .media__tags span{
  border-color:#3C7CC4;color:#DCE9F7;background:#0B84FF1A;
}

/* 服务行业标签行 */
.indline{
  display:flex;gap:clamp(14px,2vw,26px);align-items:flex-start;flex-wrap:wrap;
  margin-top:clamp(20px,2.4vw,30px);padding-top:clamp(18px,2vw,24px);
  border-top:1px solid var(--line-soft);
}
.indline__k{
  font-family:var(--ff-lat);font-size:10px;letter-spacing:.2em;
  color:var(--muted-2);padding-top:6px;white-space:nowrap;
}
.indline > div{display:flex;flex-wrap:wrap;gap:7px;flex:1;}
.indline > div span{
  font-size:11.5px;padding:5px 12px;border-radius:100px;
  border:1px solid #2A5280;color:#A9BED6;
  transition:border-color .35s,color .35s,background .35s,transform .35s var(--hv-ease);
}
.indline > div span:hover{
  border-color:var(--cyan);color:#fff;background:#0B84FF1F;
  transform:translateY(-2px);
}

/* 资源卡数据位：三项时收紧间距，长词不换行 */
.res__fig{gap:clamp(12px,2vw,20px);flex-wrap:wrap;}
.res__fig b{white-space:nowrap;}

@media (max-width:1180px){
  .media{grid-template-columns:repeat(2,1fr);}
  .media__c--wide{grid-column:span 2;}
  .media__c--full{grid-column:span 2;}
}
@media (max-width:720px){
  .media{grid-template-columns:1fr;}
  .media__c--wide{grid-column:span 1;}
  .media__c--full{grid-column:span 1;}
  .indline{flex-direction:column;gap:12px;}
  .indline__k{padding-top:0;}
}
@media (hover:none){
  .media__c:hover{transform:none;border-color:var(--line-soft);box-shadow:none;background:#0C214080;}
  .media__c:hover::before{opacity:0;}
  .regions span:hover,.indline > div span:hover{transform:none;}
}

/* =========================================================
   23. 案例页三分区 / 舆情案例卡 / GEO 案例卡
   ========================================================= */

/* 分区容器 */
.casegroup{margin-bottom:clamp(52px,6.5vw,96px);}
.casegroup:last-of-type{margin-bottom:0;}
.casegroup__h{
  margin-bottom:clamp(24px,3vw,40px);
  padding-top:clamp(26px,3.2vw,42px);
  border-top:1px solid var(--line-soft);
}
.casegroup:first-of-type .casegroup__h{border-top:0;padding-top:0;}
.casegroup__h h2{margin:12px 0 12px;}
.casegroup__h p{
  margin:0;max-width:640px;
  font-size:13.5px;line-height:1.85;color:#8FA6C0;
}

/* 获奖 / 执行细节行（整合营销案例底部） */
.crow__win{
  margin-top:20px;padding-top:16px;border-top:1px dashed #1E4574;
  font-size:11.5px;line-height:1.85;color:#8FA6C0;
  display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;
}
.crow__win b{
  font-family:var(--ff-lat);font-size:9.5px;font-weight:600;
  letter-spacing:.16em;color:var(--red);
  border:1px solid #FF3B3B66;border-radius:100px;
  padding:3px 9px;white-space:nowrap;flex-shrink:0;
  transition:border-color .35s,background .35s;
}
.crow:hover .crow__win b{border-color:#FF3B3B;background:#FF3B3B14;}

/* ---------- 舆情公关案例 ---------- */
.prcs{display:flex;flex-direction:column;gap:clamp(14px,1.6vw,20px);}
.prc{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:104px 1fr;
  gap:clamp(16px,2.8vw,40px);
  padding:clamp(22px,2.6vw,34px);
  border:1px solid var(--line-soft);border-radius:var(--r-l);
  background:#0C214066;
  transition:transform .5s var(--hv-ease),border-color .45s,
             box-shadow .5s var(--hv-ease),background .45s;
}
.prc::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  opacity:0;transition:opacity .45s var(--ease-io);
  background:radial-gradient(420px circle at var(--mx,60%) var(--my,40%),
    #0B84FF1F,#00C0FF0D 44%,transparent 72%);
}
.prc > *{position:relative;z-index:2;}
.prc__side{display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
.prc__no{
  font-family:var(--ff-lat);font-size:clamp(28px,3.2vw,42px);font-weight:800;
  letter-spacing:-.05em;line-height:.9;
  color:transparent;-webkit-text-stroke:1px #2E5C8F;
  transition:color .45s,-webkit-text-stroke-color .45s,transform .5s var(--hv-ease);
}
.prc__k{
  font-size:10px;letter-spacing:.1em;padding:4px 9px;border-radius:100px;
  border:1px solid #2E5C8F;color:#8FA6C0;white-space:nowrap;
  transition:border-color .35s,color .35s;
}
.prc__t{
  margin:0 0 14px;font-size:clamp(17px,1.9vw,22px);font-weight:800;
  letter-spacing:-.02em;line-height:1.34;transition:color .4s;
}
.prc__bg{
  margin:0 0 10px;font-size:12.5px;line-height:1.88;color:#8FA6C0;
  transition:color .4s;
}
.prc__bg b{
  display:inline-block;
  font-family:var(--ff-lat);font-weight:600;font-size:9.5px;
  letter-spacing:.14em;color:var(--cyan);
  margin-right:8px;vertical-align:1px;
}
.plats{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.plats > div{
  flex:1 1 138px;min-width:124px;
  border:1px solid #FFFFFF12;border-radius:10px;
  padding:12px 14px;background:#06112166;
  transition:border-color .4s,background .4s,transform .45s var(--hv-ease);
}
.plats b{
  display:block;font-family:var(--ff-lat);font-size:14.5px;font-weight:800;
  letter-spacing:-.02em;line-height:1.2;margin-bottom:5px;color:#EAF3FF;
  white-space:nowrap;
}
.plats b i{font-style:normal;color:var(--cyan);font-size:.82em;}
.plats span{
  display:block;font-size:10.5px;color:var(--muted-2);
  letter-spacing:.04em;line-height:1.5;
}
.prc__win{
  margin-top:16px;padding-top:14px;border-top:1px dashed #1E4574;
  font-size:11.5px;line-height:1.85;color:#8FA6C0;
}
.prc__win em{font-style:normal;color:var(--cyan);font-weight:700;}
.prc:hover{
  border-color:#3C7CC4;background:#0C214099;
  transform:translateY(-5px);
  box-shadow:var(--hv-glow);
}
.prc:hover::before{opacity:1;}
.prc:hover .prc__no{color:#0B84FF1F;-webkit-text-stroke-color:#3C7CC4;transform:translateY(-3px);}
.prc:hover .prc__k{border-color:#3C7CC4;color:#DCE9F7;}
.prc:hover .prc__t{color:#fff;}
.prc:hover .prc__bg{color:#A9BED6;}
.prc:hover .plats > div{border-color:#0B84FF40;background:#0B84FF0D;}

/* ---------- GEO 案例 ---------- */
.geos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,20px);}
.geo{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;
  padding:clamp(22px,2.6vw,32px);
  border:1px solid var(--line-soft);border-radius:var(--r-l);
  background:linear-gradient(158deg,#0C2140CC,#06112199);
  transition:transform .5s var(--hv-ease),border-color .45s,
             box-shadow .5s var(--hv-ease);
}
.geo::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  opacity:0;transition:opacity .45s var(--ease-io);
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,32%),
    #0B84FF1F,#00C0FF0D 44%,transparent 72%);
}
.geo > *{position:relative;z-index:2;}
.geo__no{
  font-family:var(--ff-lat);font-size:9.5px;letter-spacing:.18em;
  color:var(--cyan);margin-bottom:16px;
}
.geo__t{
  margin:0 0 12px;font-size:clamp(17px,1.9vw,21px);font-weight:800;
  letter-spacing:-.02em;line-height:1.32;transition:color .4s;
}
.geo__d{margin:0;font-size:12.5px;line-height:1.92;color:#8FA6C0;transition:color .4s;}
.geo__grid{
  display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;
  padding-top:16px;border-top:1px solid #FFFFFF12;
}
.geo__grid > div{flex:1 1 116px;min-width:104px;}
.geo__grid b{
  display:block;font-family:var(--ff-lat);font-size:17px;font-weight:800;
  letter-spacing:-.03em;line-height:1.15;margin-bottom:4px;
}
.geo__grid b i{font-style:normal;color:var(--cyan);font-size:.8em;}
.geo__grid span{display:block;font-size:10.5px;color:var(--muted-2);line-height:1.55;}
.geo__flow{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  margin-top:16px;padding:12px 14px;border-radius:10px;
  background:#0B84FF0F;border:1px solid #0B84FF26;
  font-size:10.5px;color:#A9BED6;
}
.geo__flow i{font-style:normal;color:var(--cyan);opacity:.65;}
.geo__tags{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;
  padding-top:16px;
}
.geo__tags span{
  font-size:10.5px;padding:3px 9px;border-radius:100px;
  border:1px solid #2E5C8F;color:#A9BED6;
  transition:border-color .35s,color .35s,background .35s;
}
.geo:hover{
  border-color:#3C7CC4;
  transform:translateY(-5px);
  box-shadow:var(--hv-glow);
}
.geo:hover::before{opacity:1;}
.geo:hover .geo__t{color:#fff;}
.geo:hover .geo__d{color:#A9BED6;}
.geo:hover .geo__tags span{border-color:#3C7CC4;color:#DCE9F7;background:#0B84FF1A;}

@media (max-width:1180px){
  .geos{grid-template-columns:1fr;}
  .prc{grid-template-columns:1fr;gap:14px;}
  .prc__side{flex-direction:row;align-items:center;gap:12px;}
  .prc__no{font-size:26px;}
}
@media (max-width:720px){
  .plats > div{flex:1 1 100%;}
  .geo__grid > div{flex:1 1 100%;}
}
@media (hover:none){
  .prc:hover,.geo:hover{transform:none;border-color:var(--line-soft);box-shadow:none;}
  .prc:hover::before,.geo:hover::before{opacity:0;}
  .prc:active,.geo:active{transform:scale(.99);}
}

/* =========================================================
   24. 服务详情补充说明 / 组织架构
   ========================================================= */
.sd__note{
  margin-top:18px;padding:11px 15px;border-radius:9px;
  background:#0B84FF0F;border:1px solid #0B84FF26;
  font-size:11px;line-height:1.78;color:#8FA6C0;letter-spacing:.02em;
  transition:border-color .4s,background .4s,color .4s;
}
.sd:hover .sd__note{border-color:#0B84FF4D;background:#0B84FF17;color:#A9BED6;}

.arch{display:flex;flex-direction:column;gap:clamp(8px,1vw,12px);}
.arch__row{display:grid;gap:clamp(8px,1vw,12px);}
.arch__row--core{grid-template-columns:repeat(4,1fr);}
.arch__row--sup{grid-template-columns:repeat(3,1fr);}
.arch__c{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:12px;
  padding:clamp(18px,2vw,26px);
  border:1px solid var(--line-soft);border-radius:var(--r-m);
  background:#0C214080;
  transition:transform .5s var(--hv-ease),border-color .45s,
             box-shadow .5s var(--hv-ease),background .45s;
}
.arch__c > *{position:relative;z-index:2;}
.arch__c::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  opacity:0;transition:opacity .45s var(--ease-io);
  background:radial-gradient(280px circle at var(--mx,50%) var(--my,40%),
    #0B84FF1F,#00C0FF0D 44%,transparent 72%);
}
.arch__k{
  font-family:var(--ff-lat);font-size:9.5px;letter-spacing:.2em;color:var(--cyan);
}
.arch__c b{
  display:block;font-size:clamp(15px,1.5vw,17px);font-weight:800;
  letter-spacing:-.01em;transition:color .4s;
}
.arch__c p{margin:0;font-size:11.5px;line-height:1.75;color:#8FA6C0;}
.arch__tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:12px;}
.arch__tags span{
  font-size:10px;padding:3px 8px;border-radius:100px;
  border:1px solid #2E5C8F;color:#A9BED6;
  transition:border-color .35s,color .35s,background .35s;
}
.arch__c--sup{background:#0C21404D;}
.arch__c--sup b{font-size:clamp(14px,1.4vw,16px);color:#A9BED6;}
.arch__c:hover{
  border-color:#3C7CC4;background:#0C2140;
  transform:translateY(-5px);
  box-shadow:var(--hv-glow);
}
.arch__c:hover::before{opacity:1;}
.arch__c:hover b{color:#fff;}
.arch__c:hover .arch__tags span{border-color:#3C7CC4;color:#DCE9F7;background:#0B84FF1A;}

/* 时间线：六节点版本 */
.tl--six{grid-template-columns:repeat(6,1fr);}
@media (max-width:1180px){
  .arch__row--core{grid-template-columns:repeat(2,1fr);}
  .arch__row--sup{grid-template-columns:repeat(3,1fr);}
  .tl--six{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:720px){
  .arch__row--core,.arch__row--sup{grid-template-columns:1fr;}
  .tl--six{grid-template-columns:1fr;gap:20px;}
}
@media (hover:none){
  .arch__c:hover{transform:none;border-color:var(--line-soft);box-shadow:none;}
  .arch__c:hover::before{opacity:0;}
}

/* =========================================================
   25. 战略资源详情卡 / 时间线结尾语
   ========================================================= */
.rsds{display:flex;flex-direction:column;gap:clamp(14px,1.8vw,22px);}
.rsd{
  display:grid;grid-template-columns:.44fr 1fr;
  border:1px solid var(--line-soft);border-radius:var(--r-l);
  overflow:hidden;background:#0C214066;
  transition:border-color .45s,box-shadow .5s var(--hv-ease);
}
.rsd--rev{grid-template-columns:1fr .44fr;}
.rsd--rev .rsd__media{order:2;}
.rsd__media{
  position:relative;min-height:300px;overflow:hidden;
}
.rsd__media img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.8;transition:transform 1.3s var(--ease),opacity .6s;
}
.rsd__media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(130deg,#0A1B33CC,#06112159 58%,#0A1B3399);
}
.rsd__badge{
  position:absolute;left:16px;bottom:16px;z-index:3;
  font-size:10px;letter-spacing:.1em;padding:5px 11px;border-radius:100px;
  border:1px solid #00C0FF66;color:#00C0FF;background:#061121B3;
  backdrop-filter:blur(6px);
}
.rsd__body{padding:clamp(22px,2.8vw,38px);}
.rsd__body h3{
  margin:10px 0 14px;font-size:clamp(23px,2.7vw,33px);
  font-weight:800;letter-spacing:-.03em;line-height:1.12;
  transition:color .4s;
}
.rsd__lead{
  margin:0 0 20px;font-size:13px;line-height:1.92;
  color:#A9BED6;max-width:62ch;
}
.rsd__sub{
  font-family:var(--ff-lat);font-size:9.5px;letter-spacing:.18em;
  color:var(--cyan);margin:18px 0 10px;
}
.rsd__grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 24px;}
.rsd__grid > div{
  padding-left:12px;border-left:1px solid #1E4574;
  transition:border-color .4s;
}
.rsd__grid b{
  display:block;font-size:12.5px;font-weight:700;color:#EAF3FF;
  margin-bottom:3px;line-height:1.45;
}
.rsd__grid span{display:block;font-size:11px;line-height:1.72;color:#8FA6C0;}
.rsd__facts{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;
  padding-top:16px;border-top:1px solid #FFFFFF12;
}
.rsd__facts > div{
  border:1px solid #FFFFFF14;border-radius:8px;
  padding:9px 13px;background:#06112166;
  transition:border-color .4s,background .4s;
}
.rsd__facts b{
  display:block;font-family:var(--ff-lat);font-size:15px;font-weight:800;
  line-height:1.1;white-space:nowrap;
}
.rsd__facts span{
  display:block;font-size:9.5px;color:var(--muted-2);
  margin-top:3px;letter-spacing:.04em;
}
.rsd:hover{border-color:#3C7CC4;box-shadow:var(--hv-glow);}
.rsd:hover .rsd__media img{transform:scale(1.045);opacity:.92;}
.rsd:hover .rsd__body h3{color:#fff;}
.rsd:hover .rsd__grid > div{border-left-color:#3C7CC4;}
.rsd:hover .rsd__facts > div{border-color:#0B84FF40;background:#0B84FF0D;}

/* 时间线结尾 */
.tl__next{
  margin:clamp(26px,3vw,40px) 0 0;
  padding-top:20px;border-top:1px solid var(--line-soft);
  font-size:12.5px;letter-spacing:.04em;color:#8FA6C0;
  display:flex;align-items:center;gap:10px;
}
.tl__next::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--cyan);box-shadow:0 0 12px #00C0FFCC;flex-shrink:0;
}

@media (max-width:1180px){
  .rsd,.rsd--rev{grid-template-columns:1fr;}
  .rsd--rev .rsd__media{order:0;}
  .rsd__media{min-height:220px;}
}
@media (max-width:720px){
  .rsd__grid{grid-template-columns:1fr;}
  .rsd__facts > div{flex:1 1 auto;}
}

/* =========================================================
   26. 全球网络左侧数据与标志资源
   ========================================================= */
.globe__stats{
  display:grid;grid-template-columns:1fr 1fr;
  gap:14px 22px;margin-top:24px;
}
.globe__stats > div{
  padding-left:13px;border-left:1px solid #1E4574;
  transition:border-color .4s,transform .45s var(--hv-ease);
}
.globe__stats b{
  display:block;font-family:var(--ff-lat);font-size:clamp(19px,2vw,25px);
  font-weight:800;letter-spacing:-.03em;line-height:1;
  transition:color .4s;
}
.globe__stats span{
  display:block;font-size:10px;color:var(--muted-2);
  letter-spacing:.06em;margin-top:5px;
}
.globe__stats > div:hover{border-left-color:var(--cyan);transform:translateX(3px);}
.globe__stats > div:hover b{color:var(--cyan);}

.globe__note{
  margin-top:22px;padding-top:16px;
  border-top:1px solid #FFFFFF14;
  font-size:11px;line-height:1.8;color:#8FA6C0;
  max-width:430px;
}
.globe__note b{
  display:block;font-family:var(--ff-lat);font-size:9.5px;
  letter-spacing:.18em;color:var(--cyan);margin-bottom:6px;
}

@media (max-width:720px){
  .globe__stats{grid-template-columns:1fr 1fr;gap:12px 16px;}
}

/* =========================================================
   27. 案例库存索引条（首页案例区收尾）
   ========================================================= */
.cindex{
  display:flex;align-items:center;flex-wrap:wrap;
  gap:clamp(10px,1.6vw,26px);
  margin-top:clamp(22px,2.6vw,34px);
  padding-top:clamp(18px,2vw,24px);
  border-top:1px solid var(--line-soft);
}
.cindex a{
  display:flex;align-items:baseline;gap:8px;
  padding:8px 14px 8px 12px;border:1px solid #FFFFFF14;border-radius:99px;
  text-decoration:none;color:#8FA6C0;
  transition:transform .45s var(--hv-ease),border-color .4s,color .4s,background .4s;
}
.cindex a b{
  font-family:var(--ff-lat);font-size:13px;font-weight:700;
  letter-spacing:.06em;color:#C8D8EC;
  transition:color .4s;
}
.cindex a span{font-size:12px;letter-spacing:.02em;}
.cindex a:hover{
  transform:translateY(-3px);
  border-color:#3C7CC4;background:#0B84FF1A;color:#fff;
}
.cindex a:hover b{color:var(--cyan);}
.cindex p{
  margin:0 0 0 auto;font-size:11px;line-height:1.7;color:#6B8FBF;
}
@media (max-width:900px){
  .cindex p{margin-left:0;flex:1 0 100%;}
}
@media (hover:none){
  .cindex a:hover{transform:none;border-color:#FFFFFF14;background:transparent;color:#8FA6C0;}
  .cindex a:hover b{color:#C8D8EC;}
  .cindex a:active{transform:scale(.97);}
}

/* =========================================================
   28. 长文案防溢出（英文版更长的句子在窄屏会把容器顶宽）
   根因：flex 子项默认 min-width:auto，nowrap 文本无法收缩。
   ========================================================= */
.monitor{min-width:0;}
.monitor__head{min-width:0;flex-wrap:wrap;}
.monitor__head > *{min-width:0;}
.monitor__big{min-width:0;}
.monitor__big span{min-width:0;}
.monitor__row{min-width:0;}
.monitor__row span{min-width:0;}
.monitor__row em{flex:0 0 auto;}

/* 浮层贴边会顶出视口：窄屏改为内收，避免约 14-18px 的横向溢出 */
.split{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);}
.split--rev{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);}
.split__media{min-width:0;}
.split__float{max-width:calc(100% + 18px);}
@media (max-width:900px){
  .split,.split--rev{grid-template-columns:minmax(0,1fr);}
  .split--rev .split__media{order:2;}
  .split__float{right:0;bottom:-14px;max-width:calc(100% - 8px);}
}

/* 窄屏不做左右滑入：±34px 的横向位移会让页面短暂出现横向滚动条。
   改为垂直上浮，动势保留，横向溢出归零。 */
@media (max-width:900px){
  [data-rv="left"],[data-rv="right"]{transform:translate3d(0,26px,0);}
}

/* 页脚联系方式可点：邮箱 mailto、电话 tel，颜色继承不抢层级 */
.foot__contact a{color:#A9BED6;text-decoration:none;border-bottom:1px solid transparent;transition:color .3s,border-color .3s;}
.foot__contact a:hover{color:#fff;border-bottom-color:#3C7CC4;}
