﻿/* ============================================
   PSLIDE 序幕演示 · 前端样式
   技术栈预留：Vue3 + Django + MySQL
   后端接口位置：js/main.js 中标记 TODO API
   ============================================ */

:root{
  --primary:#E80013;
  --pink:#FF6B8A;
  --pink-lt:#FFB3C1;
  --pink-dim:rgba(255,107,138,.15);
  --bg:#0A0A0B;
  --bg2:#121214;
  --bg3:#18181C;
  --bg4:#1E1E24;
  --bd:#26262B;
  --bd-lt:rgba(255,255,255,.08);
  --txt:#F5F5F7;
  --txt2:#9CA3AF;
  --txt3:#6B7280;
  --glass:rgba(255,255,255,.04);
  --glass2:rgba(255,255,255,.06);
  --radius:16px;
  --radius-lg:24px;
  --ease:cubic-bezier(.22,1,.36,1);
  --section-pad:clamp(160px, 18vw, 700px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto !important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-scrolling iframe{pointer-events:none}
#selected-works{scroll-margin-top:80px}
body{
  font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  background:var(--bg);color:var(--txt);
  overflow-x:hidden;line-height:1.9;
  -webkit-font-smoothing:antialiased;
  font-weight:300;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--primary);color:#fff}

/* ===== 滚动条 ===== */
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--bd);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}

/* ===== 通用板块 ===== */
.section{padding:140px var(--section-pad);max-width:none;margin:0;position:relative}
.section-full{padding:140px 0;position:relative}
.sec-label{
  display:inline-flex;align-items:center;gap:8px;
  font-size:9px;letter-spacing:4px;color:var(--pink);
  text-transform:uppercase;margin-bottom:24px;
}
.sec-label::before{content:'';width:24px;height:1px;background:linear-gradient(90deg,var(--primary),transparent)}
.sec-title{font-size:clamp(22px,3.1vw,36px);font-weight:600;line-height:1.25;letter-spacing:-.2px;margin-bottom:14px}
.sec-title .grad{background:linear-gradient(120deg,var(--primary),var(--pink) 60%,var(--pink-lt));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.sec-desc{color:var(--txt2);font-size:11px;max-width:520px;margin-bottom:68px;line-height:2.0}

/* ===== 滚动渐入动画 ===== */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1.2s cubic-bezier(0.22,1,0.36,1),transform 1.2s cubic-bezier(0.22,1,0.36,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}

/* ===== 逐字浮现动画 ===== */
.split-char{display:inline-block;opacity:0;transform:translateY(30px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.split-char.visible{opacity:1;transform:translateY(0)}

/* ===== 悬停上浮动画 ===== */
.hover-lift{transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.hover-lift:hover{transform:translateY(-4px)}

/* ===== 交错延迟 ===== */
.stagger-1{transition-delay:.1s !important}
.stagger-2{transition-delay:.2s !important}
.stagger-3{transition-delay:.3s !important}
.stagger-4{transition-delay:.4s !important}
.stagger-5{transition-delay:.5s !important}

/* ===== 从左/右淡入 ===== */
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-right.visible{opacity:1;transform:translateX(0)}

/* ===== 缩放淡入 ===== */
.reveal-scale{opacity:0;transform:scale(.92);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-scale.visible{opacity:1;transform:scale(1)}

/* ===== 图片悬停缩放 ===== */
.img-hover-zoom{overflow:hidden}
.img-hover-zoom img{transition:transform .6s var(--ease)}
.img-hover-zoom:hover img{transform:scale(1.03)}

/* ===== 导航栏 ===== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 48px;
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  background:rgba(10,10,11,.55);
  border-bottom:1px solid var(--bd-lt);
  transition:all .4s var(--ease);
}
.nav.scrolled{padding:14px 48px;background:rgba(10,10,11,.85)}
.logo{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;letter-spacing:1px}
.logo-mark{
  width:34px;height:34px;border-radius:10px;
  background:linear-gradient(135deg,var(--primary),var(--pink));
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:900;color:#fff;
  box-shadow:0 0 24px rgba(232,0,19,.4);
  transition:transform .3s var(--ease);
}
.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.05)}
.nav-logo-img{height:38px;width:auto;max-width:100%;display:block;object-fit:contain;transition:transform .3s var(--ease),opacity .3s}
.logo:hover .nav-logo-img{transform:scale(1.03);opacity:.9}
.footer-logo-img{height:40px;width:auto;max-width:100%;display:block;object-fit:contain;margin-bottom:16px}

/* 导航栏logo移动端自适应 */
@media(max-width:768px){
  :root{--section-pad:24px}
  .nav-logo-img{height:28px}
  .logo{flex-shrink:0}
}
@media(max-width:480px){
  :root{--section-pad:16px}
  .nav-logo-img{height:24px;max-width:45vw}
}
.nav-links{display:flex;gap:8px}
.nav-links a{
  font-size:13px;color:var(--txt2);
  padding:8px 16px;border-radius:100px;
  transition:all .3s var(--ease);position:relative;
  font-weight:400;
}
.nav-links a:hover{color:var(--txt);background:var(--glass)}
.nav-links a.active{color:#fff;background:linear-gradient(135deg,rgba(232,0,19,.2),rgba(255,107,138,.15))}
.nav-links a.active::after{
  content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);
  width:16px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--primary),var(--pink));
}

/* ===== 汉堡菜单按钮 ===== */
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  width:40px;height:40px;
  background:transparent;border:none;
  cursor:pointer;gap:5px;
  z-index:101;padding:0;
}
.nav-toggle span{
  display:block;width:24px;height:2px;
  background:var(--txt);border-radius:2px;
  transition:all .3s var(--ease);
}
.nav-toggle.active span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.nav-toggle.active span:nth-child(2){
  opacity:0;
}
.nav-toggle.active span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* 移动端导航遮罩 */
.nav-overlay{
  display:none;
  position:fixed;top:0;left:0;right:0;bottom:0;
  background:rgba(0,0,0,.6);backdrop-filter:blur(4px);
  z-index:99;opacity:0;transition:opacity .3s;
}
.nav-overlay.active{
  display:block;opacity:1;
}

/* ===== 右侧悬浮联系栏 ===== */
.sidebar{
  position:fixed;right:20px;top:50%;transform:translateY(-50%);
  z-index:99;display:flex;flex-direction:column;gap:10px;
}
.side-btn{
  width:46px;height:46px;border-radius:14px;
  background:var(--glass);backdrop-filter:blur(16px);
  border:1px solid var(--bd-lt);
  display:flex;align-items:center;justify-content:center;
  position:relative;transition:all .35s var(--ease);cursor:pointer;
}
.side-btn:hover{
  border-color:var(--primary);
  box-shadow:0 0 20px rgba(232,0,19,.35);
  transform:translateX(-4px) scale(1.05);
}
.side-btn svg{width:20px;height:20px;fill:var(--txt2);transition:fill .3s}
.side-btn:hover svg{fill:var(--primary)}
.side-tip{
  position:absolute;right:58px;top:50%;transform:translateY(-50%) translateX(8px);
  background:var(--bg2);border:1px solid var(--bd);
  border-radius:12px;padding:10px 18px;white-space:nowrap;
  font-size:13px;color:var(--txt);opacity:0;pointer-events:none;
  transition:all .3s var(--ease);box-shadow:0 8px 32px rgba(0,0,0,.5);
}
.side-btn:hover .side-tip{opacity:1;transform:translateY(-50%) translateX(0)}
.side-tip.qr{padding:10px}
.side-tip.qr .qr-box{
  width:130px;height:130px;background:#fff;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  color:var(--txt3);font-size:11px;text-align:center;
}
.back-top{margin-top:6px;opacity:0;pointer-events:none;transition:opacity .3s}
.back-top.show{opacity:1;pointer-events:auto}

/* ============================================
   首页 Hero — 流动光效跟随3D元素
   ============================================ */
.hero{
  position:relative;height:100vh;min-height:720px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
/* 深空网格底 */
.hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:70px 70px;
  mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);
}
/* 流动光效层 — JS控制位置跟随3D元素 */
.hero-glow{
  position:absolute;inset:0;pointer-events:none;
  transition:transform .3s ease-out;
}
.hero-glow .glow-orb{
  position:absolute;border-radius:50%;filter:blur(60px);
  transition:transform .6s var(--ease);
}
.hero-glow .orb-1{
  width:500px;height:500px;
  background:radial-gradient(circle,rgba(232,0,19,.4),transparent 70%);
  top:20%;left:15%;
  animation:glowFloat1 12s ease-in-out infinite;
}
.hero-glow .orb-2{
  width:400px;height:400px;
  background:radial-gradient(circle,rgba(255,107,138,.35),transparent 70%);
  top:50%;right:15%;
  animation:glowFloat2 15s ease-in-out infinite;
}
.hero-glow .orb-3{
  width:350px;height:350px;
  background:radial-gradient(circle,rgba(232,0,19,.25),transparent 70%);
  bottom:10%;left:40%;
  animation:glowFloat3 18s ease-in-out infinite;
}
@keyframes glowFloat1{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(60px,-40px) scale(1.15)}
}
@keyframes glowFloat2{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(-50px,30px) scale(1.1)}
}
@keyframes glowFloat3{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(40px,50px) scale(1.2)}
}
/* 3D元素层 */
.hero-3d{position:absolute;inset:0;pointer-events:none;perspective:1000px}
.shape{
  position:absolute;
  background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.02));
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 8px 40px rgba(232,0,19,.12),inset 0 1px 0 rgba(255,255,255,.1);
  transition:transform .3s ease-out;
}
.shape-1{
  width:200px;height:200px;border-radius:50%;
  top:16%;left:10%;
  animation:shapeFloat1 9s ease-in-out infinite;
}
.shape-2{
  width:110px;height:110px;border-radius:28px;
  top:58%;right:13%;
  animation:shapeFloat2 11s ease-in-out infinite;
}
.shape-3{
  width:70px;height:70px;border-radius:50%;
  bottom:18%;left:18%;
  background:linear-gradient(135deg,var(--primary),var(--pink));
  opacity:.7;box-shadow:0 0 40px rgba(232,0,19,.5);
  animation:shapeFloat3 7s ease-in-out infinite;
}
.shape-4{
  width:90px;height:90px;border-radius:20px;
  top:28%;right:22%;
  transform:rotate(45deg);
  animation:shapeFloat4 13s ease-in-out infinite;
}
/* 旋转环 */
.shape-ring{
  position:absolute;width:160px;height:160px;
  top:22%;right:18%;border-radius:50%;
  border:2px solid rgba(255,107,138,.25);
  animation:spin 25s linear infinite;
}
.shape-ring::before{
  content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;
  background:var(--pink);box-shadow:0 0 20px var(--pink);
}
.shape-ring-2{
  position:absolute;width:100px;height:100px;
  bottom:25%;left:25%;border-radius:50%;
  border:1px solid rgba(232,0,19,.2);
  animation:spin 18s linear infinite reverse;
}
@keyframes shapeFloat1{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-35px) rotate(12deg)}
}
@keyframes shapeFloat2{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(30px) rotate(-15deg)}
}
@keyframes shapeFloat3{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(25px,-25px)}
}
@keyframes shapeFloat4{
  0%,100%{transform:rotate(45deg) translateY(0)}
  50%{transform:rotate(55deg) translateY(-20px)}
}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* Hero内容 */
.hero-content{
  position:relative;z-index:5;text-align:center;
  max-width:900px;padding:0 24px;
}
.hero-tag{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 22px;border-radius:100px;
  background:var(--glass);border:1px solid var(--bd-lt);
  font-size:10px;color:var(--pink-lt);
  margin-bottom:40px;backdrop-filter:blur(12px);
  letter-spacing:2px;animation:fadeUp 1s var(--ease) .2s both;
}
.hero-tag .dot{width:6px;height:6px;border-radius:50%;background:var(--primary);box-shadow:0 0 10px var(--primary);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.hero-title-3d{
  perspective:1200px;
  margin-bottom:36px;
}
.hero-title-v4{
  font-size:clamp(34px,6.3vw,96px);
  font-weight:700;
  line-height:1.3;
  letter-spacing:-1px;
  margin:0;
  transform-style:preserve-3d;
  transition:transform .15s ease-out;
}
.hero-title-v4 .title-line{
  display:block;
  overflow:hidden;
  padding-bottom:4px;
}
.hero-title-v4 .title-line > span,
.hero-title-v4 .title-line{
  display:block;
  transform:translateY(110%);
  opacity:0;
  animation:titleRiseUp 1.8s cubic-bezier(.16,1,.3,1) forwards;
}
.hero-title-v4 .line-1{ animation-delay:.3s; }
.hero-title-v4 .line-2{ animation-delay:.5s; }
.hero-title-v4 .line-2 > span{
  transform:translateY(110%);
  animation:titleRiseUp 1.8s cubic-bezier(.16,1,.3,1) .5s forwards;
  display:inline-block;
}
@keyframes titleRiseUp{
  0%{transform:translateY(110%);opacity:0;}
  100%{transform:translateY(0);opacity:1;}
}
.hero-title-v4 .grad-text{
  background:linear-gradient(120deg,var(--primary),var(--pink) 40%,var(--pink-lt) 70%,var(--primary));
  background-size:200% 100%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:titleRiseUp 1.8s cubic-bezier(.16,1,.3,1) .5s forwards, gradFlowV4 5s linear infinite;
  animation-delay:.5s, 2.2s;
}
@keyframes gradFlowV4{
  0%{background-position:0% 50%;}
  100%{background-position:200% 50%;}
}
.hero-desc{
  font-size:12px;color:var(--txt2);max-width:520px;
  margin:0 auto 62px;line-height:2.0;
}
.hero-cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:20px 48px;border-radius:100px;
  background:linear-gradient(135deg,var(--primary),var(--pink));
  color:#fff;font-size:11px;font-weight:600;
  box-shadow:0 8px 36px rgba(232,0,19,.4);
  transition:opacity 1.4s cubic-bezier(0.22,1,0.36,1), box-shadow .35s var(--ease), transform 1.4s cubic-bezier(0.22,1,0.36,1);
}
.hero-cta:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 48px rgba(232,0,19,.55)}
.hero-cta .arrow{transition:transform .3s}
.hero-cta:hover .arrow{transform:translateX(4px)}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.hero-scroll{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  color:var(--txt3);font-size:11px;z-index:5;letter-spacing:2px;
  animation:fadeUp 1s var(--ease) 1s both;
}
.hero-scroll .mouse{
  width:22px;height:36px;border:1.5px solid var(--txt3);
  border-radius:12px;position:relative;
}
.hero-scroll .mouse::before{
  content:'';position:absolute;top:6px;left:50%;transform:translateX(-50%);
  width:3px;height:8px;border-radius:2px;
  background:var(--primary);animation:scrollDot 1.8s infinite;
}
@keyframes scrollDot{0%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,12px)}}

/* ============================================
   关于PSLIDE 板块
   ============================================ */
.about-wrap{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.about-text .lead{
  font-size:14px;font-weight:600;line-height:1.8;
  margin-bottom:32px;color:var(--txt);
}
.about-text p{color:var(--txt2);font-size:11px;line-height:2.1;margin-bottom:24px}
.about-text .highlight{color:var(--pink);font-weight:600}
.about-visual{
  position:relative;height:480px;
  display:flex;align-items:center;justify-content:center;
}
.about-card-3d{
  width:100%;height:100%;border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--bg3),var(--bg2));
  border:1px solid var(--bd-lt);
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.about-card-3d::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(circle at 30% 30%,rgba(232,0,19,.2),transparent 50%),
    radial-gradient(circle at 70% 70%,rgba(255,107,138,.15),transparent 50%);
}
.about-card-3d .big-num{
  font-size:100px;font-weight:700;line-height:1;
  background:linear-gradient(135deg,rgba(232,0,19,.3),rgba(255,107,138,.15));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  position:relative;z-index:2;
}
.about-card-3d .float-shape{
  position:absolute;width:80px;height:80px;border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px);
  animation:aboutFloat 6s ease-in-out infinite;
}
.about-card-3d .fs-1{top:15%;right:15%;animation-delay:0s}
.about-card-3d .fs-2{bottom:20%;left:12%;width:50px;height:50px;border-radius:50%;animation-delay:1.5s;background:linear-gradient(135deg,var(--primary),var(--pink));opacity:.6}
@keyframes aboutFloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(10deg)}}

/* ============================================
   数据成果 板块 — 独立大数字
   ============================================ */
.stats-section{background:linear-gradient(180deg,var(--bg),var(--bg2) 50%,var(--bg));position:relative;overflow:hidden}
.stats-section::before{
  content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:800px;height:400px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(232,0,19,.08),transparent 70%);
  filter:blur(40px);pointer-events:none;
}
.stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(20px, 2.5vw, 40px);
  max-width:none;margin:0;padding:0 var(--section-pad);
  position:relative;z-index:2;
}
.stat-card{
  background:var(--glass);border:1px solid var(--bd-lt);
  border-radius:var(--radius-lg);
  padding:clamp(32px, 3.5vw, 56px) clamp(12px, 1.5vw, 24px);
  text-align:center;
  backdrop-filter:blur(16px);transition:all .4s var(--ease);
  position:relative;overflow:hidden;
}
.stat-card::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:60px;height:3px;border-radius:0 0 4px 4px;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  transition:width .4s var(--ease);
}
.stat-card:hover{transform:translateY(-8px);border-color:rgba(232,0,19,.3);box-shadow:0 20px 50px rgba(232,0,19,.12)}
.stat-card:hover::before{width:100%}
.stat-num{
  font-size:clamp(20px, 2.5vw, 46px);font-weight:700;line-height:1.2;
  background:linear-gradient(120deg,var(--primary),var(--pink));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:18px;
  white-space:nowrap;
}
.stat-num .plus{font-size:.6em;vertical-align:super}
.stat-label{font-size:clamp(10px, 1vw, 14px);color:var(--txt2);font-weight:400;white-space:nowrap}
.stat-divider{width:30px;height:1px;background:var(--bd);margin:18px auto 0}

/* ============================================
   四大业务 板块
   ============================================ */
.biz-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.biz-card{
  background:var(--bg2);border:1px solid var(--bd);
  border-radius:var(--radius);padding:48px 36px;
  transition:all .4s var(--ease);cursor:pointer;position:relative;overflow:hidden;
}
.biz-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);
}
.biz-card:hover{transform:translateY(-6px);border-color:rgba(232,0,19,.35);box-shadow:0 16px 40px rgba(232,0,19,.1)}
.biz-card:hover::after{transform:scaleX(1)}
.biz-icon{
  width:56px;height:56px;border-radius:16px;
  background:linear-gradient(135deg,rgba(232,0,19,.18),rgba(255,107,138,.1));
  border:1px solid rgba(232,0,19,.2);
  display:flex;align-items:center;justify-content:center;
  font-size:26px;margin-bottom:20px;
  transition:all .4s var(--ease);
}
.biz-card:hover .biz-icon{transform:scale(1.1) rotate(-5deg);box-shadow:0 8px 24px rgba(232,0,19,.25)}
.biz-name{font-size:18px;font-weight:700;margin-bottom:10px}
.biz-desc{font-size:13px;color:var(--txt3);line-height:1.8}
.biz-more{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:18px;font-size:12px;color:var(--pink);
  opacity:0;transform:translateX(-8px);transition:all .3s var(--ease);
}
.biz-card:hover .biz-more{opacity:1;transform:translateX(0)}

/* ============================================
   精选作品 — 大卡片视觉占比更大
   ============================================ */
.works-big-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.work-big-card{
  background:var(--bg2);border:1px solid var(--bd);
  border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;
  transition:border-color .5s var(--ease), box-shadow .5s var(--ease), transform .5s var(--ease);position:relative;
}
.work-big-card:hover{
  transform:translateY(-8px);border-color:rgba(232,0,19,.4);
  box-shadow:0 24px 60px rgba(232,0,19,.15);
}
.work-big-cover{
  height:340px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#1a1a2e,#16213e);
}
.work-big-cover::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(10,10,11,.8));
  opacity:0;transition:opacity .4s;
}
.work-big-card:hover .work-big-cover::after{opacity:1}
.work-big-cover .geo{
  position:absolute;width:120px;height:120px;border-radius:50%;
  background:linear-gradient(135deg,rgba(255,255,255,.12),transparent);
  top:50%;left:50%;transform:translate(-50%,-50%);
  transition:transform .6s var(--ease);
}
.work-big-card:hover .geo{transform:translate(-50%,-50%) scale(1.3) rotate(20deg)}
.work-big-cover .view-btn{
  position:absolute;bottom:20px;right:20px;z-index:3;
  padding:10px 22px;border-radius:100px;
  background:rgba(255,255,255,.1);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.2);color:#fff;font-size:13px;
  opacity:0;transform:translateY(10px);transition:all .4s var(--ease);
}
.work-big-card:hover .view-btn{opacity:1;transform:translateY(0)}
.work-big-info{padding:36px 40px}
.work-big-title{font-size:14px;font-weight:600;margin-bottom:14px;transition:color .3s}
.work-big-card:hover .work-big-title{color:var(--pink)}
.work-big-desc{font-size:11px;color:var(--txt2);line-height:2.0;margin-bottom:24px}
.work-big-meta{display:flex;align-items:center;gap:12px}
.work-tag{
  display:inline-block;padding:4px 14px;border-radius:100px;
  font-size:12px;background:rgba(232,0,19,.1);color:var(--pink);
  border:1px solid rgba(232,0,19,.2);
}

/* ============================================
   文章卡片 — 封面 3:2
   ============================================ */
.blog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:1024px){.blog-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.blog-grid{grid-template-columns:repeat(2,1fr);gap:16px}}
@media(max-width:480px){.blog-grid{gap:12px}}
@media(max-width:480px){.blog-info{padding:12px 14px}.blog-title{font-size:13px}.blog-cat{font-size:10px}.blog-meta{font-size:10px}}
.blog-card{
  background:var(--bg2);border:1px solid var(--bd);
  border-radius:var(--radius);overflow:hidden;cursor:pointer;
  transition:border-color .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
}
.blog-card:hover{transform:translateY(-6px);border-color:rgba(255,107,138,.3);box-shadow:0 16px 40px rgba(255,107,138,.1)}
/* 3:4 竖版封面 */
.blog-cover{
  aspect-ratio:3/4;width:100%;
  background:linear-gradient(135deg,#1e1e24,#2a1a20);
  position:relative;overflow:hidden;
}
.blog-cover-img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s var(--ease);
}
.blog-card:hover .blog-cover-img{
  transform:scale(1.05);
}
.blog-cover::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 30% 40%,rgba(232,0,19,.15),transparent 60%);
  opacity:0;transition:opacity .4s;
}
.blog-card:hover .blog-cover::before{opacity:1}
.blog-cover .bar{
  position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.blog-card:hover .bar{transform:scaleX(1)}
.blog-cover .play-icon{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.1);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:all .4s var(--ease);
}
.blog-card:hover .play-icon{opacity:1;transform:translate(-50%,-50%) scale(1.1)}
.blog-info{padding:28px 30px}
.blog-cat{font-size:9px;color:var(--pink);letter-spacing:1px;margin-bottom:12px;text-transform:uppercase}
.blog-title{
  font-size:12px;font-weight:600;margin-bottom:14px;line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  transition:color .3s;
}
.blog-card:hover .blog-title{color:var(--pink-lt)}
.blog-meta{font-size:10px;color:var(--txt3);display:flex;align-items:center;gap:8px}
.blog-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--primary)}

/* ============================================
   合作流程 — 高级版 + 动效
   ============================================ */
.process-hero{
  text-align:center;padding:120px 48px 60px;position:relative;overflow:hidden;
}
.process-hero::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:600px;height:300px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(232,0,19,.1),transparent 70%);
  filter:blur(40px);
}
/* ============================================
   合作流程 — 方案A：3D发光时间轴 + 粒子电流
   ============================================ */
.process-timeline{
  max-width:1200px;margin:0 auto;padding:60px 40px 120px 100px;position:relative;
}
/* 左侧发光时间轴线 */
.process-timeline::before{
  content:'';position:absolute;left:50px;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,transparent 0%,rgba(232,0,19,.3) 5%,rgba(232,0,19,.8) 20%,rgba(255,107,138,.9) 50%,rgba(232,0,19,.8) 80%,rgba(232,0,19,.3) 95%,transparent 100%);
  box-shadow:0 0 12px rgba(232,0,19,.4),0 0 24px rgba(232,0,19,.2);
  z-index:1;
}
/* 时间轴粒子电流容器 */
.timeline-current{
  position:absolute;left:50px;top:0;bottom:0;width:2px;
  z-index:2;pointer-events:none;overflow:visible;
}
.timeline-current::after{
  content:'';position:absolute;left:50%;top:-20px;
  width:8px;height:8px;border-radius:50%;
  background:radial-gradient(circle,#fff 0%,var(--primary) 40%,transparent 70%);
  box-shadow:0 0 20px rgba(232,0,19,.8),0 0 40px rgba(232,0,19,.4);
  transform:translateX(-50%);
  animation:currentFlow 8s linear infinite;
}
@keyframes currentFlow{
  0%{top:-20px;opacity:0}
  5%{opacity:1}
  95%{opacity:1}
  100%{top:100%;opacity:0}
}
.process-stage{
  position:relative;margin-bottom:100px;
  opacity:0;transform:translateX(30px);transition:opacity .8s cubic-bezier(0.16,1,0.3,1),transform .8s cubic-bezier(0.16,1,0.3,1);
}
.process-stage.visible{opacity:1;transform:translateX(0)}
.process-stage:last-child{margin-bottom:0}
/* 3D发光阶段节点 */
.stage-node{
  position:absolute;left:-70px;top:0;transform:translateX(0);
  width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.2),rgba(232,0,19,.1) 50%,rgba(10,10,11,.9) 100%);
  border:2px solid rgba(232,0,19,.6);
  display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:900;color:#fff;
  z-index:5;
  box-shadow:0 0 20px rgba(232,0,19,.3),inset 0 0 20px rgba(232,0,19,.15),0 4px 20px rgba(0,0,0,.5);
  transition:all .5s cubic-bezier(0.16,1,0.3,1);
  perspective:600px;
}
/* 节点外圈光环 */
.stage-node::before{
  content:'';position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;
  border-radius:50%;border:1px solid rgba(232,0,19,.4);
  animation:nodeRingPulse 3s ease-in-out infinite;
}
@keyframes nodeRingPulse{
  0%,100%{transform:scale(1);opacity:.4}
  50%{transform:scale(1.15);opacity:.8}
}
/* 节点内发光 */
.stage-node::after{
  content:'';position:absolute;top:50%;left:50%;
  width:30px;height:30px;border-radius:50%;
  background:radial-gradient(circle,rgba(232,0,19,.6),transparent 70%);
  transform:translate(-50%,-50%);
  filter:blur(8px);
  animation:nodeGlow 2s ease-in-out infinite;
}
@keyframes nodeGlow{
  0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}
}
.process-stage.visible .stage-node{
  animation:nodePopIn .6s cubic-bezier(0.34,1.56,0.64,1) forwards;
}
@keyframes nodePopIn{
  0%{transform:scale(0) rotate(-180deg);opacity:0}
  60%{transform:scale(1.2) rotate(10deg);opacity:1}
  100%{transform:scale(1) rotate(0deg);opacity:1}
}
.process-stage:hover .stage-node{
  transform:scale(1.15);
  border-color:var(--primary);
  box-shadow:0 0 40px rgba(232,0,19,.6),inset 0 0 30px rgba(232,0,19,.3),0 8px 30px rgba(0,0,0,.6);
}
.process-stage:hover .stage-node::before{
  animation-duration:1s;
}
.stage-header{
  text-align:left;margin-bottom:32px;padding-top:8px;
}
.stage-header h3{
  font-size:32px;font-weight:800;margin-bottom:8px;
  display:inline-flex;align-items:center;gap:16px;
  background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,.8) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.stage-header h3 .en{font-size:11px;color:var(--txt3);font-weight:400;letter-spacing:3px;-webkit-text-fill-color:var(--txt3)}
.stage-header p{color:var(--txt2);font-size:11px;line-height:2.0}
/* 步骤卡片网格 */
.stage-steps{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:none;margin:0}
.stage-steps.three{grid-template-columns:repeat(3,1fr)}
.step-card{
  background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;padding:28px 24px;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:all .4s cubic-bezier(0.16,1,0.3,1);
  position:relative;overflow:hidden;
  opacity:0;transform:translateY(30px);
}
.process-stage.visible .step-card{
  animation:stepCardIn .6s cubic-bezier(0.16,1,0.3,1) forwards;
}
.process-stage.visible .step-card:nth-child(1){animation-delay:.2s}
.process-stage.visible .step-card:nth-child(2){animation-delay:.35s}
.process-stage.visible .step-card:nth-child(3){animation-delay:.5s}
@keyframes stepCardIn{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}
.step-card:hover{
  border-color:rgba(232,0,19,.4);transform:translateY(-6px);
  box-shadow:0 20px 50px rgba(232,0,19,.15),0 0 30px rgba(232,0,19,.08);
  background:linear-gradient(135deg,rgba(232,0,19,.06),rgba(255,107,138,.03));
}
/* 卡片顶部发光线 */
.step-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--primary),var(--pink),transparent);
  transform:scaleX(0);transition:transform .4s cubic-bezier(0.16,1,0.3,1);
}
.step-card:hover::before{transform:scaleX(1)}
/* 卡片左侧发光条 */
.step-card::after{
  content:'';position:absolute;top:20px;left:0;width:3px;height:0;
  background:linear-gradient(180deg,var(--primary),var(--pink));
  border-radius:0 2px 2px 0;
  transition:height .4s cubic-bezier(0.16,1,0.3,1);
  box-shadow:0 0 10px rgba(232,0,19,.5);
}
.step-card:hover::after{height:calc(100% - 40px)}
.step-num{
  font-size:42px;font-weight:900;line-height:1;
  background:linear-gradient(135deg,rgba(232,0,19,.6),rgba(255,107,138,.3));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:16px;opacity:.7;transition:all .3s;
  letter-spacing:-2px;
}
.step-card:hover .step-num{
  opacity:1;
  background:linear-gradient(135deg,var(--primary),var(--pink));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  transform:scale(1.05);
}
.step-name{font-size:13px;font-weight:600;margin-bottom:16px;color:#fff}
.step-desc{font-size:10px;color:var(--txt2);line-height:2.0}

/* 移动端响应式 */
@media(max-width:1024px){
  .process-timeline{padding:60px 30px 100px 80px}
  .process-timeline::before{left:40px}
  .stage-node{left:-60px;width:56px;height:56px;font-size:20px}
  .stage-header h3{font-size:28px}
  .stage-steps.three{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .process-timeline{padding:40px 20px 80px 60px}
  .process-timeline::before{left:30px}
  .timeline-current{left:30px}
  .stage-node{left:-46px;width:44px;height:44px;font-size:16px}
  .stage-node::before{top:-4px;left:-4px;right:-4px;bottom:-4px}
  .stage-header{padding-top:4px;margin-bottom:24px}
  .stage-header h3{font-size:22px}
  .stage-header p{font-size:13px}
  .stage-steps,.stage-steps.three{grid-template-columns:1fr;gap:16px}
  .step-card{padding:20px 18px}
  .step-num{font-size:32px}
  .step-name{font-size:16px}
  .step-desc{font-size:12px}
}
/* ============================================
   联系方式
   ============================================ */
.contact-wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:start}
.contact-list{display:flex;flex-direction:column;gap:16px}
.contact-item{
  display:flex;align-items:center;gap:20px;
  padding:24px 28px;background:var(--glass);
  border:1px solid var(--bd-lt);border-radius:var(--radius);
  backdrop-filter:blur(12px);transition:all .4s var(--ease);
}
.contact-item:hover{border-color:rgba(232,0,19,.3);transform:translateX(6px);box-shadow:0 12px 32px rgba(232,0,19,.1)}
.contact-icon{
  width:52px;height:52px;border-radius:14px;
  background:linear-gradient(135deg,rgba(232,0,19,.18),rgba(255,107,138,.1));
  border:1px solid rgba(232,0,19,.2);
  display:flex;align-items:center;justify-content:center;
  font-size:24px;flex-shrink:0;transition:all .3s;
}
.contact-item:hover .contact-icon{transform:scale(1.1)}
.contact-info h4{font-size:11px;color:var(--txt3);margin-bottom:6px;font-weight:400}
.contact-info p{font-size:12px;font-weight:600;color:var(--txt)}
.qr-card{
  background:var(--glass);border:1px solid var(--bd-lt);
  border-radius:var(--radius-lg);padding:48px;text-align:center;
  backdrop-filter:blur(16px);position:relative;overflow:hidden;
}
.qr-card::before{
  content:'';position:absolute;top:-50%;right:-50%;width:200%;height:200%;
  background:radial-gradient(circle,rgba(232,0,19,.08),transparent 50%);
  animation:qrGlow 8s ease-in-out infinite;
}
@keyframes qrGlow{0%,100%{transform:translate(0,0)}50%{transform:translate(-20px,20px)}}
.qr-display{
  width:240px;height:240px;margin:0 auto 24px;background:#fff;
  border-radius:16px;position:relative;overflow:hidden;
  box-shadow:0 16px 48px rgba(0,0,0,.3);
}
.qr-display::before{
  content:'';position:absolute;inset:16px;
  background:
    repeating-linear-gradient(0deg,#111 0,#111 5px,transparent 5px,transparent 10px),
    repeating-linear-gradient(90deg,#111 0,#111 5px,transparent 5px,transparent 10px);
  opacity:.88;border-radius:8px;
}
.qr-display::after{
  content:'微信二维码';position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  font-size:11px;color:#333;background:#fff;padding:3px 10px;border-radius:4px;z-index:2;
  white-space:nowrap;
}
.qr-card h4{font-size:13px;margin-bottom:12px;position:relative;z-index:2}
.qr-card p{font-size:11px;color:var(--txt2);position:relative;z-index:2}
.qr-card .note{font-size:12px;color:var(--txt3);margin-top:16px;position:relative;z-index:2}

/* ============================================
   作品详情弹窗
   ============================================ */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.75);
  backdrop-filter:blur(12px);z-index:200;
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.modal-overlay.show{opacity:1;pointer-events:auto}
.modal{
  background:var(--bg2);border:1px solid var(--bd);
  border-radius:var(--radius-lg);max-width:860px;width:100%;
  max-height:88vh;overflow-y:auto;position:relative;
  transform:translateY(30px) scale(.96);transition:transform .4s var(--ease);
}
.modal-overlay.show .modal{transform:translateY(0) scale(1)}
.modal-close{
  position:absolute;top:18px;right:18px;width:40px;height:40px;
  border-radius:50%;background:var(--glass2);border:1px solid var(--bd-lt);
  display:flex;align-items:center;justify-content:center;font-size:18px;
  z-index:5;transition:all .3s;color:var(--txt2);
}
.modal-close:hover{background:var(--primary);color:#fff;transform:rotate(90deg)}
.modal-hero{
  height:320px;background:linear-gradient(135deg,#1a1a2e,#2a1a20);
  position:relative;overflow:hidden;border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.modal-hero .geo{
  position:absolute;width:140px;height:140px;border-radius:50%;
  background:linear-gradient(135deg,rgba(255,255,255,.12),transparent);
  top:50%;left:50%;transform:translate(-50%,-50%);
}
.modal-body{padding:36px 40px 40px}
.modal-body h2{font-size:26px;margin-bottom:16px}
.modal-body p{color:var(--txt2);font-size:14px;line-height:2;margin-bottom:14px}
.modal-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}
.modal-gallery div{
  aspect-ratio:4/3;border-radius:10px;
  background:linear-gradient(135deg,#1e1e24,#2a1a20);
}
.modal-link{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 28px;border-radius:100px;
  border:1px solid var(--primary);color:var(--pink);
  font-size:14px;transition:all .3s var(--ease);
}
.modal-link:hover{background:var(--primary);color:#fff;box-shadow:0 8px 24px rgba(232,0,19,.3)}

/* ============================================
   页脚
   ============================================ */
.footer{
  border-top:1px solid var(--bd);padding:60px 48px 40px;
  background:var(--bg2);position:relative;
}
.footer-inner{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
.footer-brand .f-logo{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;margin-bottom:16px}
.footer-brand p{color:var(--txt3);font-size:13px;line-height:1.8;max-width:300px}
.footer-col h5{font-size:14px;font-weight:600;margin-bottom:18px;color:var(--txt)}
.footer-col a{display:block;font-size:13px;color:var(--txt3);padding:5px 0;transition:color .3s}
.footer-col a:hover{color:var(--pink)}
.footer-bottom{
  max-width:1400px;margin:40px auto 0;padding-top:24px;
  border-top:1px solid var(--bd);
  display:flex;justify-content:space-between;align-items:center;
  font-size:12px;color:var(--txt3);
}

/* ============================================
   响应式
   ============================================ */
@media(max-width:1600px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1200px){
  .biz-grid{grid-template-columns:repeat(2,1fr)}
  .works-big-grid{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .section{padding:60px 20px}
  .section-full{padding:60px 20px}
  .nav{padding:14px 20px}
  .nav-toggle{display:flex}
  .nav-links{
    position:fixed;top:0;right:-100%;
    width:75%;max-width:320px;height:100vh;
    background:rgba(10,10,11,.98);
    backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
    flex-direction:column;justify-content:center;align-items:center;
    gap:24px;padding:80px 30px 40px;
    transition:right .4s var(--ease);
    z-index:100;border-left:1px solid var(--bd-lt);
  }
  .nav-links.active{right:0}
  .nav-links a{
    font-size:18px;padding:14px 24px;
    width:100%;text-align:center;
    border-radius:12px;
  }
  .nav-links a.active::after{display:none}
  .about-wrap{grid-template-columns:1fr;gap:40px}
  .about-visual{height:320px}
  .stats-grid{grid-template-columns:1fr 1fr;gap:14px;padding:0 20px}
  .stat-card{padding:24px 12px}
  .stat-num{font-size:clamp(28px, 8vw, 48px)}
  .biz-grid{grid-template-columns:1fr}
  .contact-wrap{grid-template-columns:1fr}
  .process-timeline::before{left:28px}
  .stage-node{left:28px}
  .stage-steps,.stage-steps.three{grid-template-columns:1fr}
  .sidebar{right:10px}
  .side-btn{width:40px;height:40px;border-radius:12px}
  .footer-inner{grid-template-columns:1fr;gap:30px}
  .footer-bottom{flex-direction:column;gap:10px;text-align:center}
  .modal-body{padding:24px}
  .modal-gallery{grid-template-columns:1fr 1fr}
}

/* ============================================
   维恩图理念板块
   ============================================ */
.venn-section{
  padding:80px var(--section-pad) 100px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.venn-quote{
  font-size:clamp(1.5rem,3vw,2.5rem);
  font-weight:300;
  color:rgba(255,255,255,.9);
  letter-spacing:2px;
  margin-bottom:16px;
  font-style:italic;
}
.venn-slogan{
  font-size:clamp(0.9rem,1.2vw,1.1rem);
  color:rgba(255,107,138,.7);
  letter-spacing:4px;
  margin-bottom:60px;
  text-transform:uppercase;
}
.venn-diagram{
  position:relative;
  width:100%;
  max-width:800px;
  height:480px;
  margin:0 auto;
}
.venn-connections{
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:100%;
  height:100%;
  z-index:1;
}
.venn-circle{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:360px;
  height:360px;
  border-radius:50%;
  z-index:2;
}
.venn-left{
  left:calc(50% - 300px);
}
.venn-right{
  left:calc(50% - 60px);
}
.venn-circle::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  border-radius:50%;
  background:linear-gradient(135deg,#e80013,#ff6b8a);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
  z-index:1;
}
.venn-circle::after{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  border-radius:50%;
  background:rgba(255,255,255,.02);
  z-index:0;
}
.venn-left::after{
  background:rgba(232,0,19,.08);
}
.venn-right::after{
  background:rgba(255,107,138,.08);
}
.venn-circle-inner{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:24px;
}
.venn-circle-title{
  font-size:clamp(1.8rem,3.5vw,2.8rem);
  font-weight:800;
  color:#fff;
  line-height:1.3;
  letter-spacing:2px;
}
.venn-circle-quote{
  font-size:0.95rem;
  color:rgba(255,255,255,.4);
  letter-spacing:2px;
}
.venn-arrow{
  position:absolute;
  width:0;
  height:0;
  border-style:solid;
  z-index:3;
}
.venn-arrow-left{
  top:50%;
  left:-6px;
  transform:translateY(-50%);
  border-width:7px 10px 7px 0;
  border-color:transparent #e80013 transparent transparent;
}
.venn-arrow-right{
  top:50%;
  right:-6px;
  transform:translateY(-50%);
  border-width:7px 0 7px 10px;
  border-color:transparent transparent transparent #ff6b8a;
}
.venn-intersection{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
}
.venn-intersection-text{
  font-size:0.85rem;
  font-weight:800;
  color:#ff6b8a;
  line-height:1.8;
  letter-spacing:2px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-shadow:0 0 20px rgba(232,0,19,.5);
}
.venn-intersection-text span{
  display:block;
}

/* 维恩图响应式 */
@media(max-width:1024px){
  .venn-diagram{height:420px;max-width:680px}
  .venn-circle{width:300px;height:300px}
  .venn-left{left:calc(50% - 250px)}
  .venn-right{left:calc(50% - 50px)}
  .venn-intersection{width:42px;height:140px}
}
@media(max-width:768px){
  .venn-section{padding:60px 5vw 80px}
  .venn-diagram{height:360px;max-width:520px}
  .venn-circle{width:240px;height:240px}
  .venn-left{left:calc(50% - 200px)}
  .venn-right{left:calc(50% - 40px)}
  .venn-circle-title{font-size:1.4rem}
  .venn-circle-quote{font-size:0.8rem}
  .venn-intersection{width:36px;height:120px;border-radius:18px}
  .venn-intersection-text{font-size:0.8rem}
  .venn-connections{display:none}
}
@media(max-width:480px){
  .venn-diagram{height:300px;max-width:400px}
  .venn-circle{width:200px;height:200px}
  .venn-left{left:calc(50% - 165px)}
  .venn-right{left:calc(50% - 35px)}
  .venn-circle-title{font-size:1.1rem}
  .venn-circle-quote{font-size:0.7rem}
  .venn-intersection{width:32px;height:100px;border-radius:16px}
  .venn-intersection-text{font-size:0.7rem}
}

/* ============================================
   维恩图进入动效 — 方案A渐进式靠拢展开
   ============================================ */
.venn-section .venn-quote{
  opacity:0;
  transform:translateY(30px);
  filter:blur(8px);
  transition:opacity .8s cubic-bezier(0.22,1,0.36,1),
             transform .8s cubic-bezier(0.22,1,0.36,1),
             filter .8s cubic-bezier(0.22,1,0.36,1);
}
.venn-section .venn-slogan{
  opacity:0;
  transform:translateY(20px);
  letter-spacing:8px;
  transition:opacity .8s cubic-bezier(0.22,1,0.36,1) .2s,
             transform .8s cubic-bezier(0.22,1,0.36,1) .2s,
             letter-spacing .8s cubic-bezier(0.22,1,0.36,1) .2s;
}
.venn-section .venn-arc{
  stroke-dasharray:1000;
  stroke-dashoffset:1000;
  transition:stroke-dashoffset 1.2s cubic-bezier(0.22,1,0.36,1) .4s;
}
.venn-section .venn-circle{
  opacity:0;
  transition:opacity .9s cubic-bezier(0.22,1,0.36,1) .6s,
             transform .9s cubic-bezier(0.22,1,0.36,1) .6s;
}
.venn-section .venn-left{
  transform:translate(calc(-50% - 120px),-50%) scale(0.7);
}
.venn-section .venn-right{
  transform:translate(calc(-50% + 120px),-50%) scale(0.7);
}
.venn-section .venn-intersection{
  opacity:0;
  transform:translate(-50%,-50%) scale(0);
  transition:opacity .6s cubic-bezier(0.34,1.56,0.64,1) 1.1s,
             transform .6s cubic-bezier(0.34,1.56,0.64,1) 1.1s;
}
.venn-section .venn-arrow{
  opacity:0;
  transition:opacity .5s ease 1.3s;
}

/* 动效触发后状态 */
.venn-section.venn-visible .venn-quote{
  opacity:1;
  transform:translateY(0);
  filter:blur(0);
}
.venn-section.venn-visible .venn-slogan{
  opacity:1;
  transform:translateY(0);
  letter-spacing:4px;
}
.venn-section.venn-visible .venn-arc{
  stroke-dashoffset:0;
}
.venn-section.venn-visible .venn-circle{
  opacity:1;
}
.venn-section.venn-visible .venn-left{
  transform:translateY(-50%) scale(1);
}
.venn-section.venn-visible .venn-right{
  transform:translateY(-50%) scale(1);
}
.venn-section.venn-visible .venn-intersection{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}
.venn-section.venn-visible .venn-arrow{
  opacity:1;
  animation:vennArrowBreath 2s ease-in-out infinite 1.8s;
}
@keyframes vennArrowBreath{
  0%,100%{opacity:.5;transform:translateY(-50%) scale(1)}
  50%{opacity:1;transform:translateY(-50%) scale(1.3)}
}

.cooperation-statement{
  padding:56px 8vw 72px;
  background:rgba(255,255,255,.01);
}
.statement-container{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:40px;
  max-width:1400px;
  margin:0 auto;
  align-items:start;
}
.statement-left{
  position:sticky;
  top:120px;
}
.statement-title{
  font-size:clamp(1.8rem,3vw,2.5rem);
  font-weight:800;
  color:#fff;
  line-height:1.2;
  letter-spacing:2px;
  position:relative;
  padding-bottom:16px;
}
.statement-title::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:50px;
  height:3px;
  background:linear-gradient(90deg,#e80013,#ff6b8a);
  border-radius:2px;
}
.statement-right{
  min-width:0;
}
.statement-intro{
  font-size:0.9rem;
  color:rgba(255,255,255,.7);
  line-height:1.9;
  margin-bottom:36px;
  padding-left:16px;
  border-left:2px solid rgba(232,0,19,.3);
}
.statement-block{
  margin-bottom:36px;
  padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.statement-block:last-child{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:none;
}
.block-title{
  font-size:1.25rem;
  font-weight:700;
  color:#fff;
  margin-bottom:16px;
  display:flex;
  align-items:center;
  gap:10px;
}
.block-title::before{
  content:'';
  width:3px;
  height:20px;
  background:linear-gradient(180deg,#e80013,#ff6b8a);
  border-radius:2px;
}
.block-content p{
  font-size:0.85rem;
  color:rgba(255,255,255,.65);
  line-height:2;
  margin-bottom:12px;
}
.block-content p:last-child{
  margin-bottom:0;
}
.condition-list{
  list-style:none;
  padding:0;
  margin:16px 0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.condition-list li{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:0.85rem;
  color:rgba(255,255,255,.75);
  line-height:1.6;
  padding:8px 14px;
  background:rgba(255,255,255,.03);
  border-radius:8px;
  border:1px solid rgba(255,255,255,.06);
  transition:all .3s ease;
}
.condition-list li:hover{
  background:rgba(232,0,19,.06);
  border-color:rgba(232,0,19,.2);
  transform:translateX(4px);
}
.condition-num{
  flex-shrink:0;
  width:22px;
  height:22px;
  border-radius:50%;
  background:linear-gradient(135deg,#e80013,#ff6b8a);
  color:#fff;
  font-size:0.75rem;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 0 10px rgba(232,0,19,.3);
}
@media(max-width:1024px){
  .statement-container{grid-template-columns:1fr;gap:24px}
  .statement-left{position:static}
  .statement-title{font-size:1.6rem}
}
@media(max-width:768px){
  .cooperation-statement{padding:48px 5vw 64px}
  .statement-intro{font-size:0.85rem;padding-left:14px}
  .block-title{font-size:1.1rem}
  .block-content p{font-size:0.8rem}
  .condition-list li{font-size:0.8rem;padding:8px 12px}
}
/* ============================================
   合作声明板块 — 方案C：时间线展开 + 高亮标记
   ============================================ */
.cooperation-statement{opacity:0;transform:translateY(200px);transition:opacity 1s cubic-bezier(0.16,1,0.3,1),transform 1s cubic-bezier(0.16,1,0.3,1)}
.cooperation-statement .statement-title{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(0.16,1,0.3,1) .1s,transform .7s cubic-bezier(0.16,1,0.3,1) .1s}
.cooperation-statement .statement-title::after{transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(0.16,1,0.3,1) .4s}
.cooperation-statement .statement-intro{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(0.16,1,0.3,1) .3s,transform .8s cubic-bezier(0.16,1,0.3,1) .3s}
.cooperation-statement .block-title{opacity:0;transform:translateY(15px);transition:opacity .6s cubic-bezier(0.16,1,0.3,1),transform .6s cubic-bezier(0.16,1,0.3,1)}
.cooperation-statement .block-title::before{transform:scaleY(0);transform-origin:top;transition:transform .4s cubic-bezier(0.16,1,0.3,1) .15s}
.cooperation-statement .block-content{max-height:0;overflow:hidden;opacity:0;transition:max-height .6s cubic-bezier(0.16,1,0.3,1),opacity .5s ease}
.cooperation-statement .block-content p{opacity:0;transform:translateY(15px);transition:opacity .6s cubic-bezier(0.16,1,0.3,1),transform .6s cubic-bezier(0.16,1,0.3,1)}
.cooperation-statement .condition-list li{opacity:0;transform:translateX(30px);transition:opacity .5s cubic-bezier(0.16,1,0.3,1),transform .5s cubic-bezier(0.16,1,0.3,1)}
.cooperation-statement .condition-num{opacity:0;transform:scale(0);transition:opacity .4s cubic-bezier(0.34,1.56,0.64,1),transform .4s cubic-bezier(0.34,1.56,0.64,1)}
.cooperation-statement .statement-block:nth-of-type(1) .block-title{transition-delay:.5s}
.cooperation-statement .statement-block:nth-of-type(1) .block-title::before{transition-delay:.65s}
.cooperation-statement .statement-block:nth-of-type(1) .block-content{transition-delay:.6s}
.cooperation-statement .statement-block:nth-of-type(1) .block-content p:nth-child(1){transition-delay:.75s}
.cooperation-statement .statement-block:nth-of-type(1) .condition-list li:nth-child(1){transition-delay:.85s}
.cooperation-statement .statement-block:nth-of-type(1) .condition-list li:nth-child(1) .condition-num{transition-delay:.8s}
.cooperation-statement .statement-block:nth-of-type(1) .condition-list li:nth-child(2){transition-delay:.97s}
.cooperation-statement .statement-block:nth-of-type(1) .condition-list li:nth-child(2) .condition-num{transition-delay:.92s}
.cooperation-statement .statement-block:nth-of-type(1) .condition-list li:nth-child(3){transition-delay:1.09s}
.cooperation-statement .statement-block:nth-of-type(1) .condition-list li:nth-child(3) .condition-num{transition-delay:1.04s}
.cooperation-statement .statement-block:nth-of-type(1) .block-content p:nth-child(3){transition-delay:1.2s}
.cooperation-statement .statement-block:nth-of-type(2) .block-title{transition-delay:1.3s}
.cooperation-statement .statement-block:nth-of-type(2) .block-title::before{transition-delay:1.45s}
.cooperation-statement .statement-block:nth-of-type(2) .block-content{transition-delay:1.4s}
.cooperation-statement .statement-block:nth-of-type(2) .block-content p:nth-child(1){transition-delay:1.55s}
.cooperation-statement .statement-block:nth-of-type(2) .block-content p:nth-child(2){transition-delay:1.7s}
.cooperation-statement.statement-visible{opacity:1;transform:translateY(0)}
.cooperation-statement.statement-visible .statement-title{opacity:1;transform:translateY(0)}
.cooperation-statement.statement-visible .statement-title::after{transform:scaleX(1)}
.cooperation-statement.statement-visible .statement-intro{opacity:1;transform:translateY(0)}
.cooperation-statement.statement-visible .block-title{opacity:1;transform:translateY(0)}
.cooperation-statement.statement-visible .block-title::before{transform:scaleY(1)}
.cooperation-statement.statement-visible .block-content{max-height:2000px;opacity:1}
.cooperation-statement.statement-visible .block-content p{opacity:1;transform:translateY(0)}
.cooperation-statement.statement-visible .condition-list li{opacity:1;transform:translateX(0)}
.cooperation-statement.statement-visible .condition-num{opacity:1;transform:scale(1);animation:conditionNumPulse 2s ease-in-out infinite 1.5s}
@keyframes conditionNumPulse{0%,100%{box-shadow:0 0 8px rgba(232,0,19,.3)}50%{box-shadow:0 0 16px rgba(232,0,19,.6)}}

/* ============================================
   精选作品 — 双行跑马灯流动
   ============================================ */
.works-marquee{display:flex;flex-direction:column;gap:24px;overflow:hidden;padding:24px 0;width:100vw;margin-left:calc(-50vw + 50%);position:relative}
.marquee-row{overflow:hidden;position:relative;width:100%}
.marquee-track{display:flex;width:max-content;will-change:transform}
.marquee-row.row-left .marquee-track{animation:marqueeLeft 13s linear infinite}
.marquee-row.row-right .marquee-track{animation:marqueeRight 13s linear infinite}
.marquee-row:hover .marquee-track{animation-play-state:paused}
@keyframes marqueeLeft{from{transform:translateX(0)}to{transform:translateX(-25%)}}
@keyframes marqueeRight{from{transform:translateX(-25%)}to{transform:translateX(0)}}
.marquee-card{
  flex-shrink:0;margin-right:clamp(10px,0.8vw,13px);background:var(--bg2);border:1px solid var(--bd);
  border-radius:var(--radius);overflow:hidden;cursor:pointer;width:clamp(140px,10vw,190px);
  transition:border-color .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
}
.marquee-card:hover{transform:translateY(-6px) scale(1.02);border-color:rgba(232,0,19,.4);box-shadow:0 20px 50px rgba(232,0,19,.15)}
.marquee-cover{aspect-ratio:16/9;position:relative;overflow:hidden;background:linear-gradient(135deg,#1a1a2e,#16213e)}
.marquee-cover .geo{position:absolute;width:clamp(50px,4vw,70px);height:clamp(50px,4vw,70px);border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.12),transparent);top:50%;left:50%;transform:translate(-50%,-50%);transition:transform .6s var(--ease)}
.marquee-card:hover .marquee-cover .geo{transform:translate(-50%,-50%) scale(1.3) rotate(20deg)}
.marquee-info{padding:clamp(8px,0.6vw,11px) clamp(10px,0.8vw,13px)}
.marquee-title{font-size:clamp(9px,0.7vw,11px);font-weight:500;margin-bottom:4px;transition:color .3s}
.marquee-card:hover .marquee-title{color:var(--pink)}
.marquee-desc{font-size:clamp(7px,0.6vw,8px);color:var(--txt3);line-height:1.4}
.marquee-tag{display:inline-block;margin-top:6px;padding:2px 6px;border-radius:100px;font-size:clamp(6px,0.5vw,8px);background:rgba(232,0,19,.1);color:var(--pink);border:1px solid rgba(232,0,19,.2)}

/* ============================================
   四大业务 — 2.5D磨砂玻璃图标
   ============================================ */
.biz-icon-25d{
  width:72px;height:72px;margin:0 auto 20px;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  transform:rotateX(-8deg);
  transform-style:preserve-3d;
  box-shadow:
    0 1px 0 rgba(255,255,255,.15) inset,
    0 8px 16px rgba(0,0,0,.3),
    0 16px 32px rgba(0,0,0,.2);
  transition:all .5s var(--ease);
}
.biz-card:hover .biz-icon-25d{
  background:linear-gradient(135deg,rgba(232,0,19,.2),rgba(255,107,138,.12));
  border-color:rgba(232,0,19,.4);
  transform:rotateX(-8deg) translateY(-6px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.2) inset,
    0 0 24px rgba(232,0,19,.3),
    0 12px 24px rgba(232,0,19,.15),
    0 20px 40px rgba(0,0,0,.3);
}
.biz-icon-25d .icon-glyph{
  width:32px;height:32px;
  transition:all .4s var(--ease);
  transform:translateZ(10px);
}
.biz-icon-25d .icon-glyph svg{width:100%;height:100%;fill:var(--txt2);transition:fill .4s}
.biz-card:hover .biz-icon-25d .icon-glyph svg{fill:var(--pink-lt)}

/* 跑马灯响应式 */
@media(max-width:768px){
  .marquee-card{width:180px;margin-right:16px}
  .works-list-grid .marquee-card{width:auto;margin-right:0}
  .marquee-cover{height:120px}
  .works-list-grid .marquee-cover{height:auto}
  .marquee-cover .geo{width:60px;height:60px}
  .marquee-info{padding:12px 14px}
  .marquee-title{font-size:13px;margin-bottom:4px}
  .marquee-desc{font-size:10px;line-height:1.4}
  .marquee-tag{font-size:9px;padding:2px 8px;margin-top:6px}
}

/* ============================================
   合作品牌 — logo跑马灯+磨砂玻璃容器
   ============================================ */
.brand-marquee-wrap{display:flex;flex-direction:column;gap:16px;margin-top:32px}
.brand-row{overflow:hidden;position:relative;width:100vw;margin-left:calc(-50vw + 50%)}
.brand-track{display:flex;width:max-content;will-change:transform;padding:8px 0}
.brand-row.row-1 .brand-track{animation:brandLeft 30s linear infinite}
.brand-row.row-2 .brand-track{animation:brandRight 30s linear infinite}
.brand-row.row-3 .brand-track{animation:brandLeft 30s linear infinite}
.brand-row:hover .brand-track{animation-play-state:paused}
@keyframes brandLeft{from{transform:translateX(0)}to{transform:translateX(-25%)}}
@keyframes brandRight{from{transform:translateX(-25%)}to{transform:translateX(0)}}
.brand-logo-item{
  flex-shrink:0;margin-right:clamp(10px,0.9vw,14px);
  display:flex;align-items:center;justify-content:center;
  min-width:clamp(100px,8.5vw,130px);height:clamp(48px,4vw,58px);padding:clamp(6px,0.6vw,10px) clamp(14px,1.2vw,20px);
  background:rgba(255,255,255,.09);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:clamp(10px,0.9vw,14px);
  transition:all .4s var(--ease);
}
.brand-logo-item:hover{
  background:rgba(255,255,255,.13);
  border-color:rgba(232,0,19,.35);
  box-shadow:0 0 20px rgba(232,0,19,.15),0 8px 24px rgba(0,0,0,.3);
  transform:translateY(-3px);
}
.brand-logo-item img{
  max-height:clamp(28px,2.4vw,34px);max-width:clamp(85px,7.5vw,105px);
  object-fit:contain;
  filter:contrast(1.05);
  transition:filter .3s;
}
.brand-logo-item:hover img{filter:contrast(1.1) brightness(1.05)}

@media(max-width:768px){
  .brand-logo-item{min-width:90px;height:52px;padding:8px 14px;margin-right:12px}
  .brand-logo-item img{max-height:28px;max-width:70px}
}

/* ============================================
   为什么选择我们 — 核心价值板块（左侧时间轴+右侧内容联动）
   ============================================ */
.focus-section{
  padding:clamp(80px,10vw,160px) 0;
  background:linear-gradient(180deg,var(--bg) 0%,rgba(232,0,19,.02) 50%,var(--bg) 100%);
  position:relative;
  overflow:hidden;
}
.focus-section::before{
  content:'';position:absolute;top:50%;left:50%;
  width:clamp(600px,60vw,1000px);height:clamp(600px,60vw,1000px);border-radius:50%;
  background:radial-gradient(circle,rgba(232,0,19,.04),transparent 70%);
  transform:translate(-50%,-50%);
  pointer-events:none;
}
/* 主标题 */
.focus-header{
  padding:0 var(--section-pad);
  margin-bottom:clamp(40px,5vw,80px);
}
.focus-main-title{
  font-size:clamp(22px,3.1vw,36px);
  font-weight:600;
  color:#fff;
  letter-spacing:-.2px;
  position:relative;
  display:inline-block;
  line-height:1.25;
}
  .focus-title-highlight{
    background:linear-gradient(135deg,var(--primary),var(--pink));
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
  }
.focus-main-title::after{
  content:'';
  position:absolute;
  bottom:-12px;
  left:0;
  width:clamp(50px,5vw,80px);
  height:4px;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  border-radius:2px;
}

/* 时间轴+内容布局 */
.focus-timeline-layout{
  display:flex;
  gap:clamp(40px,5vw,100px);
  padding:0 var(--section-pad);
  align-items:flex-start;
}

/* 左侧时间轴 */
.focus-timeline{
  position:relative;
  width:clamp(180px,20vw,300px);
  flex-shrink:0;
  padding-left:clamp(30px,3vw,45px);
}
/* 时间轴垂直线 */
.timeline-line{
  position:absolute;
  left:clamp(10px,1vw,16px);
  top:20px;
  bottom:20px;
  width:2px;
  background:linear-gradient(180deg,rgba(232,0,19,.3),rgba(255,255,255,.1),rgba(232,0,19,.3));
}
/* 时间轴节点 */
.timeline-node{
  position:relative;
  padding:clamp(16px,2vw,28px) 0;
  cursor:pointer;
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.timeline-dot{
  position:absolute;
  left:calc(-1 * clamp(28px,3vw,38px));
  top:clamp(24px,2.5vw,36px);
  width:clamp(12px,1.2vw,18px);
  height:clamp(12px,1.2vw,18px);
  border-radius:50%;
  background:rgba(255,255,255,.2);
  border:2px solid rgba(255,255,255,.3);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.timeline-node.active .timeline-dot{
  background:var(--primary);
  border-color:var(--primary);
  box-shadow:0 0 20px rgba(232,0,19,.6),0 0 40px rgba(232,0,19,.3);
  transform:scale(1.3);
}
.timeline-node:hover .timeline-dot{
  background:var(--pink);
  border-color:var(--pink);
  box-shadow:0 0 15px rgba(232,0,19,.4);
}
.timeline-num{
  font-size:clamp(1.8rem,2.5vw,2.8rem);
  font-weight:900;
  background:linear-gradient(135deg,rgba(232,0,19,.3),rgba(255,107,138,.1));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  margin-bottom:clamp(4px,0.5vw,10px);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.timeline-node.active .timeline-num{
  background:linear-gradient(135deg,var(--primary),var(--pink));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  filter:drop-shadow(0 0 10px rgba(232,0,19,.4));
}
.timeline-title{
  font-size:clamp(0.9rem,1.1vw,1.2rem);
  font-weight:700;
  color:rgba(255,255,255,.5);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  white-space:nowrap;
}
.timeline-node.active .timeline-title{
  color:#fff;
  font-size:clamp(1rem,1.3vw,1.4rem);
}
.timeline-node:hover .timeline-title{
  color:rgba(255,255,255,.8);
}

/* 右侧内容展示区 */
.focus-content-area{
  flex:1;
  position:relative;
  min-height:clamp(300px,35vw,450px);
}
.focus-content-item{
  position:absolute;
  top:0;
  left:0;
  right:0;
  opacity:0;
  transform:translateX(40px);
  transition:all 0.6s cubic-bezier(0.16,1,0.3,1);
  pointer-events:none;
}
.focus-content-item.active{
  opacity:1;
  transform:translateX(0);
  pointer-events:auto;
  position:relative;
}
/* 内容巨幅数字背景 */
.focus-content-num{
  font-size:clamp(4rem,10vw,10rem);
  font-weight:900;
  line-height:1;
  background:linear-gradient(135deg,rgba(232,0,19,.15),rgba(255,107,138,.05));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  letter-spacing:clamp(-2px,-0.5vw,-6px);
  margin-bottom:clamp(12px,1.5vw,24px);
  filter:drop-shadow(0 0 30px rgba(232,0,19,.1));
}
.focus-content-title{
  font-size:clamp(1.4rem,2.5vw,2.8rem);
  font-weight:800;
  color:#fff;
  margin-bottom:clamp(16px,2vw,28px);
  letter-spacing:1px;
}
.focus-content-desc{
  font-size:clamp(0.9rem,1.1vw,1.15rem);
  color:rgba(255,255,255,.75);
  line-height:clamp(1.9,2vw,2.3);
  max-width:clamp(400px,50vw,750px);
}

/* 超宽屏（>1920px） */
@media(min-width:1921px){
  .focus-timeline{
    width:320px;
  }
  .timeline-num{
    font-size:3rem;
  }
  .timeline-title{
    font-size:1.3rem;
  }
  .focus-content-num{
    font-size:12rem;
  }
  .focus-content-title{
    font-size:3.2rem;
  }
  .focus-content-desc{
    font-size:1.25rem;
    max-width:850px;
  }
}

/* 小桌面（1024px-1280px） */
@media(max-width:1280px) and (min-width:1025px){
  .focus-timeline-layout{
    gap:50px;
  }
  .focus-timeline{
    width:200px;
    padding-left:35px;
  }
  .timeline-num{
    font-size:2rem;
  }
  .timeline-title{
    font-size:1rem;
  }
  .focus-content-num{
    font-size:6rem;
  }
  .focus-content-title{
    font-size:2rem;
  }
  .focus-content-desc{
    font-size:1rem;
    line-height:2.1;
  }
}

/* 平板端（768px-1024px） */
@media(max-width:1024px){
  .focus-timeline-layout{
    gap:40px;
  }
  .focus-timeline{
    width:180px;
    padding-left:30px;
  }
  .timeline-num{
    font-size:1.8rem;
  }
  .timeline-title{
    font-size:0.95rem;
  }
  .focus-content-num{
    font-size:5rem;
  }
  .focus-content-title{
    font-size:1.8rem;
  }
  .focus-content-desc{
    font-size:0.95rem;
    line-height:2;
  }
}

/* 移动端：纯横向时间轴+内容在下方 */
@media(max-width:768px){
  .focus-section{
    padding:60px 0;
  }
  .focus-header{
    padding:0 20px;
    margin-bottom:30px;
  }
  .focus-main-title{
    font-size:1.6rem;
  }
  .focus-timeline-layout{
    flex-direction:column;
    gap:35px;
    padding:0 20px;
  }
  /* 纯横向时间轴：无卡片，底部指示线 */
  .focus-timeline{
    position:relative;
    width:100%;
    display:flex;
    gap:0;
    padding-left:0;
    overflow:hidden;
  }
  /* 时间轴底部横线 */
  .focus-timeline::after{
    content:'';
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    height:2px;
    background:rgba(255,255,255,.1);
  }
  .timeline-line{
    display:none;
  }
  .timeline-node{
    flex:1;
    position:relative;
    padding:0 4px 16px;
    text-align:center;
    background:transparent;
    border:none;
    border-radius:0;
    min-width:0;
    transition:all 0.3s ease;
    cursor:pointer;
  }
  /* 当前节点底部红色指示条 */
  .timeline-node::after{
    content:'';
    position:absolute;
    bottom:-2px;
    left:50%;
    transform:translateX(-50%) scaleX(0);
    width:60%;
    height:3px;
    background:linear-gradient(90deg,var(--primary),var(--pink));
    border-radius:2px;
    transition:transform 0.3s ease;
  }
  .timeline-node.active::after{
    transform:translateX(-50%) scaleX(1);
  }
  .timeline-node.active{
    background:transparent;
    border:none;
    box-shadow:none;
  }
  .timeline-dot{
    display:none;
  }
  .timeline-num{
    font-size:1.2rem;
    margin-bottom:6px;
    font-weight:900;
    color:rgba(255,255,255,.3);
    transition:all 0.3s ease;
  }
  .timeline-node.active .timeline-num{
    color:var(--primary);
    font-size:1.4rem;
  }
  .timeline-title{
    font-size:0.72rem;
    white-space:normal;
    line-height:1.3;
    font-weight:600;
    color:rgba(255,255,255,.4);
    transition:all 0.3s ease;
  }
  .timeline-node.active .timeline-title{
    color:#fff;
    font-weight:700;
  }
  .timeline-node:hover .timeline-num{
    color:rgba(255,255,255,.6);
  }
  .timeline-node:hover .timeline-title{
    color:rgba(255,255,255,.7);
  }
  /* 内容在下方 */
  .focus-content-area{
    min-height:auto;
    padding:0;
  }
  .focus-content-num{
    font-size:3rem;
    letter-spacing:-2px;
    margin-bottom:10px;
  }
  .focus-content-title{
    font-size:1.2rem;
    margin-bottom:12px;
  }
  .focus-content-desc{
    font-size:0.85rem;
    line-height:2;
    max-width:100%;
  }
}

/* 小屏手机（<480px）：进一步优化 */
@media(max-width:480px){
  .focus-header{
    margin-bottom:24px;
  }
  .focus-main-title{
    font-size:1.4rem;
  }
  .focus-timeline-layout{
    gap:28px;
  }
  .timeline-node{
    padding:0 2px 12px;
  }
  .timeline-num{
    font-size:1rem;
    margin-bottom:4px;
  }
  .timeline-node.active .timeline-num{
    font-size:1.2rem;
  }
  .timeline-title{
    font-size:0.62rem;
  }
  .focus-content-num{
    font-size:2.5rem;
  }
  .focus-content-title{
    font-size:1.1rem;
  }
  .focus-content-desc{
    font-size:0.8rem;
    line-height:1.9;
  }
}
/* ============================================
   内容可视化 — 设计前后对比滑块
   ============================================ */
.sec-subtitle{
  font-size:clamp(22px,3vw,36px);font-weight:700;
  margin:-8px 0 16px;line-height:1.3;
}
.compare-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:32px;
  margin-top:8px;
}
.compare-block{margin-bottom:0}
.compare-block:last-child{margin-bottom:0}
.compare-header{margin-bottom:20px}
.compare-title{
  font-size:22px;font-weight:700;margin-bottom:6px;
  display:flex;align-items:center;gap:12px;
}
.compare-title::before{
  content:'';width:4px;height:22px;border-radius:2px;
  background:linear-gradient(180deg,var(--primary),var(--pink));
}
.compare-desc{font-size:14px;color:var(--txt3);margin:0}
.compare-slider{
  position:relative;width:100%;
  /* 高度由JS根据图片实际尺寸自适应设置，不再强制16:9 */
  border-radius:16px;overflow:hidden;
  border:1px solid var(--bd);
  background:var(--bg2);
  cursor:ew-resize;
  user-select:none;
}
.compare-layer{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
}
.compare-before{z-index:1}
.compare-after{
  z-index:2;
  overflow:hidden;
  width:50%;
  will-change:width;
}
.compare-placeholder{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:600;letter-spacing:2px;
}
.compare-img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.compare-after .compare-img{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  max-width:none;
}
.ph-before{
  background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);
  color:rgba(255,255,255,.3);
}
.ph-after{
  background:linear-gradient(135deg,rgba(232,0,19,.15) 0%,rgba(255,107,138,.1) 50%,rgba(255,143,163,.08) 100%);
  color:rgba(255,107,138,.5);
}
.compare-handle{
  position:absolute;top:0;bottom:0;
  left:50%;z-index:5;
  transform:translateX(-50%);
  will-change:left;
  pointer-events:none;
}
.compare-line{
  position:absolute;top:0;bottom:0;left:50%;
  width:3px;transform:translateX(-50%);
  background:linear-gradient(180deg,var(--primary),var(--pink));
  box-shadow:0 0 16px rgba(232,0,19,.5);
}
.compare-btn{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:48px;height:48px;border-radius:50%;
  background:rgba(20,20,30,.9);
  border:2px solid var(--primary);
  display:flex;align-items:center;justify-content:center;
  gap:2px;
  box-shadow:0 4px 20px rgba(232,0,19,.4);
  transition:transform .2s, box-shadow .2s;
}
.compare-slider:hover .compare-btn{
  transform:translate(-50%,-50%) scale(1.1);
  box-shadow:0 6px 28px rgba(232,0,19,.55);
}
.compare-btn svg{width:16px;height:16px;fill:var(--pink)}
.compare-tag{
  position:absolute;top:16px;
  padding:6px 16px;border-radius:100px;
  font-size:12px;font-weight:600;letter-spacing:1px;
  backdrop-filter:blur(10px);
  z-index:4;
}
.tag-before{
  left:16px;
  background:rgba(0,0,0,.5);
  color:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.15);
}
.tag-after{
  right:16px;
  background:rgba(232,0,19,.2);
  color:var(--pink);
  border:1px solid rgba(232,0,19,.3);
}

@media(max-width:768px){
  .compare-grid{grid-template-columns:1fr;gap:24px}
  .compare-title{font-size:18px}
  .compare-btn{width:40px;height:40px}
  .compare-btn svg{width:13px;height:13px}
}

/* ============================================
   100+1 设计理念板块
   ============================================ */
.section-101{
  position:relative;overflow:hidden;
  min-height:clamp(500px, 70vh, 900px);
  display:flex;align-items:center;
  padding:100px var(--section-pad);
}

.bg-glow-101{
  position:absolute;top:50%;right:-10%;
  transform:translateY(-50%);
  width:1800px;height:1800px;
  background:radial-gradient(circle,rgba(232,0,19,.15) 0%,rgba(255,107,138,.08) 40%,transparent 70%);
  filter:blur(40px);
  pointer-events:none;z-index:0;
}
.geo-deco-101{
  position:absolute;top:0;right:0;
  width:50%;height:100%;
  pointer-events:none;z-index:0;
}
.float-ring{
  position:absolute;border-radius:50%;
  border:1px solid rgba(232,0,19,.2);
  backdrop-filter:blur(4px);
}
.ring-1{width:600px;height:600px;top:15%;right:15%;animation:floatRing1 8s ease-in-out infinite}
.ring-2{width:360px;height:360px;bottom:20%;right:30%;border-color:rgba(255,107,138,.25);animation:floatRing2 6s ease-in-out infinite}
.float-cube{
  position:absolute;width:240px;height:240px;
  top:55%;right:12%;
  background:linear-gradient(135deg,rgba(232,0,19,.1),rgba(255,107,138,.05));
  border:1px solid rgba(232,0,19,.15);
  border-radius:12px;backdrop-filter:blur(8px);
  transform:rotate(15deg);
  animation:floatCube 7s ease-in-out infinite;
}
@keyframes floatRing1{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(180deg)}}
@keyframes floatRing2{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(15px) rotate(-180deg)}}
@keyframes floatCube{0%,100%{transform:rotate(15deg) translateY(0)}50%{transform:rotate(25deg) translateY(-15px)}}
.content-101{
  position:relative;z-index:1;
  text-align:left;
  max-width:none;width:100%;
}
.title-101{
  font-size:clamp(80px, 15vw, 240px);
  font-weight:800;line-height:1;
  letter-spacing:-2px;
  display:flex;align-items:baseline;
  margin-bottom:24px;
  perspective:800px;
}
.num-100{color:#e8e8f0;display:inline-block}
.plus-sign{color:#e8e8f0;display:inline-block;margin:0 4px}
.num-1{
  background:linear-gradient(135deg,#e80013,#ff6b8a);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;display:inline-block;
  animation:breatheGlow 3s ease-in-out infinite;
}
@keyframes breatheGlow{
  0%,100%{filter:drop-shadow(0 0 8px rgba(232,0,19,.3))}
  50%{filter:drop-shadow(0 0 24px rgba(232,0,19,.6))}
}
.subtitle-101{font-size:clamp(24px, 3vw, 48px);font-weight:600;color:#fff;margin-bottom:12px}
.desc-101{font-size:clamp(18px, 2vw, 32px);color:#888;margin-bottom:20px;line-height:1.6}

@media(max-width:768px){
  .section-101{min-height:400px;padding:60px 20px}
  .geo-deco-101{opacity:.5}
  .title-101{font-size:20vw;letter-spacing:-1px;margin-bottom:16px}
  .content-101{word-break:break-word;overflow-wrap:break-word}
  .subtitle-101{font-size:20px;word-break:break-word}
  .desc-101{font-size:14px;word-break:break-word}
}

/* ============================================
   合作流程 — 三列卡片+2.5D图标+流动光带
   ============================================ */
.process-cards{
  display:flex;align-items:stretch;
  gap:0;position:relative;
  margin-top:16px;
}
.process-card{
  flex:1;
  background:var(--glass);
  border:1px solid var(--bd-lt);
  border-radius:20px;
  padding:36px 32px 28px;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:all .4s var(--ease);
  position:relative;overflow:hidden;
  transform-style:preserve-3d;
  perspective:1000px;
}
.process-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease);
}
.process-card:hover::before{transform:scaleX(1)}
.process-card:hover{
  border-color:rgba(232,0,19,.35);
  box-shadow:0 20px 50px rgba(232,0,19,.12);
}
.process-icon-25d{
  width:72px;height:72px;margin-bottom:20px;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  transform:rotateX(-8deg);
  transform-style:preserve-3d;
  box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 8px 16px rgba(0,0,0,.3),0 16px 32px rgba(0,0,0,.2);
  transition:all .5s var(--ease);
}
.process-icon-25d .icon-glyph svg{
  width:32px;height:32px;fill:#9CA3AF;
  transition:fill .3s;
}
.process-card:hover .process-icon-25d{
  background:linear-gradient(135deg,rgba(232,0,19,.2),rgba(255,107,138,.12));
  border-color:rgba(232,0,19,.4);
  transform:rotateX(-8deg) rotateY(15deg) translateY(-4px) scale(1.08);
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 0 24px rgba(232,0,19,.3),0 12px 32px rgba(0,0,0,.3);
}
.process-card:hover .process-icon-25d .icon-glyph svg{fill:var(--pink)}
.process-num{
  font-size:clamp(36px,4vw,52px);
  font-weight:900;line-height:1;
  background:linear-gradient(135deg,var(--primary),var(--pink));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:10px;opacity:.6;transition:opacity .3s;
}
.process-card:hover .process-num{opacity:1}
.process-name{
  font-size:clamp(18px,2vw,22px);
  font-weight:700;margin-bottom:16px;color:#fff;
}
.process-steps{
  list-style:none;padding:0;margin:0 0 24px;
}
.process-steps li{
  font-size:14px;color:var(--txt2);
  line-height:2.2;
  display:flex;align-items:center;gap:10px;
  opacity:0;transform:translateX(-10px);
  transition:opacity .4s,transform .4s;
}
.process-card.visible .process-steps li{
  opacity:1;transform:translateX(0);
}
.process-steps li::before{
  content:'';width:8px;height:8px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--pink));
  box-shadow:0 0 8px rgba(232,0,19,.4);
  flex-shrink:0;
  animation:stepDotPulse 2s ease-in-out infinite;
}
.process-steps li:nth-child(1){transition-delay:.1s}
.process-steps li:nth-child(2){transition-delay:.2s}
.process-steps li:nth-child(3){transition-delay:.3s}
@keyframes stepDotPulse{
  0%,100%{box-shadow:0 0 4px rgba(232,0,19,.3)}
  50%{box-shadow:0 0 12px rgba(232,0,19,.6)}
}
.process-progress{
  width:100%;height:4px;border-radius:2px;
  background:rgba(255,255,255,.06);
  overflow:hidden;
}
.progress-bar{
  height:100%;width:0;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  border-radius:2px;
  box-shadow:0 0 8px rgba(232,0,19,.5);
  transition:width 1.2s var(--ease);
}
.process-connector{
  width:clamp(30px,4vw,60px);
  display:flex;align-items:center;justify-content:center;
  position:relative;flex-shrink:0;
}
.connector-line{
  width:100%;height:2px;
  background:linear-gradient(90deg,rgba(232,0,19,.3),rgba(255,107,138,.3));
  position:relative;overflow:hidden;
}
.connector-line::after{
  content:'';position:absolute;top:0;left:-30%;
  width:30%;height:100%;
  background:linear-gradient(90deg,transparent,var(--pink),transparent);
  animation:connectorFlow 2s linear infinite;
}
@keyframes connectorFlow{
  0%{left:-30%}
  100%{left:100%}
}
.connector-dot{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:10px;height:10px;border-radius:50%;
  background:var(--pink);
  box-shadow:0 0 12px rgba(255,107,138,.6);
  animation:connectorDotPulse 1.5s ease-in-out infinite;
}
@keyframes connectorDotPulse{
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1}
  50%{transform:translate(-50%,-50%) scale(1.4);opacity:.7}
}

@media(max-width:900px){
  .process-cards{flex-direction:column;gap:24px}
  .process-connector{width:100%;height:30px}
  .connector-line{width:2px;height:100%}
  .connector-line::after{width:100%;height:30%;left:0;top:-30%;background:linear-gradient(180deg,transparent,var(--pink),transparent);animation:connectorFlowV 2s linear infinite}
  @keyframes connectorFlowV{0%{top:-30%}100%{top:100%}}
}

/* ============================================
   页脚新版 — 联系方式+二维码
   ============================================ */
.footer-new{
  display:grid;
  grid-template-columns:1.2fr 1fr 1.2fr;
  gap:48px;
  align-items:start;
}
.footer-contact h5,
.footer-qrcode h5{
  font-size:15px;font-weight:700;color:#fff;
  margin-bottom:20px;letter-spacing:1px;
}
.fcontact-item{
  display:flex;align-items:center;gap:14px;
  margin-bottom:16px;
  transition:transform .3s var(--ease);
}
.fcontact-item:hover{transform:translateX(4px)}
.fcontact-icon-25d{
  width:44px;height:44px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  transform:rotateX(-6deg);
  transform-style:preserve-3d;
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 4px 10px rgba(0,0,0,.3);
  transition:all .4s var(--ease);
}
.fcontact-icon-25d svg{width:20px;height:20px;fill:#9CA3AF;transition:fill .3s}
.fcontact-item:hover .fcontact-icon-25d{
  background:linear-gradient(135deg,rgba(232,0,19,.18),rgba(255,107,138,.1));
  border-color:rgba(232,0,19,.35);
  transform:rotateX(-6deg) rotateY(10deg) translateY(-2px);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 0 16px rgba(232,0,19,.25);
}
.fcontact-item:hover .fcontact-icon-25d svg{fill:var(--pink)}
.fcontact-item span{font-size:14px;color:var(--txt2);transition:color .3s}
.fcontact-item:hover span{color:#fff}
.qrcode-row{display:flex;gap:20px}
.qrcode-item{text-align:center}
.qrcode-placeholder{
  width:130px;height:130px;
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:8px;
  margin-bottom:10px;
  transition:all .4s var(--ease);
}
.qrcode-placeholder:hover{
  border-color:rgba(232,0,19,.3);
  box-shadow:0 0 20px rgba(232,0,19,.15);
  transform:translateY(-3px);
}
.qrcode-placeholder svg{width:32px;height:32px;fill:#666}
.qrcode-placeholder span{font-size:11px;color:#666;letter-spacing:1px}
.qrcode-item p{font-size:12px;color:var(--txt3)}

@media(max-width:1024px){
  .footer-new{grid-template-columns:1fr 1fr;gap:32px}
  .footer-qrcode{grid-column:1/-1}
}
@media(max-width:600px){
  .footer-new{grid-template-columns:1fr}
  .qrcode-row{justify-content:flex-start}
}

/* ============================================
   高级动效增强 — 进入动画 & 鼠标互动
   ============================================ */

/* --- 通用进入动画关键帧 --- */
@keyframes fadeUpIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@keyframes slideDownIn{from{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideRightIn{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}
@keyframes underlineExpand{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes underlineShowHide{0%{transform:scaleX(0)}40%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes borderFlow{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes letterSpacing{0%,100%{letter-spacing:2px}50%{letter-spacing:4px}}
@keyframes mouseWheel{0%{transform:translateY(0);opacity:1}100%{transform:translateY(12px);opacity:0}}

/* --- 1. Banner区域 --- */
.hero-desc{
  transition:opacity 1.4s cubic-bezier(0.22,1,0.36,1), color .4s var(--ease), transform 1.4s cubic-bezier(0.22,1,0.36,1);
}
.hero-desc:hover{color:#fff;transform:translateY(-2px)}
.hero-cta{
  position:relative;overflow:hidden;
  transition:opacity 1.4s cubic-bezier(0.22,1,0.36,1), box-shadow .4s var(--ease), transform 1.4s cubic-bezier(0.22,1,0.36,1);
}
.hero-cta::before{
  content:'';position:absolute;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.25),transparent 70%);
  pointer-events:none;opacity:0;transition:opacity .3s;
  left:var(--mx,50%);top:var(--my,50%);transform:translate(-50%,-50%);
}
.hero-cta:hover::before{opacity:1}
.hero-cta:hover{box-shadow:0 0 30px rgba(232,0,19,.4),0 0 60px rgba(255,107,138,.2)}
.hero-scroll{
  opacity:0;animation:fadeIn 1s ease 1s forwards;
}
.hero-scroll .mouse::after{
  content:'';position:absolute;width:3px;height:6px;background:var(--pink);
  border-radius:2px;left:50%;top:6px;transform:translateX(-50%);
  animation:mouseWheel 1.5s ease-in-out infinite;
}

/* --- 2. 内容可视化板块 --- */
.compare-title{
  position:relative;padding-left:0;transition:all .4s var(--ease);
}
.compare-title::before{
  content:'';position:absolute;left:-16px;top:50%;transform:translateY(-50%) scaleY(0);
  width:3px;height:60%;background:linear-gradient(180deg,var(--primary),var(--pink));
  border-radius:2px;transition:transform .4s var(--ease);
}
.compare-block:hover .compare-title{
  color:var(--pink);padding-left:8px;
}
.compare-block:hover .compare-title::before{transform:translateY(-50%) scaleY(1)}
.compare-desc{transition:all .4s var(--ease);opacity:.7}
.compare-block:hover .compare-desc{opacity:1;color:var(--txt2)}

/* --- 3. 100+1板块 --- */
.subtitle-101{
  opacity:0;transition:all .4s var(--ease);
}
.subtitle-101.animate-in{animation:fadeUpIn .8s cubic-bezier(.22,1,.36,1) .3s forwards}
.subtitle-101:hover{transform:scale(1.02)}
.desc-101{
  opacity:0;transition:all .4s var(--ease);
}
.desc-101.animate-in{animation:fadeUpIn .8s cubic-bezier(.22,1,.36,1) .5s forwards}
.desc-101:hover{color:#fff}
.en-101{
  opacity:1;letter-spacing:2px;
}

/* --- 4. 合作流程板块 --- */
.process-name{transition:all .4s var(--ease)}
.process-card:hover .process-name{color:var(--pink);transform:translateY(-2px)}
.process-steps li{
  opacity:0;transition:all .3s var(--ease);position:relative;padding-left:16px;
}
.process-card.animate-in .process-steps li{animation:fadeUpIn .5s ease forwards}
.process-card.animate-in .process-steps li:nth-child(1){animation-delay:.2s}
.process-card.animate-in .process-steps li:nth-child(2){animation-delay:.35s}
.process-card.animate-in .process-steps li:nth-child(3){animation-delay:.5s}
.process-steps li::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border-radius:50%;background:var(--primary);
  transition:all .3s var(--ease);box-shadow:0 0 0 rgba(232,0,19,0);
}
.process-steps li:hover{color:var(--pink);transform:translateX(4px)}
.process-steps li:hover::before{background:var(--pink);box-shadow:0 0 8px rgba(232,0,19,.6)}

/* --- 5. 页脚区域 --- */
.footer-brand p{
  transition:color .4s var(--ease);
}
.footer-brand p:hover{color:var(--txt2)}
.footer-contact h5,
.footer-qrcode h5{
  position:relative;display:inline-block;padding-bottom:8px;
  transition:color .4s var(--ease);
}
.footer-contact h5::after,
.footer-qrcode h5::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--primary),var(--pink),transparent);
  transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);
}
.footer-contact:hover h5::after,
.footer-qrcode:hover h5::after{transform:scaleX(1)}
.fcontact-item span{
  transition:color .3s var(--ease);
}
.fcontact-item:hover span{color:var(--pink)}
.qrcode-item p{
  transition:color .3s var(--ease);
}
.qrcode-item:hover p{color:var(--txt2)}
.qrcode-placeholder{
  position:relative;overflow:hidden;
}
.qrcode-placeholder::before{
  content:'';position:absolute;inset:0;border-radius:14px;padding:1px;
  background:linear-gradient(90deg,transparent,var(--primary),var(--pink),transparent);
  background-size:200% 100%;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .4s;
}
.qrcode-placeholder:hover::before{opacity:1;animation:borderFlow 2s linear infinite}
.footer-bottom{
  position:relative;
}
.footer-bottom::before{
  content:'';position:absolute;top:0;left:50%;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,var(--bd),transparent);
  transform:translateX(-50%) scaleX(0);transition:transform .8s var(--ease);
}
.footer-bottom:hover::before{transform:translateX(-50%) scaleX(1)}

/* --- 6. 右侧悬浮联系栏 --- */
.sidebar{
  opacity:0;animation:slideRightIn .8s cubic-bezier(.22,1,.36,1) .8s forwards;
}
.side-btn{
  opacity:0;transition:all .4s var(--ease);
}
.sidebar.animate-in .side-btn:nth-child(1){animation:fadeUpIn .5s ease 1s forwards}
.sidebar.animate-in .side-btn:nth-child(2){animation:fadeUpIn .5s ease 1.1s forwards}
.sidebar.animate-in .side-btn:nth-child(3){animation:fadeUpIn .5s ease 1.2s forwards}
.sidebar.animate-in .side-btn:nth-child(4){animation:fadeUpIn .5s ease 1.3s forwards}
.sidebar.animate-in .side-btn:nth-child(5){animation:fadeUpIn .5s ease 1.4s forwards}
.side-btn:hover{
  transform:perspective(600px) rotateY(-10deg) rotateX(5deg);
  border-color:rgba(232,0,19,.4);
  box-shadow:0 0 20px rgba(232,0,19,.25);
}

/* --- 7. 导航栏 --- */
.nav{
  opacity:0;animation:slideDownIn .8s cubic-bezier(.22,1,.36,1) .2s forwards;
}

/* ============================================
   方案A — 板块标题逐字弹入 + 渐变流光
   ============================================ */

/* 通用字符样式 */
.sec-label .char,
.sec-title .char{
  display:inline-block;
  opacity:0;
  will-change:transform,opacity;
}

/* 英文标题 — 字母逐个弹出 + 间距收缩 */
.sec-label{
  letter-spacing:2px;
  transition:letter-spacing .4s var(--ease),color .3s;
}
.title-anim-in .sec-label .char{
  animation:charPopIn .5s cubic-bezier(.34,1.56,.64,1) forwards;
}
.title-anim-in .sec-label .char:nth-child(1){animation-delay:.05s}
.title-anim-in .sec-label .char:nth-child(2){animation-delay:.09s}
.title-anim-in .sec-label .char:nth-child(3){animation-delay:.13s}
.title-anim-in .sec-label .char:nth-child(4){animation-delay:.17s}
.title-anim-in .sec-label .char:nth-child(5){animation-delay:.21s}
.title-anim-in .sec-label .char:nth-child(6){animation-delay:.25s}
.title-anim-in .sec-label .char:nth-child(7){animation-delay:.29s}
.title-anim-in .sec-label .char:nth-child(8){animation-delay:.33s}
.title-anim-in .sec-label .char:nth-child(9){animation-delay:.37s}
.title-anim-in .sec-label .char:nth-child(10){animation-delay:.41s}
.title-anim-in .sec-label .char:nth-child(11){animation-delay:.45s}
.title-anim-in .sec-label .char:nth-child(12){animation-delay:.49s}
.title-anim-in .sec-label .char:nth-child(13){animation-delay:.53s}
.title-anim-in .sec-label .char:nth-child(14){animation-delay:.57s}
.title-anim-in .sec-label .char:nth-child(15){animation-delay:.61s}
.title-anim-in .sec-label .char:nth-child(n+16){animation-delay:.65s}

@keyframes charPopIn{
  0%{opacity:0;transform:translateY(20px) scale(.8)}
  60%{opacity:1;transform:translateY(-3px) scale(1.05)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* 主标题 — 逐字弹出 + 回弹 */
.sec-title{
  transition:transform .4s var(--ease);
}
.title-anim-in .sec-title .char{
  animation:titleCharPop .6s cubic-bezier(.34,1.56,.64,1) forwards;
}
.title-anim-in .sec-title .char:nth-child(1){animation-delay:.15s}
.title-anim-in .sec-title .char:nth-child(2){animation-delay:.21s}
.title-anim-in .sec-title .char:nth-child(3){animation-delay:.27s}
.title-anim-in .sec-title .char:nth-child(4){animation-delay:.33s}
.title-anim-in .sec-title .char:nth-child(5){animation-delay:.39s}
.title-anim-in .sec-title .char:nth-child(6){animation-delay:.45s}
.title-anim-in .sec-title .char:nth-child(7){animation-delay:.51s}
.title-anim-in .sec-title .char:nth-child(8){animation-delay:.57s}
.title-anim-in .sec-title .char:nth-child(9){animation-delay:.63s}
.title-anim-in .sec-title .char:nth-child(10){animation-delay:.69s}
.title-anim-in .sec-title .char:nth-child(11){animation-delay:.75s}
.title-anim-in .sec-title .char:nth-child(12){animation-delay:.81s}

/* ============================================
   作品案例页面样式
   ============================================ */

/* --- 页面Banner --- */
.page-banner{
  position:relative;min-height:50vh;display:flex;align-items:center;
  overflow:hidden;padding:120px var(--section-pad) 80px;
}
.page-banner-glow{
  position:absolute;top:0;left:0;right:0;bottom:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(232,0,19,.15),transparent 60%),
             radial-gradient(ellipse at 70% 50%,rgba(255,107,138,.1),transparent 60%);
  pointer-events:none;
}
.page-banner-content{position:relative;z-index:2}
.page-title{
  font-size:clamp(22px,3.1vw,36px);font-weight:600;color:#fff;
  margin:16px 0;letter-spacing:-.2px;line-height:1.25;
}
.page-desc{
  font-size:clamp(1rem,1.5vw,1.25rem);color:var(--txt2);
  max-width:600px;line-height:1.8;
}

/* --- 作品案例列表 --- */
.works-list-section{
  padding:60px 6vw 120px;
  position:relative;
  overflow:hidden;
  background-image:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size:60px 60px;
}
.works-list-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
  position:relative;
  z-index:2;
}
/* 1921px以上：单行5张 */
@media(min-width:1921px){
  .works-list-grid{
    grid-template-columns:repeat(5, 1fr);
  }
}
/* 1024px以下：单行3张 */
@media(max-width:1023px){
  .works-list-grid{
    grid-template-columns:repeat(3, 1fr);
  }
}
/* 768px以下：单行2张 */
@media(max-width:767px){
  .works-list-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}
.works-list-grid .marquee-card{
  width:100%;
  flex-shrink:0;cursor:pointer;margin-right:0;
}
/* 作品案例页卡片内部元素 - 等比放大适应大卡片 */
.works-list-grid .marquee-cover .geo{
  width:clamp(100px,8vw,140px);height:clamp(100px,8vw,140px);
}
.works-list-grid .marquee-info{
  padding:clamp(16px,1.4vw,22px) clamp(20px,1.8vw,28px);
}
.works-list-grid .marquee-title{
  font-size:clamp(14px,1.2vw,18px);
  margin-bottom:8px;
}
.works-list-grid .marquee-desc{
  font-size:clamp(11px,0.9vw,13px);
  line-height:1.6;
}
.works-list-grid .marquee-tag{
  font-size:clamp(10px,0.8vw,12px);
  padding:4px 12px;
  margin-top:12px;
}

/* 首页精选作品跑马灯卡片 - 文字字号增加40% */
#home-works .marquee-title{
  font-size:clamp(13px,1vw,15px);
}
#home-works .marquee-desc{
  font-size:clamp(10px,0.85vw,11px);
}
#home-works .marquee-tag{
  font-size:clamp(8px,0.7vw,11px);
}

/* --- 面包屑导航 --- */
.breadcrumb{
  padding:100px var(--section-pad) 20px;
}
.breadcrumb-inner{
  display:flex;align-items:center;gap:12px;
  font-size:.9rem;color:var(--txt3);
}
.breadcrumb-inner a{color:var(--txt2);transition:color .3s}
.breadcrumb-inner a:hover{color:var(--accent)}
.breadcrumb-sep{opacity:.5}
.breadcrumb-current{color:#fff;font-weight:500}

/* --- 详情页文章标题区 --- */
.detail-title-section{
  padding:40px var(--section-pad) 20px;
}
.detail-title-inner{
  max-width:none;
}
.detail-title{
  font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:800;color:#fff;
  margin:0;line-height:1.3;letter-spacing:-0.01em;
}

/* --- 详情页顶部展示区 --- */
.detail-hero{
  padding:20px var(--section-pad) 60px;
}
.detail-hero-media{
  position:relative;width:100%;border-radius:24px;overflow:hidden;
  background:#0a0a0f;border:1px solid rgba(255,255,255,.06);
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.detail-hero-media img,
.detail-hero-media video{
  width:100%;height:auto;display:block;
}
.detail-hero-media .hero-placeholder{
  width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(232,0,19,.08),rgba(255,107,138,.05));
}
.detail-hero-play-btn{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:80px;height:80px;border-radius:50%;
  background:rgba(232,0,19,.9);display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:transform .3s,background .3s;
  box-shadow:0 0 40px rgba(232,0,19,.4);
}
.detail-hero-play-btn:hover{transform:translate(-50%,-50%) scale(1.1);background:var(--accent)}
.detail-hero-play-btn svg{width:32px;height:32px;fill:#fff;margin-left:4px}

/* --- 详情页案例信息区 --- */
.detail-info{padding:20px var(--section-pad) 60px}
.detail-info-inner{
  display:grid;grid-template-columns:1fr 380px;gap:60px;
  align-items:start;
}
.detail-content{min-width:0}
.detail-block{margin-bottom:48px}
.detail-block-title{
  font-size:1.25rem;font-weight:700;color:#fff;margin-bottom:20px;
}
.detail-block-text{
  font-size:1rem;color:var(--txt2);line-height:2;
}
.detail-block-text p{margin-bottom:16px}

/* --- 配色方案 --- */
.color-palette{display:flex;gap:16px;flex-wrap:wrap}
.color-card{
  flex:1;min-width:120px;border-radius:16px;overflow:hidden;
  background:var(--glass);border:1px solid rgba(255,255,255,.06);
}
.color-swatch{height:80px;width:100%}
.color-info{padding:12px 16px}
.color-name{font-size:.85rem;font-weight:600;color:#fff;margin-bottom:4px}
.color-hex{font-size:.75rem;color:var(--txt3);font-family:monospace}

/* --- 详情页右侧信息卡片 --- */
.detail-sidebar{position:sticky;top:100px}
.info-card{
  background:var(--glass);border:1px solid rgba(255,255,255,.06);
  border-radius:20px;padding:28px;
  backdrop-filter:blur(20px);
}
.info-card-row{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;
}
.info-card-item{display:flex;flex-direction:column;gap:6px}
.info-label{font-size:.75rem;color:var(--txt3);text-transform:uppercase;letter-spacing:0.05em}
.info-value{font-size:1rem;font-weight:600;color:#fff}
.info-card-divider{
  height:1px;background:rgba(255,255,255,.06);margin:24px 0;
}
.info-card-tags{margin-bottom:20px}
.info-card-tags:last-child{margin-bottom:0}
.info-tag-label{
  display:block;font-size:.75rem;color:var(--txt3);
  text-transform:uppercase;letter-spacing:0.05em;margin-bottom:10px;
}
.info-tags{display:flex;flex-wrap:wrap;gap:8px}
.info-tag{
  padding:6px 14px;border-radius:100px;font-size:.8rem;
  background:rgba(232,0,19,.1);color:var(--accent);
  border:1px solid rgba(232,0,19,.2);font-weight:500;
}
.info-card-executor{display:flex;flex-direction:column;gap:8px}
.info-executor-name{font-size:1.1rem;font-weight:700;color:#fff}

/* --- 设计前后对比 --- */
.detail-compare{padding:60px var(--section-pad) 80px;background:rgba(255,255,255,.01)}
.detail-compare-inner{max-width:none;margin:0 auto}
.detail-section-title{
  font-size:clamp(1.5rem,3vw,2.2rem);font-weight:800;color:#fff;
  margin-bottom:40px;text-align:center;
}

/* 详情页对比组件：两张图完整大小一致，滑块裁剪显示 */
.detail-compare .compare-slider{
  /* 高度由JS根据图片实际尺寸自适应设置，不再强制16:9 */
  height:auto;
  position:relative;
  overflow:hidden;
}
.detail-compare .compare-before{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:1;
}
.detail-compare .compare-before img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.detail-compare .compare-after{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  z-index:2;
  overflow:hidden;
  width:50%;
  will-change:width;
  background:#0a0a0f;
}
.detail-compare .compare-after img{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  max-width:none;
  object-fit:cover;
  display:block;
  /* 宽度由JS动态设置为对比组件完整宽度 */
}

/* --- 作品展示区 --- */
.detail-gallery{padding:80px var(--section-pad)}
.detail-gallery-inner{max-width:none;margin:0}
.gallery-list{display:flex;flex-direction:column;gap:40px}
.gallery-item{
  position:relative;border-radius:20px;overflow:hidden;
  background:#0a0a0f;border:1px solid rgba(255,255,255,.06);
  cursor:pointer;transition:transform .4s var(--ease),box-shadow .4s;
}
.gallery-item:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 60px rgba(0,0,0,.4);
}
.gallery-item img,.gallery-item video{
  width:100%;height:auto;display:block;
}
.gallery-item .gallery-placeholder{
  width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(232,0,19,.06),rgba(255,107,138,.04));
}
.gallery-item-caption{
  padding:16px 24px;font-size:.9rem;color:var(--txt2);
  background:rgba(0,0,0,.3);
}
.gallery-item-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:64px;height:64px;border-radius:50%;
  background:rgba(232,0,19,.9);display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 30px rgba(232,0,19,.4);pointer-events:none;
}
.gallery-item-play svg{width:24px;height:24px;fill:#fff;margin-left:3px}

/* --- 相关案例推荐 — 单行跑马灯 --- */
.detail-related{padding:60px 0 100px;background:rgba(255,255,255,.01);overflow:hidden}
.detail-related-inner{max-width:none;margin:0 auto}
.related-marquee{
  position:relative;width:100%;overflow:hidden;
  mask-image:linear-gradient(to right,transparent,black 5%,black 95%,transparent);
  -webkit-mask-image:linear-gradient(to right,transparent,black 5%,black 95%,transparent);
}
.related-marquee-track{
  display:flex;gap:24px;width:max-content;
  animation:relatedMarquee 30s linear infinite;
}
.related-marquee:hover .related-marquee-track{
  animation-play-state:paused;
}
@keyframes relatedMarquee{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.related-card{
  flex-shrink:0;cursor:pointer;
}

/* --- 图片灯箱 --- */
.lightbox{
  position:fixed;inset:0;z-index:9999;display:none;
  background:rgba(0,0,0,.95);backdrop-filter:blur(20px);
  align-items:center;justify-content:center;
}
.lightbox.active{display:flex}
.lightbox-close{
  position:absolute;top:30px;right:30px;width:48px;height:48px;
  border-radius:50%;background:rgba(255,255,255,.1);border:none;
  color:#fff;font-size:1.2rem;cursor:pointer;z-index:10;
  transition:background .3s,transform .3s;
}
.lightbox-close:hover{background:rgba(232,0,19,.8);transform:rotate(90deg)}
.lightbox-prev,.lightbox-next{
  position:absolute;top:50%;transform:translateY(-50%);
  width:56px;height:56px;border-radius:50%;
  background:rgba(255,255,255,.1);border:none;color:#fff;
  font-size:2rem;cursor:pointer;z-index:10;transition:background .3s;
  display:flex;align-items:center;justify-content:center;
}
.lightbox-prev{left:30px}
.lightbox-next{right:30px}
.lightbox-prev:hover,.lightbox-next:hover{background:rgba(232,0,19,.8)}
.lightbox-content{
  max-width:90vw;max-height:85vh;display:flex;align-items:center;justify-content:center;
}
.lightbox-content img{
  max-width:100%;max-height:85vh;object-fit:contain;border-radius:12px;
}
.lightbox-counter{
  position:absolute;bottom:30px;left:50%;transform:translateX(-50%);
  font-size:.9rem;color:var(--txt3);z-index:10;
}

/* --- 响应式 --- */
@media(max-width:1200px){
  .detail-info-inner{grid-template-columns:1fr 320px;gap:40px}
}
@media(max-width:900px){
  .detail-info-inner{grid-template-columns:1fr}
  .detail-sidebar{position:static}
  .page-banner{padding:100px 6vw 60px}
  .works-list-section{padding:40px 6vw 80px}
  .breadcrumb{padding:90px 6vw 16px}
  .detail-hero{padding:16px 6vw 40px}
  .detail-info{padding:30px 6vw 60px}
  .detail-compare{padding:40px 6vw 60px}
  .detail-gallery{padding:60px 6vw}
  .detail-related{padding:40px 0 80px}
}
@media(max-width:600px){
  .works-list-grid{gap:20px}
  .info-card{padding:20px}
  .info-card-row{grid-template-columns:1fr;gap:16px}
  .color-palette{flex-direction:row;flex-wrap:nowrap;gap:8px}
  .color-card{min-width:0;flex:1}
  .compare-handle-btn{width:44px;height:44px;font-size:.7rem}
  .lightbox-prev,.lightbox-next{width:44px;height:44px;font-size:1.5rem}
  .lightbox-prev{left:15px}
  .lightbox-next{right:15px}
}
.title-anim-in .sec-title .char:nth-child(n+13){animation-delay:.87s}

@keyframes titleCharPop{
  0%{opacity:0;transform:translateY(30px) scale(.7)}
  55%{opacity:1;transform:translateY(-5px) scale(1.08)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* 渐变高亮文字 — 流光效果 */
.sec-title .grad{
  background:linear-gradient(90deg,var(--primary),var(--pink),var(--primary),var(--pink));
  background-size:300% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  position:relative;
}
.title-anim-in .sec-title .grad{
  /* 默认静止，鼠标悬停时才流动 */
}
@keyframes gradFlow{
  0%{background-position:0% 50%}
  100%{background-position:300% 50%}
}

/* 描述文字 — 颜色渐变（动画由.reveal类统一控制） */
.sec-desc{
  color:var(--txt3);
}

/* 鼠标悬停整个标题区域 */
.section:hover .sec-label{
  letter-spacing:4px;
  color:var(--pink);
}
.section:hover .sec-title{
  transform:translateY(-2px);
}
.section:hover .sec-desc{
  color:var(--txt);
  transform:translateY(-1px);
}
.section:hover .sec-title .grad{
  filter:drop-shadow(0 0 8px rgba(232,0,19,.4));
}

/* ============================================
   联系方式页面 — 方案B卡片网格+全宽地图
   ============================================ */
.contact-section{
  padding:100px var(--section-pad) 80px;
}

/* --- 四卡片网格 --- */
.contact-cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  margin:48px 0 64px;
}
.contact-card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  padding:32px 24px;
  text-align:center;
  backdrop-filter:blur(12px);
  transition:all .5s cubic-bezier(0.22,1,0.36,1);
  position:relative;
  overflow:hidden;
}
.contact-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
  opacity:0;
  transition:opacity .4s;
}
.contact-card:hover{
  transform:translateY(-8px);
  border-color:rgba(232,0,19,.3);
  background:rgba(232,0,19,.04);
  box-shadow:0 20px 50px rgba(232,0,19,.12),0 0 0 1px rgba(232,0,19,.15);
}
.contact-card:hover::before{
  opacity:1;
}

/* --- 2.5D磨砂玻璃图标 --- */
.contact-icon-25d{
  width:64px;
  height:64px;
  margin:0 auto 20px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  transform:perspective(600px) rotateX(-8deg) rotateY(6deg);
  transform-style:preserve-3d;
  box-shadow:
    0 1px 0 rgba(255,255,255,.15) inset,
    0 6px 12px rgba(0,0,0,.3),
    0 12px 24px rgba(0,0,0,.2);
  transition:all .5s cubic-bezier(0.22,1,0.36,1);
}
.contact-icon-25d svg{
  width:28px;
  height:28px;
  color:rgba(255,255,255,.85);
  transition:color .4s;
  transform:translateZ(8px);
}
.contact-card:hover .contact-icon-25d{
  background:linear-gradient(135deg,rgba(232,0,19,.2),rgba(255,107,138,.12));
  border-color:rgba(232,0,19,.4);
  transform:perspective(600px) rotateX(-8deg) rotateY(6deg) translateY(-4px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.2) inset,
    0 0 20px rgba(232,0,19,.3),
    0 10px 20px rgba(232,0,19,.15),
    0 16px 32px rgba(0,0,0,.3);
}
.contact-card:hover .contact-icon-25d svg{
  color:#ff6b8a;
}

/* --- 卡片文字 --- */
.contact-card h4{
  font-size:0.85rem;
  color:rgba(255,255,255,.5);
  font-weight:500;
  margin-bottom:10px;
  letter-spacing:1px;
  text-transform:uppercase;
}
.contact-value{
  font-size:1.05rem;
  font-weight:600;
  color:#fff;
  margin-bottom:0;
  word-break:break-all;
}
.contact-sub{
  font-size:0.8rem;
  color:rgba(255,255,255,.4);
  margin-top:6px;
}

/* --- 微信二维码卡片 --- */
.contact-qr-card .qr-display-small{
  width:120px;
  height:120px;
  margin:16px auto 12px;
  background:#fff;
  border-radius:12px;
  position:relative;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.3);
}
.contact-qr-card .qr-display-small::before{
  content:'';
  position:absolute;
  inset:10px;
  background:
    repeating-linear-gradient(0deg,#111 0,#111 3px,transparent 3px,transparent 6px),
    repeating-linear-gradient(90deg,#111 0,#111 3px,transparent 3px,transparent 6px);
  opacity:.88;
  border-radius:6px;
}
.contact-qr-card .qr-display-small::after{
  content:'微信';
  position:absolute;
  bottom:6px;
  left:50%;
  transform:translateX(-50%);
  font-size:9px;
  color:#333;
  background:#fff;
  padding:2px 8px;
  border-radius:3px;
  z-index:2;
  white-space:nowrap;
}

/* --- 全宽极简北半球地图 --- */
.contact-map{
  position:relative;
  width:100%;
  margin-top:24px;
  border-radius:24px;
  overflow:hidden;
  background:rgba(255,255,255,.015);
  border:1px solid rgba(255,255,255,.06);
  padding:40px 0;
}
.world-map{
  width:100%;
  height:auto;
  display:block;
  max-height:450px;
}
.map-continent{
  fill:none;
  stroke:rgba(255,255,255,0.13);
  stroke-width:1.2;
  transition:stroke .4s;
}
.contact-map:hover .map-continent{
  stroke:rgba(255,255,255,0.2);
}

/* --- 长沙标点 --- */
.map-marker-group{
  position:relative;
  z-index:2;
}
.map-dot{
  fill:#e80013;
  filter:drop-shadow(0 0 6px rgba(232,0,19,.8));
}
.map-dot-inner{
  fill:#fff;
}
.map-pulse-ring{
  fill:none;
  stroke:#e80013;
  stroke-width:1.5;
  opacity:0.6;
  transform-origin:center;
  animation:mapPulse 2.5s ease-out infinite;
}
.map-pulse-ring2{
  fill:none;
  stroke:#ff6b8a;
  stroke-width:1;
  opacity:0.4;
  transform-origin:center;
  animation:mapPulse 2.5s ease-out infinite 0.8s;
}
@keyframes mapPulse{
  0%{
    transform:scale(1);
    opacity:0.6;
  }
  100%{
    transform:scale(4);
    opacity:0;
  }
}

/* --- 地图标签 --- */
.map-label{
  position:absolute;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  font-size:0.85rem;
  color:rgba(255,255,255,.5);
  letter-spacing:2px;
  display:flex;
  align-items:center;
  gap:8px;
}
.map-label::before{
  content:'';
  width:8px;
  height:8px;
  border-radius:50%;
  background:#e80013;
  box-shadow:0 0 8px rgba(232,0,19,.6);
  animation:mapLabelPulse 2s ease-in-out infinite;
}
@keyframes mapLabelPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.6;transform:scale(1.3)}
}

/* --- 联系方式页面响应式 --- */
@media(max-width:1200px){
  .contact-cards{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:768px){
  .contact-section{
    padding:60px 5vw 60px;
  }
  .contact-cards{
    grid-template-columns:1fr;
    gap:16px;
    margin:32px 0 48px;
  }
  .contact-card{
    padding:24px 20px;
    text-align:left;
    display:flex;
    align-items:center;
    gap:16px;
  }
  .contact-icon-25d{
    width:52px;
    height:52px;
    margin:0;
    flex-shrink:0;
  }
  .contact-icon-25d svg{
    width:22px;
    height:22px;
  }
  .contact-card h4{
    font-size:0.75rem;
    margin-bottom:4px;
  }
  .contact-value{
    font-size:0.95rem;
  }
  .contact-sub{
    font-size:0.75rem;
    margin-top:4px;
  }
  .contact-qr-card{
    flex-direction:column;
    text-align:center;
  }
  .contact-qr-card .qr-display-small{
    width:100px;
    height:100px;
  }
  .contact-map{
    padding:24px 0;
    border-radius:16px;
  }
  .world-map{
    max-height:300px;
  }
  .map-label{
    font-size:0.75rem;
    bottom:16px;
  }
}
@media(max-width:480px){
  .contact-cards{
    gap:12px;
  }
  .contact-card{
    padding:20px 16px;
  }
  .world-map{
    max-height:240px;
  }
}

/* ============================================
   联系方式页面 — 方案C全屏极简排版+二维码焦点
   ============================================ */
.contact-c-section{
  padding:120px var(--section-pad) 100px;
  min-height:calc(100vh - 80px);
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  background-image:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size:60px 60px;
}
/* 粒子背景Canvas */
.particle-canvas{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:1;
}

/* 全局粒子背景（首页） */
.global-particle-bg{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.global-particle-bg .particle-canvas{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:0;
}

/* 确保首页所有内容在粒子背景上方 */
/* 注意：.nav、.sidebar、.modal-overlay保持原有的fixed定位和高z-index，不覆盖 */
.hero, .section, .stats-section, .section-101, .process-section, .footer, .back-top{
  position:relative;
  z-index:1;
}
/* 背景流动光效 */
.contact-c-section::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:
    radial-gradient(ellipse at 20% 30%,rgba(232,0,19,.12),transparent 50%),
    radial-gradient(ellipse at 80% 70%,rgba(255,107,138,.08),transparent 50%);
  pointer-events:none;
  animation:contactGlowMove 12s ease-in-out infinite;
}
@keyframes contactGlowMove{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(30px,-20px) scale(1.1)}
}

.contact-c-container{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:80px;
  max-width:1400px;
  margin:0 auto;
  width:100%;
  position:relative;
  z-index:2;
  align-items:stretch;
}
.contact-c-right{
  display:flex;
  justify-content:center;
  align-items:center;
  height:100%;
}

/* --- 左侧：极简排版信息区 --- */
.contact-c-left{
  min-width:0;
}
.contact-c-en-title{
  font-size:clamp(0.85rem,1.2vw,1.1rem);
  font-weight:600;
  letter-spacing:8px;
  text-transform:uppercase;
  background:linear-gradient(90deg,#e80013,#ff6b8a);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  margin-bottom:20px;
}
.contact-c-divider{
  width:60px;
  height:2px;
  background:linear-gradient(90deg,#e80013,#ff6b8a);
  border-radius:2px;
  margin:24px 0;
}
.contact-c-title{
  font-size:clamp(3rem,8vw,6.5rem);
  font-weight:900;
  color:#fff;
  line-height:1.1;
  letter-spacing:-0.02em;
  margin:0 0 8px 0;
}
.contact-c-title .char{
  display:inline-block;
  opacity:0;
  animation:titleCharPop .7s cubic-bezier(0.34,1.56,0.64,1) forwards;
}
.contact-c-title .char:nth-child(1){animation-delay:.1s}
.contact-c-title .char:nth-child(2){animation-delay:.18s}
.contact-c-title .char:nth-child(3){animation-delay:.26s}
.contact-c-title .char:nth-child(4){animation-delay:.34s}
@keyframes titleCharPop{
  0%{opacity:0;transform:translateY(40px) scale(.7)}
  60%{opacity:1;transform:translateY(-6px) scale(1.08)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* --- 联系方式列表 --- */
.contact-c-list{
  display:flex;
  flex-direction:column;
  gap:28px;
  margin:40px 0;
}
.contact-c-item{
  display:flex;
  align-items:center;
  gap:20px;
}

/* 2.5D磨砂玻璃图标 */
.contact-c-icon-25d{
  width:56px;
  height:56px;
  flex-shrink:0;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  transform:perspective(600px) rotateX(-8deg) rotateY(6deg);
  transform-style:preserve-3d;
  box-shadow:
    0 1px 0 rgba(255,255,255,.15) inset,
    0 6px 12px rgba(0,0,0,.3),
    0 12px 24px rgba(0,0,0,.2);
  transition:all .5s cubic-bezier(0.22,1,0.36,1);
}
.contact-c-icon-25d svg{
  width:24px;
  height:24px;
  color:rgba(255,255,255,.85);
  transition:color .4s;
  transform:translateZ(8px);
}
.contact-c-item:hover .contact-c-icon-25d{
  background:linear-gradient(135deg,rgba(232,0,19,.2),rgba(255,107,138,.12));
  border-color:rgba(232,0,19,.4);
  transform:perspective(600px) rotateX(-8deg) rotateY(6deg) translateY(-4px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.2) inset,
    0 0 20px rgba(232,0,19,.3),
    0 10px 20px rgba(232,0,19,.15),
    0 16px 32px rgba(0,0,0,.3);
}
.contact-c-item:hover .contact-c-icon-25d svg{
  color:#ff6b8a;
}

.contact-c-item-info{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.contact-c-item-label{
  font-size:0.75rem;
  color:rgba(255,255,255,.4);
  font-weight:500;
  letter-spacing:2px;
  text-transform:uppercase;
}
.contact-c-item-value{
  font-size:clamp(1.2rem,2vw,1.6rem);
  font-weight:700;
  color:#fff;
  text-decoration:none;
  transition:color .3s;
  letter-spacing:0.5px;
}
a.contact-c-item-value:hover{
  background:linear-gradient(90deg,#e80013,#ff6b8a);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.contact-c-item-sub{
  font-size:0.85rem;
  color:rgba(255,255,255,.45);
  margin-top:2px;
}

/* --- 品牌slogan --- */
.contact-c-slogan{
  font-size:clamp(1.1rem,1.8vw,1.5rem);
  font-weight:600;
  color:rgba(255,255,255,.8);
  margin-top:32px;
}
.contact-c-slogan .grad{
  background:linear-gradient(90deg,#e80013,#ff6b8a);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* --- 右侧：二维码焦点区 --- */
.contact-c-right{
  display:flex;
  justify-content:center;
  align-items:center;
}
.contact-c-qr-container{
  text-align:center;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.contact-c-qr-box{
  position:relative;
  display:inline-block;
  padding:24px;
  background:rgba(255,255,255,.03);
  backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.1) inset,
    0 20px 60px rgba(0,0,0,.4),
    0 0 40px rgba(232,0,19,.08);
  transition:all .5s cubic-bezier(0.22,1,0.36,1);
  margin-bottom:24px;
}
.contact-c-qr-box::before{
  content:'';
  position:absolute;
  inset:-1px;
  border-radius:28px;
  padding:1px;
  background:linear-gradient(135deg,rgba(232,0,19,.3),rgba(255,107,138,.2),transparent);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:0;
  transition:opacity .4s;
  pointer-events:none;
}
.contact-c-qr-container:hover .contact-c-qr-box{
  transform:translateY(-6px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.15) inset,
    0 30px 80px rgba(0,0,0,.5),
    0 0 60px rgba(232,0,19,.15);
}
.contact-c-qr-container:hover .contact-c-qr-box::before{
  opacity:1;
}
.contact-c-qr-display{
  width:200px;
  height:200px;
  background:#fff;
  border-radius:16px;
  position:relative;
  overflow:hidden;
  box-shadow:0 8px 32px rgba(0,0,0,.3);
}
.contact-c-qr-display::before{
  content:'';
  position:absolute;
  inset:14px;
  background:
    repeating-linear-gradient(0deg,#111 0,#111 4px,transparent 4px,transparent 8px),
    repeating-linear-gradient(90deg,#111 0,#111 4px,transparent 4px,transparent 8px);
  opacity:.88;
  border-radius:8px;
}
.contact-c-qr-display::after{
  content:'微信二维码';
  position:absolute;
  bottom:8px;
  left:50%;
  transform:translateX(-50%);
  font-size:10px;
  color:#333;
  background:#fff;
  padding:2px 8px;
  border-radius:3px;
  z-index:2;
  white-space:nowrap;
}
.contact-c-qr-title{
  font-size:1.2rem;
  font-weight:700;
  color:#fff;
  margin-bottom:8px;
}
.contact-c-qr-desc{
  font-size:0.9rem;
  color:rgba(255,255,255,.5);
  margin-bottom:12px;
}
.contact-c-qr-note{
  font-size:0.75rem;
  color:rgba(255,255,255,.3);
}

/* --- 方案C响应式 --- */
@media(max-width:1200px){
  .contact-c-container{
    grid-template-columns:1.2fr 1fr;
    gap:60px;
  }
  .contact-c-qr-display{
    width:180px;
    height:180px;
  }
}
@media(max-width:900px){
  .contact-c-section{
    padding:100px 6vw 80px;
    min-height:auto;
  }
  .contact-c-container{
    grid-template-columns:1fr;
    gap:60px;
  }
  .contact-c-left{
    text-align:left;
  }
  .contact-c-right{
    order:-1;
  }
  .contact-c-title{
    font-size:clamp(2.5rem,10vw,4rem);
  }
  .contact-c-qr-display{
    width:180px;
    height:180px;
  }
}
@media(max-width:600px){
  .contact-c-section{
    padding:80px 5vw 60px;
  }
  .contact-c-container{
    gap:48px;
  }
  .contact-c-en-title{
    letter-spacing:5px;
    font-size:0.75rem;
  }
  .contact-c-title{
    font-size:clamp(2.2rem,12vw,3.2rem);
  }
  .contact-c-list{
    gap:20px;
    margin:32px 0;
  }
  .contact-c-icon-25d{
    width:48px;
    height:48px;
    border-radius:12px;
  }
  .contact-c-icon-25d svg{
    width:20px;
    height:20px;
  }
  .contact-c-item-value{
    font-size:1.1rem;
  }
  .contact-c-slogan{
    font-size:1rem;
    margin-top:24px;
  }
  .contact-c-qr-box{
    padding:18px;
    border-radius:22px;
  }
  .contact-c-qr-display{
    width:160px;
    height:160px;
  }
  .contact-c-qr-title{
    font-size:1.05rem;
  }
  .contact-c-qr-desc{
    font-size:0.8rem;
  }
}

/* --- 二维码图片样式（无容器/圆角/阴影，高度与左侧一致） --- */
.contact-c-qr-image{
  height:100%;
  width:auto;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  display:block;
  margin:0 auto;
  border-radius:0;
  box-shadow:none;
  transition:none;
}
.contact-c-qr-container:hover .contact-c-qr-image{
  transform:none;
  box-shadow:none;
}
@media(max-width:1200px){
  .contact-c-qr-image{
    max-height:none;
  }
}
@media(max-width:900px){
  .contact-c-qr-image{
    max-height:none;
    height:auto;
    max-width:80%;
  }
}
@media(max-width:600px){
  .contact-c-qr-image{
    max-height:none;
    height:auto;
    max-width:70%;
    border-radius:0;
  }
}

/* ============================================
   方案C：平滑滚动 + 进度条 + 视差 + 分层动画
   ============================================ */

/* 滚动进度条（横向，紧贴导航栏下方） */
.scroll-progress{
  position:fixed;top:75px;left:0;
  width:0%;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  z-index:9999;
  transition:width .1s linear, top .3s ease;
  box-shadow:0 0 12px rgba(232,0,19,.6);
}

/* 多层视差 */
.parallax-bg{
  will-change:transform;
  transform:translateZ(0);
}
.parallax-layer-1{transition:transform .1s linear}
.parallax-layer-2{transition:transform .1s linear}

/* 增强的分层进入动画 */
.reveal-layer{
  opacity:0;
  transform:translateY(50px);
  transition:opacity 1.4s cubic-bezier(0.22,1,0.36,1),transform 1.4s cubic-bezier(0.22,1,0.36,1);
}
.reveal-layer.visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-layer.delay-1{transition-delay:.15s}
.reveal-layer.delay-2{transition-delay:.3s}
.reveal-layer.delay-3{transition-delay:.45s}
.reveal-layer.delay-4{transition-delay:.6s}
.reveal-layer.delay-5{transition-delay:.75s}

/* 标题分层动画 */
.section-title-wrap .reveal-layer{transform:translateY(50px)}
.section-title-wrap .reveal-layer.visible{transform:translateY(0)}

/* 卡片组交错动画 */
.card-stagger > *{
  opacity:0;
  transform:translateY(50px);
  transition:opacity 1.3s cubic-bezier(0.22,1,0.36,1),transform 1.3s cubic-bezier(0.22,1,0.36,1);
}
.card-stagger.visible > *{opacity:1;transform:translateY(0)}
.card-stagger.visible > *:nth-child(1){transition-delay:.05s}
.card-stagger.visible > *:nth-child(2){transition-delay:.15s}
.card-stagger.visible > *:nth-child(3){transition-delay:.25s}
.card-stagger.visible > *:nth-child(4){transition-delay:.35s}
.card-stagger.visible > *:nth-child(5){transition-delay:.45s}
.card-stagger.visible > *:nth-child(6){transition-delay:.55s}
.card-stagger.visible > *:nth-child(7){transition-delay:.65s}
.card-stagger.visible > *:nth-child(8){transition-delay:.75s}
.card-stagger.visible > *:nth-child(9){transition-delay:.85s}
.card-stagger.visible > *:nth-child(10){transition-delay:.95s}

/* 减少动画（无障碍） */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-layer,.card-stagger > *{
    opacity:1 !important;transform:none !important;transition:none !important;
  }
  .scroll-progress{display:none}
}

/* 作品案例页面和最新文章页面卡片初始状态（彻底避免闪烁：使用visibility:hidden） */
.works-list-grid .work-list-card,
.blog-grid .blog-card {
  visibility: hidden;
  opacity: 0;
  transform: translateY(40px);
  transition: none;
  will-change: opacity, transform, visibility;
  backface-visibility: hidden;
}

/* 卡片进入动画 */
@keyframes cardEnter {
  0% {
    visibility: visible;
    opacity: 0;
    transform: translateY(40px);
  }
  100% {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }
}

.works-list-grid .work-list-card.card-visible,
.blog-grid .blog-card.card-visible {
  animation: cardEnter 1.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* ============================================
   首页专用样式（字体增加10-15%，间距减少20-30%，标题字重减轻）
   ============================================ */
.home-page .section{padding:105px var(--section-pad)}
.home-page .section-full{padding:105px 0}

/* 板块标签 */
.home-page .sec-label{font-size:10px;margin-bottom:18px}

/* 板块标题（字重增加20%，字体增大） */
.home-page .sec-title{
  font-size:clamp(22px,3.1vw,36px);
  font-weight:600;
  line-height:1.25;
  margin-bottom:14px;
}

/* 板块描述（字号增加30%） */
.home-page .sec-desc{
  font-size:16px;
  max-width:560px;
  margin-bottom:50px;
  line-height:1.85;
}

/* Banner正文（Banner主标题保持不变，字号增加30%） */
.home-page .hero-desc{
  font-size:18px;
  max-width:580px;
  margin:0 auto 45px;
  line-height:1.85;
}

/* Banner按钮 */
.home-page .hero-cta{
  padding:18px 44px;
  font-size:13px;
}

/* 关于我们 */
.home-page .about-text .lead{
  font-size:16px;
  font-weight:500;
  line-height:1.7;
  margin-bottom:28px;
}
.home-page .about-text p{
  font-size:16px;
  line-height:1.95;
  margin-bottom:20px;
}

/* 100+1大数字（字重保持不变，仅字体增大） */
.home-page .about-card-3d .big-num{
  font-size:112px;
  font-weight:700;
}

/* 数据统计数字（字重保持不变，仅字体增大） */
.home-page .stat-num{
  font-size:clamp(22px,2.8vw,52px);
  font-weight:700;
  line-height:1.15;
  margin-bottom:14px;
}
.home-page .stat-label{
  font-size:clamp(11px,1.1vw,16px);
  font-weight:400;
}
.home-page .stat-divider{margin:16px auto 0}

/* 业务卡片 */
.home-page .biz-card{padding:38px 28px}
.home-page .biz-name{
  font-size:15px;
  font-weight:600;
  margin-bottom:12px;
}

/* 作品卡片 */
.home-page .work-big-info{padding:28px 32px}
.home-page .work-big-title{
  font-size:16px;
  font-weight:500;
  margin-bottom:12px;
}
.home-page .work-big-desc{
  font-size:16px;
  line-height:1.85;
  margin-bottom:20px;
}

/* 文章卡片 */
.home-page .blog-info{padding:22px 24px}
.home-page .blog-cat{font-size:10px;margin-bottom:10px}
.home-page .blog-title{
  font-size:14px;
  font-weight:500;
  margin-bottom:12px;
  line-height:1.6;
}
.home-page .blog-meta{font-size:11px}

/* Logo和导航 */
.home-page .logo{font-size:17px;font-weight:600}
.home-page .nav-links a{font-size:15px;font-weight:400}

/* 合作流程步骤（首页中的合作流程板块） */
.home-page .step-name{
  font-size:15px;
  font-weight:500;
  margin-bottom:14px;
}
.home-page .step-desc{
  font-size:14px;
  line-height:1.9;
}

/* 联系方式信息（首页底部CTA中的联系方式） */
.home-page .contact-info h4{font-size:12px;margin-bottom:6px}
.home-page .contact-info p{font-size:14px;font-weight:500}

/* 正文行高调整 */
.home-page body{line-height:1.75}


/* 作品详情页 - 多个对比模块标题样式 */
.compare-module-title {
  font-size: clamp(14px, 1.2vw, 18px);
  font-weight: 600;
  color: #ffffff;
  margin: 40px 0 20px 0;
  padding-left: 16px;
  border-left: 3px solid #E80013;
  line-height: 1.4;
}

.compare-module-title:first-child {
  margin-top: 0;
}

/* 作品详情页 - 多个对比模块之间的间距 */
#compare-list-container .compare-slider {
  margin-bottom: 40px;
}

#compare-list-container .compare-slider:last-child {
  margin-bottom: 0;
}
/* 作品详情页 - 相关案例跑马灯卡片文字字号增加40% */
.detail-related .marquee-title {
  font-size: clamp(13px, 1vw, 15px) !important;
}

.detail-related .marquee-desc {
  font-size: clamp(10px, 0.85vw, 11px) !important;
}

.detail-related .marquee-tag {
  font-size: clamp(8px, 0.7vw, 11px) !important;
}

/* 作品详情页 - 相关案例跑马灯卡片信息区域内边距相应增加 */
.detail-related .marquee-info {
  padding: 14px 16px !important;
}