/* 票136/01：来源 sites/ditexpo2026合作伙伴/css/style.css；票136/05 全局规则作用域化——
   :root 与 body 与 html 与 * 与 img 全局选择器（斜杠分隔列举，勿写成 x*y*z 形态：
   连写的 * 与 / 相邻会拼出注释终止符）及 .nav（真站页头 nav.nav 同名）下沉或前缀进
   .ditexpo-pc-scope（cards.php 容器），规则内容零删改（定位口径除外，逐处注释）。 */
/* ============ 主题变量 ============ */
.ditexpo-pc-scope{
  --bg:#e9f1fd; --bg2:#dce9fb;
  --ink:#123066; --sub:#5b7cae; --line:#d5e3f8;
  --panel:rgba(255,255,255,.78); --disc:#fff;
  --grid:rgba(90,140,220,.06);
  --glow1:rgba(110,160,255,.28); --glow2:rgba(150,205,255,.22);
  --neon:#2f7bff;
}
.ditexpo-pc-scope[data-theme="dark"]{
  --bg:#050818; --bg2:#070c22;
  --ink:#eaf0ff; --sub:#9aa7cc; --line:rgba(120,150,255,.16);
  --panel:rgba(14,21,44,.72); --disc:#f7f9ff;
  --grid:rgba(90,130,255,.09);
  --glow1:rgba(60,90,255,.30); --glow2:rgba(0,200,255,.16);
  --neon:#5ad8ff;
}
/* 136/05：scoped reset 用 :where() 保特异性 (0,0,0)——直接 .ditexpo-pc-scope *
   会升为 (0,1,0)，与稿内 .hero{padding} 等 (0,1,0) 类规则靠源顺序险胜，媒体
   查询内同类规则稍一重排即崩；:where 形态与稿内 * 行为完全一致。 */
:where(.ditexpo-pc-scope) *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* 稿内原有 html 级 scroll-behavior:smooth —— 票136/05 删除：html 无法 scope，本页无锚点需求 */
.ditexpo-pc-scope{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  color:var(--ink);line-height:1.6;overflow-x:clip;
  transition:background-color .4s ease,color .4s ease;
  background-color:var(--bg);
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px),
    radial-gradient(ellipse 60% 42% at 50% -6%,#f4f9ff,transparent 72%),
    linear-gradient(180deg,#eaf2fd 0%,#e2edfc 55%,#d8e7fb 100%);
  background-size:64px 64px,64px 64px,100% 100%,100% 100%;
  background-position:0 0,0 0,0 0,0 0;
  background-repeat:repeat,repeat,no-repeat,no-repeat;
  background-attachment:fixed;
  /* 136/05 定位口径：position:relative 为暗角(::after，absolute inset:0)的定位
     上下文；isolation 使容器自成层叠上下文——.bg-tech（fixed z:-1）画在容器
     背景之上、内容之下（对齐稿内 body 层叠语义），且容器整体作为原子单元恒在
     页头 fixed z:10001 之下，容器内 z-index 全系不外溢根层叠。 */
  position:relative;isolation:isolate;
  /* 136/08：fixed 导航让位（验收反馈 #6-①）——主题 header{position:fixed;
     height:76px}（≤768px 时 60px）悬浮，稿是独立页（header 正常流）无让位，
     hero 顶部被盖 42px。容器级 padding 对齐主题让位惯例（票105/03
     body.single .site-main 两档补偿 76/60）；背景绘制含 padding 区，导航后
     同为墙页渐变，滚动全程无缝。 */
  padding-top:76px;
}
@media (max-width: 768px){
  .ditexpo-pc-scope{padding-top:60px}
}
/* 136/08：底缝收敛（验收反馈 #6-②）——主题 footer{margin-top:100px} 在墙页
   容器（背景只画到卡墙底）与 footer 之间露 body 白底 100px。本文件仅墙页
   enqueue，选择器天然 scoped。特异性抬 body 前缀 (0,0,2)：迟入队经
   print_late_styles hoist 提回 head 的 link 实测排在主题 style.css **之前**
   （首版裸 footer 同特异性 (0,0,1) 源顺序输给主题，B2 复跑仍红），顺序不可
   依赖 → 卡墙直连 footer 深色背景图。 */
body footer{margin-top:0}

/* ============ 动态科技背景层 ============ */
/* 136/05 作用域化 + spec 审查 Important-2 方案 b：选择器加容器前缀（层归容器
   isolation 层叠上下文，z:-1 画容器背景之上、内容之下，对齐稿内 body 语义）；
   position 保稿值 fixed——审查实测 absolute 时包含盒变容器高(~7185px)，rings
   top:24% 全落首屏外、digits 首屏 0/14，hero 失去环与数字流（视觉零损失不成立）。
   fixed 视口定位装饰全屏可见；页头 fixed z:10001 在根层叠恒在容器原子单元之上，
   缺陷 #2（不盖导航栏）不受影响。 */
.ditexpo-pc-scope .bg-tech{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bg-tech .ring{position:absolute;left:50%;top:24%;transform:translate(-50%,-50%);border-radius:50%}
.bg-tech .r1{width:680px;height:680px;border:1px dashed rgba(90,140,220,.35);animation:ringRot 80s linear infinite}
.bg-tech .r2{width:980px;height:980px;border:1px solid rgba(90,140,220,.12);
  border-top-color:rgba(110,165,255,.5);animation:ringRot 52s linear infinite reverse}
.bg-tech .r3{width:1320px;height:1320px;border:1px solid rgba(90,140,220,.09);
  border-bottom-color:rgba(168,85,247,.35);animation:ringRot 110s linear infinite}
.bg-tech .r4{width:1120px;height:1120px;border:2px solid transparent;
  border-top-color:rgba(56,189,248,.55);border-right-color:rgba(56,189,248,.12);
  filter:blur(1px);animation:ringRot 22s linear infinite}
.bg-tech .r5{width:760px;height:760px;border:2px solid transparent;
  border-bottom-color:rgba(139,92,246,.45);border-left-color:rgba(139,92,246,.1);
  filter:blur(1px);animation:ringRot 30s linear infinite reverse}
@keyframes ringRot{to{transform:translate(-50%,-50%) rotate(1turn)}}
.bg-tech .digit{position:absolute;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-weight:700;color:rgba(70,120,220,.32);will-change:transform,opacity;opacity:0;
  animation:digitUp var(--dur,14s) linear var(--delay,0s) infinite}
@keyframes digitUp{
  0%{transform:translateY(14vh);opacity:0}
  10%{opacity:var(--peak,.6)}
  82%{opacity:var(--peak,.6)}
  100%{transform:translateY(-108vh);opacity:0}
}
/* 闪烁星点 */
.bg-tech .star{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;
  box-shadow:0 0 8px 2px rgba(150,195,255,.85);
  animation:twinkle var(--dur,4s) ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.08;transform:scale(.55)}50%{opacity:.95;transform:scale(1)}}
.bg-tech .ribbon{position:absolute;left:0;top:0;width:100%;height:100%;opacity:.55;pointer-events:none}
.bg-tech .ribbon.rb2{opacity:.4}
.bg-tech .ribbon .flow{animation:dashFlow var(--spd,28s) linear infinite}
@keyframes dashFlow{to{stroke-dashoffset:-630}}
:where(.ditexpo-pc-scope) img{display:block}
/* 高级感：四角轻微暗角 */
/* 136/05 定位口径：fixed→absolute（容器 position:relative）——暗角只覆墙页区域，
   脱离与页头的层叠竞争（缺陷 #2 根治）；z-index:3 稿值不变。 */
.ditexpo-pc-scope::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  background:radial-gradient(125% 105% at 50% 38%,transparent 58%,rgba(28,52,110,.08) 100%)}

/* ---------- Hero ---------- */
.hero{position:relative;padding:34px 0 44px;overflow:hidden;text-align:center}
/* 中英文切换 */
.langsw{position:absolute;top:16px;right:18px;z-index:60;display:inline-flex;align-items:center;gap:5px;
  padding:6px 14px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.6px;
  color:#123066;background:rgba(255,255,255,.86);border:1px solid #cdddf5;
  box-shadow:0 6px 18px rgba(31,80,180,.16);text-decoration:none;backdrop-filter:blur(6px);
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.langsw:hover{transform:translateY(-1px);background:#fff;box-shadow:0 8px 22px rgba(31,80,180,.26)}
@media(max-width:640px){.langsw{top:10px;right:10px;padding:5px 11px;font-size:11px}}
.poly{position:absolute;pointer-events:none;opacity:.55}
.poly::before{content:"";position:absolute;inset:0;background:linear-gradient(140deg,rgba(99,102,241,.13),rgba(6,182,212,.07));clip-path:polygon(52% 0,100% 82%,4% 100%)}
.p1{width:300px;height:300px;right:-40px;top:-40px}
.p2{width:190px;height:190px;left:-30px;top:150px;opacity:.4}
.p3{width:140px;height:140px;right:16%;bottom:-20px;opacity:.35}
.hero-inner{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:0 20px}
/* 装饰点阵 */
.dots{position:absolute;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(47,123,255,.32) 1.6px,transparent 1.7px);
  background-size:15px 15px;
  -webkit-mask-image:radial-gradient(closest-side,#000 55%,transparent);
  mask-image:radial-gradient(closest-side,#000 55%,transparent)}
.dots.d1{width:180px;height:118px;left:-2%;top:48%}
.dots.d2{width:180px;height:118px;right:-2%;top:8%}
/* 主视觉四角括号 */
.kv-c{position:absolute;width:30px;height:30px;z-index:4;pointer-events:none}
.kc1{left:-4px;top:-4px;border-left:3px solid #2f7bff;border-top:3px solid #2f7bff;border-radius:8px 0 0 0}
.kc2{right:-4px;top:-4px;border-right:3px solid #2f7bff;border-top:3px solid #2f7bff;border-radius:0 8px 0 0}
.kc3{left:-4px;bottom:15%;border-left:3px solid rgba(56,189,248,.8);border-bottom:3px solid rgba(56,189,248,.8);border-radius:0 0 0 8px}
.kc4{right:-4px;bottom:15%;border-right:3px solid rgba(56,189,248,.8);border-bottom:3px solid rgba(56,189,248,.8);border-radius:0 0 8px 0}
.badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:3px;font-weight:700;
  color:var(--neon);background:var(--panel);border:1px solid color-mix(in srgb,var(--neon) 35%,transparent);
  border-radius:999px;padding:7px 18px;backdrop-filter:blur(10px);
  box-shadow:0 6px 20px color-mix(in srgb,var(--neon) 18%,transparent),inset 0 0 14px color-mix(in srgb,var(--neon) 8%,transparent)}
.badge i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e;animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.3}}
.hero-title-wrap{position:relative;z-index:3;margin-top:26px}
.hero-ghost{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);z-index:1;
  font-size:clamp(70px,11vw,148px);font-weight:900;letter-spacing:clamp(14px,3vw,30px);text-indent:clamp(14px,3vw,30px);
  white-space:nowrap;line-height:1;color:transparent;pointer-events:none;
  -webkit-text-stroke:1.5px rgba(47,123,255,.16)}
/* 优设标题黑（免费商用，斜切锐角标题字） */
@font-face{
  font-family:"YouSheBiaoTiHei";font-style:normal;font-weight:normal;font-display:swap;
  src:url("../fonts/YouSheBiaoTiHei.woff2") format("woff2"),url("../fonts/YouSheBiaoTiHei.woff") format("woff");
}
/* ========== 标题：流光金属字 + 逐字呼吸浮动 ========== */
.hero-title{position:relative;z-index:2;isolation:isolate;
  display:inline-flex;align-items:flex-end;justify-content:center;gap:.06em;
  font-family:"YouSheBiaoTiHei","Microsoft YaHei",sans-serif;
  font-size:clamp(58px,10vw,118px);line-height:.9;
  padding:0 .1em .18em;
  filter:drop-shadow(0 14px 28px rgba(26,88,190,.28))}
/* 单字：统一基线 + 前倾变形 + 逐字呼吸浮动（灵动性） */
.hero-title .ht{position:relative;display:inline-block;vertical-align:baseline;
  font-size:1em;font-weight:400;letter-spacing:0;line-height:.9;
  transform:skewX(-9deg);transform-origin:50% 100%;
  animation:htIn .85s cubic-bezier(.2,1.5,.4,1) both;
  transition:transform .25s ease,filter .25s ease}
.hero-title .ht:nth-child(1){animation-delay:0s}
.hero-title .ht:nth-child(2){animation-delay:.12s}
.hero-title .ht:nth-child(3){animation-delay:.24s}
.hero-title .ht:nth-child(4){animation-delay:.36s}
@keyframes htIn{0%{opacity:0;transform:skewX(-9deg) translateY(34px) scale(.86)}
  100%{opacity:1;transform:skewX(-9deg) translateY(0) scale(1)}}
.hero-title:hover .ht{filter:brightness(1.12) drop-shadow(0 0 .12em rgba(120,200,255,.7))}
/* 单字科技框：切角边框 + 角标 + 呼吸 */
.hero-title .ht-brk{position:absolute;left:-.06em;right:-.06em;top:-.04em;bottom:-.02em;
  pointer-events:none;
  border:1.5px solid rgba(86,168,255,.55);
  clip-path:polygon(0 12%,12% 0,88% 0,100% 14%,100% 88%,88% 100%,12% 100%,0 86%);
  background:linear-gradient(125deg,rgba(120,190,255,.14),rgba(120,190,255,0) 58%);
  box-shadow:inset 0 0 .08em rgba(140,210,255,.35);
  animation:brkPulse 2.6s ease-in-out infinite}
.hero-title .ht:nth-child(2) .ht-brk{animation-delay:.35s}
.hero-title .ht:nth-child(3) .ht-brk{animation-delay:.7s}
.hero-title .ht:nth-child(4) .ht-brk{animation-delay:1.05s}
@keyframes brkPulse{0%,100%{opacity:.45;border-color:rgba(86,168,255,.35)}
  50%{opacity:1;border-color:rgba(140,215,255,.95)}}
/* 框四角亮角标 */
.hero-title .ht-brk::before,.hero-title .ht-brk::after{content:"";position:absolute;width:.09em;height:.09em;
  background:#7cc4ff;box-shadow:0 0 .1em rgba(124,196,255,.95)}
.hero-title .ht-brk::before{left:-.01em;top:.06em;transform:rotate(45deg)}
.hero-title .ht-brk::after{right:-.01em;bottom:.06em;transform:rotate(45deg)}
/* 立体挤出：跟随字形的深蓝阶梯厚度 */
.hero-title .ht::before{content:attr(data-ch);position:absolute;left:.028em;top:.04em;
  z-index:-1;font:inherit;line-height:inherit;letter-spacing:0;
  color:#2b7ff0;
  text-shadow:
    .01em .01em 0 #1f6ad2,.02em .02em 0 #1a5cbc,.03em .03em 0 #164fa1,
    .04em .045em 0 #124288,.055em .07em .1em rgba(9,38,94,.5)}
/* 字面：机械金属 —— 加工沟槽纹理 + 横向反射带 + 蓝铬渐变 + 青色霓虹描边 */
.hero-title .ht-face{position:relative;display:block;font-style:normal;
  background-image:
    /* 加工沟槽（细密横向纹路，机加工质感） */
    repeating-linear-gradient(0deg,rgba(6,32,86,.22) 0 1.5px,transparent 1.5px 6px),
    /* 横向反射带（金属高光切分） */
    linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.35) 22%,
      rgba(255,255,255,.9) 44%,rgba(255,255,255,.12) 52%,transparent 60%,
      rgba(4,26,72,.35) 100%),
    /* 蓝铬主渐变 */
    linear-gradient(105deg,#0f3d8f 0%,#2f7bff 18%,#8fd4ff 34%,#eafaff 44%,
      #6fb6ff 58%,#1f6ad4 78%,#0b2f78 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-stroke:.018em #8fd4ff;
  paint-order:stroke fill;
  filter:drop-shadow(0 0 .07em rgba(120,200,255,.7)) drop-shadow(0 .02em .01em rgba(10,45,110,.4))}
/* 字面流光：一条白亮光带逐字错峰扫过 */
.hero-title .ht-face::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(104deg,transparent 0 40%,rgba(255,255,255,.95) 46% 49%,transparent 55% 100%);
  background-size:280% 100%;
  animation:htSheen 4s ease-in-out infinite;mix-blend-mode:screen}
.hero-title .ht:nth-child(2) .ht-face::after{animation-delay:.3s}
.hero-title .ht:nth-child(3) .ht-face::after{animation-delay:.6s}
.hero-title .ht:nth-child(4) .ht-face::after{animation-delay:.9s}
@keyframes htSheen{0%,14%{transform:translateX(-66%)}56%,100%{transform:translateX(66%)}}
/* 底部科技扫描基线：光点沿字底横扫 */
.hero-title::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,#7cc4ff 22%,#2f7bff 50%,#7cc4ff 78%,transparent);
  opacity:.7;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);
  animation:htBase 3.8s ease-in-out infinite}
@keyframes htBase{0%,100%{opacity:.35;transform:scaleX(.72)}50%{opacity:.9;transform:scaleX(1)}}
/* 横向扫描光带：一道亮光扫过整组字 */
.hero-title .ht-scan{position:absolute;left:0;top:-.06em;bottom:-.02em;width:26%;
  pointer-events:none;mix-blend-mode:screen;
  background:linear-gradient(90deg,transparent,rgba(190,235,255,.55) 42%,rgba(255,255,255,.95) 52%,rgba(120,200,255,.5) 62%,transparent);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 26%,#000 74%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 26%,#000 74%,transparent);
  animation:htScanAcross 2.9s cubic-bezier(.45,0,.55,1) infinite;
  filter:blur(.01em)}
@keyframes htScanAcross{0%{left:-28%;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:104%;opacity:0}}
/* 背景科技网格（细点阵，随标题呼吸） */
.hero-title .ht-grid{position:absolute;left:-.1em;right:-.1em;top:-.14em;bottom:-.02em;
  pointer-events:none;z-index:-2;
  background-image:radial-gradient(rgba(90,168,255,.5) 1px,transparent 1.2px);
  background-size:.18em .18em;
  -webkit-mask-image:radial-gradient(closest-side,#000 40%,transparent 92%);
  mask-image:radial-gradient(closest-side,#000 40%,transparent 92%);
  animation:htGrid 4.2s ease-in-out infinite}
@keyframes htGrid{0%,100%{opacity:.25;background-size:.18em .18em}
  50%{opacity:.6;background-size:.2em .2em}}
/* 两端发光菱形端点 */
.hero-title::before{content:"";position:absolute;left:-.02em;top:.34em;width:.08em;height:.08em;
  background:#5aa8ff;transform:rotate(45deg);box-shadow:0 0 .12em rgba(90,168,255,.9);
  animation:htDot 2.6s ease-in-out infinite}
@keyframes htDot{0%,100%{opacity:.4;transform:rotate(45deg) scale(.8)}50%{opacity:1;transform:rotate(45deg) scale(1.15)}}
/* 单字：同一基线、同一字号，只做笔直的前倾 + 极轻微错落节奏 */
.hero-title .ht{position:relative;display:inline-block;vertical-align:baseline;
  font-size:1em;font-weight:400;letter-spacing:0;line-height:.9;
  transform:skewX(-11deg);transform-origin:50% 100%}
.hero-title .ht+.ht{margin-left:.06em}
/* 字面：极简纯白 + 冷蓝渐隐，只留干净的科技字面 */
.hero-title .ht-face{position:relative;display:block;font-style:normal;
  background-image:linear-gradient(178deg,#ffffff 0%,#ffffff 44%,#bfe0ff 68%,#4d9fff 88%,#1560d0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-stroke:.016em #ffffff;
  paint-order:stroke fill;
  filter:drop-shadow(0 .03em .02em rgba(21,96,208,.35)) drop-shadow(0 0 .07em rgba(110,190,255,.55))}
/* 极细的斜向流光，克制不喧闹 */
.hero-title .ht-face::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(102deg,transparent 0 44%,rgba(255,255,255,.85) 48% 50%,transparent 54% 100%);
  background-size:280% 100%;
  animation:htSheen 5.4s ease-in-out infinite;mix-blend-mode:screen}
.hero-title .ht:nth-child(2) .ht-face::after{animation-delay:.28s}
.hero-title .ht:nth-child(3) .ht-face::after{animation-delay:.56s}
.hero-title .ht:nth-child(4) .ht-face::after{animation-delay:.84s}
@keyframes htSheen{0%,18%{transform:translateX(-64%)}60%,100%{transform:translateX(64%)}}
/* 底部科技基线：一条渐变收束线 + 两端短标 */
.hero-title .ht-line{position:absolute;left:0;right:0;bottom:.08em;height:2px;
  background:linear-gradient(90deg,transparent,#4da8ff 18%,#0f4fb0 50%,#4da8ff 82%,transparent);
  opacity:.65}
.hero-title .ht-line::before,.hero-title .ht-line::after{content:"";position:absolute;bottom:-2px;
  width:6px;height:6px;background:#4da8ff;transform:rotate(45deg);box-shadow:0 0 8px rgba(77,168,255,.8)}
.hero-title .ht-line::before{left:10%}
.hero-title .ht-line::after{right:10%}
.hero-title-row{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px}
.hero-title-bar{width:clamp(96px,15vw,160px);height:9px;border-radius:9px;
  background-image:linear-gradient(90deg,#16357f,#2f7bff 55%,#38bdf8);
  box-shadow:0 7px 20px rgba(47,123,255,.35),inset 0 1px 0 rgba(255,255,255,.65);
  animation:barGlow 3.6s ease-in-out infinite}
@keyframes barGlow{50%{box-shadow:0 9px 28px rgba(56,149,248,.45),inset 0 1px 0 rgba(255,255,255,.75)}}
.trace{position:relative;height:2px;width:clamp(56px,9vw,132px);border-radius:2px}
.trace.tl{background:linear-gradient(90deg,transparent,#6aa8ff)}
.trace.tr{background:linear-gradient(90deg,#6aa8ff,transparent)}
.trace::before{content:"";position:absolute;top:50%;margin-top:-5px;width:8px;height:8px;transform:rotate(45deg);
  background:#fff;border:2px solid #2f7bff;box-shadow:0 0 10px rgba(47,123,255,.45)}
.trace.tl::before{left:-3px}
.trace.tr::before{right:-3px}
.hero p{color:var(--sub);font-size:14.5px;margin-top:18px}
.meta{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:16px;
  background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 20px;
  font-size:13.5px;font-weight:700;color:var(--ink);backdrop-filter:blur(10px);
  box-shadow:0 8px 24px rgba(5,10,30,.12)}
/* 136/05：.nav 与真站页头 nav.nav 同名（主题 style.css .nav 共 57 行、header 前缀选择器形态 18 处）——
   全族加 .ditexpo-pc-scope 前缀，特异性等比抬升一类，稿内相对顺序不变。 */
.ditexpo-pc-scope .nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:1000px;margin:30px auto 0;padding:0 16px 10px;position:relative;z-index:2}
.ditexpo-pc-scope .nav a{
  position:relative;display:inline-flex;align-items:center;gap:9px;
  color:#17325e;text-decoration:none;font-size:13px;font-weight:800;letter-spacing:.5px;
  padding:10px 18px 10px 14px;border-radius:14px;
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(240,247,255,.88));
  border:1px solid color-mix(in srgb,var(--tc) 55%,transparent);
  box-shadow:0 0 0 1px rgba(255,255,255,.9) inset,0 8px 20px color-mix(in srgb,var(--tc) 28%,transparent);
  backdrop-filter:blur(10px);
  transition:transform .18s ease,box-shadow .25s ease,filter .25s ease;
  overflow:hidden;
}
.ditexpo-pc-scope .nav a::before{
  content:"";width:8px;height:8px;border-radius:50%;flex:none;
  background:var(--tc);box-shadow:0 0 10px var(--tc),0 0 20px var(--tc);
  animation:navdot 2.2s ease-in-out infinite;
}
@keyframes navdot{50%{transform:scale(.7);opacity:.65}}
.ditexpo-pc-scope .nav a::after{
  content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),transparent);
  transform:skewX(-18deg);transition:left .45s ease;
}
.ditexpo-pc-scope .nav a:nth-child(1){--tc:#5b6cff}.ditexpo-pc-scope .nav a:nth-child(2){--tc:#a855f7}
.ditexpo-pc-scope .nav a:nth-child(3){--tc:#22d3ee}.ditexpo-pc-scope .nav a:nth-child(4){--tc:#34d399}
.ditexpo-pc-scope .nav a:nth-child(5){--tc:#9aa8c8}.ditexpo-pc-scope .nav a:nth-child(6){--tc:#fbbf24}
.ditexpo-pc-scope .nav a:nth-child(7){--tc:#60a5fa}.ditexpo-pc-scope .nav a:nth-child(8){--tc:#94a3b8}
.ditexpo-pc-scope .nav a:hover{transform:translateY(-3px) scale(1.04);filter:brightness(1.15);
  box-shadow:0 10px 30px color-mix(in srgb,var(--tc) 55%,transparent),0 0 26px color-mix(in srgb,var(--tc) 45%,transparent)}
.ditexpo-pc-scope .nav a:hover::after{left:130%}

/* ---------- 分级区块 ---------- */
/* 136/08：墙底收尾呼吸（验收反馈 #7）——#6-② 清掉 footer margin 白缝后卡墙
   直切 footer 过紧。本块渲染单一 section.wrap（cards.php，内含唯一 tier），
   底内边距只落墙底一次；取 100px 对齐主题「内容到 footer」惯例
   （footer 原 margin-top:100px 等量换成渐变呼吸区，视觉总量不变、无白底）。 */
.wrap{max-width:1140px;margin:0 auto;padding:0 20px 100px}
.tier{margin-top:68px;scroll-margin-top:20px}
.tier-head{display:flex;align-items:center;gap:11px;padding:6px 14px;margin:0 0 26px;
  border:1px solid var(--line);border-radius:12px;background:var(--panel);
  backdrop-filter:blur(10px);position:relative;overflow:hidden}
.tier-head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tc);
  box-shadow:0 0 16px var(--tc)}
.tier-head::after{content:"";position:absolute;right:-40%;top:0;bottom:0;width:40%;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tc) 18%,transparent),transparent);
  animation:scan 6s linear infinite}
@keyframes scan{0%{right:-45%}55%,100%{right:105%}}
.idx{flex:none;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:800;color:#fff;letter-spacing:.5px;
  background:linear-gradient(135deg,var(--tc),color-mix(in srgb,var(--tc) 55%,#05091e));
  border:1px solid color-mix(in srgb,var(--tc) 55%,transparent);
  box-shadow:0 5px 14px color-mix(in srgb,var(--tc) 40%,transparent),inset 0 0 10px rgba(255,255,255,.18)}
.tt h2{font-size:clamp(18px,3vw,22px);font-weight:900;letter-spacing:2px;color:var(--ink)}
.tt em{display:none}
.tt em{display:none}
.cnt{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--tc);
  background:color-mix(in srgb,var(--tc) 14%,transparent);border:1px solid color-mix(in srgb,var(--tc) 40%,transparent);
  padding:5px 13px;border-radius:999px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  box-shadow:0 0 14px color-mix(in srgb,var(--tc) 22%,transparent)}

/* ---------- 合作伙伴卡片 ---------- */
.wall{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.wall.solo{display:flex;justify-content:flex-start}
.wall.solo .pcard{width:calc((100% - 3*22px)/4)}
.pcard{
  position:relative;display:flex;flex-direction:column;gap:10px;
  background:linear-gradient(165deg,rgba(255,255,255,.93),rgba(240,246,255,.84));
  border:1px solid var(--line);border-radius:16px;padding:18px 16px 14px;
  text-decoration:none;color:inherit;overflow:hidden;
  transition:transform .28s cubic-bezier(.2,.7,.3,1.3),box-shadow .28s ease,border-color .28s ease;
}
.pcard::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--tc),transparent);opacity:.85}
.ctag{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;
  font-size:12.5px;font-weight:800;letter-spacing:.5px;line-height:1;
  color:var(--tc);background:color-mix(in srgb,var(--tc) 18%,#ffffff);
  border:1.5px solid color-mix(in srgb,var(--tc) 55%,transparent);
  padding:6px 13px;border-radius:999px;margin-bottom:2px;
  box-shadow:0 4px 12px color-mix(in srgb,var(--tc) 24%,transparent)}
.ctag::before{content:"";width:7px;height:7px;border-radius:50%;flex:none;
  background:var(--tc);box-shadow:0 0 7px var(--tc)}
.pcard:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--tc) 45%,transparent);
  box-shadow:0 18px 40px color-mix(in srgb,var(--tc) 22%,transparent),0 4px 14px rgba(15,35,90,.08)}
.clogo{height:92px;flex:none;display:flex;align-items:center;justify-content:center;padding:8px;
  background:radial-gradient(120% 120% at 30% 20%,#ffffff 0%,#f6faff 55%,#e9f1fd 100%);
  border-radius:12px;border:1px solid var(--line)}
.clogo img{flex:none;display:block;max-width:100%;max-height:64px;object-fit:contain}
.clogo.dark{background:linear-gradient(160deg,#1d2c4e,#101d3a);border-color:rgba(120,155,255,.28)}
.clogo.dark img{filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.clogo.text b{font-size:15px;font-weight:800;color:#2b3350;text-align:center;line-height:1.4}
.cbody{font-size:12px;line-height:1.7;color:var(--sub);height:8.5em;overflow-y:auto;overflow-x:hidden;
  padding-right:2px;position:relative;text-align:justify;text-align-last:left;
  scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 6px,#000 calc(100% - 8px),transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0,#000 6px,#000 calc(100% - 8px),transparent 100%)}
.cbody::-webkit-scrollbar{width:0;height:0}
.cbtn{margin-top:auto;align-self:flex-end;font-size:11px;font-weight:700;color:#fff;
  background:linear-gradient(90deg,#4f6bff,#8b5cf6);
  padding:5px 12px;border-radius:999px;letter-spacing:.5px;
  box-shadow:0 4px 12px color-mix(in srgb,var(--tc) 32%,transparent);transition:transform .25s ease}
.pcard:hover .cbtn{transform:translateX(3px)}

/* ---------- 手机端 ---------- */
@media(max-width:640px){
  .poly{display:none}
  .ditexpo-pc-scope .nav a{font-size:11.5px;padding:8px 12px 8px 10px;gap:6px;border-radius:11px}
  .ditexpo-pc-scope .nav{gap:8px}
  .hero{padding-top:54px}
  .hero{padding:48px 0 34px}
  .hero-title-wrap{margin-top:18px}
  .hero-title{font-size:clamp(46px,15.5vw,72px)}
  .hero-ghost{font-size:64px;letter-spacing:10px;text-indent:10px}
  .hero-title-row{gap:9px;margin-top:13px}
  .dots{width:110px;height:74px}
  .hero-title-bar{height:7px;margin-top:16px}
  .tier{margin-top:48px}
  .tier-head{margin-bottom:22px;gap:10px}
  .idx{width:38px;height:38px;border-radius:11px;font-size:13px}
  .wall{grid-template-columns:repeat(2,1fr);gap:14px}
  .wall.solo .pcard{width:calc((100% - 14px)/2)}
  .pcard{padding:14px 12px 12px}
  .clogo{height:70px}
  .clogo img{max-height:56px;max-width:100%}
  .cbody{font-size:11px}
  .cnt{font-size:11px;padding:4px 10px}
}

/* 滚动入场 */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}

/* ================= 科技感增强 ================= */

/* 主视觉：扫光 */
.hero-kv{isolation:isolate}
.hero-kv img{width:100%;height:auto;display:block;border-radius:16px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 70%,transparent 100%),linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(180deg,#000 0%,#000 70%,transparent 100%),linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
  mask-composite:intersect;
  filter:drop-shadow(0 18px 40px rgba(47,123,255,.14))}

/* KV 纵向扫描线 */
.hero-kv .kv-scan{position:absolute;left:0;right:0;top:-14%;height:13%;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(56,189,248,.16) 62%,rgba(56,189,248,.5) 97%,transparent);
  mix-blend-mode:screen;animation:scanY 5.5s cubic-bezier(.4,0,.6,1) infinite}
@keyframes scanY{0%{top:-14%;opacity:0}10%{opacity:.85}82%{opacity:.85}100%{top:104%;opacity:0}}

/* 四角括号呼吸（错峰） */
.kv-c{animation:cornerPulse 3.2s ease-in-out infinite}
.kv-c.kc2{animation-delay:.4s}
.kv-c.kc3{animation-delay:.8s}
.kv-c.kc4{animation-delay:1.2s}
@keyframes cornerPulse{0%,100%{opacity:.55;filter:drop-shadow(0 0 0 rgba(47,123,255,0))}
  50%{opacity:1;filter:drop-shadow(0 0 7px rgba(47,123,255,.85))}}

/* 标题：逐字艺术造型（见 .hero-title .ht 段） */

/* 幽灵字脉动 */
.hero-ghost{animation:ghostPulse 4.6s ease-in-out infinite}
@keyframes ghostPulse{0%,100%{opacity:.7;-webkit-text-stroke-color:rgba(47,123,255,.12)}
  50%{opacity:1;-webkit-text-stroke-color:rgba(47,123,255,.24)}}

/* 光条流光 */
.hero-title-bar{background-image:linear-gradient(90deg,#16357f,#2f7bff 40%,#9ed8ff 50%,#2f7bff 60%,#16357f) !important;
  background-size:240% 100% !important;animation:barGlow 3.6s ease-in-out infinite,barSheen 4.2s linear infinite}
@keyframes barSheen{0%{background-position:100% 0}100%{background-position:-140% 0}}

/* 漂浮火花 */
.spark{position:absolute;z-index:0;pointer-events:none;font-style:normal;
  color:#2f7bff;opacity:.7;font-size:18px;line-height:1;
  text-shadow:0 0 10px rgba(47,123,255,.85);animation:sparkFloat 6s ease-in-out infinite}
.spark.s1{left:9%;top:60%}
.spark.s2{right:11%;top:26%;font-size:13px;color:#0891b2;animation-delay:1.2s;text-shadow:0 0 10px rgba(8,145,178,.85)}
.spark.s3{right:19%;bottom:8%;font-size:11px;color:#38bdf8;animation-delay:2.4s;text-shadow:0 0 8px rgba(56,189,248,.85)}
@keyframes sparkFloat{0%,100%{transform:translateY(0) rotate(0deg);opacity:.4}
  50%{transform:translateY(-16px) rotate(90deg);opacity:.95}}

.hero-kv::after{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;z-index:2;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.6) 50%,transparent 62%);
  background-size:260% 100%;mix-blend-mode:screen;opacity:.8;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 68%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 68%,transparent 100%);
  animation:kvSweep 7.5s ease-in-out infinite}
@keyframes kvSweep{0%{background-position:170% 0}62%,100%{background-position:-70% 0}}

/* 分级标题：顶部光线 + 四角括号 + 悬停发光 */
.tier-head{
  background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tc) 55%,transparent),transparent);
  background-size:100% 1px;background-repeat:no-repeat;background-position:0 0;
  transition:box-shadow .35s ease,transform .35s ease}
.tier-head:hover{transform:translateY(-2px);
  box-shadow:0 18px 44px color-mix(in srgb,var(--tc) 20%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--tc) 26%,transparent)}
.hc{position:absolute;width:11px;height:11px;pointer-events:none;opacity:.55;transition:opacity .3s ease}
.tier-head:hover .hc{opacity:1}
.hc1{left:7px;top:7px;border-left:2px solid var(--tc);border-top:2px solid var(--tc);border-radius:3px 0 0 0}
.hc2{right:7px;top:7px;border-right:2px solid var(--tc);border-top:2px solid var(--tc);border-radius:0 3px 0 0}
.hc3{left:7px;bottom:7px;border-left:2px solid var(--tc);border-bottom:2px solid var(--tc);border-radius:0 0 0 3px}
.hc4{right:7px;bottom:7px;border-right:2px solid var(--tc);border-bottom:2px solid var(--tc);border-radius:0 0 3px 0}

/* 分级水印序号 */
.tier{position:relative}
.tier .tier-head,.tier .wall{position:relative;z-index:1}

/* 卡片悬停已在上方定义 */

/* 手机端收敛 */
@media(max-width:640px){
  .hc{width:9px;height:9px}
  .bg-tech .r1{width:440px;height:440px}
  .bg-tech .r2{width:640px;height:640px}
  .bg-tech .r3{width:860px;height:860px}
  .bg-tech .r4{width:720px;height:720px}
  .bg-tech .r5{width:500px;height:500px}
  .bg-tech .star{width:3px;height:3px}
}

/* 票 136/09（反馈 #8-②）：页面正文=墙顶介绍。本文件只随墙页加载，让位规则
   由此收敛在墙页上下文（134/08 归零规则 body.other-page .site-main{padding:0}
   只服务 #page-banner 垫层页；墙页正文首块是普通段落无垫层，介绍段会钻进
   fixed 导航底下——票 105/03 single 同款症状）。让位由墙容器自让位改由
   main 侧承担（两态总量 76/60 不变，正文空时视觉等价）；选择器挂 :has 抬
   特异性压过归零规则，不依赖与主题 style.css 的加载顺序。画布 iframe 的
   body 无 other-page 类，规则不触达（编辑器预览保真不受影响）。 */
body.other-page .site-main:has(.ditexpo-pc-scope){padding-top:76px}
body.other-page .site-main:has(.ditexpo-pc-scope) .ditexpo-pc-scope{padding-top:0}
/* 介绍段内容宽约束：post-content align:full 逃逸主题 constrained 布局，
   运营段落贴边全宽观感差——1200px 对齐主题 contentSize，窄档 padding 防贴边。 */
body.other-page .site-main:has(.ditexpo-pc-scope) .wp-block-post-content > p{
  max-width:1200px;margin-inline:auto;padding-inline:20px}
@media (max-width:768px){
  body.other-page .site-main:has(.ditexpo-pc-scope){padding-top:60px}
}
