/* ==========================================================================
   星珑智联官网 · 前台样式 v1.1
   方向：Industrial / 工业实用 —— 高密度信息、等宽数字、发丝边框、状态色
   色带：青 → 黄绿 → 暖金（签名渐变，贯穿关键视觉）
   ========================================================================== */

/* ==========================================================================
   1. 重置与基础
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  font-family:var(--f-sans);
  font-size:var(--fs-base);
  line-height:var(--lh-base);
  letter-spacing:0.012em;               /* 中文正文微正字距，提升可读性 */
  color:var(--c-text);
  background:var(--c-bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
ul{list-style:none}

::selection{background:var(--c-accent);color:#fff}

/* 滚动条（暗色工业风） */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--c-void)}
::-webkit-scrollbar-thumb{background:#1D2942;border:2px solid var(--c-void);border-radius:var(--r-pill)}
::-webkit-scrollbar-thumb:hover{background:#2A3A5C}

/* 焦点可见（键盘可达性，2px + 2px 偏移） */
:focus-visible{
  outline:2px solid var(--c-lime);
  outline-offset:2px;
  border-radius:var(--r-xs);
}

/* 等宽工具类 */
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ==========================================================================
   2. 布局骨架
   ========================================================================== */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--sp-5)}
.center{text-align:center}

.section{padding:var(--sp-9) 0;position:relative}
.section-tight{padding:var(--sp-8) 0}
.section-soft{
  background:
    radial-gradient(60rem 26rem at 88% 0%, rgba(166,230,53,.05), transparent 62%),
    linear-gradient(180deg,rgba(12,18,32,.7),rgba(7,11,20,0)),
    var(--c-bg);
  border-top:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
}

/* 渐变分割线（科技细线） */
.divider-grad{
  height:1px;border:0;
  background:var(--grad-line);opacity:.5;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
}

/* 区块标题组：编号 + 中文大标题 + 说明 */
.sec-head{margin-bottom:var(--sp-7);max-width:760px}
.sec-tag{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-mono);font-size:var(--fs-xs);font-weight:700;
  letter-spacing:var(--ls-wider);text-transform:uppercase;
  color:var(--c-accent-2);
}
.sec-tag::before{
  content:"";width:26px;height:2px;border-radius:2px;
  background:var(--grad-brand);
}
.sec-tag.warm{color:var(--c-lime)}
.sec-head h2{
  font-size:var(--fs-3xl);font-weight:800;
  letter-spacing:var(--ls-display);line-height:var(--lh-tight);
  margin:var(--sp-4) 0 var(--sp-3);
}
.sec-desc{color:var(--c-muted);font-size:var(--fs-md);max-width:640px}

/* ==========================================================================
   3. 按钮
   ========================================================================== */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:0 26px;border-radius:var(--r-sm);
  font-size:var(--fs-base);font-weight:700;letter-spacing:.02em;
  border:1px solid transparent;cursor:pointer;
  transition:background var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out),
             transform var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out);
}
.btn:active{transform:translateY(1px)}

.btn-primary{
  background:linear-gradient(135deg,#2E7CFF,var(--c-accent) 55%,#0F55D6);
  color:#fff;
  box-shadow:0 8px 26px rgba(30,111,255,.34), inset 0 1px 0 rgba(255,255,255,.18);
}
.btn-primary:hover{box-shadow:0 12px 38px rgba(30,111,255,.52), inset 0 1px 0 rgba(255,255,255,.22)}

/* 黄绿箭头 CTA：用于"成长 / 咨询"类动作，与主按钮形成色带对照 */
.btn-lime{
  background:linear-gradient(135deg,var(--c-lime),var(--c-lime-2) 60%,#4FBE2E);
  color:#08210A;
  box-shadow:0 8px 26px rgba(166,230,53,.24), inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-lime:hover{box-shadow:0 12px 38px rgba(166,230,53,.40), inset 0 1px 0 rgba(255,255,255,.4)}

.btn-ghost{
  border-color:var(--c-line-strong);color:var(--c-text);
  background:rgba(140,170,220,.04);
}
.btn-ghost:hover{border-color:var(--c-lime-line);color:#fff;background:var(--c-lime-soft)}

.btn-sm{min-height:40px;padding:0 18px;font-size:var(--fs-sm)}
.btn .ico{width:15px;height:15px;flex:none}

/* ==========================================================================
   4. 顶部导航
   ========================================================================== */
.nav{
  position:sticky;top:0;z-index:60;
  background:rgba(7,11,20,.82);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--c-line);
}
.nav-top{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  color:var(--c-dim);border-bottom:1px solid var(--c-line);
  background:var(--c-void);
}
.nav-top .wrap{
  display:flex;justify-content:space-between;align-items:center;height:32px;gap:16px;
}
.nav-top .live{display:inline-flex;align-items:center;gap:7px;color:var(--c-lime)}
.nav-top .dot{
  width:6px;height:6px;border-radius:50%;background:var(--c-lime);
  box-shadow:0 0 0 0 rgba(166,230,53,.6);animation:pulse 2.4s var(--ease-out) infinite;
}
.nav-top .caps{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}

/* 品牌区：中文「星珑智联」顶边与 logo 顶边对齐（stretch + 两端分布，英文行贴 logo 底边） */
.brand{display:flex;align-items:stretch;gap:12px}
.brand-logo{
  width:40px;height:40px;flex:none;
  display:grid;place-items:center;
}
.brand-logo svg{width:38px;height:38px}
.brand-text{display:flex;flex-direction:column;justify-content:space-between;line-height:1.15}
.brand-mark{font-size:var(--fs-md);font-weight:800;letter-spacing:.1em;color:#fff;line-height:1.1;margin-top:-2px}   /* 抵消行框上沿留白，让中文字形顶边与 logo 顶边齐平 */
.brand-sub{
  font-family:var(--f-mono);font-size:9.5px;letter-spacing:var(--ls-wider);
  color:var(--c-lime);text-transform:uppercase;line-height:1;
  margin-bottom:-1.5px;   /* 抵消等宽字体行框下沿留白，让大写字母底边与 logo 底边齐平 */
}

.nav-links{display:flex;gap:6px}
.nav-links a{
  position:relative;padding:10px 14px;border-radius:var(--r-sm);
  font-size:var(--fs-base);color:var(--c-muted);
  transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);
}
.nav-links a:hover{color:var(--c-text);background:rgba(140,170,220,.06)}
.nav-links a.on{color:#fff}
.nav-links a.on::after{
  content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;
  background:var(--grad-brand);
  border-radius:var(--r-pill);
}
.nav-cta{white-space:nowrap}

/* 移动端菜单按钮 */
.nav-burger{
  display:none;width:44px;height:44px;place-items:center;border-radius:var(--r-sm);
  border:1px solid var(--c-line-strong);color:var(--c-text);
}
.nav-burger svg{width:20px;height:20px}

/* 移动端抽屉 */
.nav-drawer{
  display:none;border-bottom:1px solid var(--c-line);
  background:rgba(7,11,20,.98);
}
.nav-drawer.open{display:block}
.nav-drawer a{
  display:block;padding:16px 0;font-size:var(--fs-md);
  border-bottom:1px solid var(--c-line);color:var(--c-muted);
}
.nav-drawer a.on{color:var(--c-lime)}
.nav-drawer .btn{width:100%;margin:16px 0 20px}

/* ==========================================================================
   5. 首页首屏 Hero
   ========================================================================== */
.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--c-void)}

/* 氛围层：三层径向光晕（蓝主光 + 青 + 黄绿副光） */
.hero-bg{
  position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(58rem 34rem at 78% -8%, rgba(30,111,255,.30), transparent 62%),
    radial-gradient(46rem 30rem at 6% 12%,  rgba(0,212,255,.14), transparent 60%),
    radial-gradient(40rem 30rem at 96% 86%, rgba(166,230,53,.11), transparent 64%),
    radial-gradient(40rem 26rem at 50% 120%, rgba(11,46,89,.55), transparent 70%);
}
/* 结构网格（工业底纹） */
.hero-grid{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(140,170,220,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(140,170,220,.07) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(70% 70% at 62% 34%,#000 0%,transparent 78%);
          mask-image:radial-gradient(70% 70% at 62% 34%,#000 0%,transparent 78%);
}
/* 噪点颗粒 */
.hero-grain{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.045;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* 底部科技扫描基线 */
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--grad-line);opacity:.6;
}

.hero-inner{
  position:relative;display:grid;grid-template-columns:1.08fr .92fr;
  gap:var(--sp-8);align-items:center;
  padding:var(--sp-8) var(--sp-5) var(--sp-8);
}

.hero-copy .eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  padding:7px 14px;border:1px solid var(--c-line-strong);border-radius:var(--r-pill);
  background:rgba(140,170,220,.04);
  font-family:var(--f-mono);font-size:11px;font-weight:700;
  letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--c-accent-2);
  margin-bottom:var(--sp-5);
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--c-lime);animation:pulse 2.4s var(--ease-out) infinite}

.hero h1{
  font-size:var(--fs-5xl);font-weight:800;
  line-height:var(--lh-tight);letter-spacing:var(--ls-display);
  margin-bottom:var(--sp-5);
}
/* 关键词走签名色带：青 → 黄绿 → 暖金 */
.hero h1 em{
  font-style:normal;position:relative;white-space:nowrap;
  background:var(--grad-brand);
  background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:gflow 9s linear infinite;
}
.hero-sub{
  max-width:560px;font-size:var(--fs-md);color:var(--c-muted);
  margin-bottom:var(--sp-6);
}
.hero-actions,.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:var(--sp-7)}

/* 首屏信任标签（能力层关键词，不涉及实现细节） */
.hero-trust{
  display:flex;flex-wrap:wrap;gap:10px;
  padding-top:var(--sp-5);border-top:1px solid var(--c-line);
}
.hero-trust span{
  font-family:var(--f-mono);font-size:11px;font-weight:700;
  letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--c-muted);
  padding:6px 12px;border:1px solid var(--c-line);border-radius:var(--r-xs);
  background:rgba(140,170,220,.03);
}
.hero-trust span:nth-child(3){border-color:var(--c-lime-line);color:var(--c-lime);background:var(--c-lime-soft)}

/* --------- 记忆点：FIG.1 现场设备图册（图形沿用工程图册语言，配色适配 V1 暗色科技风） --------- */
.fig-plate{
  margin:0;
  filter:drop-shadow(0 30px 60px rgba(2,8,20,.6));
}
.fig-plate svg{display:block;width:100%;height:auto}

/* 信号弧 · 黄绿脉冲（点睛用，全图唯一动效强调） */
.fig-arc{
  fill:none;stroke:var(--c-lime);stroke-width:2.5;stroke-linecap:round;
  animation:figPulse 2.4s var(--ease-inout) infinite;
}
.fig-arc:nth-of-type(2){animation-delay:.35s}
.fig-arc:nth-of-type(3){animation-delay:.7s}
.fig-node{fill:none;stroke:var(--c-lime);stroke-width:2.5}
@keyframes figPulse{0%,100%{opacity:.18}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.fig-arc{animation:none;opacity:.75}}

.fig-cap{
  margin-top:6px;
  font-family:var(--f-mono);font-size:11.5px;color:var(--c-dim);
  letter-spacing:.12em;
}
.fig-cap b{color:var(--c-accent-2);font-weight:700}

/* --------- 关键词跑马灯 --------- */
.marquee{
  position:relative;overflow:hidden;
  border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);
  background:var(--c-void);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee-track{
  display:flex;width:max-content;
  --mq-dur:52s;
  /* 从左到右缓慢流动：起于 -50%（第二份拷贝对齐视口），终于 0，接缝无感 */
  animation:marquee var(--mq-dur) linear infinite;
}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{
  display:inline-flex;align-items:center;gap:22px;padding:16px 22px;
  font-family:var(--f-mono);font-size:var(--fs-sm);font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--c-dim);white-space:nowrap;
}
.marquee-track span::after{
  content:"◆";font-size:8px;
  background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ==========================================================================
   6. 能力矩阵
   ========================================================================== */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}

.cap-card{
  position:relative;padding:28px 26px 26px;
  border:1px solid var(--c-line);border-radius:var(--r-md);
  background:linear-gradient(170deg,rgba(18,27,46,.55),rgba(10,16,28,.5));
  transition:border-color var(--dur-base) var(--ease-out),
             transform var(--dur-base) var(--ease-out),
             background var(--dur-base) var(--ease-out);
  overflow:hidden;
}
.cap-card::before{  /* hover 时自下而上的微光 */
  content:"";position:absolute;left:0;right:0;bottom:0;height:0;
  background:linear-gradient(0deg,rgba(30,111,255,.14),transparent);
  transition:height var(--dur-slow) var(--ease-out);
}
/* 顶部渐变色条：每张卡取色带的不同段，形成节奏 */
.cap-card::after{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--grad-brand);background-size:300% 100%;
  opacity:0;transition:opacity var(--dur-base) var(--ease-out);
}
.cap-card:hover{
  border-color:var(--c-accent-line);transform:translateY(-4px);
  background:linear-gradient(170deg,rgba(22,33,56,.7),rgba(10,16,28,.6));
}
.cap-card:hover::before{height:100%}
.cap-card:hover::after{opacity:1}

.cap-card .cap-idx{
  position:absolute;top:22px;right:24px;
  font-family:var(--f-mono);font-size:var(--fs-xs);font-weight:700;
  letter-spacing:.12em;color:var(--c-dim);
}
.cap-ico{
  width:46px;height:46px;border-radius:var(--r-sm);
  display:grid;place-items:center;margin-bottom:18px;
  border:1px solid var(--c-line-strong);background:rgba(30,111,255,.1);
  color:var(--c-accent-2);
  transition:box-shadow var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out);
}
.cap-ico svg{width:23px;height:23px}
/* 三色轮转：蓝 → 青 → 黄绿，打破单一 */
.cap-card:nth-child(3n+1) .cap-ico{color:var(--c-accent);background:rgba(30,111,255,.12);border-color:rgba(30,111,255,.34)}
.cap-card:nth-child(3n+2) .cap-ico{color:var(--c-accent-2);background:rgba(0,212,255,.10);border-color:rgba(0,212,255,.32)}
.cap-card:nth-child(3n)   .cap-ico{color:var(--c-lime);background:rgba(166,230,53,.11);border-color:var(--c-lime-line)}
.cap-card:hover .cap-ico{box-shadow:0 0 0 4px rgba(166,230,53,.10), 0 8px 22px rgba(30,111,255,.24)}

.cap-card h3{
  font-size:var(--fs-lg);font-weight:700;letter-spacing:var(--ls-tight);
  margin-bottom:8px;position:relative;
}
.cap-card p{color:var(--c-muted);font-size:var(--fs-base);position:relative}
.cap-card .cap-tags{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;position:relative;
}
.cap-card .cap-tags span{
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;
  color:var(--c-dim);border:1px solid var(--c-line);
  padding:3px 8px;border-radius:var(--r-xs);
}

/* ==========================================================================
   7. 数据条
   ========================================================================== */
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--c-line);border-radius:var(--r-md);
  background:linear-gradient(170deg,rgba(18,27,46,.6),rgba(8,12,22,.6));
  overflow:hidden;
}
.stat{padding:40px 30px 36px;border-right:1px solid var(--c-line);position:relative}
.stat:last-child{border-right:none}
.stat::before{ /* 顶部渐变色带 */
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--grad-brand);opacity:.85;
}
.stat b{
  display:block;font-family:var(--f-mono);font-weight:700;
  font-size:clamp(52px,4.8vw,72px);
  letter-spacing:-.03em;line-height:.95;
  background:var(--grad-brand);background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat b i{font-style:normal;font-size:.32em;margin-left:6px;letter-spacing:.02em}
.stat > span{
  display:block;margin-top:16px;font-size:var(--fs-base);line-height:1.55;color:var(--c-muted);
}
.stat em{
  display:block;margin-top:8px;font-family:var(--f-mono);font-size:11.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--c-dim);font-style:normal;
  line-height:1.7;
}

/* ==========================================================================
   8. 卡片 / 案例
   ========================================================================== */
.grid{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{
  position:relative;display:flex;flex-direction:column;gap:14px;
  padding:30px;border:1px solid var(--c-line);border-radius:var(--r-md);
  background:linear-gradient(170deg,rgba(18,27,46,.6),rgba(9,14,25,.6));
  transition:border-color var(--dur-base) var(--ease-out),
             transform var(--dur-base) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out);
  overflow:hidden;
}
.card::after{ /* 顶部高光扫过 */
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--grad-brand);background-size:200% 100%;
  opacity:0;transition:opacity var(--dur-base) var(--ease-out);
}
.card:hover{transform:translateY(-5px);border-color:var(--c-accent-line);box-shadow:var(--sh-2)}
.card:hover::after{opacity:1}
.card h3{font-size:var(--fs-lg);font-weight:700;letter-spacing:var(--ls-tight);line-height:1.35}
.card p{color:var(--c-muted);font-size:var(--fs-base)}
/* 卡片底部操作行：详情链接 + 实例链接 */
.card-ops{
  margin-top:auto;padding-top:10px;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.card-more{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--f-mono);font-size:var(--fs-xs);font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--c-lime);
}
.card-more::after{content:"→";transition:transform var(--dur-fast) var(--ease-out)}
.card:hover .card-more::after{transform:translateX(5px)}
/* 实例链接按钮（跳转后台配置的演示地址，新窗口打开） */
.card-demo{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 14px;border:1px solid var(--c-lime-line);border-radius:var(--r-xs);
  background:var(--c-lime-soft);
  font-family:var(--f-mono);font-size:11px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--c-lime);
  transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);
}
.card-demo::after{content:"↗";font-size:12px}
.card-demo:hover{background:rgba(166,230,53,.2);border-color:var(--c-lime)}

/* 案例封面（后台可上传；未上传则不占位） */
.card-cover{
  margin:-30px -30px 4px;height:196px;overflow:hidden;
  border-bottom:1px solid var(--c-line);background:var(--c-surface-2);
  position:relative;
}
.card-cover img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}
.card:hover .card-cover img{transform:scale(1.045)}
.card-cover::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(4,7,13,0) 42%,rgba(4,7,13,.72));
}

.card-tags{display:flex;gap:8px;flex-wrap:wrap}
.tag{
  font-family:var(--f-mono);font-size:10.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  padding:4px 10px;border-radius:var(--r-pill);
  background:var(--c-accent-soft);border:1px solid rgba(30,111,255,.28);
  color:#8FBBFF;
}
.tag.lime{background:var(--c-lime-soft);border-color:var(--c-lime-line);color:#CBF07A}

/* 案例档案卡（首页用） */
.case-card .case-code{
  font-family:var(--f-mono);font-size:var(--fs-xs);font-weight:700;
  letter-spacing:.16em;color:var(--c-dim);
}
.case-card .case-hl{margin-top:4px;display:grid;gap:8px}
.case-card .case-hl li{
  display:flex;gap:10px;align-items:flex-start;
  font-size:var(--fs-sm);color:var(--c-muted);
}
.case-card .case-hl li::before{
  content:"";flex:none;width:5px;height:5px;margin-top:8px;
  background:var(--c-lime);border-radius:1px;
}

.card-simple{
  position:relative;padding:24px;border:1px solid var(--c-line);
  border-radius:var(--r-md);background:rgba(12,18,32,.5);
  transition:border-color var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);
}
.card-simple:hover{border-color:var(--c-lime-line);transform:translateY(-3px)}
.card-simple .num{
  font-family:var(--f-mono);font-size:var(--fs-xs);font-weight:700;
  letter-spacing:.16em;color:var(--c-accent-2);margin-bottom:12px;
}
.card-simple h3{font-size:var(--fs-md);font-weight:700;margin-bottom:6px}
.card-simple p{color:var(--c-muted);font-size:var(--fs-sm)}

/* ==========================================================================
   9. 交付流程
   ========================================================================== */
.flow{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.flow::before{ /* 流水线 */
  content:"";position:absolute;top:26px;left:6%;right:6%;height:2px;
  background:repeating-linear-gradient(90deg,var(--c-line-strong) 0 6px,transparent 6px 12px);
}
.step{position:relative;padding-top:0}
.step .node{
  position:relative;z-index:1;width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;margin-bottom:18px;
  background:var(--c-surface);border:1px solid var(--c-line-strong);
  font-family:var(--f-mono);font-size:var(--fs-sm);font-weight:700;color:var(--c-accent-2);
  transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out);
}
/* 流程渐进变色：蓝 → 青 → 黄绿 → 暖金（呼应色带） */
.step:nth-child(1) .node{color:var(--c-accent);border-color:rgba(30,111,255,.42)}
.step:nth-child(2) .node{color:#38B6FF;border-color:rgba(56,182,255,.42)}
.step:nth-child(3) .node{color:var(--c-accent-2);border-color:rgba(0,212,255,.42)}
.step:nth-child(4) .node{color:var(--c-lime);border-color:var(--c-lime-line)}
.step:nth-child(5) .node{color:var(--c-amber);border-color:rgba(247,201,72,.44)}
.step:hover .node{border-color:var(--c-lime);box-shadow:0 0 0 5px rgba(166,230,53,.14)}
.step h4{font-size:var(--fs-md);font-weight:700;margin-bottom:6px}
.step p{font-size:var(--fs-sm);color:var(--c-muted)}

/* ==========================================================================
   10. 页头（内页）
   ========================================================================== */
.page-head{
  position:relative;overflow:hidden;
  padding:var(--sp-8) 0 var(--sp-7);
  background:
    radial-gradient(48rem 24rem at 82% -20%, rgba(30,111,255,.26), transparent 60%),
    radial-gradient(40rem 22rem at 6% 120%, rgba(166,230,53,.10), transparent 62%),
    linear-gradient(180deg,var(--c-void),var(--c-bg));
  border-bottom:1px solid var(--c-line);
}
.page-head::before{
  content:"";position:absolute;inset:0;opacity:.4;pointer-events:none;
  background-image:
    linear-gradient(rgba(140,170,220,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(140,170,220,.06) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(70% 100% at 70% 0%,#000,transparent 76%);
          mask-image:radial-gradient(70% 100% at 70% 0%,#000,transparent 76%);
}
.page-head::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--grad-line);opacity:.5;
}
.page-head .wrap{position:relative}
.page-head h1{
  font-size:var(--fs-3xl);font-weight:800;letter-spacing:var(--ls-display);
  line-height:1.14;margin:var(--sp-4) 0 var(--sp-3);max-width:900px;
}
.page-head p{color:var(--c-muted);font-size:var(--fs-md);max-width:680px}
.page-head .card-tags{margin-top:var(--sp-4)}

.breadcrumb{
  display:flex;gap:10px;flex-wrap:wrap;align-items:center;
  font-family:var(--f-mono);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--c-dim);
}
.breadcrumb a:hover{color:var(--c-lime)}
.breadcrumb em{font-style:normal;color:var(--c-muted)}

/* ==========================================================================
   11. 筛选
   ========================================================================== */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:var(--sp-6)}
.chip{
  padding:9px 20px;min-height:40px;display:inline-flex;align-items:center;
  border:1px solid var(--c-line);border-radius:var(--r-pill);
  font-family:var(--f-mono);font-size:var(--fs-sm);letter-spacing:.06em;
  color:var(--c-muted);background:rgba(12,18,32,.5);
  transition:all var(--dur-fast) var(--ease-out);
}
.chip:hover{border-color:var(--c-lime-line);color:var(--c-text)}
.chip.active{
  background:linear-gradient(135deg,var(--c-accent),#0F55D6);
  border-color:transparent;color:#fff;font-weight:700;
  box-shadow:0 6px 18px rgba(30,111,255,.32);
}

/* ==========================================================================
   12. 长文（案例详情 / 关于）
   ========================================================================== */
.article{max-width:840px}
.article .lead{
  font-size:var(--fs-lg);line-height:1.68;color:var(--c-text);font-weight:500;
  padding-left:var(--sp-5);
  border-left:3px solid transparent;
  border-image:linear-gradient(180deg,var(--c-accent-2),var(--c-lime)) 1;
  margin-bottom:var(--sp-6);
}
.article .content{margin-top:var(--sp-5)}
.article .content h3{
  font-size:var(--fs-xl);font-weight:700;letter-spacing:var(--ls-tight);
  margin:var(--sp-7) 0 var(--sp-3);
}
.article .content h3:first-child{margin-top:0}
.article .content p{color:var(--c-muted);margin-bottom:var(--sp-4)}

/* 案例详情封面 */
.article-cover{
  margin-bottom:var(--sp-6);border:1px solid var(--c-line);border-radius:var(--r-md);
  overflow:hidden;background:var(--c-surface-2);
}
.article-cover img{width:100%;max-height:440px;object-fit:cover}

.highlights{display:grid;gap:12px;margin:var(--sp-6) 0}
.hl-item{
  display:flex;gap:14px;align-items:flex-start;padding:16px 20px;
  background:rgba(12,18,32,.55);border:1px solid var(--c-line);
  border-left:2px solid var(--c-accent-2);border-radius:var(--r-sm);
}
.hl-item:nth-child(even){border-left-color:var(--c-lime)}
.hl-item span{
  flex:none;font-family:var(--f-mono);font-weight:700;color:var(--c-lime);
}

.article-cta{
  position:relative;overflow:hidden;margin-top:var(--sp-8);
  padding:var(--sp-7);border-radius:var(--r-md);text-align:center;
  border:1px solid var(--c-line-strong);
  background:
    radial-gradient(40rem 18rem at 50% -30%, rgba(30,111,255,.32), transparent 65%),
    radial-gradient(30rem 16rem at 50% 130%, rgba(166,230,53,.14), transparent 66%),
    linear-gradient(165deg,var(--c-navy),var(--c-void));
}
.article-cta::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--grad-brand);opacity:.85;
}
.article-cta h3{font-size:var(--fs-xl);font-weight:800;margin-bottom:10px;letter-spacing:var(--ls-tight)}
.article-cta p{color:var(--c-muted);margin-bottom:var(--sp-5);max-width:520px;margin-inline:auto}
.article-cta .btn{margin-top:4px}

.capability{margin:var(--sp-5) 0 var(--sp-3)}

/* ==========================================================================
   13. 联系
   ========================================================================== */
.contact-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:var(--sp-7)}
.contact-form{
  display:grid;gap:18px;padding:34px;border-radius:var(--r-md);
  border:1px solid var(--c-line);background:rgba(12,18,32,.55);
}
.contact-form label{display:grid;gap:9px;font-size:var(--fs-sm);font-weight:600;color:var(--c-text)}
.contact-form label span{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-dim)}
.contact-form input,.contact-form textarea{
  padding:14px 16px;min-height:48px;
  border:1px solid var(--c-line-strong);border-radius:var(--r-sm);
  font-size:var(--fs-base);font-family:inherit;
  background:rgba(4,7,13,.6);color:var(--c-text);
  transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);
}
.contact-form textarea{min-height:130px;resize:vertical;line-height:1.7}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#4E5F78}
.contact-form input:focus,.contact-form textarea:focus{
  outline:none;border-color:var(--c-lime);
  box-shadow:0 0 0 3px rgba(166,230,53,.18);
}
.contact-form .btn{justify-self:start;min-width:180px}

/* 提交成功提示 */
.form-flash{
  display:flex;gap:10px;align-items:center;
  padding:14px 18px;border-radius:var(--r-sm);
  background:var(--c-lime-soft);border:1px solid var(--c-lime-line);
  color:#D6F59A;font-size:var(--fs-sm);
}

.contact-info{
  padding:34px;border-radius:var(--r-md);
  border:1px solid var(--c-line);background:rgba(12,18,32,.55);
  align-self:start;position:relative;overflow:hidden;
}
.contact-info::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--grad-brand);opacity:.85;
}
.contact-info h3{font-size:var(--fs-md);font-weight:700;margin-bottom:var(--sp-4)}
.contact-info p{
  display:flex;justify-content:space-between;gap:16px;
  padding:14px 0;border-bottom:1px dashed var(--c-line);color:var(--c-muted);font-size:var(--fs-sm);
}
.contact-info p:last-child{border-bottom:none}
.contact-info p span{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-dim)}
.contact-info p b{color:var(--c-text);font-weight:600;text-align:right}

/* ==========================================================================
   14. 新闻
   ========================================================================== */
.news-list{display:grid;gap:14px}
.news-item{
  padding:24px 26px;border:1px solid var(--c-line);border-radius:var(--r-md);
  background:rgba(12,18,32,.5);transition:all var(--dur-base) var(--ease-out);
  border-left:2px solid var(--c-line);
  display:block;text-decoration:none;color:inherit;
}
.news-item:hover{border-color:var(--c-accent-line);border-left-color:var(--c-lime);transform:translateX(4px)}
.news-date{font-family:var(--f-mono);font-size:var(--fs-xs);letter-spacing:.1em;color:var(--c-lime)}
.news-item h3{font-size:var(--fs-md);font-weight:700;margin:8px 0 8px}
.news-item p{color:var(--c-muted);font-size:var(--fs-sm)}

/* 带封面图：左图右文的横排卡片 */
.news-item.has-cover{
  padding:0;display:grid;grid-template-columns:minmax(200px,300px) 1fr;
  align-items:stretch;overflow:hidden;
}
.news-thumb{position:relative;overflow:hidden;background:var(--c-bg);min-height:150px}
.news-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-base) var(--ease-out)}
.news-item.has-cover:hover .news-thumb img{transform:scale(1.04)}
.news-body{padding:24px 26px;display:flex;flex-direction:column;justify-content:center}
.news-more{
  margin-top:14px;font-family:var(--f-mono);font-size:var(--fs-xs);letter-spacing:.1em;
  color:var(--c-lime);opacity:.85;transition:opacity var(--dur-base) var(--ease-out);
}
.news-item:hover .news-more{opacity:1}

/* 新闻详情页 */
.article-back{margin-top:var(--sp-5);font-size:var(--fs-sm)}
.article-back a{color:var(--c-lime);text-decoration:none}
.article-back a:hover{text-decoration:underline}

@media (max-width:720px){
  .news-item.has-cover{grid-template-columns:1fr}
  .news-thumb{min-height:180px}
  .news-body{padding:20px}
}

.empty{
  color:var(--c-muted);padding:var(--sp-8) 0;text-align:center;
  font-family:var(--f-mono);font-size:var(--fs-sm);letter-spacing:.06em;
  border:1px dashed var(--c-line);border-radius:var(--r-md);
}

/* ==========================================================================
   15. 尾部 CTA
   ========================================================================== */
.cta-section{
  position:relative;overflow:hidden;text-align:center;
  border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);
  background:
    radial-gradient(50rem 26rem at 50% 130%, rgba(30,111,255,.34), transparent 62%),
    radial-gradient(38rem 20rem at 12% 0%, rgba(166,230,53,.12), transparent 62%),
    linear-gradient(180deg,var(--c-void),var(--c-navy));
}
.cta-section::before{
  content:"";position:absolute;inset:0;opacity:.35;pointer-events:none;
  background-image:
    linear-gradient(rgba(140,170,220,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(140,170,220,.06) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(60% 100% at 50% 100%,#000,transparent 78%);
          mask-image:radial-gradient(60% 100% at 50% 100%,#000,transparent 78%);
}
.cta-inner{position:relative;max-width:760px;margin:0 auto;padding:var(--sp-9) var(--sp-5)}
.cta-inner h2{
  font-size:var(--fs-3xl);font-weight:800;letter-spacing:var(--ls-display);
  line-height:1.14;margin-bottom:var(--sp-4);
}
.cta-inner p{color:var(--c-muted);font-size:var(--fs-md);margin-bottom:var(--sp-6)}
.cta-inner .cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ==========================================================================
   16. 页脚
   ========================================================================== */
.footer{
  position:relative;background:var(--c-void);
  border-top:1px solid var(--c-line);padding:var(--sp-8) 0 0;
}
.footer::before{
  content:"";position:absolute;top:-1px;left:0;right:0;height:1px;
  background:var(--grad-line);opacity:.55;
}
.footer-inner{display:grid;grid-template-columns:1.3fr 2fr;gap:var(--sp-7);padding-bottom:var(--sp-7)}
.footer-brand .brand-logo{margin-bottom:16px}
.footer-brand .brand-mark{font-size:var(--fs-md);font-weight:800;letter-spacing:.1em;color:#fff}
.footer-brand p{color:var(--c-muted);font-size:var(--fs-sm);margin-top:12px;max-width:320px}
.footer-brand .f-meta{
  margin-top:18px;display:flex;flex-direction:column;gap:6px;
  font-family:var(--f-mono);font-size:11.5px;color:var(--c-dim);letter-spacing:.06em;
}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
.footer-cols h4{
  font-family:var(--f-mono);font-size:11px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--c-dim);margin-bottom:16px;
}
.footer-cols a{
  display:block;font-size:var(--fs-sm);padding:7px 0;color:var(--c-muted);
  transition:color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);
}
.footer-cols a:hover{color:var(--c-lime);transform:translateX(3px)}
.footer-bottom{
  border-top:1px solid var(--c-line);padding:22px 0;
  font-family:var(--f-mono);font-size:11.5px;color:var(--c-dim);
  letter-spacing:.04em;
}
.footer-bottom .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-bottom a:hover{color:var(--c-lime)}

/* ==========================================================================
   17. 提示页（404）
   ========================================================================== */
.message-page{text-align:center;padding:var(--sp-9) 0}
.message-page .big-code{
  font-family:var(--f-mono);font-size:clamp(72px,14vw,140px);font-weight:700;
  letter-spacing:-.04em;line-height:1;
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.message-page p{color:var(--c-muted);margin:18px 0 var(--sp-6);font-size:var(--fs-md)}

/* ==========================================================================
   18. 滚动揭示动效
   ========================================================================== */
.reveal{opacity:0;transform:translateY(26px)}
.reveal.in{
  opacity:1;transform:none;
  transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);
}
.reveal.d1{transition-delay:80ms}
.reveal.d2{transition-delay:160ms}
.reveal.d3{transition-delay:240ms}
.reveal.d4{transition-delay:320ms}

/* ==========================================================================
   19. 关键帧
   ========================================================================== */
@keyframes pulse{0%{box-shadow:0 0 0 0 currentColor;opacity:1}70%{box-shadow:0 0 0 7px transparent;opacity:.85}100%{box-shadow:0 0 0 0 transparent;opacity:1}}
@keyframes scan{0%{transform:translateY(-90px)}100%{transform:translateY(420px)}}
/* 跑马灯：从左向右缓慢流动（轨迹为两份等宽拷贝，-50% 与 0 视觉等价，接缝无感） */
@keyframes marquee{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}
@keyframes eq{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1)}}
@keyframes gflow{0%{background-position:0% 50%}100%{background-position:200% 50%}}

/* ==========================================================================
   20. 响应式
   ========================================================================== */
@media (max-width:1080px){
  .cap-grid{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:none}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--c-line)}
  .flow{grid-template-columns:repeat(3,1fr)}
  .flow::before{display:none}
}
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;gap:var(--sp-7)}
  .nav-links,.nav-cta{display:none}
  .nav-burger{display:grid}
  .contact-grid{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr;gap:var(--sp-6)}
  .section{padding:var(--sp-8) 0}
  .section-tight{padding:var(--sp-7) 0}
}
@media (max-width:640px){
  .wrap{padding:0 18px}
  .grid-2,.grid-3,.grid-4,.cap-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .stat{border-right:none;border-bottom:1px solid var(--c-line)}
  .stat:last-child{border-bottom:none}
  .flow{grid-template-columns:1fr;gap:22px}
  .footer-cols{grid-template-columns:1fr 1fr}
  .hero-inner{padding:var(--sp-7) 18px}
  .hero h1{font-size:clamp(30px,9.5vw,42px)}
  .sec-head h2,.cta-inner h2,.page-head h1{font-size:var(--fs-2xl)}
  .article .lead{font-size:var(--fs-md);padding-left:18px}
  .contact-form,.contact-info{padding:24px}
  .nav-top .caps{display:none}
  .card-cover{height:170px}
}

/* ==========================================================================
   21. 动效降级（尊重系统偏好）
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  .reveal{opacity:1;transform:none}
  .gtext{animation:none}
  /* 关键词跑马灯是客户明确指定的常驻品牌视觉（单一水平慢速位移，无视差/缩放），
     单独豁免全局冻结，保持原速，避免降级环境下整站完全静止 */
  .marquee-track{
    animation-duration:var(--mq-dur) !important;
    animation-iteration-count:infinite !important;
  }
}

/* ==========================================================================
   22. 案例图片双击预览（lightbox）
   ========================================================================== */
.card-cover{cursor:zoom-in}
.img-lightbox{
  position:fixed;inset:0;z-index:9999;
  display:none;align-items:center;justify-content:center;
  padding:5vmin;
  background:rgba(3,6,12,.86);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.img-lightbox.open{display:flex;animation:lb-fade var(--dur-fast) var(--ease-out)}
.img-lightbox-img{
  max-width:92vw;max-height:88vh;width:auto;height:auto;
  object-fit:contain;border:1px solid var(--c-line);
  border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.6);
  background:var(--c-surface-2);
  cursor:zoom-in;will-change:transform;
  transition:transform 90ms ease-out;
}
/* 缩放状态下提示可缩小 */
.img-lightbox.zoomed .img-lightbox-img{cursor:zoom-out}
.img-lightbox-close{
  position:absolute;top:18px;right:22px;
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(20,28,44,.66);color:#fff;
  font-size:26px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);
  z-index:2;
}
.img-lightbox-close:hover{background:rgba(40,52,76,.9);transform:rotate(90deg)}
/* 左右圆形箭头导航按钮（上一张 / 下一张）—— 官网背景色填充 + 白箭头 + 品牌脉冲 */
.img-lightbox-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:60px;height:60px;border-radius:50%;
  border:2px solid rgba(255,255,255,.85);
  background:var(--c-bg);color:#fff;
  font-size:30px;line-height:1;cursor:pointer;user-select:none;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(2,8,20,.65);
  transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);
  z-index:3;
  animation:lb-nav-pulse 1.8s ease-in-out infinite;
}
.img-lightbox-nav svg{stroke:#fff;stroke-width:3.2}
.img-lightbox-prev{left:20px}
.img-lightbox-next{right:20px}
.img-lightbox-nav:hover{background:var(--c-surface-2);color:#fff;transform:translateY(-50%) scale(1.12);box-shadow:0 10px 30px rgba(2,8,20,.8)}
/* 品牌电光蓝脉冲光环，提示可点击切换 */
@keyframes lb-nav-pulse{
  0%{box-shadow:0 8px 24px rgba(2,8,20,.65),0 0 0 0 rgba(30,111,255,.55)}
  70%{box-shadow:0 8px 24px rgba(2,8,20,.65),0 0 0 16px rgba(30,111,255,0)}
  100%{box-shadow:0 8px 24px rgba(2,8,20,.65),0 0 0 0 rgba(30,111,255,0)}
}
@media (prefers-reduced-motion: reduce){
  .img-lightbox-nav{animation:none}
}
/* 单图时隐藏左右导航 */
.img-lightbox.single .img-lightbox-nav{display:none}
.img-lightbox-count{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.82);font-size:13px;letter-spacing:.12em;
  background:rgba(20,28,44,.55);border:1px solid rgba(255,255,255,.14);
  padding:5px 14px;border-radius:20px;pointer-events:none;
}
.img-lightbox.single .img-lightbox-count{display:none}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}

/* 案例详情页图集网格 */
.case-gallery{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:12px;margin:18px 0 6px;
}
.case-gallery .g-thumb{
  border:1px solid var(--c-line);border-radius:8px;overflow:hidden;
  aspect-ratio:4/3;cursor:zoom-in;background:var(--c-surface-2);
}
.case-gallery .g-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-fast) var(--ease-out)}
.case-gallery .g-thumb:hover img{transform:scale(1.04)}
.g-hint{font-size:13px;color:var(--c-muted);margin:4px 0 0}
