/* ========================================================================
   四川镜芯网络科技有限公司 — 官网样式
   暗色 · 精密工程感 · 电青高光 · 纯系统字体（无外部依赖）
   ======================================================================== */

:root{
  --bg:#0a0d0e;
  --bg-2:#0e1314;
  --panel:#10171800;
  --ink:#e9efec;
  --muted:#8c9893;
  --faint:#5a6661;
  --line:rgba(233,239,236,.08);
  --line-2:rgba(233,239,236,.04);
  --accent:#4fe0c0;
  --accent-deep:#1f8f78;
  --accent-glow:rgba(79,224,192,.28);
  --warm:#e8b15a;
  --r:14px;
  --mono:ui-monospace,"SFMono-Regular","Cascadia Code","JetBrains Mono","Consolas",monospace;
  --sans:"PingFang SC","Microsoft YaHei","Source Han Sans SC","Noto Sans CJK SC","Hiragino Sans GB",system-ui,sans-serif;
  --maxw:1240px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:#04100c}

/* ---------- atmosphere layers ---------- */
.bg-grid{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(var(--line-2) 1px,transparent 1px),
    linear-gradient(90deg,var(--line-2) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 120% 80% at 50% 0%,#000 30%,transparent 75%);
}
.bg-glow{
  position:fixed;z-index:0;pointer-events:none;
  top:-30vh;left:50%;transform:translateX(-50%);
  width:120vw;height:90vh;
  background:radial-gradient(ellipse at center,var(--accent-glow),transparent 60%);
  filter:blur(40px);opacity:.55;
}
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- shared bits ---------- */
.brand-mark{position:relative;display:inline-grid;place-items:center;width:26px;height:26px;flex:none}
.brand-mark .ring{position:absolute;inset:0;border:1.5px solid var(--accent);border-radius:50%;opacity:.85}
.brand-mark .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}

.kicker{
  display:inline-block;font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;
}

.btn{
  display:inline-flex;align-items:center;gap:.55em;font-family:var(--sans);font-size:.95rem;
  font-weight:600;padding:.85em 1.4em;border-radius:100px;border:1px solid transparent;
  cursor:pointer;transition:.25s cubic-bezier(.2,.7,.2,1);white-space:nowrap;
}
.btn span{transition:transform .25s}
.btn:hover span{transform:translateX(3px)}
.btn-primary{background:var(--accent);color:#04100c;box-shadow:0 0 0 0 var(--accent-glow)}
.btn-primary:hover{box-shadow:0 8px 34px -6px var(--accent-glow);transform:translateY(-2px)}
.btn-ghost{border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-lg{font-size:1.05rem;padding:1.05em 1.8em}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem clamp(1.2rem,4vw,2.6rem);
  transition:background .3s,border-color .3s,backdrop-filter .3s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(10,13,14,.72);backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;letter-spacing:.02em}
.brand-text{display:flex;align-items:baseline;gap:.5rem;font-size:1.15rem}
.brand-text i{font-family:var(--mono);font-style:normal;font-size:.62rem;letter-spacing:.22em;color:var(--faint)}
.nav-links{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.2rem);font-size:.92rem}
.nav-links a{color:var(--muted);transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-cta{
  color:var(--accent)!important;border:1px solid var(--line);
  padding:.5em 1em;border-radius:100px;transition:.25s!important;
}
.nav-cta:hover{border-color:var(--accent);background:rgba(79,224,192,.08)}

/* ---------- HERO ---------- */
.hero{
  position:relative;z-index:1;
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(8rem,18vh,12rem) clamp(1.2rem,4vw,2.6rem) 4rem;
}
.hero-meta{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:2.4rem}
.tag{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;color:var(--accent);
  border:1px solid var(--line);border-radius:100px;padding:.45em .9em;
}
.tag.dim{color:var(--muted)}
.hero-title{
  font-size:clamp(2.6rem,8.5vw,6.4rem);line-height:1.02;font-weight:800;
  letter-spacing:-.03em;margin-bottom:2.2rem;
}
.hero-title .line{display:block}
.hero-title em{font-style:normal;color:var(--accent);position:relative}
.hero-title em::after{
  content:"";position:absolute;left:0;right:0;bottom:.08em;height:.09em;
  background:var(--accent);opacity:.4;
}
.hero-mirror{
  position:absolute;right:clamp(1rem,4vw,3rem);top:clamp(6rem,16vh,11rem);
  font-size:clamp(7rem,22vw,18rem);font-weight:800;line-height:.8;
  letter-spacing:-.04em;pointer-events:none;z-index:-1;
  color:transparent;-webkit-text-stroke:1px rgba(79,224,192,.16);
  background:linear-gradient(180deg,rgba(79,224,192,.08),transparent 70%);
  -webkit-background-clip:text;background-clip:text;
  transform:scaleY(1);
}
.hero-sub{
  max-width:46ch;font-size:clamp(1.02rem,1.6vw,1.28rem);color:var(--muted);
  margin-bottom:2.6rem;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:4.5rem}
.hero-strip{
  position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.strip-track{
  display:flex;gap:1.6rem;white-space:nowrap;width:max-content;
  font-family:var(--mono);font-size:.85rem;letter-spacing:.08em;color:var(--faint);
  animation:marquee 34s linear infinite;
}
.strip-track span:nth-child(odd){color:var(--muted)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- section scaffolding ---------- */
section{position:relative;z-index:1}
.section-head{
  max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.2rem,4vw,2.6rem);
  margin-bottom:3.4rem;
}
.section-head h2{
  font-size:clamp(1.8rem,4.2vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;
  max-width:18ch;
}
.section-head p{margin-top:1.2rem;color:var(--muted);max-width:54ch;font-size:1.05rem}

/* ---------- SERVICES ---------- */
.services{padding:clamp(4rem,9vh,7rem) 0}
.svc-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.2rem,4vw,2.6rem);
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
}
.svc{
  background:var(--bg);padding:2rem 1.7rem 1.8rem;position:relative;
  transition:background .3s;overflow:hidden;
}
.svc::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.svc:hover{background:var(--bg-2)}
.svc:hover::before{transform:scaleX(1)}
.svc-no{font-family:var(--mono);font-size:.8rem;color:var(--faint);letter-spacing:.1em}
.svc h3{font-size:1.3rem;font-weight:700;margin:.7rem 0 .6rem;letter-spacing:-.01em}
.svc:hover h3{color:var(--accent)}
.svc p{color:var(--muted);font-size:.95rem;line-height:1.55}
.svc-en{
  display:block;margin-top:1.1rem;font-family:var(--mono);font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--faint);
}

/* ---------- APPROACH ---------- */
.approach{padding:clamp(4rem,9vh,7rem) 0;border-top:1px solid var(--line)}
.steps{
  max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.2rem,4vw,2.6rem);
  display:grid;grid-template-columns:repeat(5,1fr);gap:1.6rem;list-style:none;
}
.step{position:relative;padding-top:1.4rem;border-top:1px solid var(--line)}
.step-no{font-size:1.5rem;color:var(--accent);font-weight:700}
.step h3{font-size:1.15rem;font-weight:700;margin:.8rem 0 .5rem}
.step p{color:var(--muted);font-size:.93rem}

/* ---------- ABOUT ---------- */
.about{padding:clamp(4rem,9vh,7rem) 0;border-top:1px solid var(--line)}
.about-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.2rem,4vw,2.6rem);
  display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start;
}
.about-text h2{font-size:clamp(1.9rem,4.4vw,3.1rem);font-weight:800;letter-spacing:-.02em;line-height:1.08;margin-bottom:1.6rem}
.about-text p{color:var(--muted);font-size:1.05rem;margin-bottom:1.1rem;max-width:52ch}
.about-side{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.spec{background:var(--bg);padding:1.1rem 1.3rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.spec-k{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;color:var(--faint)}
.spec-v{font-size:.92rem;color:var(--ink);text-align:right}

/* ---------- CONTACT ---------- */
.contact{padding:clamp(5rem,12vh,9rem) 0;border-top:1px solid var(--line);position:relative;overflow:hidden}
.contact::after{
  content:"";position:absolute;left:50%;bottom:-50%;transform:translateX(-50%);
  width:80vw;height:60vh;background:radial-gradient(ellipse,var(--accent-glow),transparent 65%);
  filter:blur(50px);opacity:.5;pointer-events:none;
}
.contact-inner{
  max-width:760px;margin:0 auto;padding:0 clamp(1.2rem,4vw,2.6rem);text-align:center;position:relative;
}
.contact-inner h2{font-size:clamp(2rem,5.5vw,3.6rem);font-weight:800;letter-spacing:-.02em;line-height:1.08;margin-bottom:1.4rem}
.contact-inner p{color:var(--muted);font-size:1.08rem;max-width:48ch;margin:0 auto 2.4rem}

/* ---------- FOOTER ---------- */
.site-footer{
  position:relative;z-index:1;border-top:1px solid var(--line);
  padding:3rem clamp(1.2rem,4vw,2.6rem) 2.4rem;background:var(--bg-2);
}
.foot-top{
  max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;gap:1.4rem;
  justify-content:space-between;align-items:center;padding-bottom:2rem;border-bottom:1px solid var(--line);
}
.foot-brand{display:flex;align-items:center;gap:.6rem;font-weight:600}
.foot-nav{display:flex;gap:1.6rem;font-size:.9rem}
.foot-nav a{color:var(--muted)}
.foot-nav a:hover{color:var(--accent)}
.foot-beian{
  max-width:var(--maxw);margin:1.8rem auto 0;
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.3rem;
  font-size:.82rem;color:var(--faint);line-height:1.8;
}
.foot-beian a{color:var(--faint);transition:color .2s;display:inline-flex;align-items:center;gap:.4em}
.foot-beian a:hover{color:var(--accent)}
.foot-beian .gov{display:inline-flex;align-items:center;gap:.4em}
.foot-beian .gov img{width:15px;height:15px;vertical-align:middle}
.foot-beian .sep{color:var(--line);user-select:none}
.foot-copy{width:100%;margin-top:.4rem;color:var(--faint)}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="0"]{transition-delay:.05s}
.reveal[data-d="1"]{transition-delay:.15s}
.reveal[data-d="2"]{transition-delay:.28s}
.reveal[data-d="3"]{transition-delay:.42s}
.reveal[data-d="4"]{transition-delay:.55s}
.reveal[data-d="5"]{transition-delay:.68s}
.svc,.step,.spec{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease,background .3s,color .3s}
.svc.in,.step.in,.spec.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal,.svc,.step,.spec{opacity:1!important;transform:none!important}
}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .about-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .nav-links a:not(.nav-cta){display:none}
  .svc-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .hero-mirror{opacity:.6}
  .foot-top{flex-direction:column;align-items:flex-start}
}
