/* ============================================================
   HeiGe Codex Skin Studio · landing
   设定集：heige-noir（黑哥夜航台）v1.0
   骨架：HeiGe-Design void-hud · 色板：青色 Pro 五色
   铁律：青只做强调不做底（单屏 <5%）；一屏只点亮一件事；
        圆角 2px 近直角；分离靠色阶＋发丝线，禁投影；
        中文大字 Noto Serif SC 900，正文永不用衬线；
        mono 只给机器语言。
   ============================================================ */

:root{
  --primary:#0891B2;
  --bright:#22D3EE;
  --on-primary:#04181d;
  --line:#A5F3FC;
  --bg-soft:#ECFEFF;
  --deep:#155E75;
  --ink:#eef4f6;
  --canvas:#080b0e;
  --surface:#12171d;
  --surface-2:#161c23;
  --muted:#8393a0;
  --hairline:rgba(165,243,252,.18);
  --hairline-soft:rgba(165,243,252,.10);
  --alert:#ff8a24;
  --grad:linear-gradient(135deg,#0891B2,#22D3EE);
  --glow-main:0 0 2px rgba(34,211,238,.9),0 0 22px rgba(34,211,238,.5),0 0 58px rgba(8,145,178,.3);
  --glow-aux:0 0 1px rgba(34,211,238,.8),0 0 16px rgba(34,211,238,.4);
  --glow-soft:drop-shadow(0 0 15px rgba(34,211,238,.34));
  --serif:'HGSerif','Noto Serif SC','Source Han Serif SC','Songti SC',serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'PingFang SC','Noto Sans SC','Microsoft YaHei',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --w:1120px;
}

@font-face{
  font-family:'HGSerif';
  src:url('fonts/hg-serif-black.woff2') format('woff2');
  font-weight:900;
  font-style:normal;
  font-display:swap;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
html:focus-within{scroll-behavior:smooth}
body{
  background:var(--canvas);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
::selection{background:rgba(8,145,178,.45);color:var(--ink)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}

/* ---------- 磨砂材质层：双层噪点 + 右上青光晕 + 暗角 ---------- */
.fx{position:fixed;inset:0;pointer-events:none;z-index:0}
.fx-noise{
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  mix-blend-mode:screen;opacity:.09;
}
.fx-noise-coarse{
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.35' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)' opacity='1'/%3E%3C/svg%3E");
  mix-blend-mode:screen;opacity:.05;
}
.fx-glow{
  position:absolute;inset:0;
  background:
    radial-gradient(900px 620px at 88% -6%,rgba(8,145,178,.20),transparent 62%),
    radial-gradient(700px 480px at 96% 4%,rgba(34,211,238,.08),transparent 60%);
}
.fx-vignette{
  position:absolute;inset:0;
  background:radial-gradient(140% 120% at 50% 42%,transparent 58%,rgba(0,0,0,.42) 100%);
}

/* ---------- 签名装置：左侧青色刻度索引脊 ---------- */
.spine{
  position:fixed;top:0;bottom:0;left:0;width:56px;z-index:5;
  pointer-events:none;
}
.spine::before{
  content:"";position:absolute;top:0;bottom:0;left:55px;width:1px;
  background:var(--hairline-soft);
}
.spine-word{
  position:absolute;top:96px;left:0;width:56px;
  writing-mode:vertical-rl;text-orientation:mixed;
  font-family:var(--mono);font-size:11px;letter-spacing:.42em;
  color:var(--muted);opacity:.75;
  margin-left:5px;
}
.spine-notches{position:absolute;left:47px;bottom:120px;display:flex;flex-direction:column;gap:14px}
.spine-notches i{
  display:block;width:9px;height:2px;background:rgba(131,147,160,.4);
  transition:background .3s,box-shadow .3s;
}
.spine-notches i.on{background:var(--bright);box-shadow:var(--glow-aux)}
@media (max-width:1180px){.spine{display:none}}

/* ---------- 骨架 ---------- */
.wrap{position:relative;z-index:1}
.container{max-width:var(--w);margin:0 auto;padding-inline:32px}
section{padding-block:104px}
@media (max-width:720px){section{padding-block:72px}.container{padding-inline:20px}}

/* ---------- 导航 ---------- */
.nav{
  position:sticky;top:0;z-index:20;
  background:rgba(8,11,14,.94);
  border-bottom:1px solid var(--hairline-soft);
}
.nav-in{
  max-width:var(--w);margin:0 auto;padding:0 32px;
  height:64px;display:flex;align-items:center;gap:28px;
}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:17px;letter-spacing:.01em}
.brand .bar{width:22px;height:6px;border-radius:3px;background:var(--grad);flex:none}
.brand .hei{font-family:var(--serif);font-weight:900}
.brand .mono-tag{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--muted);margin-left:2px;transform:translateY(1px)}
.nav-links{display:flex;gap:26px;margin-left:auto;font-size:14px;color:var(--muted)}
.nav-links a:hover{color:var(--ink)}
.nav-gh{
  margin-left:8px;flex:none;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;
  border:1px solid var(--hairline);border-radius:2px;
  padding:7px 14px;color:var(--ink);
  transition:border-color .25s,color .25s;
}
.nav-gh:hover{border-color:var(--bright);color:var(--bright)}
.lang-switch{flex:none;font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.08em}
.lang-switch a:hover{color:var(--bright)}
@media (max-width:860px){.nav-links{display:none}}
@media (max-width:520px){.brand{white-space:nowrap}.brand .mono-tag{display:none}.nav-in{gap:16px}}

/* ---------- 章节头：mono 眉题 + 中英双标 ---------- */
.sec-head{margin-bottom:52px}
.eyebrow{
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:12px;letter-spacing:.24em;
  color:var(--muted);text-transform:uppercase;margin-bottom:18px;
}
.eyebrow .no{color:var(--primary)}
.eyebrow::after{content:"";height:1px;width:64px;background:var(--hairline)}
h2{
  font-size:clamp(28px,3.6vw,42px);font-weight:800;line-height:1.16;
  letter-spacing:-.01em;
}
.sec-sub{margin-top:14px;color:var(--muted);max-width:640px;font-size:16px}

/* ---------- Hero ---------- */
.hero{padding-block:120px 84px;position:relative}
.hero .eyebrow{margin-bottom:26px}
.pulse{
  width:7px;height:7px;border-radius:50%;background:var(--bright);
  box-shadow:var(--glow-aux);flex:none;
  animation:breathe 2.6s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}
@media (prefers-reduced-motion:reduce){
  .pulse{animation:none}
  html{scroll-behavior:auto}
}
h1.display{
  font-family:var(--serif);font-weight:900;
  font-size:clamp(42px,7vw,92px);
  line-height:1.04;letter-spacing:-.015em;
  max-width:20ch;
}
h1.display .hl{
  font-style:normal;color:var(--bright);
  text-shadow:var(--glow-main);
}
.hero-lead{
  margin-top:30px;max-width:620px;color:var(--muted);font-size:18px;
}
.hero-lead strong{color:var(--ink);font-weight:600}
.hero-cta{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  border-radius:2px;padding:14px 26px;font-weight:700;font-size:15px;
  transition:transform .2s,filter .2s,border-color .2s;
}
.btn-primary{background:var(--grad);color:var(--on-primary)}
.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.08)}
.btn-ghost{border:1px solid var(--hairline);color:var(--ink)}
.btn-ghost:hover{border-color:var(--bright);color:var(--bright)}
.hero-meta{
  margin-top:26px;font-family:var(--mono);font-size:12px;
  letter-spacing:.14em;color:var(--muted);
}
.hero-meta b{color:var(--ink);font-weight:500}
.hero-fact{
  margin-top:16px;max-width:640px;font-size:14px;color:var(--muted);
  border-left:2px solid var(--deep);padding-left:14px;line-height:1.85;
}

/* ---------- 数据条 ---------- */
.metrics{
  border-top:1px solid var(--hairline-soft);
  border-bottom:1px solid var(--hairline-soft);
  padding-block:44px;
}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
@media (max-width:860px){.metrics-grid{grid-template-columns:repeat(2,1fr);gap:36px 24px}}
.metric .num{
  font-family:var(--serif);font-weight:900;
  font-size:clamp(44px,5.6vw,72px);line-height:.9;letter-spacing:-.015em;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:var(--glow-soft);
}
.metric .lab{margin-top:12px;font-size:14px;color:var(--muted)}
.metric .lab b{color:var(--ink);font-weight:600}

/* ---------- 画廊 ---------- */
.shot{
  position:relative;background:var(--surface);
  border:1px solid var(--hairline-soft);border-radius:2px;
  overflow:hidden;
}
.shot img{width:100%}
.shot figcaption{
  display:flex;align-items:center;gap:10px;
  padding:14px 18px;border-top:1px solid var(--hairline-soft);
  font-size:13.5px;color:var(--muted);
}
.shot figcaption .tag{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--primary);flex:none;
}
.g-lead{margin-bottom:26px}
.g-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.g-grid .span2{grid-column:span 2}
@media (max-width:760px){.g-grid{grid-template-columns:1fr}.g-grid .span2{grid-column:auto}}

/* reticle 角括号：取景语言，标记重点面板 */
.reticle{position:relative}
.reticle .rc{
  position:absolute;width:18px;height:18px;pointer-events:none;z-index:2;
}
.reticle .rc::before,.reticle .rc::after{content:"";position:absolute;background:var(--line);opacity:.75}
.reticle .rc::before{width:100%;height:1px}
.reticle .rc::after{width:1px;height:100%}
.rc.tl{top:-1px;left:-1px}
.rc.tr{top:-1px;right:-1px;transform:scaleX(-1)}
.rc.bl{bottom:-1px;left:-1px;transform:scaleY(-1)}
.rc.br{bottom:-1px;right:-1px;transform:scale(-1)}
.rc.tl::before,.rc.tr::before{top:0;left:0}
.rc.tl::after,.rc.tr::after{top:0;left:0}
.rc.bl::before,.rc.br::before{bottom:0;left:0}
.rc.bl::after,.rc.br::after{bottom:0;left:0}

/* 概念图横滑条 */
.concept-note{
  display:flex;align-items:center;gap:10px;margin:40px 0 18px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;color:var(--muted);
}
.concept-note::after{content:"";flex:1;height:1px;background:var(--hairline-soft)}
.concept-strip{
  display:flex;gap:16px;overflow-x:auto;padding-bottom:10px;
  scrollbar-width:thin;scrollbar-color:var(--deep) transparent;
}
.concept-strip figure{
  flex:0 0 300px;background:var(--surface);
  border:1px solid var(--hairline-soft);border-radius:2px;overflow:hidden;
}
.concept-strip figcaption{
  padding:9px 12px;font-size:12px;color:var(--muted);
  border-top:1px solid var(--hairline-soft);
}

/* ---------- 特性卡 ---------- */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:960px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.feat-grid{grid-template-columns:1fr}}
.feat{
  background:var(--surface);border:1px solid var(--hairline-soft);
  border-radius:2px;padding:28px 26px;
  transition:transform .25s,border-color .25s;
}
.feat:hover{transform:translateY(-2px);border-color:var(--hairline)}
.feat .no{
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;
  color:var(--primary);display:block;margin-bottom:16px;
}
.feat h3{font-size:18.5px;font-weight:700;margin-bottom:10px;letter-spacing:-.005em}
.feat p{font-size:14.5px;color:var(--muted);line-height:1.8}
.feat p code{font-family:var(--mono);font-size:12.5px;color:var(--line)}

/* ---------- 安装 ---------- */
.install-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media (max-width:820px){.install-grid{grid-template-columns:1fr}}
.os-card{
  background:var(--surface);border:1px solid var(--hairline-soft);
  border-radius:2px;padding:32px 30px;
}
.os-card h3{
  display:flex;align-items:center;gap:10px;
  font-size:20px;font-weight:800;margin-bottom:24px;
}
.os-card h3 .os-tag{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  color:var(--primary);border:1px solid var(--hairline);
  border-radius:2px;padding:3px 8px;font-weight:500;
}
.step{display:flex;gap:16px;padding:13px 0}
.step + .step{border-top:1px solid var(--hairline-soft)}
.step .n{
  font-family:var(--mono);font-size:13px;color:var(--bright);
  flex:none;width:22px;text-align:right;padding-top:2px;
}
.step p{font-size:14.5px;color:var(--ink)}
.step p span{color:var(--muted)}
.step code{
  font-family:var(--mono);font-size:12.5px;color:var(--line);
  background:rgba(165,243,252,.06);padding:2px 7px;border-radius:2px;
  word-break:break-all;
}
.codeblock{
  margin-top:20px;background:#0b0f13;border:1px solid var(--hairline-soft);
  border-radius:2px;padding:16px 18px;overflow-x:auto;
}
.codeblock code{
  font-family:var(--mono);font-size:12.5px;color:var(--line);
  white-space:pre;
}
.install-note{
  margin-top:24px;font-size:13.5px;color:var(--muted);
  border-left:2px solid var(--deep);padding-left:14px;
}
.install-note b{color:var(--alert);font-weight:600}

/* AI 换肤面板 */
.ai-panel{
  margin-top:26px;background:var(--surface);
  border:1px solid var(--hairline-soft);border-radius:2px;
  padding:30px;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start;
}
@media (max-width:640px){.ai-panel{grid-template-columns:1fr}}
.ai-panel .bar{width:6px;height:64px;border-radius:3px;background:var(--grad)}
.ai-panel h3{font-size:19px;font-weight:800;margin-bottom:10px}
.ai-panel p{font-size:14.5px;color:var(--muted)}
.ai-panel .quote{
  margin-top:14px;font-family:var(--mono);font-size:13px;color:var(--line);
  background:rgba(165,243,252,.05);border-radius:2px;padding:12px 16px;
}

/* ---------- 透明度面板 ---------- */
.trust{background:var(--surface);border:1px solid var(--hairline-soft);border-radius:2px;padding:8px 34px}
.trust-row{
  display:grid;grid-template-columns:220px 1fr;gap:24px;
  padding:22px 0;align-items:baseline;
}
.trust-row + .trust-row{border-top:1px solid var(--hairline-soft)}
@media (max-width:640px){.trust-row{grid-template-columns:1fr;gap:6px}}
.trust-row dt{
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--primary);
}
.trust-row dd{font-size:15px;color:var(--ink)}
.trust-row dd span{color:var(--muted)}
.trust-row dd a{color:var(--line);border-bottom:1px solid var(--hairline)}
.trust-row dd a:hover{color:var(--bright)}

/* ---------- FAQ ---------- */
.faq-list{max-width:820px}
.faq-list details{border-bottom:1px solid var(--hairline-soft)}
.faq-list summary{
  cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:16px;
  padding:24px 0;font-size:17.5px;font-weight:600;
  transition:color .2s;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--bright)}
.faq-list summary .q{
  font-family:var(--mono);font-size:12px;color:var(--primary);flex:none;
  letter-spacing:.1em;
}
.faq-list summary .plus{margin-left:auto;color:var(--muted);font-family:var(--mono);flex:none;transition:transform .25s}
.faq-list details[open] .plus{transform:rotate(45deg);color:var(--bright)}
.faq-a{padding:0 0 26px 44px;color:var(--muted);font-size:15px;max-width:700px}
.faq-a a{color:var(--line);border-bottom:1px solid var(--hairline)}
.faq-a code{font-family:var(--mono);font-size:13px;color:var(--line)}

/* ---------- 交流群 ---------- */
.community{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center}
@media (max-width:760px){.community{grid-template-columns:1fr}}
.community .qr{
  width:216px;border:1px solid var(--hairline);border-radius:2px;
  padding:10px;background:var(--surface);
}
.community .qr img{border-radius:1px}
.community .qr figcaption{
  padding-top:10px;text-align:center;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--muted);
}
.community p{color:var(--muted);max-width:520px;margin-top:14px}
.community p a{color:var(--line);border-bottom:1px solid var(--hairline)}

/* ---------- 收尾 CTA ---------- */
.final{text-align:center;padding-block:130px 150px}
.final .display{
  font-family:var(--serif);font-weight:900;
  font-size:clamp(38px,6vw,80px);line-height:1.05;letter-spacing:-.01em;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:var(--glow-soft);
  margin:0 auto 20px;max-width:16ch;
}
.final p{color:var(--muted);margin-bottom:40px}
.final .hero-cta{justify-content:center}

/* ---------- 页脚（含地平线 + 黑印记）---------- */
.footer{
  position:relative;
  border-top:1px solid rgba(165,243,252,.2); /* 签名装置：地平线 */
  padding-block:64px 80px;
}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr}}
.footer .brand{margin-bottom:16px}
.footer-desc{font-size:13.5px;color:var(--muted);max-width:300px}
.footer .footer-h{
  font-family:var(--mono);font-size:11px;letter-spacing:.24em;
  color:var(--muted);font-weight:500;margin-bottom:18px;text-transform:uppercase;
}
.footer ul{list-style:none}
.footer li{margin-bottom:12px}
.footer li a{font-size:14px;color:var(--ink);opacity:.85}
.footer li a:hover{color:var(--bright);opacity:1}
.footer-bottom{
  margin-top:56px;padding-top:24px;border-top:1px solid var(--hairline-soft);
  display:flex;align-items:center;gap:20px;
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);
}
.seal{
  margin-left:auto;
  font-family:var(--serif);font-weight:900;font-size:34px;line-height:1;
  color:var(--bright);text-shadow:var(--glow-aux);
}

/* ---------- 入场（transform/opacity only）---------- */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in{opacity:1;transform:none}
