/* ============================================================
   设计令牌
   ============================================================ */
:root{
  --c-paper:      #f7f4ed;
  --c-paper-2:    #fbf9f4;
  --c-paper-3:    #ece7db;
  --c-line:       rgba(22,24,29,.10);
  --c-line-soft:  rgba(22,24,29,.06);
  --c-line-nav:   rgba(22,24,29,.12);

  --c-ink:        #16181d;
  --c-ink-2:      #24272c;
  --c-body:       #2b2e33;
  --c-muted:      #5c5f64;  /* 修正：原 #7a7d82 对比度不足 */
  --c-faint:      #6b6e73;  /* 修正：原 #a3a6ab 对比度不足 */

  --c-cinnabar:   #a33a2b;
  --c-jade:       #2b5945;
  --c-bamboo:     #4f8a3c;
  --c-bamboo-2:   #3f7a30;

  /* 竹林三层（远 → 近）：越近越浓的翠竹绿 */
  --bamboo-far:   #a8c98a;
  --bamboo-mid:   #6ea94f;
  --bamboo-near:  #3f7a30;

  --max:          80rem;
  --gutter:       clamp(1.25rem, 4vw, 3rem);

  --nav-top:      14px;
  --logo-h:       136px;
  /* 下翻后按 90% 缩放 */
  --logo-h-solid: calc(var(--logo-h) * .9);
  --nav-h:        calc(var(--logo-h) + 24px);
  --nav-h-solid:  calc(var(--logo-h-solid) + 18px);  --nav-radius:   4px;
  /* 窄屏导航折行后导航项的实际总高度（由 site.js 写入；单行时为 0，高度仍由 Logo 决定） */
  --nav-links-h:  0px;

  --font-serif:   "Songti SC","STSong","Noto Serif SC","Source Han Serif SC",SimSun,serif;
  --font-kai:     "Kaiti SC","STKaiti","KaiTi",KaiTi_GB2312,serif;
  --font-mono:    "SF Mono","Menlo","Consolas","Roboto Mono",monospace;

  --ease:         cubic-bezier(.16,.84,.34,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
/* 修正：锚点跳转时不被固定导航遮挡 */
[id]{scroll-margin-top:calc(var(--nav-top) + var(--nav-h-solid) + 12px);}
body{
  background:var(--c-paper);
  color:var(--c-body);
  font-family:var(--font-serif);
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
img,svg{display:block;max-width:100%;}
::selection{background:rgba(163,58,43,.16);}

/* 宣纸颗粒 */
.grain{
  position:fixed;inset:0;z-index:9998;pointer-events:none;
  opacity:.4;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
}

/* ============================================================
   工具
   ============================================================ */
.wrap{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
}
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.34em;
  text-transform:uppercase;
  line-height:1;
  display:inline-block;
}
.reveal{}
/* 修正：仅在 JS 可用时（<html class="js">）才隐藏，等待滚动浮现；无 JS 时内容直接可见 */
.js .reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1s var(--ease), transform 1s var(--ease);
  will-change:opacity, transform;
}
.js .reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none;}}

/* ============================================================
   导航 · 极简
   ============================================================ */
.nav{
  position:fixed;
  top:var(--nav-top);
  left:0;right:0;
  z-index:100;
  padding:0 var(--gutter);
  pointer-events:none;
}

/* 全宽毛玻璃背板：左右延伸到屏幕两侧；中心不模糊、两侧模糊
   —— 用渐变遮罩把 backdrop-filter 的效果本身裁掉中段 */
.nav::before{
  content:'';
  position:absolute;
  top:calc(-1 * var(--nav-top));
  left:calc(-1 * var(--gutter));
  right:calc(-1 * var(--gutter));
  height:calc(var(--nav-top) + var(--nav-h));
  pointer-events:none;
  background:rgba(251,249,244,.58);
  backdrop-filter:blur(24px) saturate(1.15);
  -webkit-backdrop-filter:blur(24px) saturate(1.15);
  opacity:0;
  transition:height .5s var(--ease), opacity .5s var(--ease), background .5s var(--ease);
  /* 两块椭圆弧（左罩 Logo 与模块名、右罩导航项）：边缘长羽化，
     底部自然收成弧线 —— 不再出现「矩形方罩」的观感 */
  mask-image:
    radial-gradient(46% 150% at 8% -10%, #000 0%, #000 40%, rgba(0,0,0,0) 88%),
    radial-gradient(48% 150% at 92% -10%, #000 0%, #000 44%, rgba(0,0,0,0) 90%);
  -webkit-mask-image:
    radial-gradient(46% 150% at 8% -10%, #000 0%, #000 40%, rgba(0,0,0,0) 88%),
    radial-gradient(48% 150% at 92% -10%, #000 0%, #000 44%, rgba(0,0,0,0) 90%);
  mask-composite:add;
  -webkit-mask-composite:source-over;
}
.nav.solid::before{
  opacity:1;
  height:calc(var(--nav-top) + var(--nav-h-solid));
}

/* 深色内容区（产品视频那一段）：用「变色」而不是拿白纱去罩——
   雾转深色、文字与 Logo 转浅色，和画面同调，不再像贴了一张白纸 */
.nav.on-dark::before{
  background:rgba(14,16,20,.42);
}
.nav.on-dark .brand-logo{
  filter:invert(1) brightness(1.1);
}
.nav.on-dark .nav-crumb-text,
.nav.on-dark .nav-links a{color:var(--c-paper);}
.nav.on-dark .nav-crumb-text{text-shadow:0 1px 10px rgba(14,16,20,.55);}
.nav.on-dark .nav-links a{text-shadow:0 1px 10px rgba(14,16,20,.5);}
.nav.on-dark .nav-crumb::before,
.nav.on-dark .nav-links li + li::before{background:rgba(247,244,237,.3);}
.nav.on-dark .nav-links a:hover{background:rgba(247,244,237,.92);color:var(--c-ink);}

.nav-inner{
  position:relative;
  z-index:1;
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  height:var(--nav-h);
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  /* 背板效果全在 .nav::before 上，这里只负责排版 */
  background:transparent;
  border:0;
  pointer-events:auto;
  overflow:hidden;
  transition:height .5s var(--ease);
}
.nav.solid .nav-inner{
  height:var(--nav-h-solid);
}

/* 品牌 · Logo：默认大、下翻缩小 */
.brand{
  display:flex;
  align-items:center;
  flex:none;
  padding:0 36px 0 32px;
  color:var(--c-ink);
}
.brand-logo{
  height:var(--logo-h);
  width:auto;
  max-width:340px;
  object-fit:contain;
  transition:height .5s var(--ease), transform .6s var(--ease);
}
.nav.solid .brand-logo{height:var(--logo-h-solid);}
.brand:hover .brand-logo{transform:scale(1.03);}

/* 滚动指示 · 当前模块（紧贴 Logo 右侧） */
.nav-crumb{
  display:flex;
  align-items:center;
  gap:18px;
  margin-left:6px;
  /* 注意：这里不能用 margin-right:auto，否则会与 .nav-links 的 auto 平分空白，指示器飘到中间 */
  pointer-events:none;
  white-space:nowrap;
  opacity:0;
  transform:translateX(-10px);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.nav.solid .nav-crumb.is-on{opacity:1;transform:none;}
.nav-crumb::before{
  content:'';
  width:1px;
  height:34px;
  background:var(--c-line-nav);
  flex:none;
}
.nav-crumb-text{
  font-size:20px;
  font-weight:600;
  letter-spacing:.3em;
  color:var(--c-ink);
  text-shadow:0 1px 8px rgba(251,249,244,.6);
  transition:opacity .18s ease, transform .18s ease;
}

/* 导航项 · 仅四个链接 */
.nav-links{
  display:flex;
  align-items:stretch;
  list-style:none;
  margin-left:auto;
  height:100%;
}
.nav-links li{
  position:relative;
  display:flex;
  align-items:stretch;
}
.nav-links li + li::before{
  content:'';
  position:absolute;
  left:0;top:50%;
  transform:translateY(-50%);
  width:1px;height:16px;
  background:var(--c-line-nav);
  transition:opacity .4s ease;
  z-index:2;
}
.nav-links li:hover::before,
.nav-links li:hover + li::before{opacity:0;}

.nav-links a{
  display:flex;
  align-items:center;
  padding:0 40px;
  height:100%;
  font-size:15.5px;
  font-weight:600;
  letter-spacing:.26em;
  color:var(--c-ink);
  /* 浅雾区也能压住：极淡的纸色晕，避免字压在深色背景上发虚 */
  text-shadow:0 1px 8px rgba(251,249,244,.55);
  position:relative;
  transition:background .45s var(--ease), color .45s var(--ease);
}
.nav-links a:hover{
  background:rgba(22,24,29,.88);
  color:var(--c-paper);
}

/* ============================================================
   首屏 · 竹林武侠
   ============================================================ */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:
    radial-gradient(ellipse 80% 55% at 50% 42%, #ffffff 0%, rgba(255,255,255,0) 62%),
    linear-gradient(180deg, #fdfcf8 0%, var(--c-paper) 55%, #e2e6d3 100%);
  padding:calc(var(--nav-top) + var(--nav-h) + 40px) 0 clamp(3rem, 12vh, 8rem);
}

/* —— 首屏动态背景容器：具体效果见 backgrounds/<名称>/bg.css —— */
.hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}

/* —— 左侧内容容器（与导航栏左边缘对齐） ——
   修正：原先标题块与文字面板分别绝对定位（top / bottom），矮屏时会重叠。
   现改为同一列正常文档流：标题在上、面板在下，中间用 space-between 撑开；
   视口不够高时首屏自然变高，不再互相遮挡。 */
.hero-left{
  position:relative;
  width:100%;
  flex:1 0 auto;
  display:flex;
  padding:0 var(--gutter);
  pointer-events:none;
  z-index:10;
}
.hero-left-inner{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:2.5rem;
  pointer-events:none;
}

/* 左上：eyebrow + 标题 + 副标题 */
.hero-left-top{
  position:relative;
  pointer-events:auto;
  max-width:640px;
}
.hero-left-top .hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  color:var(--c-faint);
  margin-bottom:1.5rem;
  justify-content:flex-start;
  width:auto;
}
.hero-left-top .hero-eyebrow::before{
  content:'';
  width:30px;
  height:1px;
  background:linear-gradient(90deg, rgba(22,24,29,.25), transparent);
}
.hero-left-top .hero-eyebrow::after{
  display:none;
}
.hero-left-top .hero-title{
  font-family:var(--font-serif);
  font-weight:400;
  font-size:clamp(2.8rem, 6vw, 4.8rem);
  line-height:1.1;
  letter-spacing:.06em;
  color:var(--c-ink);
  text-wrap:balance;
  text-shadow:0 0 60px rgba(22,24,29,.06);
  text-align:left;
  padding-left:0;
}
.hero-left-top .hero-sub{
  margin-top:1.2rem;
  font-size:clamp(.9rem, 1.2vw, 1rem);
  letter-spacing:.2em;
  color:var(--c-body);
  line-height:2;
  text-align:left;
  padding-left:0;
}
.hero-left-top .hero-sub .dot{
  color:var(--c-cinnabar);
  margin:0 .7em;
}

/* 左下：文字面板（高斯模糊背景） */
.hero-left-panel{
  position:relative;
  width:min(400px, 42vw);
  padding:2rem 1.8rem;
  background:rgba(247, 244, 237, 0.35);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(22, 24, 29, 0.06);
  border-radius:6px;
  box-shadow:0 10px 40px rgba(22, 24, 29, 0.04);
  pointer-events:auto;
  text-align:left;
  transition:background .4s ease, transform .4s var(--ease);
}
.hero-left-panel:hover{
  background:rgba(247, 244, 237, 0.5);
  transform:translateY(-4px);
}
.hero-left-panel .hero-intro{
  font-size:13.5px;
  line-height:2.1;
  letter-spacing:.06em;
  color:var(--c-body);
  max-width:none;
  text-align:left;
  margin-bottom:1.2rem;
}
.hero-left-panel .hero-intro strong{
  font-weight:400;
  color:var(--c-ink);
}
.hero-left-panel .hero-intro .sep{
  color:var(--c-cinnabar);
  margin:0 .4em;
}
.hero-left-panel .hero-scroll{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.5rem;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.34em;
  color:var(--c-faint);
  text-transform:uppercase;
  transition:color .35s ease;
}
.hero-left-panel .hero-scroll:hover{
  color:var(--c-ink);
}
.hero-left-panel .hero-scroll .bar{
  width:1px;
  height:36px;
  background:linear-gradient(180deg, rgba(22,24,29,.4), transparent);
  animation:barPulse 3s ease-in-out infinite;
}
@keyframes barPulse{
  0%,100%{opacity:.3;transform:scaleY(.6);transform-origin:top;}
  50%{opacity:1;transform:scaleY(1);transform-origin:top;}
}

/* ============================================================
   Section 通用
   ============================================================ */
.sec{
  padding:clamp(4.5rem,9vw,8rem) 0;
  position:relative;
}
.sec--paper{background:var(--c-paper);}
.sec--paper2{background:var(--c-paper-2);}
.sec--paper3{background:var(--c-paper-3);}

.sec-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:2rem;
  padding-bottom:1.6rem;
  border-bottom:1px solid var(--c-line);
  margin-bottom:3.2rem;
}
.sec-head-l .eyebrow{
  color:var(--c-cinnabar);
  margin-bottom:1rem;
  display:block;
}
.sec-head-l h2{
  font-size:clamp(1.6rem,3.1vw,2.4rem);
  font-weight:400;
  letter-spacing:.06em;
  line-height:1.25;
  color:var(--c-ink);
}
.sec-head-r{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.28em;
  color:var(--c-faint);
  text-align:right;
  flex:none;
  padding-bottom:.35rem;
}

/* ============================================================
   我们 · 简介
   ============================================================ */
.about-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.about-lead{
  font-size:clamp(1.15rem,2.1vw,1.55rem);
  line-height:1.95;
  letter-spacing:.05em;
  color:var(--c-ink);
}
.about-lead strong{
  font-weight:400;
  color:var(--c-cinnabar);
}
.about-body{
  font-size:14.5px;
  line-height:2.2;
  color:var(--c-muted);
  letter-spacing:.04em;
}
.about-body p + p{margin-top:1.2rem;}

.vision{
  margin-top:clamp(3rem,6vw,5rem);
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.5rem;
}
.vision-card{
  border-top:1px solid var(--c-line);
  padding-top:1.6rem;
}
.vision-card h3{
  font-size:1.05rem;
  font-weight:400;
  letter-spacing:.2em;
  color:var(--c-ink);
  margin-bottom:.9rem;
  font-family:var(--font-kai);
}
.vision-card p{
  font-size:14px;
  line-height:2.1;
  color:var(--c-muted);
  letter-spacing:.04em;
}

/* ============================================================
   企业文化
   ============================================================ */
.culture-list{
  border-top:1px solid var(--c-line);
}
.culture-row{
  display:grid;
  grid-template-columns:6rem minmax(0,.85fr) minmax(0,1.6fr) 2.5rem;
  align-items:start;
  gap:1.5rem;
  padding:2.15rem 0;
  border-bottom:1px solid var(--c-line);
  position:relative;
  transition:background .45s ease;
}
.culture-row:not(:has(.culture-num)){
  grid-template-columns:minmax(8rem, .72fr) minmax(0, 1.6fr) 2.5rem;
}
.culture-row::before{
  content:'';
  position:absolute;left:calc(var(--gutter) * -1);right:calc(var(--gutter) * -1);
  top:0;bottom:0;
  background:rgba(22,24,29,.025);
  opacity:0;
  transition:opacity .45s ease;
  pointer-events:none;
}
.culture-row:hover::before{opacity:1;}

.culture-num{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.2em;
  color:var(--c-cinnabar);
  padding-top:.7rem;
}
.culture-name{
  font-size:clamp(1.5rem,2.8vw,2.1rem);
  font-weight:400;
  letter-spacing:.14em;
  line-height:1.3;
  color:var(--c-ink);
  font-family:var(--font-kai);
  transition:color .35s ease;
}
.culture-row:hover .culture-name{color:var(--c-jade);}
.culture-desc{
  font-size:14px;
  line-height:2.1;
  color:var(--c-muted);
  letter-spacing:.04em;
  padding-top:.55rem;
}
.culture-mark{
  justify-self:end;
  padding-top:.5rem;
  font-family:var(--font-mono);
  font-size:13px;
  color:var(--c-faint);
  opacity:0;
  transform:translateX(-8px);
  transition:opacity .4s ease,transform .5s var(--ease),color .3s ease;
}
.culture-row:hover .culture-mark{
  opacity:1;transform:translateX(0);color:var(--c-cinnabar);
}

/* ============================================================
   产品与伙伴
   ============================================================ */
.link-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.5rem;
}
.link-card{
  position:relative;
  display:flex;flex-direction:column;
  justify-content:space-between;
  min-height:180px;
  padding:1.8rem 1.6rem;
  background:var(--c-paper-2);
  border:1px solid var(--c-line-soft);
  transition:transform .7s var(--ease),box-shadow .7s ease,border-color .5s ease;
}
.link-card:hover{
  transform:translateY(-6px);
  border-color:rgba(22,24,29,.18);
  box-shadow:0 18px 40px rgba(22,24,29,.08);
}
.link-card .lc-top{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:1rem;
}
.link-icon{
  width:38px;height:38px;
  flex:none;
  display:grid;place-items:center;
  background:var(--c-ink);
  color:var(--c-paper);
  font-family:var(--font-kai);
  font-size:16px;
  line-height:1;
  padding-top:2px;
  transition:background .4s ease;
}
.link-card:hover .link-icon{background:var(--c-cinnabar);}
.link-arrow{
  font-family:var(--font-mono);
  font-size:13px;
  color:var(--c-faint);
  transition:transform .5s var(--ease),color .3s ease;
}
.link-card:hover .link-arrow{
  transform:translate(4px,-4px);
  color:var(--c-cinnabar);
}
.link-card h3{
  margin-top:1.8rem;
  font-size:1.05rem;
  font-weight:400;
  letter-spacing:.16em;
  color:var(--c-ink);
  font-family:var(--font-kai);
}
.link-card p{
  margin-top:.6rem;
  font-size:12.5px;
  line-height:1.95;
  color:var(--c-muted);
  letter-spacing:.04em;
}
.link-card .lc-url{
  margin-top:1.2rem;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--c-faint);
}

/* ============================================================
   公告与动态
   ============================================================ */
.post-list{
  border-top:1px solid var(--c-line);
}
.post-row{
  display:grid;
  grid-template-columns:8.5rem minmax(0,1fr) 3rem;
  align-items:center;
  gap:1.5rem;
  padding:1.55rem 0;
  border-bottom:1px solid var(--c-line);
  position:relative;
  transition:padding-left .5s var(--ease);
}
.post-row::before{
  content:'';
  position:absolute;left:0;top:50%;
  width:0;height:1px;
  background:var(--c-cinnabar);
  transform:translateY(-50%);
  transition:width .5s var(--ease);
}
.post-row:hover{padding-left:1.4rem;}
.post-row:hover::before{width:1rem;}

.post-date{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--c-faint);
}
.post-title{
  font-size:15.5px;
  letter-spacing:.05em;
  color:var(--c-body);
  line-height:1.7;
  transition:color .35s ease;
}
.post-row:hover .post-title{color:var(--c-ink);}
.post-arrow{
  justify-self:end;
  font-family:var(--font-mono);
  font-size:13px;
  color:var(--c-faint);
  opacity:0;
  transform:translateX(-8px);
  transition:opacity .4s ease,transform .5s var(--ease),color .3s ease;
}
.post-row:hover .post-arrow{
  opacity:1;transform:translateX(0);color:var(--c-cinnabar);
}

/* ============================================================
   CTA
   ============================================================ */
.cta{
  position:relative;
  overflow:hidden;
  border-top:1px solid var(--c-line);
  padding:clamp(4rem,8vw,7rem) 0;
}
.cta-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:3rem;flex-wrap:wrap;
}
.cta-title{
  font-size:clamp(1.7rem,3.4vw,2.7rem);
  font-weight:400;
  line-height:1.42;
  letter-spacing:.04em;
  max-width:20em;
  color:var(--c-ink);
}
.cta-title .accent{color:var(--c-cinnabar);}
.cta-actions{display:flex;gap:.9rem;flex-wrap:wrap;}

/* CTA 按钮补充样式 */
.btn-primary,
.btn-ghost{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:.95rem 1.6rem;
  font-size:13.5px;
  letter-spacing:.18em;
  font-family:var(--font-serif);
  transition:background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease);
}
.btn-primary{
  background:var(--c-ink);
  color:var(--c-paper);
  border:1px solid var(--c-ink);
}
.btn-primary:hover{
  background:var(--c-cinnabar);
  border-color:var(--c-cinnabar);
  transform:translateY(-2px);
}
.btn-ghost{
  border:1px solid var(--c-line-nav);
  color:var(--c-ink);
}
.btn-ghost:hover{
  background:var(--c-ink);
  color:var(--c-paper);
  border-color:var(--c-ink);
  transform:translateY(-2px);
}

/* ============================================================
   产品与伙伴 · 底部慢速循环
   ============================================================ */
.partners-marquee{
  position:relative;
  padding:clamp(3.5rem, 7vw, 5.5rem) 0;
  background:var(--c-paper);
  border-top:1px solid var(--c-line);
  overflow:hidden;
}
.partners-marquee__inner{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
}

.partners-marquee__title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.1rem;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--c-faint);
  margin-bottom:clamp(2rem, 4vw, 2.8rem);
}
.partners-marquee__line{
  width:50px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(22,24,29,.22));
}
.partners-marquee__line:last-child{
  transform:scaleX(-1);
}

/* 滚动视窗 */
.partners-scroller-wrap{
  position:relative;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
}

.partners-scroller{
  overflow:hidden;
}

.partners-scroller-inner{
  display:flex;
  width:max-content;
  animation:partnersScroll 42s linear infinite;
  will-change:transform;
}
@keyframes partnersScroll{
  from{ transform:translate3d(0, 0, 0); }
  to  { transform:translate3d(-50%, 0, 0); }
}

/* 悬停 / 聚焦时暂停 */
.partners-scroller:hover .partners-scroller-inner,
.partners-scroller:focus-within .partners-scroller-inner{
  animation-play-state:paused;
}

/* 单组 */
.partners-group{
  display:flex;
  align-items:center;
  gap:clamp(2.5rem, 6vw, 5rem);
  padding-right:clamp(2.5rem, 6vw, 5rem);
  flex:none;
}

/* 单个 Logo */
.partner-item{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:none;
  padding:.5rem .75rem;
  opacity:.72;
  transition:opacity .45s ease, transform .6s var(--ease);
}
.partner-item:hover{
  opacity:1;
  transform:translateY(-3px) scale(1.03);
}
.partner-item img{
  height:60px;
  width:auto;
  max-width:200px;
  object-fit:contain;
  filter:grayscale(.25);
  transition:filter .45s ease;
}
.partner-item:hover img{
  filter:grayscale(0);
}

/* ============================================================
   页脚
   ============================================================ */
.footer{
  background:var(--c-ink);
  color:var(--c-paper);
  padding:clamp(4rem,7vw,6rem) 0 2.4rem;
}
.footer-top{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));
  gap:2.5rem;
  padding-bottom:3.5rem;
  border-bottom:1px solid rgba(247,244,237,.12);
}
.footer-brand{
  display:flex;align-items:center;gap:.85rem;
  margin-bottom:1.6rem;
}
.footer-logo{
  height:168px;
  width:auto;
  max-width:240px;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.94;
  transition:opacity .3s ease;
}
.footer-brand:hover .footer-logo{opacity:1;}
.footer-desc{
  font-size:13.5px;
  line-height:2.05;
  color:rgba(247,244,237,.7);
  max-width:30em;
  letter-spacing:.03em;
}
.footer-col h4{
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:400;
  letter-spacing:.3em;
  color:rgba(247,244,237,.62);
  margin-bottom:1.4rem;
}
.footer-col ul{list-style:none;display:grid;gap:.85rem;}
.footer-col a{
  font-size:13.5px;
  letter-spacing:.1em;
  color:rgba(247,244,237,.74);
  transition:color .3s ease;
}
.footer-col a:hover{color:#fff;}

.footer-bottom{
  padding-top:2rem;
  display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;flex-wrap:wrap;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.22em;
  color:rgba(247,244,237,.62);
}
.footer-seal{
  width:44px;height:44px;
  display:grid;place-items:center;
  background:var(--c-cinnabar);
  color:#f7f4ed;
  font-family:var(--font-kai);
  font-size:15px;
  letter-spacing:0;
  line-height:1;
  padding-top:2px;
  box-shadow:0 4px 18px rgba(163,58,43,.3);
}

/* ============================================================
   解决方案 · 标题切换 + 视频
   ============================================================ */
.solutions{
  background:var(--c-paper);
  padding:clamp(1.25rem, 2.5vw, 2rem) 0 clamp(1.5rem, 3vw, 2.4rem);
}
.solutions + .sec{padding-top:clamp(2.2rem, 4.5vw, 3.6rem);}
.solutions-bar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem 1.5rem;
  margin-bottom:1rem;
}
.solutions-pills{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}
.solutions-pill{
  position:relative;
  overflow:hidden;
  padding:.48rem .9rem;
  border-radius:4px;
  background:#fff;
  border:1px solid rgba(22,24,29,.08);
  color:var(--c-ink);
  font-size:14.5px;
  letter-spacing:.02em;
  line-height:1.35;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.solutions-pill:hover{border-color:rgba(22,24,29,.28);}
.solutions-pill.is-active{
  background:var(--c-ink);
  border-color:var(--c-ink);
  color:#fff;
}
.solutions-pills[role="tablist"] .solutions-pill:not(.is-active):hover{
  background:#f3f1ea;
}
.solutions-pills[role="tablist"] .solutions-pill.is-active{
  background:#fff;
  border-color:rgba(22,24,29,.08);
  color:var(--c-ink);
}
.solutions-pills[role="tablist"] .solutions-pill.is-active::after{
  content:"";
  position:absolute;
  inset:0;
  background:#dbdbdb;
  transform:translateX(-100%);
  animation:solutions-slide 6s linear forwards;
  pointer-events:none;
}
.solutions.is-paused .solutions-pills[role="tablist"] .solutions-pill.is-active::after{
  animation-play-state:paused;
}
.solutions-pill-label{position:relative;z-index:1;}
@keyframes solutions-slide{
  from{transform:translateX(-100%);}
  to{transform:translateX(0);}
}
@media (prefers-reduced-motion:reduce){
  .solutions-pills[role="tablist"] .solutions-pill.is-active::after{
    animation:none;
    transform:translateX(0);
  }
}
.solutions-all{
  flex:none;
  align-self:flex-start;
  padding:.48rem 1rem;
  border-radius:6px;
  border:1px solid rgba(22,24,29,.22);
  font-size:13px;
  letter-spacing:.14em;
  color:var(--c-ink);
  transition:background .25s ease, color .25s ease;
}
.solutions-all:hover{background:var(--c-ink);color:#fff;}
.solutions-stage{
  position:relative;
  display:block;
  min-height:clamp(320px, 42vw, 560px);
  border-radius:10px;
  overflow:hidden;
  background:#14161a;
}
.solutions-media{
  position:absolute;
  inset:0;
}
.solutions-media video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .45s ease;
}
.solutions-media video.is-active{opacity:1;}
.solutions-card{
  position:absolute;
  z-index:2;
  top:clamp(1.1rem, 2.6vw, 1.8rem);
  left:clamp(1.1rem, 2.6vw, 1.8rem);
  max-width:min(36rem, calc(100% - 2.4rem));
  padding:1.05rem 1.25rem 1.15rem;
  background:rgba(22,24,29,.78);
  color:#fff;
}
.solutions-kicker{
  display:block;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.18em;
  color:rgba(255,255,255,.78);
  margin-bottom:.45rem;
}
.solutions-title{
  display:flex;
  align-items:center;
  gap:.4rem;
  font-size:clamp(1.45rem, 2.5vw, 2.15rem);
  font-weight:400;
  letter-spacing:.03em;
  line-height:1.28;
  color:#fff;
}
.solutions-title .arrow{
  font-size:.85em;
  transform:translateY(-1px);
}
.solutions-scrim{
  position:absolute;
  z-index:1;
  left:0;right:0;bottom:0;
  height:52%;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.72) 100%);
  pointer-events:none;
}
.solutions-foot{
  position:absolute;
  z-index:2;
  left:clamp(1.1rem, 2.6vw, 1.8rem);
  right:clamp(1.1rem, 2.6vw, 1.8rem);
  bottom:clamp(1.15rem, 2.6vw, 1.8rem);
  max-width:40rem;
  color:#fff;
}
.solutions-lead{
  font-size:clamp(1.7rem, 3.1vw, 2.55rem);
  font-weight:400;
  letter-spacing:.04em;
  line-height:1.25;
  color:#fff;
}
.solutions-note{
  margin-top:.5rem;
  max-width:36em;
  font-size:14.5px;
  line-height:1.75;
  letter-spacing:.03em;
  color:rgba(255,255,255,.86);
}
.product-row{
  margin-top:clamp(1.6rem, 3vw, 2.4rem);
}
.product-row__title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.1rem;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.34em;
  color:var(--c-faint);
  margin-bottom:clamp(1.2rem, 2.5vw, 1.8rem);
}
.product-row__line{
  width:50px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(22,24,29,.22));
}
.product-row__line:last-child{transform:scaleX(-1);}
.product-row__list{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:clamp(1.2rem, 4vw, 3.5rem);
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:1180px){
  :root{--logo-h:106px;}
  .nav-links a{padding:0 30px;font-size:14px;letter-spacing:.22em;}
  .brand{padding:0 26px 0 24px;}
}

@media (max-width:1080px){
  :root{--logo-h:94px;}
  .about-grid{grid-template-columns:1fr;gap:2rem;}
  .link-grid{grid-template-columns:repeat(2,1fr);}
  .nav-links a{padding:0 24px;letter-spacing:.18em;}
}

@media (max-width:900px){
  :root{
    --nav-top:14px;
    --logo-h:88px;
    --nav-h:max(calc(var(--logo-h) + 22px), calc(var(--nav-links-h) + 22px));
    --nav-h-solid:max(calc(var(--logo-h-solid) + 18px), calc(var(--nav-links-h) + 18px));
  }

  .nav-links a{padding:0 18px;font-size:13.5px;letter-spacing:.14em;}
  .brand{padding:0 18px;}
  .brand-logo{max-width:180px;}

  .hero{padding-bottom:150px;}

  /* 移动端：左侧内容改为正常流式布局并居中 */
  .hero-left{
    position:relative;
    inset:auto;
    padding:0;
    height:auto;
    pointer-events:auto;
    z-index:10;
  }
  .hero-left-inner{
    height:auto;
    padding:0 var(--gutter);
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    gap:0;
  }
  .hero-left-top{
    position:relative;
    top:auto;
    left:auto;
    max-width:100%;
    margin-top:2rem;
    text-align:center;
  }
  .hero-left-top .hero-eyebrow{
    justify-content:center;
  }
  .hero-left-top .hero-eyebrow::before{
    display:none;
  }
  .hero-left-top .hero-title,
  .hero-left-top .hero-sub{
    text-align:center;
  }
  .hero-left-panel{
    position:relative;
    bottom:auto;
    left:auto;
    width:100%;
    max-width:460px;
    margin:2.5rem auto 0;
    padding:1.8rem 1.5rem;
  }

  .culture-row{
    grid-template-columns:4.5rem minmax(0,1fr) 2rem;
    grid-template-areas:
      "num name mark"
      "desc desc desc";
    gap:.7rem 1rem;
    padding:1.7rem 0;
  }
  .culture-num{grid-area:num;}
  .culture-name{grid-area:name;}
  .culture-desc{grid-area:desc;padding-top:.2rem;}
  .culture-mark{grid-area:mark;align-self:start;opacity:1;transform:none;}
  .culture-row:not(:has(.culture-num)){
    grid-template-columns:minmax(0,1fr) 2rem;
    grid-template-areas:
      "name mark"
      "desc desc";
  }

  .vision{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr;gap:2.5rem 1.5rem;}
  .footer-logo{height:120px;max-width:180px;}

  .partners-scroller-inner{ animation-duration:32s; }
  .partner-item img{ height:52px; }
}

@media (max-width:680px){
  :root{
    --nav-top:10px;
    --logo-h:92px;
    --nav-h:max(calc(var(--logo-h) + 22px), calc(var(--nav-links-h) + 22px));
    --nav-h-solid:max(calc(var(--logo-h-solid) + 20px), calc(var(--nav-links-h) + 20px));
  }

  .nav-links a{padding:0 14px;font-size:13px;letter-spacing:.1em;}
  .brand{padding:0 14px;}
  .brand-logo{max-width:150px;}
  .nav-crumb{display:none;}
  /* 窄屏：中间清晰区收窄，保证链接文字有雾托底 */
  .nav::before{
    mask-image:
      linear-gradient(90deg,#000 0%,#000 34%,rgba(0,0,0,0) 54%,rgba(0,0,0,0) 66%,#000 86%,#000 100%),
      linear-gradient(180deg,#000 0%,#000 68%,rgba(0,0,0,0) 100%);
    -webkit-mask-image:
      linear-gradient(90deg,#000 0%,#000 34%,rgba(0,0,0,0) 54%,rgba(0,0,0,0) 66%,#000 86%,#000 100%),
      linear-gradient(180deg,#000 0%,#000 68%,rgba(0,0,0,0) 100%);
  }

  .hero{padding-bottom:130px;}
  .hero-title{letter-spacing:.03em;}
  .hero-intro{font-size:12.5px;line-height:2;letter-spacing:.05em;}

  .solutions-bar{flex-direction:column;}
  .solutions-stage{min-height:360px;border-radius:8px;}
  .solutions-card{padding:.9rem 1rem;}
  .solutions-lead{font-size:1.45rem;}
  .solutions-note{font-size:13px;}

  .link-grid{grid-template-columns:1fr;}

  .post-row{
    grid-template-columns:1fr 2rem;
    grid-template-areas:
      "date arrow"
      "title title";
    gap:.4rem 1rem;
    padding:1.3rem 0;
  }
  .post-date{grid-area:date;}
  .post-title{grid-area:title;font-size:14.5px;}
  .post-arrow{grid-area:arrow;align-self:start;opacity:1;transform:none;}

  .sec-head{flex-direction:column;align-items:flex-start;gap:1rem;}
  .sec-head-r{text-align:left;}

  .cta-inner{flex-direction:column;align-items:flex-start;}
  .cta-actions{width:100%;}
  .cta-actions .btn-primary,
  .cta-actions .btn-ghost{width:100%;justify-content:center;}

  .footer-top{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:1.2rem;}
  .footer-logo{height:108px;}

  .partners-marquee{ padding:2.5rem 0; }
  .partners-marquee__title{ margin-bottom:1.6rem; }
  .partners-marquee__line{ width:28px; }
  .partners-group{
    gap:2rem;
    padding-right:2rem;
  }
  .partner-item img{ height:44px; max-width:150px; }
  .partners-scroller-inner{ animation-duration:24s; }
}

/* ============================================================
   窄屏导航 · 放不下时自动折成多行
   （≤900px 生效，桌面端不变。site.js 在导航项折行时给 .nav 加 .nav--wrap，
     并把导航项实际总高度写入 --nav-links-h，导航条 / 毛玻璃背板 / 首屏留白 /
     锚点 scroll-margin 都据此自动变高，不会被遮挡）
   ============================================================ */
@media (max-width:900px){
  :root{
    --nav-row-h:34px;
    --nav-row-gap:6px;
  }
  /* 导航条高度不再写死：至少为 --nav-h，内容更高时自然撑开（无 JS 时也不会裁掉第二行） */
  .nav-inner{
    height:auto;
    min-height:var(--nav-h);
    transition:min-height .5s var(--ease);
  }
  .nav.solid .nav-inner{height:auto;min-height:var(--nav-h-solid);}
  /* 已折行时 Logo 下翻缩小改用 transform：视觉同样缩到 90%，但不改变占位宽度，
     两种状态下导航的折行结果一致，滚动时内容不跳动 */
  .nav--wrap .brand-logo{transform-origin:left center;}
  .nav--wrap.solid .brand-logo{height:var(--logo-h);transform:scale(.9);}
  .nav--wrap.solid .brand:hover .brand-logo{transform:scale(.93);}

  .nav-links{
    flex:0 1 auto;
    min-width:0;
    height:auto;               /* 父级高度改为 auto 后，靠 stretch 撑满整条导航高度（单行时与原来一致） */
    flex-wrap:wrap;
    justify-content:flex-end;
    overflow:hidden;           /* 裁掉每行行尾那一根分隔线 */
  }
  .nav-links a{white-space:nowrap;}
  /* 分隔线：改画在每一项右侧、且落在项外 1px。
     每行最后一项的分隔线正好落在列表右边界之外被裁掉，
     行首不会有竖线、行尾也不会有孤立竖线 */
  .nav-links li + li::before{content:none;}
  .nav-links li::after{
    content:'';
    position:absolute;
    right:-1px;top:50%;
    transform:translateY(-50%);
    width:1px;height:16px;
    background:var(--c-line-nav);
    transition:opacity .4s ease;
    z-index:2;
    pointer-events:none;
  }
  .nav-links li:last-child::after{content:none;}
  .nav-links li:hover::after,
  .nav-links li:has(+ li:hover)::after{opacity:0;}
  .nav.on-dark .nav-links li::after{background:rgba(247,244,237,.3);}

  /* 已折行：导航项改为固定行高、与 Logo 垂直居中对齐，行距统一 */
  .nav--wrap .nav-links{
    align-self:center;
    align-content:center;
    row-gap:var(--nav-row-gap);
    padding:8px 0;margin:-8px 0;   /* 给文字柔光留出裁切余量，不影响占位 */
  }
  .nav--wrap .nav-links a{height:var(--nav-row-h);}
  /* 折行（或放不下）时隐藏“当前模块”指示，把空间让给导航项 */
  .nav--nocrumb .nav-crumb{display:none;}
}
@media (max-width:380px){
  .nav-links a{padding:0 11px;}
  .brand{padding:0 10px 0 12px;}
}

/* 尊重系统「减弱动态效果」偏好 */
@media (prefers-reduced-motion: reduce){
  .partners-scroller-inner{ animation:none; }
  .partners-scroller-wrap{
    overflow-x:auto;
    -webkit-mask-image:none;
            mask-image:none;
  }
  .partners-scroller-wrap::-webkit-scrollbar{ display:none; }
}
