/* ==========================================================================
   AlphaEcosys — shared design system
   --------------------------------------------------------------------------
   配色取自 alphaecosys-logo.png 像素直取，勿凭印象改：
     中绿 #37805F ＝ "Alpha" 字标 / 图形右侧 "e"
     深绿 #22604A ＝ "Ecosys" 字标 / 图形左侧 "a"
   改 token 只改这里，七页共用同一份。
   旧变量名 --red / --orange / --lime 保留为别名，避免历史内联样式失效。
   ========================================================================== */
:root{
  /* ── 品牌绿 ─────────────────────────────────────────── */
  --green:#37805F;        /* 主色 */
  --green-d:#22604A;      /* 深绿 —— hover / pressed */
  --green-l:#4C9C77;      /* 亮一档 —— 渐变上端 */
  --mint:#8FD3B0;         /* 数据高亮 · 仅图形与点阵，不用于正文 */
  --mint-pale:#EAF4EE;    /* 淡底 */
  --mint-line:#C6DFD2;    /* 淡边 */

  /* ── 中性 ───────────────────────────────────────────── */
  --ink:#0E1A15;          /* 冷调深墨（带绿味，不用暖黑） */
  --ink-2:#3D4A43;
  --ink-3:#6C7972;
  --paper:#F4F6F3;        /* 冷调纸底 */
  --line:#DFE6E0;
  --line-2:#EDF1EE;
  --white:#fff;

  /* ── 兼容旧名 ───────────────────────────────────────── */
  --red:var(--green);
  --red-d:var(--green-d);
  --orange:var(--green);
  --orange-l:var(--mint);
  --lime:var(--mint);

  /* ── 技法层 ─────────────────────────────────────────── */
  --grid:rgba(55,128,95,.075);    /* 浅底技术网格线 */
  --grid-2:rgba(143,211,176,.11); /* 深底技术网格线 */
  --glow:rgba(55,128,95,.30);

  --fs:-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue","Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --wrap:1220px;
  --pad:40px;
}

*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--fs);font-size:16px;line-height:1.65}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
::selection{background:var(--mint-pale);color:var(--green-d)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* ---------- 顶部滚动进度线（科技感 · 浏览器不支持则自动不出现） ---------- */
@supports (animation-timeline:scroll()){
  body::before{content:"";position:fixed;top:0;left:0;height:2px;width:100%;z-index:80;
    background:linear-gradient(90deg,var(--green),var(--mint));transform-origin:0 50%;
    transform:scaleX(0);animation:pgbar linear;animation-timeline:scroll(root block)}
  @keyframes pgbar{to{transform:scaleX(1)}}
}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}

/* 小标：前加一道短线，读起来像仪表盘标签 */
.eyebrow{font:700 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--green);
  display:inline-flex;align-items:center;gap:9px}
.eyebrow::before{content:"";width:20px;height:2px;background:var(--green);flex:none}
.mono{font-family:var(--mono)}
h1,h2,h3,h4{margin:0;font-weight:750;letter-spacing:-.025em;line-height:1.15}
h1{font-size:clamp(34px,4.1vw,52px)}
h2{font-size:clamp(26px,2.7vw,36px)}
h3{font-size:20px}
p{margin:0}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 22px;background:var(--green);color:var(--white);
  font-size:14.5px;font-weight:650;letter-spacing:-.01em;border:1px solid var(--green);cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
  transition:background .16s,border-color .16s,transform .16s,box-shadow .16s}
.btn:hover{background:var(--green-d);border-color:var(--green-d);transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 8px 22px var(--glow)}
.btn .ar{transition:transform .16s}
.btn:hover .ar{transform:translateX(3px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:#C6CFC9;box-shadow:none}
.btn.ghost:hover{background:transparent;border-color:var(--green);color:var(--green-d);transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(55,128,95,.13)}
.btn.sm{padding:9px 15px;font-size:13.5px}

/* ---------- top nav ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(244,246,243,.9);backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line)}
.nav::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:min(230px,26vw);
  background:linear-gradient(90deg,var(--green),rgba(55,128,95,0));pointer-events:none}
.nav .wrap{display:flex;align-items:center;gap:clamp(12px,1.3vw,22px);height:76px}
.nav .brand{display:inline-flex;align-items:center;flex:none}
.nav .brand img{height:29px;width:auto;flex:none}
.nav .sp{flex:1 1 0;min-width:0}
.nav ul{display:flex;align-items:center;gap:clamp(9px,1.05vw,17px);list-style:none;margin:0;padding:0;flex:0 1 auto;min-width:0}
.nav li{position:relative}
.nav a.lnk{font-size:clamp(12px,.92vw,13.4px);font-weight:550;color:var(--ink-2);padding:6px 0;display:inline-flex;align-items:center;white-space:nowrap;border-bottom:2px solid transparent}
.nav a.lnk:hover{color:var(--ink);border-bottom-color:var(--green)}
.nav a.lnk.on{color:var(--ink);border-bottom-color:var(--green)}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.burger i{display:block;width:20px;height:2px;background:var(--ink);margin:4px 0}

/* ---------- section shell ---------- */
.sec{padding:74px 0}
.sec.tight{padding:56px 0}
.sec.alt{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* 栏头改成「工程标尺」：细实线上压一道绿色短标 + 刻度 */
.sec-head{position:relative;display:flex;align-items:flex-end;gap:24px;padding-bottom:22px;margin-bottom:34px;
  border-bottom:1px solid var(--line)}
.sec-head::before{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:96px;background:var(--green)}
.sec-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:7px;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(55,128,95,.26) 0 1px,transparent 1px 18px)}
.sec-head .l{flex:1}
.sec-head h2{margin-top:12px}
.sec-head .note{max-width:46ch;font-size:13.5px;color:var(--ink-2);text-align:right;padding-bottom:4px}

/* ---------- hero ---------- */
.hero{position:relative;padding:62px 0 0;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),
                   linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:72px 72px;background-position:50% 0;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 100%)}
.hero>.wrap{position:relative;z-index:1}
.hero .grid{display:grid;grid-template-columns:1.06fr .94fr;gap:60px;align-items:center}
.hero h1{margin:20px 0 20px;max-width:17ch;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--green)}
.hero .sub{font-size:17px;color:var(--ink-2);max-width:46ch}
.hero .acts{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.hero figure{margin:0}
.hero figure .im{position:relative;overflow:hidden;background:var(--line-2)}
/* 照片四角裁切标 —— 技术图纸语汇 */
.hero figure .im::before,.hero figure .im::after{content:"";position:absolute;width:22px;height:22px;z-index:2;
  border:0 solid var(--white);filter:drop-shadow(0 0 2px rgba(0,0,0,.4))}
.hero figure .im::before{top:10px;left:10px;border-top-width:2px;border-left-width:2px}
.hero figure .im::after{bottom:10px;right:10px;border-bottom-width:2px;border-right-width:2px}
.hero figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero figure figcaption{margin-top:12px;font:600 11.5px/1.6 var(--mono);letter-spacing:.04em;color:var(--ink-3);
  padding-left:12px;border-left:2px solid var(--mint)}

/* ---------- proof bar ---------- */
.proof{margin-top:66px;border-top:3px solid var(--green);border-bottom:1px solid var(--line);background:var(--white);
  position:relative}
.proof::after{content:"";position:absolute;left:0;right:0;top:-3px;height:3px;
  background:linear-gradient(90deg,var(--green),rgba(55,128,95,.15) 70%,transparent)}
.proof .grid{display:grid;grid-template-columns:repeat(3,1fr)}
.proof .it{padding:30px 26px 32px;border-right:1px solid var(--line);position:relative}
.proof .it::before{content:"";position:absolute;top:0;left:26px;width:34px;height:3px;background:var(--green)}
.proof .it:last-child{border-right:0}
.proof .n{font-size:clamp(34px,3.4vw,46px);font-weight:800;letter-spacing:-.045em;line-height:1;color:var(--green);
  font-variant-numeric:tabular-nums}
.proof .n sup{font-size:.5em;font-weight:700;vertical-align:super;margin-left:1px}
.proof .l{margin-top:11px;font:600 11px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}

/* ---------- case strip ---------- */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.case{background:var(--white);border:1px solid var(--line);padding:26px 26px 24px;display:flex;flex-direction:column;
  position:relative;transition:border-color .18s,transform .18s,box-shadow .18s}
/* 卡片四角角标：hover 时长出来 */
.case::before,.case::after{content:"";position:absolute;width:13px;height:13px;pointer-events:none;
  border:0 solid var(--green);opacity:0;transition:opacity .18s,width .18s,height .18s}
.case::before{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}
.case::after{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.case:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:0 12px 30px rgba(55,128,95,.10)}
.case:hover::before,.case:hover::after{opacity:1;width:20px;height:20px}
.case .tag{align-self:flex-start;font:700 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border:1px solid}
.case .tag.d{background:var(--green);border-color:var(--green);color:var(--white)}
.case .tag.t{background:transparent;border-color:#C6CFC9;color:var(--ink-3)}
.case .cl{margin:20px 0 2px;font-size:27px;font-weight:780;letter-spacing:-.03em}
.case .mk{font:600 11px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.case .ds{margin:16px 0 22px;font-size:14.5px;color:var(--ink-2)}
.case .dl{margin-top:auto;padding-top:15px;border-top:1px dashed var(--line);font:500 12px/1.9 var(--mono);color:var(--ink-3)}
.case .dl b{color:var(--ink-2);font-weight:600}
.cases-foot{margin-top:26px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-3)}
.cases-foot .key{display:flex;align-items:center;gap:8px}
.dotmk{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none}
.dotmk.h{background:transparent;border:1.5px solid #C6CFC9}
.linkar{display:inline-flex;align-items:center;gap:8px;font-weight:650;font-size:14.5px;color:var(--ink);
  border-bottom:2px solid var(--green);padding-bottom:3px}
.linkar:hover{color:var(--green)}

/* ---------- business lines ---------- */
.lines{border-top:1px solid var(--line)}
.ln{display:grid;grid-template-columns:52px 300px 1fr 40px;gap:26px;align-items:center;padding:26px 8px;
  border-bottom:1px solid var(--line);position:relative;
  transition:background .18s,padding .18s,box-shadow .18s}
.ln::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green);
  transform:scaleY(0);transform-origin:50% 0;transition:transform .18s}
.ln:hover{background:var(--white);padding-left:18px;box-shadow:0 8px 24px rgba(55,128,95,.07)}
.ln:hover::before{transform:scaleY(1)}
.ln .i{font:700 12px/1 var(--mono);letter-spacing:.08em;color:var(--green)}
.ln h3{font-size:22px}
.ln p{font-size:14.5px;color:var(--ink-2)}
.ln .go{justify-self:end;font-size:19px;color:var(--ink-3);transition:transform .18s,color .18s}
.ln:hover .go{transform:translateX(5px);color:var(--green)}

/* ---------- 人员名录（表格式 · 小方块照片）----------
   语汇取自行业融资材料里的「Current member & function description」页：
   三列 Position | Background | Function，照片只占一个 46px 方块，
   左侧一道绿竖条做版式锚点。Background 列加粗——那是可信度列。 */
.rosterwrap{position:relative;padding-left:22px}
.rosterwrap::before{content:"";position:absolute;left:0;top:2px;bottom:8px;width:5px;
  background:linear-gradient(180deg,var(--green),var(--green-d))}
.roster{width:100%;border-collapse:collapse;table-layout:fixed}
.roster th{font:700 10.5px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);
  text-align:left;padding:0 24px 11px 0;border-bottom:1.5px solid var(--ink)}
.roster th:nth-child(1){width:38%}
.roster th:nth-child(2){width:29%}
.roster th:nth-child(3){width:33%}
.roster td{vertical-align:middle;padding:11px 24px 11px 0;border-bottom:1px solid var(--line)}
.roster tr:last-child td{border-bottom:0}
.roster td:nth-child(2){font-weight:700;color:var(--ink)}
.roster td .sk.bar{margin:0}
.who{display:flex;align-items:center;gap:13px;min-width:0}
.rph{width:46px;height:46px;flex:0 0 46px;overflow:hidden;background:var(--line-2)}
.rph img{width:100%;height:100%;object-fit:cover;filter:saturate(.93) contrast(1.03)}
.rph.ph2{display:grid;place-items:center;border:1px dashed #C6CFC9}
.rph.ph2 span{font:700 12px/1 var(--mono);letter-spacing:.04em;color:#AEB8B2}
.wtxt{min-width:0;flex:1}
.wtxt .advlab{margin:7px 0 0}

/* ---------- 成员卡（Case Studio · Team）：照片同样收成 56px 方块 ---------- */
.mem{background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;position:relative;
  transition:border-color .18s,box-shadow .18s}
.mem::before,.mem::after{content:"";position:absolute;width:13px;height:13px;pointer-events:none;
  border:0 solid var(--green);opacity:0;transition:opacity .18s}
.mem::before{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}
.mem::after{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.mem:hover{border-color:var(--green);box-shadow:0 12px 28px rgba(55,128,95,.10)}
.mem:hover::before,.mem:hover::after{opacity:1}
.mem .hd{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}
.mem .hd .ph{width:56px;height:56px;flex:0 0 56px;overflow:hidden;background:var(--line-2)}
.mem .hd .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.93) contrast(1.03)}
.mem .hd>div:last-child{min-width:0;flex:1}
.mem .hd .advlab{margin-top:7px}
.mem .rows{padding:6px 18px 14px}
.mem .row{display:flex;align-items:center;gap:14px;padding:8px 0;border-bottom:1px dashed var(--line-2)}
.mem .row:last-child{border-bottom:0}
.mem .row .k{flex:0 0 78px;font:700 10px/1.7 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.mem .row .sk{flex:1;margin:0}
/* 顾问位实标：让外部顾问和内部成员一眼可分 */
.advlab{display:inline-block;font:700 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;
  padding:4px 7px;border:1px solid var(--green);color:var(--green-d);background:var(--white);margin-top:9px}

/* ---------- gates：改成带刻度尺的工程导轨 ---------- */
.gates{display:grid;grid-template-columns:repeat(6,1fr);position:relative;margin-top:8px}
.gates::before{content:"";position:absolute;left:0;right:0;top:5px;height:1px;
  background:linear-gradient(90deg,var(--green) 0%,rgba(55,128,95,.35) 62%,var(--line) 100%)}
.gates::after{content:"";position:absolute;left:0;right:0;top:-1px;height:5px;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(55,128,95,.34) 0 1px,transparent 1px 22px);
  -webkit-mask-image:linear-gradient(90deg,#000,transparent);
  mask-image:linear-gradient(90deg,#000,transparent)}
.gate{padding-right:16px;position:relative}
.gate .d{width:11px;height:11px;border-radius:50%;background:var(--white);border:2px solid var(--green);
  position:relative;z-index:1;margin-bottom:18px;box-shadow:0 0 0 4px rgba(55,128,95,.09)}
.gate:first-child .d{background:var(--green);box-shadow:0 0 0 4px rgba(55,128,95,.16),0 0 16px var(--glow)}
.gate .g{font:700 11px/1 var(--mono);letter-spacing:.1em;color:var(--green)}
.gate .t{margin-top:8px;font-size:14.5px;font-weight:650;letter-spacing:-.015em}

/* ---------- CTA band：深绿渐变 + 网格 + 光晕 ---------- */
.band{position:relative;overflow:hidden;color:var(--white);padding:76px 0;
  background:radial-gradient(760px 380px at 84% 12%,rgba(55,128,95,.42),transparent 62%),
             radial-gradient(560px 320px at 8% 96%,rgba(143,211,176,.12),transparent 66%),
             linear-gradient(152deg,#0A1611 0%,#10241B 50%,#153527 100%)}
.band::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--grid-2) 1px,transparent 1px),
                   linear-gradient(90deg,var(--grid-2) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 88%);
  mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 88%)}
.band>.wrap{position:relative;z-index:1}
.band .grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.band h2{color:var(--white)}
.band .sub{color:#AEC4B8;margin-top:16px;font-size:15.5px;max-width:40ch}
.band .meta{margin-top:30px;display:flex;flex-direction:column;gap:9px}
.band .meta div{font-size:13.5px;color:#AEC4B8}
.band .meta b{color:var(--white);font-weight:600}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .full{grid-column:1/-1}
.form label{display:block;font:600 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#7E9488;margin-bottom:7px}
.form input,.form textarea{width:100%;background:#16241D;border:1px solid #2A4034;color:var(--white);padding:12px 13px;
  font-size:14.5px;transition:border-color .16s,box-shadow .16s}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--green-l);box-shadow:0 0 0 3px rgba(55,128,95,.22)}
.form textarea{resize:vertical;min-height:96px}
.form .btn{grid-column:1/-1;justify-content:center}

/* ---------- footer ---------- */
.foot{position:relative;background:var(--ink);color:#9BB0A5;padding:60px 0 34px;border-top:1px solid #1E3229}
.foot::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:min(280px,34vw);
  background:linear-gradient(90deg,var(--green),rgba(55,128,95,0))}
.foot .top{display:grid;grid-template-columns:1.4fr 1fr 1.15fr 1fr .9fr;gap:34px;padding-bottom:40px;border-bottom:1px solid #1E3229}
.foot img{height:30px;margin-bottom:18px}
.foot .bl{font-size:13.5px;max-width:36ch;color:#9BB0A5}
.foot h4{font:700 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#6E8478;margin-bottom:14px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.foot ul a{font-size:14px;color:#AEC4B8}
.foot ul a:hover{color:var(--white)}
.foot .legal{padding-top:24px;display:flex;gap:30px;justify-content:space-between;flex-wrap:wrap;font-size:12px;color:#6E8478}

/* ---------- internal annotations (delete before launch) ---------- */
.internal{background:#FFFDF3;border:1px solid #EFE6C8;padding:30px 34px;margin:60px 0 0;font-size:13.5px;color:#5A5340;line-height:1.75}
.internal h3{font-size:14px;letter-spacing:0;margin:0 0 14px;color:#8A7A32;font-family:var(--mono)}
.internal b{color:#3A3524}
.internal ul{margin:8px 0 16px;padding-left:20px}
.internal li{margin-bottom:7px}
.internal p{margin-bottom:12px}
.internal code{font-family:var(--mono);font-size:12px;background:#F3EDD8;padding:1px 5px}
.internal .done{color:#3A6A22}

/* ==========================================================================
   SKELETON MODE — 结构稿专用（内容填完后整块删除）
   灰条 = 待填文字位；斜纹块 = 待补图片位。灰条本身不写任何字。
   ========================================================================== */
.sk{background:repeating-linear-gradient(135deg,#E7EBE7 0 7px,#E1E6E2 7px 14px);border:1px dashed #C4CCC6;display:block}
.sk.bar{height:12px;margin:8px 0}
.sk.t{height:18px;background:repeating-linear-gradient(135deg,#D9DFDA 0 7px,#D2D9D4 7px 14px);border-color:#B9C2BC}
.sk.n{height:34px;max-width:118px;background:repeating-linear-gradient(135deg,#E2E7E3 0 7px,#DBE1DD 7px 14px)}
.skimg{background:repeating-linear-gradient(135deg,#EBEFEC 0 9px,#E4E9E5 9px 18px);border:1px dashed #C4CCC6;
  display:grid;place-items:center;text-align:center;padding:14px;
  font:700 10px/1.7 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:#9FAAA3}
.skbtn{display:inline-block;width:132px;height:40px;background:var(--green);opacity:.2;vertical-align:middle}
.skbtn.g{background:transparent;border:1px dashed #C4CCC6;opacity:1}
.skav{width:100%;height:100%;background:repeating-linear-gradient(135deg,#EBEFEC 0 9px,#E4E9E5 9px 18px);border:1px dashed #C4CCC6;
  display:grid;place-items:center;font:700 9.5px/1.5 var(--mono);letter-spacing:.1em;color:#9FAAA3;text-transform:uppercase;text-align:center;padding:3px}
.skgrid{display:grid;gap:14px}
.skgrid.g2{grid-template-columns:repeat(2,1fr)}
.skgrid.g3{grid-template-columns:repeat(3,1fr)}
.skgrid.g4{grid-template-columns:repeat(4,1fr)}
.skgrid.g5{grid-template-columns:repeat(5,1fr)}
.w20{width:20%}.w25{width:25%}.w30{width:30%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w90{width:90%}.w100{width:100%}

/* 区块批注：编号 + 名称 + 字数上限 + 证据归属 */
.budget{font:700 10.5px/1 var(--mono);letter-spacing:.07em;padding:5px 8px;background:var(--ink);color:var(--white);white-space:nowrap}
.ev{font:700 10px/1 var(--mono);letter-spacing:.07em;padding:5px 8px;border:1px solid;white-space:nowrap}
.ev1{color:var(--white);background:var(--green);border-color:var(--green)}
.ev2{color:#8A4A16;background:#FDF1E8;border-color:#E7B68A}
.ev3{color:#2C6A50;background:var(--mint-pale);border-color:var(--mint-line)}
.evd{color:var(--ink-3);background:var(--paper);border-color:var(--line)}
.evok{color:#2C6A50;background:var(--mint-pale);border-color:var(--mint-line)}
.chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sec-head .note .chips{justify-content:flex-end}
.hint{font:600 11.5px/1.7 var(--mono);letter-spacing:.03em;color:#9AA69F}

/* 页头（结构稿专用） */
.page-hd{padding:52px 0 28px;border-bottom:1.5px solid var(--ink);position:relative}
.page-hd::after{content:"";position:absolute;left:0;bottom:-2px;height:4px;width:120px;
  background:linear-gradient(90deg,var(--green),rgba(55,128,95,0))}
.page-hd h1{margin-top:14px;font-size:clamp(27px,2.9vw,37px)}
.page-hd .task{margin-top:16px;font-size:15px;color:var(--ink-2);max-width:78ch}
.page-hd .metas{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.page-hd .filen{font:600 12px/1 var(--mono);color:var(--ink-3);letter-spacing:.02em;margin-top:10px}

/* 骨架角标（上线前删除） */
.skel-badge{position:fixed;right:18px;bottom:18px;z-index:90;background:var(--ink);color:#fff;
  font:700 10.5px/1 var(--mono);letter-spacing:.14em;padding:10px 13px;text-transform:uppercase;
  box-shadow:0 6px 22px rgba(0,0,0,.22)}
.skel-badge b{color:var(--mint);font-weight:700}

/* 未确认页横幅 */
.tbd{background:#FDF1E8;border:1px solid #E7B68A;color:#8A4A16;padding:16px 20px;font-size:13.5px;line-height:1.7;margin-top:24px}
.tbd b{color:#6E3A0E}

/* 交付物文件名清单（mono，证据型内容） */
.dlv{font:500 12.5px/2.1 var(--mono);color:var(--ink-2);column-gap:34px}
.dlv span{display:block;border-bottom:1px dashed var(--line-2);padding:2px 0}

/* 对照表（结构稿） */
.tbl{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line)}
.tbl th,.tbl td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}
.tbl th{font:700 10.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);background:var(--paper)}
.tbl tr:last-child td{border-bottom:0}
.tbl td.c{text-align:center}

/* 标签页（Case Studio） */
.tabs{display:flex;gap:0;border-bottom:1.5px solid var(--ink);margin-bottom:34px;position:relative}
.tabs::after{content:"";position:absolute;left:0;bottom:-2px;height:4px;width:120px;
  background:linear-gradient(90deg,var(--green),rgba(55,128,95,0))}
.tabs a{padding:13px 22px;font-size:14.5px;font-weight:650;color:var(--ink-3);border-bottom:3px solid transparent;margin-bottom:-2px}
.tabs a.on{color:var(--ink);border-bottom-color:var(--green)}
.tabpane{display:none}
.tabpane.on{display:block}

@media (max-width:900px){
  .skgrid.g3,.skgrid.g4,.skgrid.g5{grid-template-columns:repeat(2,1fr)}
  .page-hd{padding:36px 0 22px}
}
@media (max-width:760px){
  .skgrid.g2,.skgrid.g3,.skgrid.g4,.skgrid.g5{grid-template-columns:1fr}
  .sec-head{flex-direction:column;align-items:flex-start}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .roster th:nth-child(3),.roster td:nth-child(3){display:none}
  .roster th:nth-child(1){width:48%}
  .roster th:nth-child(2){width:52%}
}
@media (max-width:760px){
  .rosterwrap{padding-left:14px}
  .rosterwrap::before{width:4px}
  .roster th,.roster td{padding-right:12px}
  .rph{width:38px;height:38px;flex-basis:38px}
  .who{gap:10px}
  .mem .hd .ph{width:48px;height:48px;flex-basis:48px}
}
@media (max-width:1240px){
  /* 新 logo 是横版长字标（宽高比 7.35），比旧标宽得多 —— CTA 更早让位 */
  .nav .cta-slot{display:none}
}
@media (max-width:900px){
  .nav ul{display:none}
  .burger{display:block}
  .nav ul.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
    background:var(--white);border-bottom:1px solid var(--line);padding:10px 0;max-height:calc(100vh - 76px);overflow:auto}
  .nav ul.open li{border-top:1px solid var(--line-2)}
  .nav ul.open li:first-child{border-top:0}
  .nav ul.open a.lnk{padding:15px var(--pad);width:100%;font-size:15px}
}
@media (max-width:1080px){
  :root{--pad:26px}
  .hero .grid{grid-template-columns:1fr;gap:34px}
  .hero figure img{aspect-ratio:16/10}
  .proof .grid{grid-template-columns:repeat(2,1fr)}
  .proof .it:nth-child(2){border-right:0}
  .proof .it:nth-child(1),.proof .it:nth-child(2){border-bottom:1px solid var(--line)}
  .cases{grid-template-columns:repeat(2,1fr)}
  .gates{grid-template-columns:repeat(3,1fr);row-gap:30px}
  .gates::before,.gates::after{display:none}
  .gate .d{margin-bottom:12px}
  .band .grid{grid-template-columns:1fr;gap:40px}
  .foot .top{grid-template-columns:1fr 1fr}
  .ln{grid-template-columns:40px 1fr 32px;gap:14px}
  .ln h3{font-size:19px}
  .ln p{grid-column:2/3;font-size:14px}
}
@media (max-width:760px){
  .cases,.proof .grid{grid-template-columns:1fr}
  .proof .it{border-right:0;border-bottom:1px solid var(--line)}
  .form{grid-template-columns:1fr}
  .foot .top{grid-template-columns:1fr}
  .sec{padding:54px 0}
  .sec-head{flex-direction:column;align-items:flex-start}
  .sec-head .note{text-align:left}
  .nav .brand img{height:25px}
}

/* ==========================================================================
   PREVIEW MODE — 预演版专用（上线前整块删除）
   三种标法：建议值(=sug) / 只有你能给(=pend) / 该填什么(=todo)
   ========================================================================== */
.pv-bar{background:#FFFDF3;border:1px solid #EFE6C8;padding:20px 24px;margin:26px 0 0;font-size:13.5px;line-height:1.8;color:#5A5340}
.pv-bar>b{color:#8A7A32}
.pv-legend{display:flex;flex-direction:column;gap:9px;margin-top:14px;padding-top:14px;border-top:1px dashed #E5DCC0}
.pv-legend>span{display:flex;gap:10px;align-items:flex-start}
.sug-badge{display:inline-block;font:700 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;
  padding:3px 6px;border:1px solid #E7B68A;color:#8A4A16;background:#FDF1E8;vertical-align:middle;margin-left:7px;white-space:nowrap}
.pend{display:inline-block;font:700 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;
  padding:3px 6px;border:1px dashed #C4CCC6;color:#9AA69F;background:var(--paper);vertical-align:middle;margin-left:7px;white-space:nowrap}
.todo{font:600 12.5px/1.7 var(--mono);color:#9AA69F;border-bottom:1px dashed #C4CCC6}
.todo::before{content:"待填 · "}
.delblk{border:1px dashed #C4CCC6;background:repeating-linear-gradient(135deg,#FAFBFA 0 8px,#F3F6F4 8px 16px);padding:22px 24px}
.delblk .mk{color:#9AA69F}
.band .sug-badge,.band .pend{border-color:#3E5648;color:#AEC4B8;background:transparent}

/* 名录 Position 列：姓名 + 角色 */
.wtxt b{display:block;font-size:14.5px;font-weight:750;letter-spacing:-.018em;line-height:1.3}
.wtxt .rrole{font:600 11px/1.5 var(--mono);color:var(--ink-3);margin-top:5px}

/* 品类网格（Sourcing） */
.catgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cat{background:var(--white);border:1px solid var(--line);padding:22px 18px;min-height:96px;position:relative;
  display:flex;flex-direction:column;justify-content:space-between;transition:border-color .18s,transform .18s,box-shadow .18s}
.cat::before,.cat::after{content:"";position:absolute;width:12px;height:12px;pointer-events:none;
  border:0 solid var(--green);opacity:0;transition:opacity .18s}
.cat::before{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}
.cat::after{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.cat:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:0 12px 28px rgba(55,128,95,.10)}
.cat:hover::before,.cat:hover::after{opacity:1}
.cat .n{font:700 10px/1 var(--mono);letter-spacing:.12em;color:var(--green)}
.cat .t{margin-top:14px;font-size:15.5px;font-weight:700;letter-spacing:-.022em;line-height:1.3}

/* 品控三层 / 交付 vs 可组织 */
.qc .hd{font:700 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.qc ul{list-style:none;margin:16px 0 0;padding:0}
.qc li{font-size:14.5px;padding:7px 0;border-bottom:1px dashed var(--line-2);color:var(--ink-2)}
.qc li:last-child{border-bottom:0}
.qc li b{color:var(--ink);font-weight:700}

/* 立场声明 */
.stance{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--green);
  padding:38px 40px;position:relative;overflow:hidden}
.stance::after{content:"";position:absolute;right:-40px;bottom:-40px;width:180px;height:180px;pointer-events:none;
  background:radial-gradient(circle,rgba(55,128,95,.10),transparent 68%)}
.stance q{display:block;font-size:clamp(21px,2.2vw,29px);font-weight:750;letter-spacing:-.028em;line-height:1.35;quotes:none}
.stance q::before,.stance q::after{content:none}
.stance .sm{margin-top:16px;font-size:14.5px;color:var(--ink-2);max-width:60ch}

/* 结构关系图（About）— 用文字卡代替无来源示意图 */
.gbase{display:grid;grid-template-columns:1fr 46px 1fr 46px 1fr;align-items:stretch}
.gbase .gcell{background:var(--white);border:1px solid var(--line);padding:22px 20px}
.gbase .gcell .k{font:700 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.gbase .gcell .v{margin-top:11px;font-size:15.5px;font-weight:700;letter-spacing:-.022em;line-height:1.4}
.gbase .gcell p{margin-top:10px;font-size:13.5px;color:var(--ink-2)}
.gbase .garrow{display:grid;place-items:center;color:#BCC8C1;font-size:17px}

/* 图片缺口位（保留斜纹，但写清楚缺什么） */
.cimg{background:repeating-linear-gradient(135deg,#EBEFEC 0 9px,#E4E9E5 9px 18px);border:1px dashed #C4CCC6;
  display:grid;place-items:center;text-align:center;padding:16px;height:150px;
  font:700 10px/1.8 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#9FAAA3}
.cimg.tall{height:100%}
.cimg.wide{aspect-ratio:3/1;height:auto}

/* 迁移五步 / 方向网格里的行内元信息 */
.rowmeta{font:600 11px/1.6 var(--mono);color:var(--ink-3);letter-spacing:.02em}
