/* unEarth Advisory · 三页门户
   底色 #050505 · 香槟金 #c9a45c · 宋体标题
   所有页面共用这一份，改这里就是改全站 */

:root{
  --bg:#050505;
  --gold:#c9a45c;
  --gold-bright:#e8cd8f;
  --gold-deep:#96793a;
  --text:#e8e6e0;
  --dim:#9a968c;
  /* 三级文字的最暗一档：原来 #565248 在 #050505 上只有 2.62:1，小字等于看不见。
     这一档是「要读的说明字」，不是装饰，下限取 4.6:1。 */
  --faint:#7d786a;
  --line:rgba(201,164,92,.16);
  --line-soft:rgba(201,164,92,.08);
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --serif:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --mono:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --pad:clamp(24px,5vw,72px);
  --maxw:1240px;
  --e:cubic-bezier(.2,.7,.3,1);
  /* 名字一级：选择革命 / 答案位 / 五道过滤器 / 选择飞轮 / 成为答案 共用一个字号。
     概念名是这一页的骨架，五个名字必须一样大 —— 改一处就够，别再各处写死。 */
  --t-name:clamp(52px,8.6vw,126px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--text);font-family:var(--sans);
  font-size:17px;line-height:1.9;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.narrow{max-width:820px}

/* ── 背景画布 ── */
#gl{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;display:block}
#scrim{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  opacity:var(--scrim-o,1);
  background:linear-gradient(90deg,rgba(5,5,5,.97) 0%,rgba(5,5,5,.94) 34%,rgba(5,5,5,.78) 50%,rgba(5,5,5,.38) 63%,transparent 75%);
}
#gl-fallback{
  position:fixed;inset:0;z-index:0;display:none;pointer-events:none;
  background:radial-gradient(60% 55% at 62% 42%,rgba(201,164,92,.16),transparent 70%);
}
#flash{
  position:fixed;inset:0;z-index:3;pointer-events:none;opacity:0;
  background:radial-gradient(circle at 71% 50%,rgba(255,250,240,.95) 0%,rgba(232,205,143,.55) 16%,rgba(201,164,92,.12) 34%,transparent 52%);
}

/* 开场：正文等粒子落定后浮出 */
.hero > *, .nav{opacity:0;transform:translateY(22px);
  transition:opacity .95s cubic-bezier(.2,.7,.3,1),transform .95s cubic-bezier(.2,.7,.3,1)}
body.ready .hero > *, body.ready .nav{opacity:1;transform:none}
body.ready .hero > *:nth-child(1){transition-delay:.05s}
body.ready .hero > *:nth-child(2){transition-delay:.14s}
body.ready .hero > *:nth-child(3){transition-delay:.26s}
body.ready .hero > *:nth-child(4){transition-delay:.38s}
body.ready .hero > *:nth-child(5){transition-delay:.50s}

/* ── 导航 ── */
.nav{position:fixed;inset:0 0 auto 0;z-index:40;transition:background .4s ease,backdrop-filter .4s ease}
.nav.on{background:rgba(5,5,5,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:20px var(--pad);display:flex;align-items:center;gap:38px}
.logo{display:flex;align-items:center;gap:11px;font-size:14px;letter-spacing:.02em}
.logo b{font-weight:500}
.logo span{color:var(--faint);font-size:11.5px;letter-spacing:.18em}
.logo i{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  border-bottom:7px solid var(--gold);display:block}
.links{display:flex;gap:30px;margin-left:auto;font-size:13px;letter-spacing:.04em;color:var(--faint)}
.links a{transition:color .25s;position:relative}
.links a:hover,.links a.on{color:var(--text)}
.links a.on::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:var(--gold);opacity:.7}
.btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);color:var(--text);
  font-size:13px;letter-spacing:.04em;padding:12px 22px;border-radius:2px;
  transition:border-color .3s,color .3s,background .3s}
.btn:hover{border-color:var(--gold);color:var(--gold-bright);background:rgba(201,164,92,.06)}
.btn.solid{background:var(--gold);border-color:var(--gold);color:#0a0a0a;font-weight:500}
.btn.solid:hover{background:var(--gold-bright);border-color:var(--gold-bright);color:#0a0a0a}
.btn.sm{padding:9px 16px;font-size:12px}

/* ── 首屏 ── */
.hero{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-block:120px 80px}
.hero.short{min-height:82vh}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.34em;color:var(--gold);
  text-transform:uppercase;margin-bottom:34px;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--gold);opacity:.6}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(36px,8.2vw,124px);line-height:1.04;
  letter-spacing:.01em;margin-bottom:38px;max-width:12em}
h1 em{font-style:normal;color:var(--gold);display:block}
h1.small{font-size:clamp(34px,5.6vw,84px);max-width:14em}
.hero p{max-width:31em;color:var(--dim);font-size:clamp(15px,1.3vw,18px);line-height:2;margin-bottom:44px}
.hero p b{color:var(--text);font-weight:400}
.cta{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.scroll-cue{position:absolute;bottom:38px;left:var(--pad);z-index:3;display:flex;align-items:center;gap:12px;
  font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:var(--faint)}
.scroll-cue::after{content:"";width:52px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);
  animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.25;transform:scaleX(.5);transform-origin:left}50%{opacity:1;transform:scaleX(1);transform-origin:left}}

/* ── 通用区块 ── */
section{position:relative;z-index:2}
.sec{padding-block:clamp(110px,14vw,200px)}
.sec.tight{padding-block:clamp(80px,9vw,130px)}
.rule{height:1px;background:var(--line-soft);max-width:var(--maxw);margin:0 auto}
.sec-head{margin-bottom:clamp(46px,6vw,76px)}
.sec-head .eyebrow{margin-bottom:22px}
h2{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.2vw,58px);line-height:1.3;letter-spacing:.01em}
h2 em{font-style:normal;color:var(--gold)}
h3{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2.2vw,29px);line-height:1.45}
.lead{max-width:34em;color:var(--dim);font-size:16px;line-height:2.05;margin-top:28px}
.lead b{color:var(--text);font-weight:400}
.lead em{font-style:normal;color:var(--gold)}

/* ── 宣言 ── */
.manifesto{max-width:min(720px,56vw)}
.manifesto h2{font-size:clamp(32px,4.5vw,66px);line-height:1.34}
.manifesto p{margin:40px 0 0;max-width:30em;color:var(--dim);font-size:16px;line-height:2.05}

/* ── 数字 ── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line-soft)}
.stat{padding:clamp(34px,4vw,56px) clamp(18px,2vw,32px);border-left:1px solid var(--line-soft)}
.stat:first-child{border-left:0;padding-left:0}
.stat .n{font-family:var(--serif);font-size:clamp(38px,4.6vw,64px);line-height:1;color:var(--text);letter-spacing:.01em}
.stat .n small{font-size:.4em;color:var(--gold);margin-left:6px;letter-spacing:0}
.stat .l{margin-top:18px;font-size:13.5px;color:var(--dim);line-height:1.7}
.stat .t{margin-top:10px;font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;color:var(--faint);text-transform:uppercase}

/* ── 业务线列表 ── */
.boards{border-top:1px solid var(--line-soft)}
.board{display:grid;grid-template-columns:64px 1fr 1.1fr auto 28px;gap:clamp(16px,3vw,48px);align-items:baseline;
  padding:clamp(30px,3.4vw,48px) 0;border-bottom:1px solid var(--line-soft);
  transition:background .35s,padding-left .35s}
.board:hover{background:rgba(201,164,92,.035);padding-left:14px}
.board .no{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--gold-deep)}
.board .nm{font-family:var(--serif);font-size:clamp(22px,2.4vw,32px);line-height:1.3}
.board .ds{font-size:14.5px;color:#a8a49a;line-height:1.85}
.board .pr{font-family:var(--mono);font-size:12px;color:var(--gold);white-space:nowrap;letter-spacing:.04em}
.board .ar{color:var(--faint);transition:transform .3s,color .3s}
.board:hover .ar{transform:translateX(6px);color:var(--gold)}

/* ── 业务详版 ── */
.biz{border-top:1px solid var(--line-soft);padding-block:clamp(50px,6vw,84px)}
.biz:last-of-type{border-bottom:1px solid var(--line-soft)}
.biz-head{display:grid;grid-template-columns:120px 1fr;gap:clamp(18px,3vw,40px);align-items:start;margin-bottom:38px}
.biz-no{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--gold-deep);padding-top:10px}
.biz-title{font-family:var(--serif);font-size:clamp(26px,3.2vw,42px);line-height:1.25}
.biz-title small{display:block;font-family:var(--sans);font-size:13px;color:var(--faint);letter-spacing:.18em;margin-top:12px}
.biz-body{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(30px,5vw,72px)}
.biz-copy p{color:var(--dim);font-size:15px;line-height:2;margin-bottom:18px}
.biz-copy p b{color:var(--text);font-weight:400}
.biz-copy .note{font-size:12.5px;color:var(--faint);line-height:1.9;border-left:1px solid var(--gold-deep);padding-left:14px;margin-top:24px}
.tiers{width:100%;border-collapse:collapse;font-size:14px}
.tiers th{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--faint);
  text-align:left;font-weight:400;padding:0 0 12px;border-bottom:1px solid var(--line)}
.tiers td{padding:16px 0;border-bottom:1px solid var(--line-soft);vertical-align:top;line-height:1.7}
.tiers td:first-child{color:var(--text);white-space:nowrap;padding-right:16px}
.tiers td:last-child{font-family:var(--mono);color:var(--gold);text-align:right;white-space:nowrap;font-size:12.5px}
.tiers tr.hi td{background:linear-gradient(90deg,rgba(201,164,92,.06),transparent)}
.tiers .sub{display:block;font-size:12px;color:var(--faint);margin-top:4px;white-space:normal}

/* ── 两栏对照（走出去 / 被看见） ── */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-soft);border-block:1px solid var(--line-soft)}
.duo > div{background:var(--bg);padding:clamp(28px,4vw,54px)}
.duo .en{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold-deep);margin-bottom:18px}
.duo h3{font-size:clamp(24px,2.8vw,38px);margin-bottom:14px}
.duo p{font-size:14.5px;color:var(--dim);line-height:2;max-width:22em}
.duo p.en2{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--faint);margin-top:14px;line-height:1.9}

/* ── Why us ── */
.why{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-soft);border-block:1px solid var(--line-soft);margin-top:38px}
.why > div{background:var(--bg);padding:clamp(22px,2.6vw,32px) clamp(18px,2.4vw,30px)}
.why .wk{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;color:var(--gold-deep);margin-bottom:10px}
.why b{display:block;font-weight:400;font-size:16.5px;margin-bottom:8px}
.why b i{font-style:normal;color:var(--faint);font-size:11px;letter-spacing:.08em;margin-left:8px;font-family:var(--mono)}
.why p{font-size:13px;color:var(--dim);line-height:1.9}
.why .promise{grid-column:1/-1;background:rgba(201,164,92,.045);border-left:2px solid var(--gold)}
.why .promise b{color:var(--gold-bright)}

/* ── 概念网格 ── */
.five,.six{display:grid;gap:1px;background:var(--line-soft);border-block:1px solid var(--line-soft)}
.five{grid-template-columns:repeat(5,1fr)}
.six{grid-template-columns:repeat(6,1fr)}
.five > div,.six > div{background:var(--bg);padding:clamp(20px,2.4vw,30px) clamp(14px,1.8vw,22px)}
.five .fi,.six .fi{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--gold-deep);margin-bottom:12px}
.five b,.six b{display:block;font-weight:400;font-family:var(--serif);font-size:clamp(17px,1.7vw,21px);margin-bottom:8px}
.five p,.six p{font-size:11.5px;color:var(--dim);line-height:1.8}

/* ── 人物与对照表 ── */
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border-block:1px solid var(--line-soft)}
.person{background:var(--bg);padding:18px clamp(14px,2vw,22px)}
.person b{display:block;font-weight:400;font-size:15px;margin-bottom:5px}
.person span{display:block;font-size:11.5px;color:var(--dim);line-height:1.7}
.person em{display:block;font-style:normal;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--gold-deep);margin-top:7px}

.compare{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:10px}
.compare th{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--faint);font-weight:400;
  text-align:left;padding:0 0 12px;border-bottom:1px solid var(--line)}
.compare td{padding:15px 14px 15px 0;border-bottom:1px solid var(--line-soft);color:var(--dim);line-height:1.8;vertical-align:top}
.compare td:first-child{color:var(--faint);white-space:nowrap;width:110px}
.compare td.us{color:var(--text)}
.compare td.us b{color:var(--gold);font-weight:400}

/* ── 案例 ── */
.cases{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-soft);border-block:1px solid var(--line-soft)}
.case{background:var(--bg);padding:clamp(28px,3.4vw,46px);transition:background .35s}
.case:hover{background:#080807}
.case .tag{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold-deep);margin-bottom:18px;display:flex;justify-content:space-between}
.case h3{font-size:clamp(19px,1.9vw,25px);margin-bottom:20px}
.case .pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}
.case .pair div{border-top:1px solid var(--line-soft);padding-top:12px}
.case .pair span{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;color:var(--faint);margin-bottom:6px}
.case .pair p{font-size:13px;line-height:1.85;color:var(--dim)}
.case .pair .now p{color:var(--text)}
.case .did{font-size:12.5px;line-height:1.9;color:#a8a49a}
.case .did b{color:var(--gold);font-weight:400}

/* ── 两本书 ── */
.books{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,32px)}
.book{position:relative;border:1px solid var(--line);padding:clamp(30px,3.6vw,50px);
  display:flex;flex-direction:column;min-height:340px;transition:border-color .35s,background .35s}
.book:hover{border-color:rgba(201,164,92,.42);background:rgba(201,164,92,.035)}
.book .bk{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--gold-deep);margin-bottom:24px}
.book h3{font-size:clamp(30px,3.4vw,46px);line-height:1.15;margin-bottom:14px}
.book .sub{color:var(--gold);font-size:14px;letter-spacing:.06em;margin-bottom:22px}
.book p{color:var(--dim);font-size:14px;line-height:1.95;margin-bottom:26px}
.book .go{margin-top:auto;font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--gold)}
.book .go::after{content:" →";transition:margin-left .3s}
.book:hover .go::after{margin-left:6px}
.book .role{position:absolute;top:0;right:0;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
  color:var(--faint);background:var(--bg);border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 12px}

/* ── 团队 ── */
.team{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(36px,6vw,90px);align-items:start}
.team p{color:var(--dim);font-size:15px;line-height:2;margin-bottom:16px}
.team p b{color:var(--text);font-weight:400}
.facts{border-top:1px solid var(--line-soft)}
.fact{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line-soft);align-items:baseline}
.fact span{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--faint)}
.fact b{font-weight:400;font-size:15px}
.fact b em{font-style:normal;color:var(--gold)}

/* ── 联系 ── */
.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,5vw,80px);align-items:end}
.contact .big{font-family:var(--serif);font-size:clamp(30px,4.6vw,62px);line-height:1.3}
.contact .big em{font-style:normal;color:var(--gold)}
.contact-list{border-top:1px solid var(--line)}
.contact-list a,.contact-list div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;
  border-bottom:1px solid var(--line-soft);font-size:14px;color:var(--dim)}
.contact-list a:hover{color:var(--gold)}
.contact-list span{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--faint)}

/* ── 书页 ── */
.book-hero{position:relative;z-index:2;min-height:88vh;display:flex;flex-direction:column;justify-content:center;padding-block:130px 110px}
.book-hero .meta{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.18em;color:var(--faint);margin-bottom:30px}
.book-hero h1{font-size:clamp(44px,9vw,130px);margin-bottom:22px}
.book-hero .sub{font-family:var(--serif);font-size:clamp(19px,2.6vw,34px);color:var(--gold);margin-bottom:34px}
.book-hero .role{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--faint);
  border:1px solid var(--line);padding:8px 14px;display:inline-block;align-self:flex-start;margin-bottom:34px}
.book-hero p{max-width:32em;color:var(--dim);font-size:16px;line-height:2.05}

.thesis{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border-block:1px solid var(--line-soft)}
.thesis > div{background:var(--bg);padding:clamp(26px,3vw,42px)}
.thesis .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold-deep);margin-bottom:16px}
.thesis h4{font-family:var(--serif);font-weight:400;font-size:clamp(19px,2vw,25px);line-height:1.5;margin-bottom:12px}
.thesis p{font-size:13px;color:var(--dim);line-height:1.9}

.parts{border-top:1px solid var(--line-soft)}
.part{display:grid;grid-template-columns:150px 1fr;gap:clamp(18px,3vw,40px);padding:clamp(30px,3.6vw,48px) 0;border-bottom:1px solid var(--line-soft)}
.part .pn{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold-deep);padding-top:8px}
.part h3{margin-bottom:10px}
.part .ch{font-size:13.5px;color:var(--dim);line-height:2}
.part .ch span{color:var(--faint);margin-inline:8px}

.quote{border-left:2px solid var(--gold);padding:8px 0 8px clamp(20px,3vw,36px);max-width:24em}
.quote p{font-family:var(--serif);font-size:clamp(24px,3.4vw,44px);line-height:1.55;color:var(--text)}
.quote p em{font-style:normal;color:var(--gold)}
.quote cite{display:block;margin-top:20px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--faint);font-style:normal}

.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border-block:1px solid var(--line-soft)}
.tool{background:var(--bg);padding:clamp(26px,3vw,40px)}
.tool .tn{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--gold);margin-bottom:14px}
.tool h4{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.5;margin-bottom:10px}
.tool p{font-size:12.5px;color:var(--dim);line-height:1.9}

.toc{columns:2;column-gap:clamp(30px,5vw,70px);font-size:13.5px;color:var(--dim);line-height:2.1}
.toc div{break-inside:avoid;padding:6px 0;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;gap:12px}
.toc span{font-family:var(--mono);font-size:10px;color:var(--faint)}

/* ── 密码门 ── */
.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:120px var(--pad) 80px;position:relative;z-index:2}
.gate-box{width:100%;max-width:430px;border:1px solid var(--line);padding:clamp(32px,5vw,52px);background:rgba(5,5,5,.55);backdrop-filter:blur(10px)}
.gate-box .eyebrow{margin-bottom:26px}
.gate-box h1{font-size:clamp(30px,4vw,44px);margin-bottom:16px;max-width:none}
.gate-box p{font-size:13.5px;color:var(--dim);line-height:1.9;margin-bottom:30px}
.gate-box input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);
  color:var(--text);font-family:var(--mono);font-size:15px;letter-spacing:.22em;padding:12px 0;outline:none;transition:border-color .3s}
.gate-box input:focus{border-color:var(--gold)}
.gate-box button{margin-top:28px;width:100%;background:var(--gold);border:0;color:#0a0a0a;
  font-family:var(--sans);font-size:13px;letter-spacing:.1em;padding:15px;cursor:pointer;border-radius:2px;transition:background .3s}
.gate-box button:hover{background:var(--gold-bright)}
.gate-msg{margin-top:16px;font-size:12px;color:#c0705c;min-height:18px;font-family:var(--mono);letter-spacing:.06em}
.gate-note{margin-top:26px;font-size:11px;color:var(--faint);line-height:1.8;border-top:1px solid var(--line-soft);padding-top:18px}

/* ── 内部页 ── */
.inner-nav{position:sticky;top:0;z-index:30;background:rgba(5,5,5,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft)}
.inner-nav .in{max-width:var(--maxw);margin:0 auto;padding:14px var(--pad);display:flex;gap:26px;align-items:center;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--faint);overflow-x:auto}
.inner-nav a:hover{color:var(--gold)}
.inner-nav .tag{margin-left:auto;color:var(--gold);white-space:nowrap}
.inner-hero{padding-block:clamp(80px,9vw,130px) clamp(40px,5vw,64px);position:relative;z-index:2}
.inner-hero h1{font-size:clamp(34px,5.4vw,72px);max-width:16em}
.inner-hero p{max-width:36em;color:var(--dim);font-size:15px;line-height:2;margin-top:24px}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line-soft);margin-top:40px}
.kpi{padding:26px 22px;border-left:1px solid var(--line-soft)}
.kpi:first-child{border-left:0;padding-left:0}
.kpi b{display:block;font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.1}
.kpi span{display:block;margin-top:10px;font-size:11.5px;color:var(--faint);letter-spacing:.04em}

.case-full{border-top:1px solid var(--line-soft);padding-block:clamp(34px,4vw,56px)}
.case-full .cf-head{display:grid;grid-template-columns:90px 1fr auto;gap:20px;align-items:baseline;margin-bottom:22px}
.case-full .cf-no{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold-deep)}
.case-full h3{font-size:clamp(20px,2.2vw,28px)}
.case-full .auth{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--faint);white-space:nowrap}
.case-full .cf-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:clamp(18px,3vw,38px)}
.case-full .cf-grid div{border-top:1px solid var(--line-soft);padding-top:14px}
.case-full .cf-grid span{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--faint);margin-bottom:8px}
.case-full .cf-grid p{font-size:13px;color:var(--dim);line-height:1.95}
.case-full .cf-grid .now p{color:var(--text)}
.case-full .cf-grid .ev p{color:var(--gold-deep)}

/* ── 收尾 / 页脚 ── */
.end{text-align:center;padding-block:clamp(130px,16vw,220px)}
.end h2{font-size:clamp(32px,4.8vw,64px);margin-bottom:44px}
footer{border-top:1px solid var(--line-soft);padding-block:36px 52px;display:flex;justify-content:space-between;
  gap:20px;flex-wrap:wrap;font-size:11.5px;color:var(--faint);letter-spacing:.06em}
footer a:hover{color:var(--gold)}

/* 滚动显影 */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.7,.3,1),transform 1s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}

@media(max-width:1000px){
  .biz-body,.team,.contact{grid-template-columns:1fr}
  .cases,.books{grid-template-columns:1fr}
  .thesis,.tools{grid-template-columns:1fr}
  .kpi-row{grid-template-columns:1fr 1fr}
  .kpi:nth-child(3){border-left:0;padding-left:0}
}
@media(max-width:900px){
  .links{display:none}
  .stats{grid-template-columns:1fr 1fr}
  .board{grid-template-columns:44px 1fr;gap:12px 18px}
  .board .ds{grid-column:2}
  .board .pr{grid-column:2}
  .board .ar{display:none}
  h1{max-width:none}
  #scrim{background:linear-gradient(180deg,rgba(5,5,5,.90) 0%,rgba(5,5,5,.84) 20%,rgba(5,5,5,.72) 38%,
    rgba(5,5,5,.68) 56%,rgba(5,5,5,.52) 74%,rgba(5,5,5,.64) 100%)}
  .manifesto{max-width:none}
  .eyebrow{letter-spacing:.22em;font-size:10px}
  .manifesto p,.hero p{max-width:none}
  #flash{background:radial-gradient(circle at 50% 84%,rgba(255,250,240,.95) 0%,rgba(232,205,143,.55) 16%,rgba(201,164,92,.12) 34%,transparent 52%)}
  .biz-head{grid-template-columns:1fr;gap:10px}
  .biz-no{padding-top:0}
  .part{grid-template-columns:1fr;gap:10px}
  .toc{columns:1}
  .case-full .cf-grid{grid-template-columns:1fr}
  .case-full .cf-head{grid-template-columns:60px 1fr;gap:10px}
  .case-full .auth{grid-column:2}
  .contact{align-items:start}
}
@media(max-width:600px){
  .stats{grid-template-columns:1fr}
  .stat{border-left:0;padding-inline:0}
  .hero{padding-top:110px}
  .scroll-cue{bottom:26px}
  .kpi-row{grid-template-columns:1fr}
  .kpi{border-left:0;padding-left:0}
  .case .pair{grid-template-columns:1fr}
  .gate-box{padding:28px 22px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
  #gl,#scrim{display:none}
  #gl-fallback{display:block}
}

/* ── 概念页（选择革命 / 关键一步）
   这两页的粒子图形在右半屏，遮罩只压左栏，不要盖到图形上 ── */
#gl{transition:opacity .5s ease}
body.concept #scrim{
  background:linear-gradient(90deg,
    rgba(5,5,5,.97) 0%,rgba(5,5,5,.94) 20%,rgba(5,5,5,.80) 31%,
    rgba(5,5,5,.42) 41%,rgba(5,5,5,.14) 51%,rgba(5,5,5,.04) 58%,transparent 66%);
}
@media(max-width:900px){
  body.concept #scrim{
    background:linear-gradient(180deg,
      rgba(5,5,5,.95) 0%,rgba(5,5,5,.92) 38%,rgba(5,5,5,.70) 54%,
      rgba(5,5,5,.32) 70%,rgba(5,5,5,.10) 86%,transparent 100%);
  }
}

/* ── 首页 · 五条线（只列名，不展开） ── */
.lines{border-top:1px solid var(--line-soft)}
.line{display:grid;grid-template-columns:56px minmax(180px,.95fr) 1.5fr;gap:clamp(14px,3vw,44px);
  align-items:baseline;padding:clamp(20px,2.4vw,30px) 0;border-bottom:1px solid var(--line-soft)}
.line .ln{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold-deep)}
.line b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(20px,2.1vw,27px);
  line-height:1.3;letter-spacing:.02em}
.line i{display:block;font-style:normal;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.16em;color:var(--faint);margin-top:7px}
.line em{font-style:normal;font-size:13.5px;color:var(--dim);line-height:1.95}
@media(max-width:760px){
  .line{grid-template-columns:40px 1fr;gap:8px 14px}
  .line em{grid-column:2}
}

/* ══════════════════════════════════════════════════════════════
   v2 · VOID 方向（对齐参照网站 Dala 的气质，保留黑金）
   大字距排版 · 纯黑虚空 · 去卡片化 · 留白即结构
   ══════════════════════════════════════════════════════════════ */

/* ── 字阶：雕塑感大标题（sans、收紧、超大） ── */
h1{font-family:var(--sans);font-weight:500;font-size:clamp(52px,8.6vw,110px);
  line-height:1.05;letter-spacing:-.02em}
h2{font-family:var(--sans);font-weight:500;font-size:clamp(34px,5vw,66px);
  line-height:1.12;letter-spacing:-.015em}
.hero p{font-size:16.5px;line-height:2.05;max-width:36em}

/* 业务主张句 */
.stance{font-family:var(--sans);font-weight:500;font-size:clamp(26px,3.1vw,42px);
  line-height:1.28;letter-spacing:-.01em;margin-bottom:26px}
.stance em{font-style:normal;color:var(--gold-bright)}
.stance span{display:block;font-family:var(--mono);font-weight:400;font-size:10px;
  letter-spacing:.2em;color:var(--faint);margin-top:16px}

/* 业务页标题 */
.biz-title{font-family:var(--sans);font-weight:500;letter-spacing:-.01em;
  font-size:clamp(28px,3.6vw,48px);line-height:1.15}
.biz-title small{margin-top:14px}
.biz-head{margin-bottom:clamp(34px,4vw,56px)}
.biz{border:0;padding-block:clamp(76px,9.5vw,136px)}
.biz-copy p{font-size:15.5px;line-height:2.05}

/* ── 去卡片化：留白与细分隔线替代格子与面板 ── */
.sec{padding-block:clamp(80px,10vw,150px);border:0}
.duo{background:none;border:0;gap:clamp(48px,7vw,110px)}
.duo > div{background:none;padding:0;border-top:1px solid var(--line);padding-top:30px}
.duo h3{font-family:var(--sans);font-weight:500;font-size:clamp(26px,3vw,40px)}
.duo p{font-size:15px;line-height:2.05}

.why{background:none;border:0;gap:clamp(36px,5vw,72px) clamp(28px,4vw,60px)}
.why > div{background:none;padding:0;border-top:1px solid var(--line);padding-top:24px}
.why b{font-size:17.5px;font-family:var(--sans);font-weight:500}
.why p{font-size:13.5px;line-height:2}
.why .promise{background:none;border:0;border-top:2px solid var(--gold);
  padding-top:24px;margin-top:6px}

/* 案例：去掉面板，改成大字号档案条目 */
.cases{gap:0}
.case{background:none;border:0;border-top:1px solid var(--line);
  padding:clamp(36px,4.5vw,60px) 0}
.case:last-child{border-bottom:1px solid var(--line)}
.case .tag span{border:0;padding:0;color:var(--gold-deep);letter-spacing:.14em}
.case h3{font-family:var(--sans);font-weight:500;font-size:clamp(21px,2.3vw,30px);
  line-height:1.35;letter-spacing:0}
.case .pair{gap:clamp(28px,4vw,56px)}
.case .pair div{background:none;border:0;padding:0;border-top:1px solid var(--line-soft);padding-top:16px}
.case .pair span{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;color:var(--gold-deep)}
.case .pair p{font-size:13.5px;line-height:2}
.case .did{border-left:0;padding-left:0;font-size:13.5px;line-height:2}

/* 数字事实：无边框大数字 */
.facts{gap:clamp(28px,4vw,52px)}
.fact{background:none;border:0;border-top:1px solid var(--line);padding:22px 0 0}
.fact b{font-family:var(--sans);font-weight:500;font-size:clamp(19px,1.9vw,25px);line-height:1.4}
.fact b em{font-style:normal;color:var(--gold)}

/* 两套判断卡：浮空文本块 */
.books{gap:clamp(48px,7vw,110px)}
.book{background:none;border:0;border-top:1px solid var(--line);padding:34px 0 0}
.book h3{font-family:var(--sans);font-weight:500;font-size:clamp(26px,3vw,40px)}
.book .bk{color:var(--gold-deep)}
.book .go{color:var(--gold)}
.book .role{background:none;border:0;border-left:2px solid var(--gold);padding:2px 0 2px 10px}

/* 概念页（选择革命 / 关键一步）同步 */
.book-hero h1{font-family:var(--sans);font-weight:500;font-size:clamp(48px,8vw,102px);
  line-height:1.06;letter-spacing:-.02em}
.book-hero .sub{font-size:clamp(17px,1.8vw,22px)}
.quote p{font-family:var(--sans);font-weight:500;font-size:clamp(28px,4vw,52px);
  line-height:1.3;letter-spacing:-.01em}
.parts{gap:clamp(40px,6vw,80px)}
.part{background:none;border:0;border-top:1px solid var(--line);padding-top:28px}
.part h3{font-family:var(--sans);font-weight:500;font-size:clamp(20px,2.1vw,27px)}
.five,.six{background:none;border:0;gap:clamp(28px,4vw,48px)}
.five > div,.six > div{background:none;padding:0;border-top:1px solid var(--line);padding-top:20px}
.five b,.six b{font-family:var(--sans);font-weight:500;font-size:clamp(16px,1.6vw,20px)}
.tools{background:none;border:0}
.tool{background:none;border:0;border-top:1px solid var(--line);padding-top:20px}
.toc{background:none;border:0}
.toc div{background:none;border:0;border-top:1px solid var(--line-soft);padding:14px 0}

/* 团队与联系 */
.team p{font-size:15px;line-height:2.1}
.contact .big{font-family:var(--sans);font-weight:500;font-size:clamp(36px,5.6vw,74px);
  line-height:1.14;letter-spacing:-.015em}

/* 按钮：全站只有一个实心金丸，其余为幽灵文字链 */
.btn{background:none;border:0;color:var(--dim);padding:0;
  font-size:14px;letter-spacing:.04em;text-decoration:none}
.btn:hover{color:var(--gold-bright);box-shadow:none;transform:none}
.btn.solid{display:inline-block;background:var(--gold);color:#0a0a0a;
  border-radius:999px;padding:16px 34px;font-size:14px;letter-spacing:.06em}
.btn.solid:hover{background:var(--gold-bright);color:#0a0a0a}
.btn.sm{border:1px solid var(--line);border-radius:999px;color:var(--text);
  padding:9px 20px;font-size:12px}
.btn.sm:hover{border-color:var(--gold);color:var(--gold-bright)}

/* v2 修正：案例单列、彻底去底；主张句栏加宽防断行 */
.cases{grid-template-columns:1fr;background:none;border:0;gap:0}
.biz-body{grid-template-columns:1.12fr 1fr}
.stance{font-size:clamp(24px,2.8vw,38px)}

/* ── 移动端导航（v2 补：≤900px 汉堡 + 全屏展开层） ── */
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:10px 0 10px 12px;position:relative;z-index:3}
.nav-toggle i{display:block;width:22px;height:1.5px;background:var(--text);margin:5px 0;
  transition:transform .3s ease,opacity .3s ease}
.nav.open .nav-toggle i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav.open .nav-toggle i:nth-child(2){opacity:0}
.nav.open .nav-toggle i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(max-width:900px){
  .nav-toggle{display:block}
  .nav-in{gap:18px}
  .nav-in > .btn.sm{margin-left:auto;position:relative;z-index:3}
  .logo{position:relative;z-index:3}
  .links{
    display:flex;position:fixed;inset:0;z-index:2;
    flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;
    padding:96px var(--pad) 48px;
    background:rgba(5,5,5,.97);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
    font-size:26px;letter-spacing:.02em;color:var(--text);
    opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s;
  }
  .nav.open .links{opacity:1;visibility:visible}
  .links a{padding:14px 0;min-height:44px;display:flex;align-items:center}
  .links a.on::after{bottom:6px;right:auto;width:34px}
}

/* ══ v3 · 对齐参照排版体系 ══════════════════════════════════
   规则来源：参照网站 DESIGN.md（Dala 体系）
   · 层级靠字号不靠字重：标题一律 weight 400，禁止 500/600
   · 42px 以上字距 -0.04em；24px 级 -0.02em；正文不再加正字距
   · 正文 weight 200 轻体，字号提到 18px——轻，是这套体系的签名
   · 标签回到无衬线，字距从 .2~.34em 收到 .06~.1em（mono 退场）
   · 组件无渐变：渐变只留给 logo 与粒子
   ──────────────────────────────────────────────────────── */

/* 标题：weight 400 + 负字距雕塑感 */
h1,.book-hero h1{font-weight:400;letter-spacing:-.04em}
h2,.contact .big{font-weight:400;letter-spacing:-.038em}
.stance,.biz-title,.duo h3,.book h3,.quote p{font-weight:400;letter-spacing:-.032em}
.case h3,.part h3,.five b,.six b,.why b,.fact b,.book-hero .sub{font-weight:400;letter-spacing:-.02em}
h1.small{letter-spacing:-.04em}

/* 正文：轻体 18px */
.hero p,.lead{font-size:18px;line-height:1.9;font-weight:200;letter-spacing:0}
.biz-copy p,.team p{font-size:16.5px;line-height:1.95;font-weight:200}
.duo p{font-size:15.5px;line-height:1.9;font-weight:200}
.why p,.case .pair p,.case .did{font-size:14.5px;line-height:1.9;font-weight:200}
.book-hero p{font-size:17px;line-height:1.9;font-weight:200}
.manifesto p,.quote + .lead{font-weight:200}

/* 标签：mono 退场，无衬线 + 收紧字距，最小 12px */
.eyebrow,.duo .en,.why .wk,.stance span,.case .tag,.case .pair span,
.stat .t,.board .no,.biz-no,.biz-title small,.book .bk,.book .role,
.fact span,.contact-list span,.book-hero .meta,.book-hero .role,
.five .fi,.six .fi,.person em,.compare th,.tiers th,.tiers td:last-child,
.why b i,.scroll-cue,.tagline i{
  font-family:var(--sans);font-size:12px;letter-spacing:.08em;font-weight:500}
.eyebrow{letter-spacing:.12em}
.stance span,.duo .en,.book .bk{letter-spacing:.14em}
.case .pair span,.why .wk,.five .fi,.six .fi{letter-spacing:.1em}
.why b i{font-size:11.5px;color:var(--faint);margin-left:10px}
.board .pr{font-family:var(--sans);letter-spacing:.04em}

/* 按钮字距同源收紧 */
.btn.solid{letter-spacing:.08em;font-weight:500}
.btn{letter-spacing:.03em}

/* 组件去渐变：渐变只留给 logo 与粒子 */
.book .role{border-left:2px solid var(--gold);background:none}
.btn.solid:hover{background:var(--gold-bright)}

/* v3 补漏：概念页容器去框、sub 去衬线 */
.book-hero .role{font-family:var(--sans);border:0;border-left:2px solid var(--gold);
  padding:2px 0 2px 12px;display:inline-block;letter-spacing:.1em;font-size:12px}
.book-hero .sub{font-family:var(--sans);letter-spacing:-.02em}
.thesis{background:none;border:0;gap:clamp(36px,5vw,72px)}
.thesis > div{background:none;padding:0;border-top:1px solid var(--line);padding-top:26px}
.thesis h4{font-family:var(--sans);font-weight:400;letter-spacing:-.02em}
.thesis p{font-size:15px;line-height:1.9;font-weight:200}
.quote{border:0;background:none}
.quote cite{font-family:var(--sans);letter-spacing:.08em;font-size:12px}
.toc div{border-top:1px solid var(--line-soft);background:none}
.tools .tool{border-top:1px solid var(--line);background:none}
.tool h4{font-family:var(--sans);font-weight:400;letter-spacing:-.015em}
.tool p{font-size:14.5px;line-height:1.9;font-weight:200}

/* ══ v4 · 极简顶栏 + 全屏菜单 + 指针光晕 ══════════════════════
   顶栏只留 logo + 一颗粒子地球按钮；点开是全屏暗场菜单
   ──────────────────────────────────────────────────────── */

/* 顶栏：链接行与汉堡全部退场，只留 logo 与地球按钮 */
.nav-in{gap:0}
.nav .links{display:none}
.nav .btn.sm{display:none}
.nav-toggle{display:none !important}

.logo{position:relative;z-index:3}
.logo b{font-family:var(--sans);letter-spacing:-.01em}

/* 粒子地球按钮 */
.orb{
  position:relative;z-index:3;margin-left:auto;
  width:52px;height:52px;padding:0;border:0;background:none;cursor:pointer;
  display:grid;place-items:center;border-radius:50%;
  -webkit-tap-highlight-color:transparent;
}
.orb canvas{display:block;width:46px;height:46px;pointer-events:none;
  filter:drop-shadow(0 0 12px rgba(201,164,92,.35))}
.orb::before{ /* 静息光环 */
  content:"";position:absolute;inset:2px;border-radius:50%;
  border:1px solid rgba(201,164,92,.32);
  transition:transform .5s cubic-bezier(.2,.7,.3,1),border-color .4s,opacity .4s}
.orb::after{ /* 呼吸光晕 */
  content:"";position:absolute;inset:-6px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,164,92,.18),transparent 68%);
  opacity:.7;transition:opacity .4s,transform .5s;pointer-events:none}
.orb:hover::before{transform:scale(1.12);border-color:rgba(201,164,92,.7)}
.orb:hover::after{opacity:1;transform:scale(1.14)}
.orb[aria-expanded="true"]::before{transform:scale(1.22);border-color:rgba(201,164,92,.85)}
.orb[aria-expanded="true"]::after{opacity:1;transform:scale(1.3)}
.orb:focus-visible{outline:1px solid var(--gold);outline-offset:4px}

/* 全屏菜单 */
.nav-panel{
  position:fixed;inset:0;z-index:35;
  background:rgba(4,4,5,.94);
  backdrop-filter:blur(26px) saturate(1.1);-webkit-backdrop-filter:blur(26px) saturate(1.1);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .5s cubic-bezier(.2,.7,.3,1),visibility .5s;
}
.nav-panel.open{opacity:1;visibility:visible;pointer-events:auto}
body.menu-open{overflow:hidden}

.nav-panel .np-in{
  max-width:var(--maxw);margin:0 auto;height:100%;
  padding:clamp(96px,14vh,150px) var(--pad) 48px;
  display:flex;flex-direction:column;justify-content:center;gap:0;
}
.np-link{
  display:flex;align-items:baseline;gap:clamp(16px,2.6vw,34px);
  padding:clamp(13px,1.9vh,22px) 0;
  border-top:1px solid var(--line-soft);
  color:var(--text);text-decoration:none;
  opacity:0;transform:translateY(26px);
  transition:opacity .55s cubic-bezier(.2,.7,.3,1),transform .55s cubic-bezier(.2,.7,.3,1),
             border-color .4s,padding-left .45s cubic-bezier(.2,.7,.3,1);
}
.np-link:last-child{border-bottom:1px solid var(--line-soft)}
.nav-panel.open .np-link{opacity:1;transform:none}
/* 错峰入场 */
.nav-panel.open .np-link:nth-child(1){transition-delay:.08s}
.nav-panel.open .np-link:nth-child(2){transition-delay:.15s}
.nav-panel.open .np-link:nth-child(3){transition-delay:.22s}
.nav-panel.open .np-link:nth-child(4){transition-delay:.29s}
.nav-panel.open .np-link:nth-child(5){transition-delay:.36s}
.nav-panel.open .np-link:nth-child(6){transition-delay:.43s}

.np-link .no{
  font-family:var(--sans);font-size:11px;letter-spacing:.14em;
  color:var(--gold-deep);min-width:2.2em;transition:color .35s}
.np-link .tx{
  font-family:var(--sans);font-weight:400;letter-spacing:-.035em;
  font-size:clamp(21px,2.9vw,34px);line-height:1.18;
  transition:color .35s,letter-spacing .45s}
.np-link .en{
  margin-left:auto;font-family:var(--sans);font-size:11px;
  letter-spacing:.16em;color:var(--faint);transition:color .35s,transform .45s}
.np-link:hover{border-color:rgba(201,164,92,.45);padding-left:clamp(10px,1.6vw,22px)}
.np-link:hover .tx{color:var(--gold-bright);letter-spacing:-.028em}
.np-link:hover .no{color:var(--gold)}
.np-link:hover .en{color:var(--dim);transform:translateX(-6px)}
.np-link.on .tx{color:var(--gold)}
.np-link.on .no{color:var(--gold)}

.np-foot{
  margin-top:clamp(28px,5vh,54px);display:flex;flex-wrap:wrap;
  gap:14px 30px;align-items:center;
  font-family:var(--sans);font-size:11px;letter-spacing:.14em;color:var(--faint);
  opacity:0;transform:translateY(16px);
  transition:opacity .5s .5s,transform .5s .5s}
.nav-panel.open .np-foot{opacity:1;transform:none}
.np-foot a{color:var(--dim);text-decoration:none;transition:color .3s}
.np-foot a:hover{color:var(--gold-bright)}
.np-foot .dot{width:3px;height:3px;border-radius:50%;background:var(--gold-deep)}

/* 指针光晕：整页背景跟随鼠标的一层柔光 */
#pointer-glow{
  position:fixed;top:0;left:0;width:520px;height:520px;border-radius:50%;
  pointer-events:none;z-index:1;opacity:0;
  background:radial-gradient(circle,rgba(201,164,92,.115) 0%,rgba(201,164,92,.05) 38%,transparent 68%);
  transition:opacity .7s ease;will-change:transform;
}
#pointer-glow.on{opacity:1}

@media(max-width:760px){
  .np-link .en{display:none}
  .orb{width:46px;height:46px}
  .orb canvas{width:40px;height:40px}
}
@media(prefers-reduced-motion:reduce){
  .np-link{opacity:1;transform:none}
  .np-foot{opacity:1;transform:none}
}

/* ══ v5 · 尾部大邮件 + 菜单字号收敛 + 入场聚合辅助 ══════════════
   借鉴参照站页脚：收尾用一个大号联系动作扛住整屏，
   邮箱本身就是版面主角，不再是列表里的一行小字。
   ──────────────────────────────────────────────────────── */

.mail-big{margin-top:clamp(56px,8vw,104px);text-align:center}
.mail-big .eyebrow{margin-bottom:clamp(18px,2.6vw,30px)}
.mail-big > a{
  display:inline-block;
  font-family:var(--sans);font-weight:400;
  font-size:clamp(26px,4.6vw,62px);
  letter-spacing:-.038em;line-height:1.18;
  color:var(--text);text-decoration:none;
  position:relative;padding-bottom:.12em;
}
.mail-big > a em{font-style:normal;color:var(--gold);transition:color .4s}
.mail-big > a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:scaleX(0);transform-origin:center;
  transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.mail-big > a:hover::after{transform:scaleX(1)}
.mail-big > a:hover em{color:var(--gold-bright)}
.mail-big > a:hover{color:var(--gold-bright)}
.mail-sub{
  margin-top:clamp(18px,2.4vw,28px);
  font-family:var(--sans);font-size:12px;letter-spacing:.14em;
  color:var(--faint);
}
.mail-sub::before{
  content:"";display:block;width:36px;height:1px;
  background:var(--gold-deep);margin:0 auto clamp(14px,2vw,20px);
}

/* 页脚跟着收窄一点，让大邮件区独占收尾的呼吸 */
footer.wrap{
  margin-top:clamp(48px,7vw,88px);
  padding-top:26px;border-top:1px solid var(--line-soft);
}

@media(max-width:640px){
  .mail-big > a{word-break:break-all}
}

/* ══ v6 · 品牌标识 + 全站对齐基线 ════════════════════════════
   · logo 用品牌金标（与内部层同源），三角形+文字标退场
   · 标签 / 标题 / 正文同一条左基线：业务头去掉 120px 缩进
   · 网格模块统一「发丝线在上、无填充、无横向内缩」，
     列首文字与版心严格对齐，不再各自留白
   ──────────────────────────────────────────────────────── */

/* logo */
.logo{gap:0}
.logo i,.logo b,.logo span{display:none}
.logo img{height:38px;width:auto;display:block;filter:brightness(1.06)}

/* 业务头：编号退成行内标签，标题与正文共用左基线 */
.biz-head{display:block;margin-bottom:34px}
.biz-no{padding-top:0;margin-bottom:14px}
.biz-title small{margin-top:10px}

/* 网格模块统一：发丝线在上、无填充、列首对齐 */
.duo,.why,.five,.six,.people,.cases,.books{
  background:none;border:0;gap:clamp(28px,3.4vw,52px) clamp(30px,4vw,64px)}
.duo > div,.why > div,.five > div,.six > div,.person,.case,.book{
  background:none;padding:28px 0 0;border-top:1px solid var(--line-soft)}
.why{margin-top:0}
.why .promise{
  border-top:1px solid var(--line);border-left:2px solid var(--gold);
  background:rgba(201,164,92,.045);padding:22px 0 8px 20px}
.why b i{display:block;margin:6px 0 0;font-style:normal}

/* 案例/书页：悬停不再垫底色 */
.case:hover,.book:hover{background:none}
.book{border:0;border-top:1px solid var(--line)}
.book:hover{border-top-color:rgba(201,164,92,.42)}
.book .role{border:0;border-left:1px solid var(--line);border-bottom:0}

/* 人物卡：头像沿列首，说明不再内缩 */
.person .nm{padding-top:18px}

/* 概念网格：五列/六列列首与版心对齐 */
.five > div,.six > div{padding-left:0;padding-right:0}

@media(max-width:760px){
  .logo img{height:32px}
}

/* v6 补漏：引言金条外挂、分章行堆叠，全部回到同一条左基线 */
.quote{border-left:0;padding-left:0;position:relative}
.quote::before{content:"";position:absolute;left:calc(var(--pad) * -0.42);top:6px;bottom:6px;
  width:2px;background:var(--gold)}
.part{display:block;padding:clamp(28px,3.2vw,42px) 0}
.part .pn{padding-top:0;margin-bottom:12px}
.part h3{margin-bottom:10px}
@media(max-width:760px){.quote::before{left:-14px}}

/* v6 补漏：小屏折叠，两栏/多列网格在 900px 以下回单列 */
@media(max-width:900px){
  .duo,.why,.people{grid-template-columns:1fr}
  .why .promise{grid-column:auto}
}
@media(max-width:820px){
  .five,.six{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .five,.six{grid-template-columns:1fr}
}

/* ══ v7 · 首页重构：业务行 / 类型案例卡 / 团队三口径 ═════════════
   · 「五条线」独立整屏取消，收成 services 一节
   · 五个业务 = 五个等高行：左主栏（编号→标题→主张→一句→关键词→入口）
     + 右承诺栏，行间发丝线，全部列首对齐同一条左基线
   · 案例改「类型卡」：标签 + 处境标题 + 一段提炼，不再讲项目细节
   ──────────────────────────────────────────────────────── */

/* 业务行 */
.bizlist{border-top:1px solid var(--line-soft)}
.bizrow{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:clamp(28px,4vw,72px);
  padding:clamp(34px,4vw,52px) 0;
  border-bottom:1px solid var(--line-soft);
  align-items:start;
}
.bz-no{font-family:var(--sans);font-size:12px;letter-spacing:.08em;font-weight:500;
  color:var(--gold-deep);margin-bottom:14px}
.bz-title{font-family:var(--serif);font-weight:400;letter-spacing:-.032em;
  font-size:clamp(24px,2.6vw,34px);line-height:1.25;margin-bottom:12px}
.bz-stance{font-family:var(--serif);font-weight:400;letter-spacing:-.032em;
  font-size:clamp(18px,1.9vw,23px);line-height:1.5;color:var(--text);margin-bottom:14px}
.bz-stance em{font-style:normal;color:var(--gold)}
.bz-main p{color:var(--dim);font-size:15.5px;line-height:1.95;font-weight:200;max-width:34em}
.bz-keys{margin-top:16px;font-family:var(--sans);font-size:12px;letter-spacing:.1em;
  font-weight:500;color:var(--faint)}
.bz-go{display:inline-block;margin-top:18px;font-family:var(--sans);font-size:12.5px;
  letter-spacing:.08em;font-weight:500;color:var(--gold);transition:color .3s}
.bz-go:hover{color:var(--gold-bright)}
.bz-go::after{content:"";display:block;height:1px;width:0;background:var(--gold);
  transition:width .35s ease}
.bz-go:hover::after{width:100%}

/* 承诺栏：发丝线在上，与主栏同一基线节奏 */
.bz-promise{border-top:1px solid var(--line);padding-top:18px}
.bz-promise .wk{font-family:var(--sans);font-size:12px;letter-spacing:.1em;font-weight:500;
  color:var(--gold-deep);margin-bottom:10px}
.bz-promise b{display:block;font-weight:400;letter-spacing:-.02em;
  font-size:clamp(17px,1.7vw,20px);color:var(--gold-bright);margin-bottom:8px}
.bz-promise p{font-size:13.5px;line-height:1.9;color:var(--dim);font-weight:200}

.price-note{margin-top:clamp(28px,3vw,40px);font-family:var(--sans);font-size:12px;
  letter-spacing:.06em;color:var(--faint);line-height:1.9}
.price-note a{color:var(--gold-deep);transition:color .3s}
.price-note a:hover{color:var(--gold)}

/* 类型案例卡：回到 v6 的「发丝线在上、无填充、列首对齐」 */
.cases{grid-template-columns:1fr 1fr 1fr;
  gap:clamp(28px,3.2vw,52px) clamp(28px,3vw,56px)}
.case{padding-top:24px}
.case .tag{margin-bottom:16px}
.case h3{margin-bottom:14px}
.case p{font-size:14px;line-height:1.95;color:var(--dim);font-weight:200}
.case .pair,.case .did{display:none}   /* 旧的「接手前/现在/做了什么」结构退场 */

/* 团队：三个口径加粗起句 */
.team p b{color:var(--text);font-weight:400}
.team .fact span{width:auto}
.fact{grid-template-columns:110px 1fr}

@media(max-width:1000px){
  .bizrow{grid-template-columns:1fr;gap:22px}
  .cases{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .cases{grid-template-columns:1fr}
}

/* ══ v8 · 方法论定性 + 过滤器纵序 + 飞轮大格 + 六张表呼吸 ═══════════
   · 首页方法区：三层定性（是什么/从哪来/拿来干嘛）+ 框架卡（身份标签+金句）
   · 概念页 hero 下加同款定性三行，直达访客 5 秒进入状态
   · 五道过滤器横五列 → 纵序走廊（叙事是「依次通过」，排版不再说反）
   · 选择飞轮六列 → 2×3 大格；六张表 3 列压 2 列，重要内容给呼吸
   ──────────────────────────────────────────────────────── */

/* 首页方法区三层定性 */
.method-def{margin-top:30px;border-top:1px solid var(--line);padding-top:22px;
  display:grid;gap:10px;max-width:52em}
.method-def p{font-size:14.5px;line-height:2;color:var(--dim);font-weight:200}
.method-def b{display:inline-block;min-width:5.2em;color:var(--gold);font-weight:500;
  font-family:var(--sans);font-size:12px;letter-spacing:.14em;margin-right:14px}

/* 框架卡：身份标签上移入列，金句进场 */
.book .role{position:static;background:none;border:0;padding:0;
  font-family:var(--sans);font-size:11px;letter-spacing:.16em;font-weight:500;
  color:var(--gold-deep);margin-bottom:18px}
.book .bk,.book .sub{display:none}
.book h3{margin-bottom:12px}
.book .q{font-family:var(--serif);font-size:clamp(16px,1.7vw,20px);color:var(--gold);
  letter-spacing:-.02em;margin-bottom:16px}

/* 概念页定性三行 */
.meth-intro{display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,3vw,48px);border-top:1px solid var(--line);padding-top:26px}
.meth-intro .mi-k{font-family:var(--sans);font-size:11px;letter-spacing:.16em;
  font-weight:500;color:var(--gold);margin-bottom:12px}
.meth-intro p{font-size:13.5px;line-height:2;color:var(--dim);font-weight:200}

/* 五道过滤器：纵序走廊 */
.big-line{font-family:var(--serif);font-weight:400;letter-spacing:-.032em;
  font-size:clamp(24px,3vw,38px);line-height:1.45;color:var(--text);
  margin:clamp(30px,3.5vw,50px) 0 clamp(26px,3vw,40px)}
.big-line em{font-style:normal;color:var(--gold)}
.filters{border-top:1px solid var(--line-soft)}
.frow{display:grid;grid-template-columns:64px 150px 1fr;gap:clamp(16px,2vw,32px);
  align-items:baseline;padding:clamp(22px,2.6vw,32px) 0;border-bottom:1px solid var(--line-soft)}
.frow .fn{font-family:var(--serif);font-size:clamp(22px,2.2vw,28px);color:var(--gold);letter-spacing:-.02em}
.frow b{font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.8vw,23px);letter-spacing:-.028em}
.frow p{font-size:14px;line-height:2;color:var(--dim);font-weight:200}
.row-note{margin-top:20px;font-family:var(--sans);font-size:12px;letter-spacing:.1em;color:var(--faint)}

/* 选择飞轮：2×3 大格 */
.flywheel{display:grid;grid-template-columns:1fr 1fr 1fr;
  gap:clamp(30px,3.4vw,54px) clamp(28px,3vw,56px)}
.flywheel > div{background:none;padding:28px 0 0;border-top:1px solid var(--line-soft)}
.flywheel .fi{font-family:var(--sans);font-size:11px;letter-spacing:.14em;font-weight:500;
  color:var(--gold-deep);margin-bottom:14px}
.flywheel b{display:block;font-family:var(--serif);font-weight:400;
  font-size:clamp(19px,2vw,25px);letter-spacing:-.028em;margin-bottom:10px}
.flywheel p{font-size:13.5px;line-height:2;color:var(--dim);font-weight:200}

/* 六张表呼吸：2 列、发丝线在上、字号放宽 */
.tools{grid-template-columns:1fr 1fr;gap:clamp(28px,3vw,48px) clamp(30px,4vw,64px);
  background:none;border:0}
.tool{background:none;padding:30px 0 0;border-top:1px solid var(--line-soft)}
.tool .tn{font-family:var(--sans);font-size:11px;letter-spacing:.16em;font-weight:500;
  color:var(--gold);margin-bottom:14px}
.tool h4{font-size:clamp(21px,2.2vw,27px);margin-bottom:12px;letter-spacing:-.028em}
.tool p{font-size:13.5px;line-height:2;max-width:32em}

@media(max-width:900px){
  .meth-intro{grid-template-columns:1fr;gap:20px}
  .frow{grid-template-columns:48px 1fr;gap:8px 16px}
  .frow p{grid-column:1 / -1;margin-top:6px}
  .flywheel{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .tools{grid-template-columns:1fr}
}
@media(max-width:640px){
  .flywheel{grid-template-columns:1fr}
}

/* ══ v9 · 以老板为轴 creed + logo 白标适配 ═══════════════════════
   · 关键一步页核心理念段（老板就是第一生产力）
   · logo 素材已重制为「透明白标」，logowall 滤镜不再需要反相/提亮
   ──────────────────────────────────────────────────────── */
.creed{border-top:1px solid var(--line);border-bottom:1px solid var(--line-soft);
  padding:clamp(38px,4.6vw,64px) 0}
.creed h2{margin:16px 0 10px}
.creed-line{font-family:var(--serif);font-weight:400;letter-spacing:-.032em;
  font-size:clamp(22px,2.6vw,32px);line-height:1.5;color:var(--gold);margin-bottom:26px}
.creed-line em{font-style:normal;color:var(--gold-bright)}
.creed-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,3.4vw,56px)}
.creed-cols p{font-size:14.5px;line-height:2.05;color:var(--dim);font-weight:200}

/* logo 墙：素材已是透明白标，直接用透明度控制深浅 */
.logowall img{ opacity:.55; filter:none; max-height:42px; }
.logowall div:hover img{ opacity:.95; filter:none; }

@media(max-width:820px){ .creed-cols{grid-template-columns:1fr;gap:16px} }

/* ══ v10 · 字体体系统一（与内部层同源） ═════════════════════════
   · 展示级标题只用 --serif（宋体栈），正文/标签/编号/价格只用 --sans
   · --mono 归入黑体栈：含中文的小标签不再中西文两套字混排
   · 字重统一：标题 400、正文 200/400、标签 500，不用 600/700
   ──────────────────────────────────────────────────────── */
h1,h2,h3,.bz-title,.bz-stance,.frow b,.flywheel b,.big-line,.creed-line,
.book h3,.book .q,.tool h4,.stat .n,.board .nm,.transit .msg b{
  font-family:var(--serif);font-weight:400}
.eyebrow,.biz-no,.bz-no,.bz-keys,.bz-go,.price-note,.case .tag,.book .bk,.book .go,
.why .wk,.duo .en,.fi,.mi-k,.frow .fn,.role,.fact span,.np-link .no,.np-link .en,
.board .no,.board .pr,.stat .t,.person em,.tiers th,.tiers td:last-child{
  font-family:var(--sans);font-weight:500}

/* ══ v11 · 全站单一无衬线（弃宋体） ═════════════════════════════
   · 参照站 Dala 是一款无衬线走全站，层级靠字号与字距，不靠字体对撞
   · --serif / --mono 与 --sans 同栈：全站只剩一种字面，含内联 var(--serif)
   · 层级手段不变：字号 + 字距 + 400/200/500 字重
   ──────────────────────────────────────────────────────── */

/* ══ v12 · 分屏叙事（选择革命 12 屏 / 关键一步 8 屏）═════════════
   要解决的是「突兀」：概念不能一上来就被命名，得先让人站到自己身上。
   · 一屏一口气：.screen 占满 100svh，文字落在同一条左基线与同一条中轴
   · 四个动词同位：时间词升为小标签，主行只留「我们 + 动词」，
    逛街 / 逛超市 / 逛电商 / 问 AI 四屏同格，位置不变、字变了
   · 四档字号：huge（断句）· lead（主张）· note（定义句）· say（副句）
   · quiet 档是「退一步」：小一号 + 压暗，只用于收束，不用于强调
   · 进出：只加不减，逐行 90ms 递进；离场不淡出，滚动自然交棒
   ──────────────────────────────────────────────────────── */
.screens{position:relative;z-index:2}
.screen{position:relative;display:flex;align-items:center;
  min-height:100vh;min-height:100svh;padding-block:clamp(88px,12vh,140px)}

/* 页面眉标：只在第一屏顶部出现，绝对定位，不参与文字基准 */
.sc-mark{position:absolute;top:clamp(86px,11vh,124px);left:0;right:0;z-index:2}
.sc-mark > div{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad);
  display:flex;gap:clamp(18px,2.6vw,34px);flex-wrap:wrap;
  font-size:10.5px;letter-spacing:.2em;font-weight:500;color:var(--faint)}

.sc-in{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}

/* 逐行入场 */
.sc-l{opacity:0;transform:translateY(20px);
  transition:opacity 1.05s cubic-bezier(.2,.7,.3,1),transform 1.05s cubic-bezier(.2,.7,.3,1);
  transition-delay:calc(var(--d,0) * 90ms)}
.screen.on .sc-l{opacity:1;transform:none}

/* 四档字号 */
.sc-huge{font-size:clamp(30px,9vw,112px);line-height:1.06;letter-spacing:-.045em;
  font-weight:400;color:var(--text)}
/* 十字符级的整句（带破折号）收一档，避免顶到版心边 */
.sc-tight{font-size:clamp(28px,8.2vw,104px)}
.sc-lead{font-size:clamp(26px,5vw,76px);line-height:1.24;letter-spacing:-.04em;
  font-weight:400;color:var(--text)}
.sc-quiet{font-size:clamp(21px,3.4vw,50px);line-height:1.42;letter-spacing:-.035em;
  font-weight:400;color:var(--dim)}
.sc-note{font-size:clamp(17px,2.4vw,32px);line-height:1.7;letter-spacing:-.02em;
  font-weight:400;color:var(--text)}
.sc-say{font-size:clamp(15px,1.32vw,19px);line-height:2.05;letter-spacing:0;
  font-weight:200;color:var(--dim);max-width:46em}

/* 行距：同级紧，跨级松 */
.sc-huge + .sc-huge{margin-top:.02em}
.sc-lead + .sc-lead{margin-top:.04em}
.sc-quiet + .sc-quiet{margin-top:.24em}
.sc-quiet + .sc-lead{margin-top:.18em}
.sc-lead + .sc-say,.sc-huge + .sc-say{margin-top:clamp(24px,3.4vh,42px)}
.sc-lead + .sc-note{margin-top:clamp(18px,2.4vh,30px)}
.sc-say + .sc-say{margin-top:0}

/* 时代行 + 动词：时代是这一屏的第一个词，与主张句同字号，不做脚注标签
   90 年代 / 00 年代 / 10 年代 / 如今 四屏同格，逛、逛、逛、问 也随之同位 */
.sc-era{font-size:clamp(26px,5vw,76px);line-height:1.24;letter-spacing:-.04em;
  font-weight:400;color:var(--gold)}
.sc-era + .sc-lead{margin-top:.12em}
.sc-v{color:var(--gold);font-weight:400}

/* 概念揭晓：这页的名字独占一行落金（沿用 h1 em 的块级断行） */
.sc-name em{font-style:normal;color:var(--gold);display:block}

/* 屏计数器：只在叙事区间内可见 */
.sc-count{position:fixed;right:clamp(20px,4vw,56px);bottom:clamp(20px,3.4vh,34px);z-index:30;
  display:flex;align-items:baseline;gap:7px;font-weight:500;
  font-size:10.5px;letter-spacing:.16em;color:var(--faint);
  opacity:0;transition:opacity .55s ease;pointer-events:none}
.sc-count.show{opacity:1}
.sc-count b{font-size:12px;letter-spacing:.1em;color:var(--gold);font-weight:500}

/* 叙事 → 正文的桥：一句追问，交给框架回答 */
.bridge{max-width:min(960px,100%)}
.bridge p{font-size:clamp(22px,3vw,40px);line-height:1.5;letter-spacing:-.032em;
  font-weight:400;color:var(--text)}
.bridge p + p{color:var(--dim);margin-top:.24em}

/* 窄屏手动断点：只给会拆在词中间的长副句用，桌面不换行 */
.br-m{display:none}
@media(max-width:760px){
  .br-m{display:inline}
  .screen{padding-block:clamp(84px,14vh,120px)}
  .sc-lead + .sc-say,.sc-huge + .sc-say{margin-top:26px}
  .sc-say{line-height:1.95}
}

@media(prefers-reduced-motion:reduce){
  .sc-l{opacity:1;transform:none;transition:none}
  .sc-count{transition:none}
}

/* ══ v13 · 关键一步：清单式开场（结构沿用自制版，皮肤归站内）═════════
   用户自制版的信息结构全部保留：滚动驱动的自查清单 → 为什么落不了地
   → 以老板为轴 → 关键一步 → 五段 → 七个战场 → 六张表 → 体检。
   只把皮换回站内：黑底 + 香槟金、单一无衬线（400/200/500）、
   无卡片无边框，分层只靠发丝线与留白。
   ──────────────────────────────────────────────────────── */

/* 顶部发丝进度（全站唯一 1px，不抢顶栏） */
.gj-prog{position:fixed;top:0;left:0;height:1px;width:0;background:var(--gold);
  opacity:.45;z-index:45;pointer-events:none}

/* 左侧进度轨：只露点，悬停或到达才出字 */
.gj-rail{position:fixed;left:clamp(10px,1.5vw,26px);top:50%;transform:translateY(-50%);
  z-index:30;display:flex;flex-direction:column;gap:15px}
.gj-rail a{display:flex;align-items:center;gap:10px;font-size:10.5px;letter-spacing:.16em;
  font-weight:500;color:var(--faint);transition:color .3s}
.gj-rail .dot{width:6px;height:6px;border-radius:50%;border:1px solid var(--faint);
  flex:none;transition:background .3s,border-color .3s,transform .3s}
.gj-rail .lbl{opacity:0;transform:translateX(-4px);transition:opacity .3s,transform .3s;white-space:nowrap}
.gj-rail:hover .lbl,.gj-rail a.on .lbl{opacity:1;transform:none}
.gj-rail a.on{color:var(--text)}
.gj-rail a.on .dot{background:var(--gold);border-color:var(--gold);transform:scale(1.4)}
.gj-rail a.done .dot{background:var(--gold-deep);border-color:var(--gold-deep)}
@media(max-width:1360px){.gj-rail{display:none}}

/* ── 自查清单：滚动驱动，贴在屏上换行 ── */
#gjOpen{height:270vh}
.gj-pin{position:sticky;top:0;height:100vh;height:100svh;min-height:620px;display:flex;align-items:center;
  padding-block:clamp(86px,11vh,116px) clamp(54px,7vh,76px)}
.gj-pin .wrap{width:100%}
.gj-check{width:100%;max-width:720px}
.gj-turn{max-width:760px}
.gj-head,.gj-row{display:grid;grid-template-columns:1fr 76px 108px;
  gap:clamp(10px,2vw,28px);align-items:center}
.gj-head{position:relative;font-size:10.5px;letter-spacing:.22em;font-weight:500;
  color:var(--faint);padding-bottom:14px}
.gj-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--line);transform:scaleX(0);transform-origin:left;
  transition:transform 1.15s cubic-bezier(.2,.7,.3,1) .3s}
body.ready .gj-head::after{transform:scaleX(1)}
.gj-head span:nth-child(n+2){text-align:center}
.gj-head .q{opacity:0;transform:translateX(18px);transition:opacity .6s,transform .6s}
.gj-row{padding:clamp(13px,1.6vw,18px) 0;border-bottom:1px solid var(--line-soft);
  opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s ease}
.gj-row.show{opacity:1;transform:none}
.gj-row .t{font-size:clamp(17px,1.72vw,23px);font-weight:400;letter-spacing:-.022em;
  line-height:1.42;color:var(--text)}
.gj-row .t b{font-weight:400;color:var(--gold)}
.gj-row .s{display:block;font-size:12px;font-weight:200;letter-spacing:.01em;
  color:var(--faint);margin-top:5px}
.gj-mark{text-align:center;font-size:17px;line-height:1;color:var(--dim)}
.gj-mark.tick{transform:scale(0);transition:transform .45s cubic-bezier(.3,1.6,.5,1) .18s}
.gj-row.show .gj-mark.tick{transform:scale(1)}
.gj-mark.dash{color:var(--gold);opacity:0;transform:rotateX(90deg);
  transition:opacity .5s ease,transform .5s ease}
.gj-pin.p2 .gj-head .q{opacity:1;transform:none}
.gj-pin.p2 .gj-mark.dash{opacity:1;transform:none}
.gj-pin.p2 .gj-row:nth-child(3) .gj-mark.dash{transition-delay:.06s}
.gj-pin.p2 .gj-row:nth-child(4) .gj-mark.dash{transition-delay:.16s}
.gj-pin.p2 .gj-row:nth-child(5) .gj-mark.dash{transition-delay:.26s}
.gj-pin.p2 .gj-row:nth-child(6) .gj-mark.dash{transition-delay:.36s}
.gj-turn{margin-top:clamp(20px,3vh,34px);opacity:0;transform:translateY(14px);
  transition:opacity .9s ease .4s,transform .9s ease .4s}
.gj-pin.p2 .gj-turn{opacity:1;transform:none}
.gj-turn .a{font-size:13.5px;font-weight:200;letter-spacing:.04em;color:var(--dim)}
.gj-turn .b{font-size:clamp(22px,2.8vw,38px);font-weight:400;letter-spacing:-.038em;
  line-height:1.38;color:var(--text);
  margin:clamp(8px,1.2vh,14px) 0 clamp(10px,1.4vh,16px)}
.gj-turn .b em{font-style:normal;color:var(--gold)}
.gj-turn .c{font-size:14.5px;font-weight:200;color:var(--dim)}
.gj-hint{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);
  font-size:9.5px;letter-spacing:.3em;font-weight:500;color:var(--faint);transition:opacity .4s}
.gj-hint::after{content:"";display:block;width:1px;height:30px;margin:10px auto 0;
  background:var(--gold);opacity:.45;animation:gjdrip 2s ease-in-out infinite}
@keyframes gjdrip{0%{transform:scaleY(0);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* 错位对照（100 分卷 / 60 分卷）不画胶囊，只给一行小字 */
.gj-exam{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;
  font-size:11px;letter-spacing:.1em;font-weight:500;color:var(--faint)}
.gj-exam b{font-weight:500;color:var(--gold)}

/* ── 以老板为轴：整幅抬起来的平面，不加卡片 ── */
.gj-band{position:relative;z-index:2;background:rgba(201,164,92,.035);
  border-block:1px solid var(--line);padding-block:clamp(72px,9vw,132px)}
.gj-axis{display:grid;grid-template-columns:1.05fr 1fr;
  gap:clamp(40px,5vw,80px);align-items:center}
.gj-axis-big{font-size:clamp(40px,6.2vw,90px);font-weight:400;letter-spacing:-.052em;
  line-height:1.08;color:var(--text);margin:clamp(12px,1.8vh,20px) 0}
.gj-axis-sub{font-size:clamp(17px,1.9vw,24px);font-weight:400;letter-spacing:-.02em;
  line-height:1.6;color:var(--text);margin-bottom:clamp(20px,2.6vh,32px)}
.gj-axis-sub em{font-style:normal;color:var(--gold-bright)}
.gj-axis p{font-size:14.5px;font-weight:200;line-height:2.05;color:var(--dim);
  margin-bottom:14px;max-width:30em}
.gj-axis p b{font-weight:400;color:var(--text)}
.gj-axis .note{border-left:1px solid var(--gold-deep);padding-left:16px;margin-top:24px}

/* 长短板柱：老板那根落金，高度差就是「处处是短板」 */
.gj-bars{position:relative;height:clamp(240px,30vw,380px);display:flex;align-items:flex-end;
  gap:clamp(5px,.9vw,11px);padding-bottom:44px;border-bottom:1px solid var(--line)}
.gj-bars .b{flex:1;position:relative;height:44px;background:rgba(201,164,92,.16);
  transition:height 1.15s cubic-bezier(.2,.8,.2,1)}
.gj-bars .b span{position:absolute;top:calc(100% + 12px);left:50%;
  transform:translateX(-50%);font-size:10px;letter-spacing:.16em;font-weight:500;
  color:var(--faint);white-space:nowrap;writing-mode:vertical-rl}
.gj-bars .b.boss{height:52px;background:var(--gold);
  transition:height 1.3s cubic-bezier(.2,.8,.2,1) .4s}
.gj-bars .b.boss span{color:var(--gold)}
.gj-bars.in .b.boss{height:86%}
.gj-bars .cap{position:absolute;top:0;right:0;font-size:10px;letter-spacing:.18em;
  font-weight:500;color:var(--faint);opacity:0;transition:opacity .6s 1.3s}
.gj-bars.in .cap{opacity:1}

/* ── 关键一步：这页的名字 ── */
.gj-pre{font-size:clamp(14px,1.35vw,17px);font-weight:200;letter-spacing:.02em;
  line-height:2;color:var(--dim)}
.gj-title{font-size:clamp(52px,10.5vw,148px);font-weight:400;letter-spacing:-.055em;
  line-height:1.02;color:var(--gold);
  margin:clamp(12px,2vh,24px) 0 clamp(16px,2.2vh,28px)}
.gj-def{font-size:clamp(17px,2.1vw,30px);font-weight:400;letter-spacing:-.03em;
  line-height:1.55;color:var(--text)}
.gj-def em{font-style:normal;color:var(--gold)}
.gj-stairs{display:flex;align-items:flex-end;gap:6px;height:clamp(110px,14vw,170px);
  max-width:600px;margin:clamp(34px,5vh,58px) 0 clamp(26px,4vh,40px)}
.gj-stairs i{flex:1;background:rgba(201,164,92,.12);transition:background .6s}
.gj-stairs i:nth-child(1){height:20%}
.gj-stairs i:nth-child(2){height:40%}
.gj-stairs i:nth-child(3){height:60%}
.gj-stairs i:nth-child(4){height:80%}
.gj-stairs i:nth-child(5){height:100%}
.gj-stairs i:first-child{position:relative}
.gj-stairs.in i:first-child{background:var(--gold);transition-delay:.5s}
.gj-stairs i:first-child::after{content:"先迈这一步";position:absolute;
  bottom:calc(100% + 12px);left:0;font-size:10.5px;letter-spacing:.18em;font-weight:500;
  color:var(--gold);white-space:nowrap;opacity:0;transition:opacity .5s .95s}
.gj-stairs.in i:first-child::after{opacity:1}

/* ── 五段：走过的压暗，脚下那段点亮 ── */
.part.done .pn::before{content:"✓ ";color:var(--gold)}
.part.done h3{color:var(--faint);font-weight:400}
.part.done .ch{color:var(--faint)}
.gj-here{display:inline-flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.22em;
  font-weight:500;color:var(--gold);margin-bottom:14px}
.gj-here::before{content:"";width:18px;height:1px;background:var(--gold)}

/* ── 七个战场 / 六张表：收成可展开的清单 ──
   名单是给人扫的，细节是给人问的。默认只有标题行，鼠标过来（或键盘聚焦、
   触屏点一下）才展开——十三个条目同时铺开，会把人从判断上扯走。 */
.gj-fields,.gj-tools{--num:3.5rem;--gap:clamp(12px,1.6vw,24px);--e:cubic-bezier(.2,.7,.3,1)}
.gj-fields{display:block;max-width:min(900px,100%);
  border-block:1px solid var(--line-soft);margin-top:clamp(36px,5vw,56px)}
.gj-acc{position:relative;border-bottom:1px solid var(--line-soft)}
.gj-fields > .gj-acc:last-of-type{border-bottom:0}
.gj-acc{transition:background .35s}
.gj-acc:hover{background:rgba(201,164,92,.03)}
.gj-arow{display:grid;grid-template-columns:var(--num) minmax(0,1fr) 13px;
  gap:var(--gap);align-items:center;padding:clamp(14px,1.7vw,19px) 0;
  cursor:pointer;outline:none}
.gj-arow:focus-visible{outline:1px solid var(--gold-deep);outline-offset:4px}
.gj-arow .n,.gj-arow .tn{font-size:10.5px;letter-spacing:.2em;font-weight:500;
  color:var(--gold-deep);transition:color .35s}
.gj-arow .t{font-size:clamp(19px,2.05vw,26px);font-weight:400;letter-spacing:-.028em;
  line-height:1.4;color:var(--text);transition:color .35s}
/* 加号：收起是一竖一横，展开收成一根横线 */
.gj-arow .pm{position:relative;width:13px;height:13px;opacity:.42;transition:opacity .35s}
.gj-arow .pm::before,.gj-arow .pm::after{content:"";position:absolute;left:0;top:50%;
  width:100%;height:1px;background:var(--gold);transform:translateY(-50%);
  transition:transform .5s var(--e)}
.gj-arow .pm::after{transform:translateY(-50%) rotate(90deg)}
.gj-acc:hover .gj-arow .pm,.gj-acc.open .gj-arow .pm,
.gj-acc:focus-within .gj-arow .pm{opacity:1}
.gj-acc:hover .gj-arow .pm::after,.gj-acc.open .gj-arow .pm::after,
.gj-acc:focus-within .gj-arow .pm::after{transform:translateY(-50%) rotate(0deg)}
.gj-acc:hover .gj-arow .t,.gj-acc.open .gj-arow .t,
.gj-acc:focus-within .gj-arow .t{color:var(--gold-bright)}
.gj-acc:hover .gj-arow .n,.gj-acc.open .gj-arow .n,
.gj-acc:focus-within .gj-arow .n,
.gj-acc:hover .gj-arow .tn,.gj-acc.open .gj-arow .tn,
.gj-acc:focus-within .gj-arow .tn{color:var(--gold)}
/* 0fr → 1fr 才是真高度动画，max-height 会跟内容量脱钩 */
.gj-abody{display:grid;grid-template-rows:0fr;transition:grid-template-rows .52s var(--e)}
.gj-acc:hover .gj-abody,.gj-acc.open .gj-abody,
.gj-acc:focus-within .gj-abody{grid-template-rows:1fr}
.gj-ain{overflow:hidden;min-height:0;padding-left:calc(var(--num) + var(--gap))}
.gj-ain p{font-size:13.5px;font-weight:200;line-height:1.95;color:var(--dim);
  max-width:34em;padding-bottom:clamp(18px,2.2vw,26px)}
.gj-ain .gj-loop{margin-bottom:clamp(18px,2.2vw,26px)}
/* 七个战场：这一句是老板原话，左侧一条虚线从标题引下来 */
.gj-fields .gj-ain p{border-left:1px dashed rgba(201,164,92,.3);padding-left:16px}
.gj-fields .gj-ain p::before{content:"老板问";display:block;font-size:9.5px;
  letter-spacing:.18em;font-weight:500;color:var(--gold-deep);margin-bottom:7px}
.gj-acc.key .gj-arow .t{color:var(--gold)}
.gj-acc.key .gj-arow .tn{color:var(--gold)}
/* 七个问题的收束行：不再占一格，横贯一条 */
.gj-sum{display:flex;align-items:baseline;gap:clamp(16px,3vw,32px);flex-wrap:wrap;
  padding:clamp(24px,3vw,34px) 0;border-top:1px solid var(--line)}
.gj-sum .n{font-size:10.5px;letter-spacing:.2em;font-weight:500;color:var(--gold);flex:none}
.gj-sum .big{font-size:clamp(17px,2vw,24px);font-weight:400;letter-spacing:-.025em;
  line-height:1.5;color:var(--text)}
.gj-sum .big em{font-style:normal;color:var(--gold)}
.gj-sum .tail{margin-left:auto;font-size:11px;letter-spacing:.16em;font-weight:500;
  color:var(--faint)}

/* ── 六张表：两组，左边找、右边走 ── */
.gj-tools{--num:3.1rem;display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(30px,4vw,64px);margin-top:clamp(36px,5vw,56px)}
.gj-tcol h4{font-size:10.5px;letter-spacing:.22em;font-weight:500;color:var(--gold);
  padding-bottom:13px;border-bottom:1px solid var(--line)}
.gj-tcol .gj-acc:last-child{border-bottom:0}
.gj-loop{display:inline-block;padding:3px 10px;border-radius:2px;
  border:1px dashed rgba(201,164,92,.34);font-size:11px;letter-spacing:.1em;
  font-weight:500;color:var(--gold-deep)}
.gj-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin-top:clamp(28px,4vw,44px)}
.gj-cta .tiny{font-size:12px;color:var(--faint)}

/* ── 页脚：三段说明 + 版权，仍是一条发丝线起头 ── */
footer.gj-footwrap{display:block;border-top:1px solid var(--line-soft);
  margin-top:clamp(50px,7vw,90px);padding-block:clamp(36px,4vw,54px) 44px}
.gj-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px)}
.gj-foot h6{font-size:10.5px;letter-spacing:.22em;font-weight:500;
  color:var(--gold-deep);margin-bottom:10px}
.gj-foot p{font-size:12.5px;font-weight:200;line-height:2;color:var(--faint);max-width:26em}
.gj-footend{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:clamp(30px,4vw,46px);padding-top:20px;border-top:1px solid var(--line-soft);
  font-size:11px;letter-spacing:.06em;color:var(--faint)}

@media(max-width:960px){
  .gj-axis{grid-template-columns:1fr;gap:clamp(32px,6vw,56px)}
  .gj-bars{height:clamp(220px,44vw,300px)}
  .gj-tools{grid-template-columns:1fr}
  .gj-foot{grid-template-columns:1fr;gap:22px}
}
@media(max-width:760px){
  .gj-head,.gj-row{grid-template-columns:1fr 46px 62px;gap:8px}
  .gj-head{font-size:9.5px;letter-spacing:.16em}
  .gj-turn .b{letter-spacing:-.03em}
  .gj-title{letter-spacing:-.045em}
  .gj-fields,.gj-tools{--num:2.9rem;--gap:11px}
  .gj-tcol + .gj-tcol{margin-top:clamp(32px,7vw,44px)}
  .gj-arow{padding:15px 0}
  .gj-ain{padding-left:calc(var(--num) + var(--gap))}
  .gj-fields .gj-ain p{padding-left:13px}
  .gj-sum{display:block}
  .gj-sum .tail{margin:10px 0 0}
  #gjOpen{height:300vh}
}
@media(prefers-reduced-motion:reduce){
  .gj-row,.gj-turn,.gj-head .q,.gj-mark.dash,.gj-mark.tick{opacity:1;transform:none;transition:none}
  .gj-hint::after{animation:none}
}

/* 这一页左侧要放一张三列清单，遮罩比概念页更晚收
   （概念页 51% 就透底，刻度会落在粒子上） */
body.gj #scrim{
  background:linear-gradient(90deg,
    rgba(5,5,5,.97) 0%,rgba(5,5,5,.95) 44%,rgba(5,5,5,.86) 56%,
    rgba(5,5,5,.48) 66%,rgba(5,5,5,.12) 76%,transparent 84%)}
@media(max-width:900px){
  body.gj #scrim{
    background:linear-gradient(180deg,
      rgba(5,5,5,.96) 0%,rgba(5,5,5,.93) 40%,rgba(5,5,5,.72) 56%,
      rgba(5,5,5,.34) 72%,rgba(5,5,5,.10) 88%,transparent 100%)}
}

/* 逐个展开：三栏 / 五段 / 战场，按行按列错开，不整块跳出来 */
.thesis.rv > div,.parts.rv > .part,.gj-fields.rv > .gj-acc{opacity:0;transform:translateY(18px);
  transition:opacity .9s cubic-bezier(.2,.7,.3,1),transform .9s cubic-bezier(.2,.7,.3,1)}
.thesis.rv.in > div,.parts.rv.in > .part,.gj-fields.rv.in > .gj-acc{opacity:1;transform:none}
.thesis.rv.in > div:nth-child(1),.parts.rv.in > .part:nth-child(1),
.gj-fields.rv.in > .gj-acc:nth-child(1){transition-delay:.08s}
.thesis.rv.in > div:nth-child(2),.parts.rv.in > .part:nth-child(2),
.gj-fields.rv.in > .gj-acc:nth-child(2){transition-delay:.16s}
.thesis.rv.in > div:nth-child(3),.parts.rv.in > .part:nth-child(3),
.gj-fields.rv.in > .gj-acc:nth-child(3){transition-delay:.24s}
.parts.rv.in > .part:nth-child(4),
.gj-fields.rv.in > .gj-acc:nth-child(4){transition-delay:.32s}
.parts.rv.in > .part:nth-child(5),
.gj-fields.rv.in > .gj-acc:nth-child(5){transition-delay:.40s}
.gj-fields.rv.in > .gj-acc:nth-child(6){transition-delay:.48s}
.gj-fields.rv.in > .gj-acc:nth-child(7){transition-delay:.56s}
.gj-fields.rv.in > .gj-acc:nth-child(8){transition-delay:.64s}

/* 收束行也归入逐个展开的节奏 */
.gj-fields.rv > .gj-sum{opacity:0;transform:translateY(18px);
  transition:opacity .9s cubic-bezier(.2,.7,.3,1),transform .9s cubic-bezier(.2,.7,.3,1)}
.gj-fields.rv.in > .gj-sum{opacity:1;transform:none;transition-delay:.72s}

@media(prefers-reduced-motion:reduce){
  .thesis.rv > div,.parts.rv > .part,.gj-fields.rv > .gj-acc{opacity:1;transform:none;transition:none}
  .gj-head::after{transform:none;transition:none}
}

/* 页脚此前没有定位，会被 #scrim 的左侧压黑吞掉文字（全站通病，一并修） */
footer{position:relative;z-index:2}

/* 矮屏（13 寸笔记本）里清单要收一档，否则表头会顶到导航条底下 */
@media(max-height:820px) and (min-width:761px){
  .gj-pin{padding-block:80px 44px}
  .gj-row{padding:11px 0}
  .gj-row .t{font-size:clamp(16px,1.45vw,20px)}
  .gj-row .s{font-size:11.5px;margin-top:4px}
  .gj-turn{margin-top:18px}
  .gj-turn .b{font-size:clamp(20px,2.4vw,32px)}
}

/* ══ v14 · 选择革命：结构沿用用户自制版（xuanze01.html）════════════
   现象（三个年代 → 但是 → 如今换动词 → 命名 → 客户同样）→ 原理（三个位置
   → 答案位 → 五道过滤器 → 乘法）→ 方法（选择飞轮）→ 边界（真相）
   → 行动（窗口期 → 自查 → 选力诊断）
   只把皮换回站内：黑底 + 香槟金、单一无衬线（400/200/500）、无卡片无阴影，
   分层只靠发丝线与留白。动效逐项照搬：打字机、翻字、链条展开、
   十选三收窄、五关点击归零、飞轮轮转、进度条。
   ──────────────────────────────────────────────────────────────── */

/* ── 屏 ── */
.xz-screen{position:relative;z-index:2;min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  padding-block:clamp(92px,13vh,140px)}
.xz-screen > .wrap{width:100%}
/* 断句屏：不留满一屏，只留一口气 */
.xz-but{min-height:70vh;min-height:70svh}
.xz-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,80px);align-items:center}

/* 引导小字：金色短横 + 极疏的字距 */
.xz-kick{display:flex;align-items:center;gap:14px;font-size:10.5px;letter-spacing:.3em;
  font-weight:500;color:var(--gold);margin-bottom:clamp(20px,3vh,32px)}
.xz-kick::before{content:"";width:26px;height:1px;background:var(--gold-deep)}

/* 主张句 */
.xz-say{font-size:clamp(25px,3.5vw,46px);font-weight:400;letter-spacing:-.038em;
  line-height:1.42;color:var(--text)}
.xz-say .dim{color:#6e6a61}
.xz-lede{font-size:15px;font-weight:200;line-height:2.1;color:var(--dim);
  max-width:34em;margin-top:22px}

/* ── 三个年代 ── */
.xz-eras{border-top:1px solid var(--line-soft)}
.xz-era{display:grid;grid-template-columns:126px 1fr;gap:clamp(14px,2.4vw,32px);
  align-items:baseline;padding:clamp(15px,2.2vh,24px) 0;
  border-bottom:1px solid var(--line-soft)}
.xz-era .tag{font-size:10.5px;letter-spacing:.2em;font-weight:500;color:var(--gold-deep)}
.xz-era .txt{font-size:clamp(27px,4.1vw,54px);font-weight:400;letter-spacing:-.035em;
  line-height:1.2;color:var(--text)}
.xz-era .sub{font-size:12.5px;font-weight:200;color:var(--faint);margin-top:5px}
/* 动词：金色 + 一道极细的下划线，四个时代同一个位置 */
.xz-v{color:var(--gold);box-shadow:inset 0 -1px 0 var(--gold-deep)}
.xz-close{margin-top:clamp(34px,5vh,56px);font-size:clamp(18px,2vw,26px);font-weight:400;
  letter-spacing:-.02em;line-height:1.75;color:var(--text)}

/* 翻字：逛 → 问，一个位置上下换 */
.xz-morph{display:inline-grid;vertical-align:bottom;padding:0 .04em;overflow:hidden}
.xz-morph>span{grid-area:1/1;color:var(--gold);box-shadow:inset 0 -1px 0 var(--gold-deep);
  transition:transform .9s var(--e),opacity .6s,filter .6s}
.xz-morph .b{opacity:0;transform:translateY(80%)}
.xz-morph.go .a{opacity:0;transform:translateY(-80%);filter:blur(6px)}
.xz-morph.go .b{opacity:1;transform:none}
.xz-now-line{font-size:clamp(27px,4.1vw,54px);font-weight:400;letter-spacing:-.042em;
  line-height:1.25;color:var(--text);margin-top:2px}
.xz-now p{font-size:16px;font-weight:200;color:var(--dim);margin-top:10px}
.xz-now p strong{font-weight:400;color:var(--text)}

/* ── 巨字 ── */
.xz-huge{font-size:clamp(62px,12.5vw,172px);font-weight:400;letter-spacing:-.04em;
  line-height:1.02;color:var(--text)}
.xz-huge em{font-style:normal;color:var(--gold)}

/* ── 命名块：这一页的几个概念名 ── */
.xz-name{margin-top:clamp(36px,6vh,64px)}
.xz-name>p{font-size:12.5px;font-weight:200;letter-spacing:.08em;color:var(--faint)}
.xz-name h2{font-size:clamp(42px,7.2vw,98px);font-weight:400;letter-spacing:-.042em;
  line-height:1.06;margin-top:8px;color:var(--text)}
.xz-name h2 em{font-style:normal;color:var(--gold)}
.xz-name .tail{font-size:clamp(15px,1.6vw,19px);font-weight:200;color:var(--dim);margin-top:16px}

/* ── 链条：品牌 → 机器 → 人 ── */
.xz-chain{display:flex;align-items:center;margin-top:clamp(34px,5vh,52px);
  font-size:clamp(14px,1.8vw,22px);flex-wrap:nowrap}
.xz-node{border:1px solid var(--line);border-radius:999px;padding:5px 19px;
  white-space:nowrap;color:var(--text)}
.xz-node.machine{background:var(--gold);border-color:var(--gold);color:#0a0908}
.xz-arrow{width:clamp(22px,4.2vw,62px);height:1px;background:var(--line);
  position:relative;margin:0 7px;flex:none}
.xz-arrow::after{content:"";position:absolute;right:0;top:-3px;
  border-left:7px solid var(--gold-deep);border-top:3px solid transparent;
  border-bottom:3px solid transparent}
.xz-mid{display:flex;align-items:center;max-width:0;opacity:0;overflow:hidden;
  transition:max-width 1.1s var(--e),opacity .6s .35s}
.xz-chain.go .xz-mid{max-width:420px;opacity:1}
.xz-chain-cap{margin-top:18px;font-size:13.5px;font-weight:200;line-height:2;
  color:var(--dim);max-width:36em}

/* ── 桥接句 ── */
.xz-bridge{margin-top:clamp(38px,7vh,68px);display:flex;align-items:center;gap:16px;
  font-size:clamp(15px,1.9vw,23px);font-weight:400;letter-spacing:-.02em;color:var(--dim)}
.xz-bridge::before{content:"↓";display:grid;place-items:center;width:36px;height:36px;
  border:1px solid var(--line);border-radius:50%;font-size:14px;color:var(--gold);
  flex:none;animation:xzbob 2.4s ease-in-out infinite}
@keyframes xzbob{50%{transform:translateY(5px)}}

/* ── AI 对话窗：这一页的视觉母题 ── */
.xz-chat{background:#0a0a09;border:1px solid var(--line);border-radius:10px;
  overflow:hidden;width:100%;max-width:500px;justify-self:end}
.xz-chat-head{display:flex;gap:5px;align-items:center;padding:10px 14px;
  border-bottom:1px solid var(--line-soft);font-size:10px;letter-spacing:.14em;color:var(--faint)}
.xz-chat-head b{width:5px;height:5px;border-radius:50%;background:rgba(201,164,92,.28)}
.xz-chat-head em{margin-left:auto;font-style:normal}
.xz-chat-body{display:flex;flex-direction:column;padding:18px;min-height:286px}
/* flex 子项才会随逐字输入即时重排；fit-content 在打字中途会停在旧宽度上 */
.xz-q{align-self:flex-end;background:rgba(232,230,224,.07);color:var(--text);
  font-size:13.5px;font-weight:200;line-height:1.75;
  border-radius:9px 9px 2px 9px;padding:9px 13px;max-width:92%;min-height:38px}
.xz-caret{display:inline-block;width:1px;height:1em;background:var(--gold);
  vertical-align:-2px;margin-left:2px;animation:xzblink 1s steps(1) infinite}
@keyframes xzblink{50%{opacity:0}}
.xz-chat.answered .xz-caret{display:none}
.xz-chat-a{width:100%;margin-top:16px;font-size:13.5px}
.xz-chat-a>*{opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s}
.xz-chat-a>.show{opacity:1;transform:none}
.xz-chat-a .lead{color:var(--dim);font-size:11.5px;margin-bottom:2px}
.xz-pick{display:flex;gap:11px;align-items:flex-start;padding:9px 0;
  border-top:1px dashed var(--line)}
.xz-pick>b{color:var(--gold);font-size:11px;padding-top:3px;flex:none;font-weight:500}
.xz-pick strong{font-weight:400;color:var(--text)}
.xz-pick small{display:block;color:var(--dim);font-size:11px;line-height:1.7}
.xz-pick.miss strong{color:var(--faint);text-decoration:line-through;
  text-decoration-color:var(--gold-deep)}
.xz-pick.miss b{color:var(--faint)}
.xz-chat-a .fade{font-size:11px;color:var(--dim);margin-top:8px;letter-spacing:.04em}

/* ── 三个时代抢的东西 ── */
.xz-ages{display:grid;grid-template-columns:repeat(3,1fr);margin-top:42px;
  border-top:1px solid var(--line-soft)}
.xz-ages>div{padding:20px 20px 0 0}
.xz-ages small{font-size:10px;letter-spacing:.2em;font-weight:500;color:var(--faint)}
.xz-ages p{font-size:clamp(17px,1.85vw,23px);font-weight:400;letter-spacing:-.022em;margin-top:6px}
.xz-ages>div:last-child p{color:var(--gold)}

/* ── 十个位置 → 三个位置 ── */
.xz-slots{margin-top:clamp(38px,6vh,54px);max-width:620px;padding-top:18px;
  border-top:1px solid var(--line-soft)}
.xz-slots-head{display:grid;font-size:11px;letter-spacing:.12em;color:var(--faint);margin-bottom:12px}
.xz-slots-head span{grid-area:1/1;transition:opacity .5s,transform .6s var(--e)}
.xz-slots-head .h2{opacity:0;transform:translateY(8px);color:var(--gold)}
.xz-slots.go .h1{opacity:0;transform:translateY(-8px)}
.xz-slots.go .h2{opacity:1;transform:none}
.xz-slots ol{list-style:none}
.xz-slots li{display:flex;align-items:center;gap:12px;height:24px;margin-bottom:6px;
  max-height:24px;transition:max-height .7s var(--e),margin .7s var(--e),opacity .5s;
  transition-delay:calc(var(--i)*50ms)}
.xz-slots li b{font-size:9.5px;font-weight:500;color:var(--faint);width:18px;flex:none}
.xz-slots li i{flex:1;height:7px;background:rgba(232,230,224,.05);overflow:hidden}
.xz-slots li i::after{content:"";display:block;height:100%;width:var(--w);
  background:rgba(232,230,224,.14);transition:background .6s,height .6s}
.xz-slots.go li:nth-child(n+4){max-height:7px;margin:0;opacity:.14}
.xz-slots.go li:nth-child(-n+3) i{height:18px;background:rgba(201,164,92,.07);
  border:1px solid var(--gold-deep)}
.xz-slots.go li:nth-child(-n+3) i::after{background:rgba(201,164,92,.22)}
.xz-slots.go li:nth-child(-n+3) b{color:var(--gold)}

/* ── 五道过滤器：可点，点一关归零 ── */
.xz-filters{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;
  background:var(--line-soft);border-block:1px solid var(--line-soft);
  margin-top:clamp(34px,5vh,48px)}
.xz-filter{all:unset;box-sizing:border-box;cursor:pointer;background:var(--bg);
  padding:clamp(18px,2vw,24px) clamp(13px,1.4vw,18px);display:flex;flex-direction:column;
  gap:6px;transition:background .3s}
.xz-filter:hover{background:#0b0a09}
.xz-filter:focus-visible{outline:1px solid var(--gold-deep);outline-offset:-5px}
.xz-filter .fn{font-size:9.5px;letter-spacing:.2em;font-weight:500;color:var(--gold-deep)}
.xz-filter h3{font-size:clamp(15px,1.55vw,19px);font-weight:400;letter-spacing:-.022em;
  line-height:1.45;color:var(--text)}
.xz-filter .fq{font-size:12px;font-weight:300;color:var(--dim)}
.xz-filter .fd{font-size:11px;font-weight:200;line-height:1.85;color:var(--faint);flex:0 0 auto}
.xz-filter .left{margin-top:auto;padding-top:10px;font-size:9.5px;letter-spacing:.1em;color:var(--faint)}
.xz-filter .fv{font-size:12.5px;letter-spacing:.06em;color:var(--dim);margin-top:4px}
.xz-filter.zero{background:rgba(201,164,92,.045)}
.xz-filter.zero h3{color:var(--gold)}
.xz-filter.zero .fv{color:var(--gold);text-decoration:line-through;
  text-decoration-color:var(--gold-deep)}

/* ── 乘法：五关相乘 ── */
.xz-eq{margin-top:clamp(30px,4vh,40px);display:flex;flex-wrap:wrap;align-items:baseline;
  gap:8px 12px;font-size:clamp(16px,2vw,24px);letter-spacing:-.02em;color:var(--dim)}
.xz-eq .x{color:var(--faint);font-size:.78em}
.xz-eq .ev{transition:color .3s}
.xz-eq .ev.z{color:var(--faint);text-decoration:line-through}
.xz-eq-res{font-size:clamp(36px,5.2vw,72px);font-weight:400;letter-spacing:-.045em;
  line-height:1;color:var(--gold);min-width:2.5em}
.xz-eq-note{margin-top:12px;font-size:14px;font-weight:200;color:var(--dim);
  min-height:1.9em;max-width:38em}
.xz-eq-note b{font-weight:400;color:var(--gold)}
.xz-eq-note span{color:var(--faint);font-size:12px;margin-left:8px}

/* ── 选择飞轮 ── */
.xz-wheel-wrap{display:grid;grid-template-columns:minmax(260px,410px) 1fr;
  gap:clamp(38px,5vw,80px);align-items:center;margin-top:clamp(34px,5vh,50px)}
.xz-wheel{position:relative;aspect-ratio:1;width:100%}
.xz-wheel svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.xz-wheel .ring{fill:none;stroke:var(--line-soft);stroke-width:.5;stroke-dasharray:1 1.5}
.xz-wheel .arc{fill:none;stroke:var(--gold);stroke-width:1.1;stroke-linecap:round;
  stroke-dasharray:41.89 209.44;transform-box:fill-box;transform-origin:50% 50%;
  transition:transform .9s var(--e)}
.xz-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36%;
  aspect-ratio:1;border-radius:50%;border:1px solid var(--gold-deep);
  background:rgba(201,164,92,.08);display:grid;place-content:center;text-align:center}
.xz-hub small{font-size:9px;letter-spacing:.18em;color:var(--faint);font-weight:500}
.xz-hub b{font-size:clamp(13px,1.4vw,18px);font-weight:400;color:var(--gold-bright);letter-spacing:-.02em}
.xz-wn{all:unset;cursor:pointer;position:absolute;transform:translate(-50%,-50%);
  border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12px;
  letter-spacing:.02em;white-space:nowrap;color:var(--dim);background:var(--bg);
  transition:border-color .35s,color .35s,background .35s}
.xz-wn:hover{border-color:var(--gold-deep);color:var(--text)}
.xz-wn.on{background:var(--gold);border-color:var(--gold);color:#0a0908;
  transform:translate(-50%,-50%) scale(1.06)}
.xz-wn:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
.xz-wd{transition:opacity .35s,transform .35s}
.xz-wd.swap{opacity:0;transform:translateY(8px)}
.xz-wd-step{font-size:10px;letter-spacing:.2em;font-weight:500;color:var(--gold-deep)}
.xz-wd-title{font-size:clamp(23px,2.9vw,38px);font-weight:400;letter-spacing:-.038em;
  line-height:1.32;margin-top:6px;color:var(--text)}
.xz-wd-desc{font-size:14.5px;font-weight:200;line-height:2.05;color:var(--dim);
  margin-top:12px;max-width:26em}
.xz-wd-gate{margin-top:20px;font-size:10px;letter-spacing:.1em;color:var(--faint)}
.xz-wd-gate span{display:inline-block;border:1px solid var(--line);border-radius:999px;
  padding:1px 9px;margin:4px 5px 0 0;color:var(--dim);font-size:10px}

/* ── 边界：唯一抬起的一块平面 ── */
.xz-band{background:rgba(201,164,92,.05);border-block:1px solid var(--line)}
.xz-truth{font-size:clamp(36px,6vw,84px);font-weight:400;letter-spacing:-.04em;
  line-height:1.16;margin-top:8px;color:var(--text)}
.xz-truth em{font-style:normal;color:var(--gold)}

/* ── 窗口期 ── */
.xz-bars{margin-top:38px;max-width:660px}
.xz-bar-row{display:grid;grid-template-columns:86px 1fr 72px;align-items:center;gap:16px;
  margin-bottom:13px;font-size:12px;color:var(--dim)}
.xz-bar{height:5px;background:rgba(232,230,224,.08);overflow:hidden}
.xz-bar i{display:block;height:100%;width:0;background:var(--gold-deep);
  transition:width 1.4s var(--e);transition-delay:var(--d,0ms)}
.xz-bars.go .xz-bar i{width:var(--w)}
.xz-bar-row b{font-weight:400;color:var(--dim);text-align:right}
.xz-bar-row.hot i{background:var(--gold)}
.xz-bar-row.hot b{color:var(--gold)}

/* ── 三个提问模板 ── */
.xz-prompts{margin-top:34px;max-width:840px;border-top:1px solid var(--line-soft)}
.xz-prompt{display:flex;align-items:center;gap:16px;padding:15px 0;
  border-bottom:1px solid var(--line-soft)}
.xz-prompt small{font-size:9.5px;letter-spacing:.16em;font-weight:500;
  color:var(--gold-deep);width:66px;flex:none}
.xz-prompt .pt{flex:1;font-size:14px;font-weight:200;color:var(--dim);line-height:1.9}
.xz-prompt .pt mark{background:none;color:var(--gold)}
.xz-copy{flex:none;font-size:10.5px;letter-spacing:.12em;padding:4px 12px;
  border:1px solid var(--line);border-radius:999px;background:none;color:var(--faint);
  cursor:pointer;transition:border-color .3s,color .3s;font-family:inherit}
.xz-copy:hover{border-color:var(--gold-deep);color:var(--gold)}

/* ── 选力诊断 ── */
.xz-diag{margin-top:clamp(34px,5vh,50px);display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,72px);padding-top:clamp(26px,4vh,38px);border-top:1px solid var(--line)}
.xz-diag .xz-say{font-size:clamp(20px,2.3vw,28px);line-height:1.5}
.xz-diag ul{list-style:none;display:grid;gap:11px}
.xz-diag li{display:flex;gap:11px;font-size:13.5px;font-weight:200;
  line-height:1.95;color:var(--dim)}
.xz-diag li::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;
  background:var(--gold-deep);margin-top:.8em}
.xz-cta{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.xz-cta small{color:var(--faint);font-size:12px;font-weight:200}

/* ── 宽屏遮罩：这一页字大，左侧压黑段拉长一点 ── */
body.xz #scrim{background:linear-gradient(90deg,
  rgba(5,5,5,.97) 0%,rgba(5,5,5,.95) 42%,rgba(5,5,5,.84) 54%,
  rgba(5,5,5,.5) 66%,rgba(5,5,5,.14) 78%,transparent 88%)}

/* ── 窄屏 ── */
@media(max-width:960px){
  .xz-two{grid-template-columns:1fr;gap:clamp(30px,6vw,50px)}
  .xz-chat{justify-self:start;max-width:100%}
  .xz-filters{grid-template-columns:1fr 1fr}
  .xz-wheel-wrap{grid-template-columns:1fr;gap:clamp(30px,6vw,48px)}
  .xz-wheel{max-width:360px;margin-inline:auto}
  .xz-diag{grid-template-columns:1fr}
  /* 窄屏字小、粒子却铺得开，压黑段要拉到 78% 才不打架 */
  body.xz #scrim{background:linear-gradient(180deg,
    rgba(5,5,5,.97) 0%,rgba(5,5,5,.95) 52%,rgba(5,5,5,.86) 68%,
    rgba(5,5,5,.56) 80%,rgba(5,5,5,.18) 92%,transparent 100%)}
}
@media(max-width:760px){
  /* 手机上没有"一屏"这回事，一段接一段排，别让屏屏之间空出半屏 */
  .xz-screen{min-height:0;padding-block:clamp(62px,9vh,92px)}
  .xz-but{min-height:46vh;min-height:46svh}
  .xz-era{grid-template-columns:1fr;gap:4px;padding:15px 0}
  .xz-ages{grid-template-columns:1fr}
  .xz-ages>div{padding:14px 0;border-bottom:1px solid var(--line-soft)}
  .xz-filters{grid-template-columns:1fr}
  .xz-filter{padding:16px 0}
  .xz-filter .fd{font-size:11.5px}
  .xz-filter .left{display:none}
  .xz-chat-body{min-height:236px}
  .xz-prompt{flex-wrap:wrap;gap:8px 14px}
  .xz-prompt .pt{flex:1 1 100%;order:3}
  .xz-prompt .xz-copy{order:2;margin-left:auto}
  .xz-cta{gap:10px}
}
@media(prefers-reduced-motion:reduce){
  .xz-bridge::before{animation:none}
  .xz-morph>span,.xz-slots li,.xz-bar i{transition:none}
}

/* 时代小标 / 段落引言 / 判决句 */
.xz-tag{font-size:10.5px;letter-spacing:.2em;font-weight:500;color:var(--gold-deep);
  margin-bottom:10px}
.xz-pre{font-size:16px;font-weight:200;line-height:2.15;color:var(--dim)}
.xz-slogan{font-size:clamp(40px,7vw,104px);font-weight:400;letter-spacing:-.015em;
  line-height:1.14;color:var(--text);margin-top:clamp(30px,5vh,44px)}
.xz-slogan em{font-style:normal;color:var(--gold)}
/* ══ v14.1 · 选择革命：动效与呼吸（2026-10-22）════════════════════
   ① 三个年代改成「铺桌布」：上沿从左边抖开，三条年代一条条铺过去，
      内容跟着从左往右展开，动词下的金线最后压上
   ② 年份做成「数字 + 年代」两行并放大，三段连成一条时间轴
      —— 时间先于场景，这条线要读得出来
   ③ 对话窗抬成暖黑面，跟 #050505 的底分开
   ④ 飞轮悬停就展开，不用点；离开后自己接着转
   ⑤ 结尾几屏收掉空档（原来一屏只装了半屏东西，剩下半屏是黑的）
   ⑥ 屏与屏之间随滚动轻微错位，交接不再一刀切
   ──────────────────────────────────────────────────────────────── */

/* ── ① 铺桌布 ── */
.xz-eras{--step:200ms;position:relative;border-top:0;padding-top:1px}
/* 桌布的中缝：一条竖轴，从上往下铺 */
.xz-eras::before{content:"";position:absolute;left:2px;top:0;bottom:0;width:1px;
  background:var(--line-soft);transform:scaleY(0);transform-origin:50% 0;
  transition:transform 1.5s var(--e)}
/* 桌布的上沿：从左往右抖开 */
.xz-eras::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:var(--line);transform:scaleX(0);transform-origin:0 50%;
  transition:transform 1s var(--e)}
.xz-eras.cloth::before{transform:scaleY(1)}
.xz-eras.cloth::after{transform:scaleX(1)}

.xz-era{position:relative;border-bottom:0;
  grid-template-columns:clamp(108px,11.5vw,168px) 1fr;
  clip-path:inset(0 100% 0 0);opacity:0;
  transition:clip-path 1s var(--e),opacity .55s linear;
  transition-delay:calc(var(--i,0) * var(--step) + 100ms)}
.xz-era::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--line-soft);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .9s var(--e);
  transition-delay:calc(var(--i,0) * var(--step))}
.xz-eras.cloth .xz-era{clip-path:inset(0 0 0 0);opacity:1}
.xz-eras.cloth .xz-era::after{transform:scaleX(1)}

/* ── ② 时间：数字 + 年代，两行，连成一条轴 ── */
.xz-era .tag{position:relative;display:block;padding-left:17px;
  font-size:inherit;letter-spacing:0;color:var(--gold)}
.xz-era .tag b{display:block;font-size:clamp(21px,2.05vw,29px);font-weight:400;
  letter-spacing:-.02em;line-height:1.05;color:var(--gold)}
/* 「年代」挪出文档流，年份的基线和右边那行大字对齐 */
.xz-era .tag i{position:absolute;left:17px;top:100%;margin-top:2px;font-style:normal;
  font-size:9.5px;letter-spacing:.26em;font-weight:500;line-height:1;color:var(--faint)}
.xz-era .tag::before{content:"";position:absolute;left:0;top:.42em;width:5px;height:5px;
  border-radius:50%;background:var(--gold);opacity:0;transform:scale(.3);
  transition:opacity .45s,transform .55s var(--e);
  transition-delay:calc(var(--i,0) * var(--step) + 300ms)}
.xz-eras.cloth .xz-era .tag::before{opacity:1;transform:scale(1)}
/* 动词下的金线：等桌布铺到这一行，再压上去 */
.xz-v{position:relative;color:var(--gold);box-shadow:none}
.xz-v::after{content:"";position:absolute;left:-.02em;right:-.02em;bottom:0;height:1px;
  background:var(--gold-deep);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .75s var(--e);
  transition-delay:calc(var(--i,0) * var(--step) + 620ms)}
.xz-eras.cloth .xz-v::after{transform:scaleX(1)}

/* 断一口气那屏：不要留成一整屏黑 */
.xz-but{min-height:60vh;min-height:60svh}

/* ── ③ 对话窗：暖黑面，和底色分开 ── */
.xz-chat{background:#12110d;border-color:rgba(201,164,92,.24);
  box-shadow:inset 0 1px 0 rgba(232,230,224,.05)}
.xz-chat-head{background:rgba(201,164,92,.05);
  border-bottom-color:rgba(201,164,92,.16);color:var(--dim)}
.xz-chat-head b{background:rgba(201,164,92,.55)}
.xz-q{background:rgba(201,164,92,.15);border:1px solid rgba(201,164,92,.22);
  color:#f4f1ea}
.xz-pick{border-top-color:rgba(201,164,92,.14)}
.xz-chat-a .lead{color:#918c81}

/* ── ④ 飞轮：悬停即展开 ── */
.xz-wn.on{transform:translate(-50%,-50%) scale(1.1)}
.xz-wd{will-change:opacity,transform}

/* ── ⑤ 结尾几屏：内容多少，屏就多高 ── */
.xz-screen.xz-tight{min-height:0;padding-block:clamp(74px,9.5vh,112px)}

/* ── ⑥ 屏间错位：只在桌面，手机上不做 ── */
@media(min-width:761px){
  main > .xz-screen > .wrap{transform:translate3d(0,var(--dy,0px),0)}
}
@media(prefers-reduced-motion:reduce){
  .xz-era,.xz-era::after,.xz-v::after,.xz-eras::before,.xz-eras::after,
  .xz-era .tag::before{transition:none;opacity:1;transform:none;clip-path:none}
  main > .xz-screen > .wrap{transform:none}
}

/* ── ⑥ 补：961~1200 这档两栏还并着排，字会骑到粒子上，左侧压黑再延 10% ── */
@media(min-width:961px) and (max-width:1200px){
  body.xz #scrim{background:linear-gradient(90deg,
    rgba(5,5,5,.98) 0%,rgba(5,5,5,.96) 50%,rgba(5,5,5,.88) 62%,
    rgba(5,5,5,.6) 72%,rgba(5,5,5,.2) 84%,transparent 94%)}
}

/* ── ⑥ 补：这一章到位时，标题前那道短横伸出来 —— 模块交接有一个落点 ── */
.xz-kick::before{transition:width .7s var(--e),background-color .7s}
.xz-screen.act .xz-kick::before{width:52px;background:var(--gold)}

/* 手机上「但是」那屏还是收着点 */
@media(max-width:760px){
  .xz-but{min-height:46vh;min-height:46svh}
  .xz-era{grid-template-columns:96px 1fr;padding:16px 0}
  .xz-era .tag b{font-size:22px}
}

/* ══ v14.2 · 可读性校准（2026-10-22）════════════════════════════════
   实测（1440×900，#050505 底）：全页 55 个元素低于正文 4.5:1 的下限，
   清一色 2.62:1 —— 就是「货架时代 / 搜索时代」「同样的东西，比三家」
   「AI 检索时有没有你」这一层说明字。两个原因叠在一起：
     ① --faint 定得太暗（已在 :root 提到 #7d786a，4.6:1）
     ② 小字还挂 200 字重，中文细体在 9~12px 上笔画直接消失
   这一块只动三件事：颜色、字号、字重。布局、结构、动效一律不碰。
   ──────────────────────────────────────────────────────────────── */

/* ── ① 三个年代：副句是「读」的，不是「看」的 ── */
.xz-era .sub{font-size:13.5px;font-weight:400;color:#8f8a7e;margin-top:7px}
.xz-era .tag i{font-size:10px;letter-spacing:.2em}

/* ── ② 货架 / 搜索 / 答案时代：这三个词是这一屏的主语，不能糊 ── */
.xz-ages small{font-size:11.5px;letter-spacing:.14em;font-weight:500;color:var(--dim)}
.xz-ages>div{padding-top:18px}

/* ── ③ 十选三与三个位置 ── */
.xz-slots-head{font-size:12px;color:var(--dim)}
.xz-slots li b{font-size:10.5px;color:var(--dim)}
.xz-name>p{font-size:13.5px;font-weight:400;letter-spacing:.06em;color:var(--dim)}

/* ── ④ 五道过滤器：说明句原来 11px / 200 字重，最不该省的一处 ── */
.xz-filter .fn{font-size:10.5px;letter-spacing:.16em;color:var(--gold)}
.xz-filter .fd{font-size:12.5px;font-weight:400;color:var(--faint)}
.xz-filter .left{font-size:10.5px;color:var(--dim)}

/* ── ⑤ 飞轮：轴心、提示、门槛标签 ── */
.xz-hub small{font-size:10.5px;letter-spacing:.12em;color:var(--dim)}
.xz-wd-step{font-size:10.5px;color:var(--gold)}
.xz-wd-gate{font-size:11.5px;letter-spacing:.04em;color:var(--dim)}
.xz-wd-gate span{font-size:10.5px}

/* ── ⑥ 结尾几块 ── */
.xz-eq-note span{font-size:12.5px;color:var(--dim)}
.xz-prompt small{font-size:10.5px;letter-spacing:.12em;color:var(--gold)}
.xz-copy{font-size:11.5px;color:var(--dim)}
.xz-cta small{font-size:12.5px;font-weight:400;color:var(--faint)}

/* ── ⑦ 引子与对话窗标题栏 ── */
.xz-kick{font-size:11px}
.xz-tag{font-size:11px;color:var(--gold)}
.xz-chat-head{font-size:10.5px;color:var(--dim)}
/* 页脚三问的小标题：金色太沉，读到第三个字就断了 */
.gj-foot h6{font-size:11px;color:var(--gold)}

/* ── ⑧ 字重纪律：200 是给 16px 以上正文的；16px 以下用 200，中文笔画会消失 ── */
.xz-lede{font-size:16px;font-weight:200;color:#a8a49a}
.xz-name .tail{font-weight:400;color:var(--dim)}
.xz-chain-cap{font-weight:400;color:var(--dim)}
.xz-wd-desc{font-size:15px;font-weight:400;color:var(--dim)}
.xz-diag li{font-weight:400;color:var(--dim)}
.xz-prompt .pt{font-weight:400;color:var(--dim)}
.xz-eq-note{font-weight:400;color:var(--dim)}

/* ══ v15 · 问题链（2026-10-23）══════════════════════════════════════
   这一页真正的骨架是一串问题：读者跟着问题走，问题是导航，不是装饰。
   原来这些问题全塞在 .xz-bridge 里（15~23px 灰字，屏尾一行），
   等于把导航做成了脚注——所以读起来"没有头绪"。
   现在把「提问」提成一等组件：
     · 每屏顶部一个 .xz-ask：金色 Q 编号 + 白色大字 + 一道发丝线
     · 问题后面紧跟 .xz-ans（回答句），字号回到正文级
       「问大、答小」，一眼看出这是问答，不是两段并列的断言
     · 七个问题 Q1–Q7 从现象一路串到"为什么是我们"
   ──────────────────────────────────────────────────────────────── */

.xz-ask{position:relative;max-width:26em;margin-bottom:clamp(22px,3.2vh,38px);
  padding-top:clamp(15px,2.1vh,24px)}
.xz-ask::before{content:"";position:absolute;left:0;top:0;width:min(100%,760px);height:1px;
  background:var(--line)}
.xz-ask .qn{display:flex;align-items:center;gap:12px;margin-bottom:13px;
  font-size:10.5px;letter-spacing:.26em;font-weight:500;color:var(--gold)}
.xz-ask .qn::after{content:"";width:56px;height:1px;background:var(--gold-deep);flex:none}
.xz-ask p{font-size:clamp(23px,2.9vw,40px);font-weight:400;letter-spacing:-.035em;
  line-height:1.36;color:var(--text)}
.xz-ask em{font-style:normal;color:var(--gold)}

/* 回答句：比问题小一档，白色但不抢 */
.xz-ans{font-size:clamp(19px,2.05vw,29px);font-weight:400;letter-spacing:-.03em;
  line-height:1.5;color:var(--text)}
.xz-ans em{font-style:normal;color:var(--gold)}
.xz-ans .dim{color:#6e6a61}

/* 「任何一关为零」只出现一次，就在乘法下面收尾；这里给它重量 */
.xz-zero{margin-top:clamp(24px,3.4vh,38px);font-size:clamp(21px,2.5vw,35px);
  font-weight:400;letter-spacing:-.032em;line-height:1.42;color:var(--text)}
.xz-zero em{font-style:normal;color:var(--gold)}

/* ── 为什么是我们：信源散落在四周 ── */
.xz-srcfield{position:relative;margin-top:clamp(24px,3.6vh,40px);min-height:392px}
.xz-srcfield .copy{position:relative;z-index:2;max-width:25em;
  padding-top:clamp(4px,1.2vh,14px)}
.xz-srcfield .copy .xz-ans{margin-bottom:14px}
.xz-lg{position:absolute;left:var(--x);top:var(--y);
  transform:rotate(var(--r,0deg)) scale(var(--s,1));opacity:var(--o,.4);
  transition:opacity .45s var(--e)}
.xz-lg img{height:clamp(16px,1.55vw,22px);width:auto}
.xz-srcfield.done .xz-lg{animation:xzfall 1.1s var(--e) both;
  animation-delay:calc(var(--d,0) * 70ms)}
@keyframes xzfall{from{opacity:0;transform:rotate(var(--r,0deg)) scale(calc(var(--s,1)*1.3)) translateY(10px)}
  to{opacity:var(--o,.4);transform:rotate(var(--r,0deg)) scale(var(--s,1))}}
.xz-src-note{margin-top:clamp(18px,2.4vh,26px);font-size:11px;letter-spacing:.04em;color:var(--faint)}

@media(max-width:760px){
  .xz-srcfield{min-height:0}
  .xz-srcfield .copy{max-width:none}
  .xz-lg{position:static;display:inline-block;margin:14px 16px 0 0;transform:none;
    opacity:.55;animation:none!important}
  .xz-lg img{height:18px}
}
@media(prefers-reduced-motion:reduce){
  .xz-srcfield.done .xz-lg{animation:none}
}

/* ── 命名块的尾句：允许一句金色定调（选择飞轮 → 让信任复利） ── */
.xz-name .tail em{font-style:normal;color:var(--gold)}
/* 两段说明句紧挨着时，行距别再叠加 22px */
.xz-lede + .xz-lede{margin-top:14px}
/* 断行控制：.brd 只在桌面断，.br-m 只在窄屏断（站内已有 .br-m） */
.brd{display:inline}
@media(max-width:760px){ .brd{display:none} }
/* Q1 那屏：问题在顶上，答案别被行内居中的网格顶到半屏之外 */
#xzClient .xz-two{align-items:start}
#xzClient .xz-ask{margin-bottom:clamp(20px,2.6vh,30px)}
/* .xz-ask 的宽度按 17px 算过 em，问题句是 40px，会被压成三行 —— 宽度交给 p 自己算 */
.xz-ask{max-width:min(100%,800px)}
.xz-ask p{max-width:15.5em}
/* 问题句自然断行时容易出现「…有多稀 / 缺？」这种孤字，交给浏览器把两行匀一匀 */
.xz-ask p{max-width:19em;text-wrap:balance}
/* 信源标：字号统一到一档，宽度也收，免得 36 氪比界面大两倍 */
.xz-srcfield .copy{max-width:28em}
.xz-lg img{height:clamp(15px,1.42vw,20px);max-width:104px;object-fit:contain;object-position:left center}

/* 选择飞轮：名字下面先给一句定调（让信任复利），再给解释 */
.xz-name .tail-2 .k{font-size:clamp(19px,2vw,27px);font-weight:400;letter-spacing:-.02em;
  color:var(--gold);margin-bottom:8px}
.xz-name .tail-2 p{font-size:14.5px;line-height:2;color:var(--dim);max-width:32em}

/* 手机上也要按语义断行：Q1「…有一个品牌，/ 意味着什么？」比「意/味着」好读 */
@media(max-width:760px){
  .brd{display:inline}
  .xz-ask p{font-size:22px;line-height:1.42}
  .xz-ask{padding-top:14px}
  /* 信源标：手机上给每个一个固定的小盒子，否则宽窄差三倍 */
  .xz-lg{width:70px;height:20px;display:inline-flex;align-items:center;
    margin:14px 16px 0 0;vertical-align:middle}
  .xz-lg img{max-width:100%;max-height:20px;height:auto}
}

/* 信源标分两档：媒体字标信息密，30px 才认得出；平台图标是方标，22px 就够 */
.xz-lg.lg-m img{height:clamp(21px,2.05vw,30px);max-width:132px}
.xz-lg.lg-p img{height:clamp(16px,1.5vw,22px);max-width:22px}
@media(max-width:760px){
  .xz-lg.lg-m{width:88px;height:24px}
  .xz-lg.lg-m img{max-height:24px}
  .xz-lg.lg-p{width:44px;height:20px}
  .xz-lg.lg-p img{max-height:20px}
}

/* 窄于 1200 时信源标会压到说明句上（绝对定位按百分比走），改成流式排 */
@media(max-width:1200px) and (min-width:761px){
  .xz-srcfield{min-height:0}
  .xz-srcfield .copy{max-width:none;padding-top:0}
  .xz-lg{position:static;display:inline-flex;align-items:center;
    margin:18px 22px 0 0;transform:none;opacity:.55;animation:none!important}
}

/* ══ v15.3 · 成为答案 / 捷径 / 结尾（2026-10-23）════════════════════
   三处改动都围绕同一件事：这一章讲的是判断，不是服务。
   ① 理念屏的核心从「铺陈」挪到「成为答案」——铺陈是方法，成为答案是落点。
      「成为答案」四个字做成全章最大的字，它下面才展开：
      长在哪（战略/运营/产品设计）→ 靠什么放大（高质量、可复利的铺陈）
      → 长出什么（品牌 / IP / 生态位）。原来结语屏的「不止是 GEO」并进来。
   ② 捷径屏：先把「有。」轻轻放下，重量全部给「一旦被判定成低质信源」——
      这才是那条底线成立的唯一理由。
   ③ 结尾不做对照表、不做转化动作：只回答「选择革命是什么、从哪来」，
      想知道更多就来信。它是一套可以带走自用的判断，不是一份报价单。
   ──────────────────────────────────────────────────────────────── */

/* ── 理念：四个字是这一屏的落点，也是全章最大的字 ── */
.xz-becom{font-size:clamp(46px,7.6vw,108px);font-weight:400;letter-spacing:-.05em;
  line-height:1.02;color:var(--text);margin-top:clamp(6px,1.4vh,14px)}
.xz-becom em{font-style:normal;color:var(--gold)}

/* 三列：编号在标题上方，不做左侧编号列；只留三个词，解释交给读者 */
.xz-creed-list{display:grid;grid-template-columns:repeat(3,1fr);
  column-gap:clamp(20px,2.8vw,44px)}
.xz-creed-list>div{padding:clamp(14px,1.9vh,19px) 0 0;border-top:1px solid var(--line-soft)}
.xz-creed-list b{display:block;font-size:10.5px;letter-spacing:.2em;font-weight:500;
  color:var(--gold-deep);margin-bottom:9px}
.xz-creed-list strong{display:block;font-size:clamp(21px,2vw,27px);font-weight:400;
  letter-spacing:-.015em;color:var(--text);line-height:1.4;margin-bottom:2px}
.xz-creed-list span{display:block;font-size:13px;font-weight:400;line-height:1.95;
  color:var(--faint);margin-top:8px;text-wrap:balance}

/* 这一屏要一屏装下，呼吸留在段与段之间 */
#xzBecom{padding-block:clamp(80px,10vh,120px)}
#xzBecom .xz-ask{padding-top:12px;margin-bottom:clamp(16px,2.4vh,26px)}
#xzBecom .xz-ask p{font-size:clamp(23px,2.7vw,36px)}
#xzBecom .xz-lede{max-width:40em;margin-top:clamp(20px,3vh,30px);text-wrap:pretty}
#xzBecom .xz-lede em{font-style:normal;color:var(--gold);white-space:nowrap}
#xzBecom .xz-creed-list{margin-top:clamp(34px,5.4vh,58px)}

/* ── 捷径：「有。」轻，后面的代价重 ── */
.xz-yes{margin-top:clamp(2px,.8vh,8px);font-size:clamp(25px,3.1vw,43px);font-weight:400;
  letter-spacing:-.04em;line-height:1.2;color:var(--dim)}
.xz-edge-hi{margin-top:clamp(20px,3vh,32px);font-size:clamp(22px,2.8vw,40px);
  font-weight:400;letter-spacing:-.035em;line-height:1.48;color:var(--text);max-width:28em;
  text-wrap:balance}
.xz-edge-hi em{font-style:normal;color:var(--gold)}
/* 这一屏字大、行多，收一档页边与段距，保证一屏装下 */
#xzEdge{padding-block:clamp(64px,8vh,88px)}
#xzEdge .xz-lede{margin-top:18px}
#xzEdge .xz-name{margin-top:clamp(30px,4.2vh,44px)}
#xzEdge .xz-truth{font-size:clamp(34px,5.4vw,76px)}

/* ── 结语：是什么 / 从哪来 ── */
.xz-what{display:grid;grid-template-columns:1fr 1fr;
  gap:0 clamp(30px,4.4vw,72px);margin-top:clamp(26px,4vh,44px);
  border-top:1px solid var(--line-soft)}
.xz-what>div{padding-top:clamp(16px,2.2vh,24px)}
.xz-what b{display:block;font-size:10.5px;letter-spacing:.24em;font-weight:500;
  color:var(--gold-deep);margin-bottom:10px}
.xz-what p{font-size:15.5px;font-weight:400;line-height:2;color:var(--dim);max-width:none;
  text-wrap:balance}
.xz-what p em{font-style:normal;color:var(--text)}

/* ── 结尾：不推，只留一个地址 ── */
.xz-end{margin-top:clamp(30px,4.6vh,52px);padding-top:clamp(16px,2.2vh,24px);
  border-top:1px solid var(--line)}
.xz-end-say{font-size:clamp(22px,2.9vw,38px);font-weight:400;letter-spacing:-.038em;
  line-height:1.4;color:var(--text);max-width:20em}
.xz-end-say em{font-style:normal;color:var(--gold)}
.xz-end-mail{margin-top:14px;font-size:15px;font-weight:400}
.xz-end-mail a{color:var(--text);text-decoration:none;padding-bottom:3px;
  border-bottom:1px solid var(--gold-deep);transition:color .3s,border-color .3s}
.xz-end-mail a:hover{color:var(--gold);border-color:var(--gold)}

#xzEnd{padding-block:clamp(66px,8vh,94px)}
#xzEnd .xz-say{font-size:clamp(26px,3.15vw,43px)}

@media(max-width:960px){
  .xz-creed-list{grid-template-columns:1fr}
  .xz-what{grid-template-columns:1fr;border-top:0}
  .xz-what>div{border-top:1px solid var(--line-soft)}
}
@media(max-width:760px){
  .xz-becom{font-size:var(--t-name);letter-spacing:-.05em}
  #xzBecom .xz-ans{font-size:17px;line-height:1.95}
  .xz-creed-list>div{padding:16px 0 0}
  .xz-creed-list span{font-size:13.5px}
  /* 手机单列，句子一行放得下，不用按桌面列宽断 */
  .xz-creed-list .brd{display:none}
  .xz-edge-hi{font-size:21px;line-height:1.6}
  .xz-what p{font-size:14.5px;line-height:2}
  .xz-end-say{font-size:25px}
}
/* 768 高的笔电上，结语屏底部会差一点 */
@media(min-width:761px) and (max-height:820px){
  #xzEnd{padding-block:58px}
  .xz-end{margin-top:26px;padding-top:16px}
}

/* ══ v15.4 · 五关可展开 / 成为答案的对话窗（2026-10-23）════════════════
   ① 五道过滤器原来五列全摊开，字小、行密，读起来是一堵墙。
      改成五扇门：默认只留编号、名字、一句问；指针停在哪一关，
      那一关才拉开，露出说明和这一关的流失数——自己推开的，才记得住。
      高度用 min-height 锁死，拉开时不顶动下面的字。
   ② 理念屏右侧补一个对话窗，跟开头那句「我们问 AI」呼应：
      同一件事，先看见它在回答里被排在第一位，再谈为什么。
   ──────────────────────────────────────────────────────────────── */

/* ── 五扇门 ── */
.xz-filters{display:flex;align-items:stretch;min-height:268px}
.xz-filter{position:relative;flex:1 1 0;min-width:0;
  padding:clamp(18px,2.4vh,26px) clamp(14px,1.5vw,20px);
  transition:flex-grow .62s var(--e),background .45s}
/* 门楣：停上去，一道金线从左拉开——先给一个“可以进”的信号 */
.xz-filter::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .55s var(--e)}
.xz-filter:hover::before,.xz-filter:focus-visible::before{transform:scaleX(1)}
.xz-filter:hover,.xz-filter:focus-visible{flex-grow:1.7;background:#0b0a09}
.xz-filter .fq{font-size:12.5px;font-weight:400;color:var(--dim)}
.xz-filter .fmore{display:block;overflow:hidden;max-height:0;opacity:0;margin-top:0;
  transition:max-height .58s var(--e),opacity .4s .08s,margin-top .5s var(--e)}
.xz-filter:hover .fmore,.xz-filter:focus-visible .fmore{max-height:200px;opacity:1;
  margin-top:12px}
.xz-filter .fd{display:block;font-size:12.5px;font-weight:400;line-height:1.9;
  color:var(--faint)}
.xz-filter .left{display:block;margin-top:9px;padding-top:0;font-size:10.5px;
  letter-spacing:.1em;color:var(--dim)}
/* 分值钉在底部：不展开时它就是这一列的落款 */
.xz-filter .fv{margin-top:auto;padding-top:14px;font-size:13px;letter-spacing:.06em;
  color:var(--dim);transition:color .3s}
.xz-filter:hover .fv{color:var(--text)}

/* 没有悬停的设备（触屏、窄屏），门一律开着 */
@media(hover:none),(max-width:960px){
  .xz-filters{display:grid;grid-template-columns:1fr 1fr;min-height:0}
  .xz-filter{flex:none}
  .xz-filter .fmore{max-height:none;opacity:1;margin-top:10px}
  .xz-filter .fv{margin-top:10px;padding-top:0}
}
@media(max-width:760px){
  .xz-filters{grid-template-columns:1fr}
  .xz-filter{padding:16px 0}
}

/* ── 理念屏：左边下判断，右边看见它在回答里排第一 ── */
@media(min-width:961px){
  #xzBecom .xz-why-two{grid-template-columns:1.12fr .88fr;gap:clamp(30px,4vw,70px);
    align-items:center}
}
#xzBecom .xz-why-two .xz-ask{margin-bottom:clamp(14px,2vh,22px)}
@media(max-width:960px){
  #xzBecom .xz-why-two .xz-chat{margin-top:clamp(26px,4vh,38px)}
}

/* ══ v15.5 · J.A.R.V.I.S. / 成为答案前移 / 飞轮齿轮 / 结语（2026-10-26）══
   ① 新增一屏「J.A.R.V.I.S. 并不遥远」：未来不是"AI 帮你查"，是 agent 替你办完，
      你只管结果。右边一个会呼吸的球，把"已办"一条条吐出来 —— 让人看见，而不是听懂。
   ② 「成为答案」从理念屏前移到答案位之后：答案位是位置，成为答案是落点，
      讲完落点再讲机器怎么筛（五道关）。
   ③ 飞轮背后加两枚咬合的齿轮，慢速反向转，只作背景，不抢字。
   ④ 结语改成"我们做所有服务的目标 → 让你成为答案"，来历一段说清。
   ──────────────────────────────────────────────────────────────── */

/* ── ① J.A.R.V.I.S. 并不遥远 ── */
.xz-jarvis-say{font-size:clamp(38px,5.4vw,78px);font-weight:400;letter-spacing:-.045em;
  line-height:1.04;color:var(--text);max-width:14em}
.xz-jarvis-say em{font-style:normal;color:var(--gold)}
#xzJarvis{padding-block:clamp(84px,11vh,128px)}
#xzJarvis .xz-lede{margin-top:17px;max-width:27em}
#xzJarvis .xz-close{margin-top:clamp(22px,3.2vh,34px);padding-top:clamp(16px,2.2vh,22px);
  border-top:1px solid var(--line-soft);font-size:clamp(16px,1.8vw,22px);
  line-height:1.72;max-width:22em}

/* agent：一个会呼吸的球，下面一条条吐"已办" */
.xz-agent{position:relative;display:flex;flex-direction:column;align-items:flex-end;
  gap:clamp(18px,2.6vh,28px)}
.xz-orb{position:relative;width:clamp(160px,18.5vw,258px);aspect-ratio:1;flex:none;
  margin-right:clamp(24px,5vw,68px)}
.xz-orb span{position:absolute;border-radius:50%}
.xz-orb .o1{inset:0;border:1px solid var(--gold-deep);opacity:.4;
  animation:xzbreathe 6.5s ease-in-out infinite}
.xz-orb .o2{inset:11%;border:1px dashed rgba(201,164,92,.3);
  animation:xzspin 34s linear infinite}
.xz-orb .o3{inset:23%;border:1px solid rgba(201,164,92,.13);
  animation:xzspin 52s linear infinite reverse}
.xz-orb .core{inset:33%;border:0;
  background:radial-gradient(circle at 36% 32%,
    rgba(246,236,210,.92) 0%,rgba(201,164,92,.52) 34%,
    rgba(201,164,92,.12) 66%,rgba(201,164,92,0) 78%);
  box-shadow:0 0 46px rgba(201,164,92,.16);
  animation:xzbreathe 6.5s ease-in-out infinite reverse}
@keyframes xzbreathe{50%{opacity:.6;transform:scale(.965)}}

.xz-feed{display:flex;flex-direction:column;align-items:flex-end;gap:9px;
  width:100%;max-width:420px}
.xz-do{display:flex;gap:11px;align-items:baseline;max-width:100%;
  padding:11px 15px;border:1px solid var(--line-soft);
  border-radius:3px 12px 12px 12px;background:#0a0a09;
  font-size:13px;font-weight:400;line-height:1.75;color:var(--dim);
  opacity:0;transform:translateY(10px) scale(.985);
  transition:opacity .62s var(--e),transform .62s var(--e);
  transition-delay:calc(var(--i) * 140ms)}
.xz-agent.go .xz-do{opacity:1;transform:none}
.xz-do i{flex:none;width:5px;height:5px;border-radius:50%;background:var(--gold);
  margin-top:.62em}
/* 错开一点，像一条条从球里落下来，不是一张列表 */
.xz-do:nth-child(2){margin-right:6%}
.xz-do:nth-child(3){margin-right:1.5%}
.xz-do:nth-child(4){margin-right:10%}

/* ── ③ 飞轮：两枚齿轮，慢速反向咬合 ── */
.xz-cogs{position:absolute;inset:0;pointer-events:none;z-index:0}
.xz-wheel .xz-cog{position:absolute;inset:auto;height:auto;
  fill:none;stroke:var(--gold-deep);overflow:visible;
  transform-origin:50% 50%;will-change:transform}
.xz-wheel .xz-cog.c1{left:16%;top:16%;width:68%;
  animation:xzspin 120s linear infinite}
.xz-cog .t{stroke-width:8;stroke-dasharray:8 7;opacity:.19}
.xz-cog .r{stroke-width:.9;opacity:.14}
.xz-cog .h{stroke-width:1.1;opacity:.16}
.xz-cog .s{stroke-width:.9;opacity:.09}
@keyframes xzspin{to{transform:rotate(360deg)}}

/* ── ④ 窗口期：快，而且窗口更短 ── */
.xz-fast{font-size:clamp(19px,2.3vw,30px);font-weight:400;letter-spacing:-.03em;
  line-height:1.4;color:var(--text);margin-top:clamp(10px,1.6vh,16px)}
.xz-fast em{font-style:normal;color:var(--gold)}
#xzWhen .xz-bars{margin-top:clamp(28px,4vh,40px)}

/* ── 结语：目标一句，来历一段 ── */
#xzEnd .xz-ans{margin-top:clamp(10px,1.6vh,16px)}
#xzEnd .xz-lede{margin-top:clamp(15px,2.1vh,21px);max-width:44em;line-height:2.05}
#xzEnd .xz-lede .dim{color:var(--faint)}
#xzEnd .xz-what{margin-top:clamp(24px,3.4vh,38px)}
#xzEnd .xz-end{margin-top:clamp(24px,3.4vh,38px)}

/* ── 窄屏 ── */
@media(max-width:760px){
  .xz-jarvis-say{font-size:clamp(33px,9.8vw,44px);letter-spacing:-.04em}
  #xzJarvis .xz-close{font-size:15px;line-height:1.8}
  .xz-agent{align-items:center;gap:20px;margin-top:10px}
  .xz-orb{width:128px;margin:0 auto}
  .xz-feed{max-width:none;align-items:stretch}
  .xz-do{font-size:12.5px;padding:10px 13px;margin-right:0!important}
  .xz-wheel .xz-cog.c1{left:16%;top:16%;width:68%}
}
/* 768 高的笔电：这屏左栏字大，收一档，别让"选择一旦交出去"掉出去 */
@media(min-width:761px) and (max-height:820px){
  #xzJarvis{padding-block:70px}
  .xz-jarvis-say{font-size:clamp(36px,4.6vw,62px)}
}

@media(prefers-reduced-motion:reduce){
  .xz-orb span,.xz-wheel .xz-cog{animation:none}
  .xz-do{transition:none}
}

/* 主张句里的金色重音（窗口期「都要快」、结语「目标」） */
.xz-say em{font-style:normal;color:var(--gold)}
/* 成为答案：问题句与四个字之间要留一口气，别贴在一起 */
#xzBecom .xz-becom{margin-top:clamp(32px,4.6vh,48px)}

/* 飞轮：轮盘略放大，右侧留白均开，说明栏不贴中线
   —— 必须限定在桌面断点内，否则会压掉 ≤960 的单列规则（说明栏被挤成竖排） */
@media(min-width:961px){
  .xz-wheel-wrap{grid-template-columns:minmax(280px,440px) 1fr;gap:clamp(40px,6vw,96px)}
}

/* ══ v15.7 · 对位：让视线在页面上左右走（2026-10-26）══════════════
   一直贴着左基线，读久了会平。所以给页面一套「对位」规则——
   不是随机左右摆，而是按内容性质分配：
   · 讲事、举证、推进 → 守左基线（不加类）
   · 命名、断句、落槌 → 居中（.xz-ctr / 屏级居中）
   · 判决、收笔       → 整块右移（.xz-shift）
   判定标准：这一屏是「在说」还是「说完了」。「说完了」才离开左轴。
   ──────────────────────────────────────────────────────────────── */

/* ── 通用工具 ── */
.xz-ctr{text-align:center}  /* 注意：不要叫 .xz-mid —— 那个名字已被链条中段占用（max-width:0 会塌） */
.xz-kick.xz-ctr{justify-content:center}
.xz-name.xz-ctr .tail{margin-inline:auto;max-width:27em;text-wrap:balance}
.xz-name.xz-ctr .tail-2 p{margin-inline:auto;max-width:26em;text-align:center;text-wrap:balance}
/* 过滤器屏：命名块挪到中间后，下面算账那两行也跟着收中，否则「中—左—左」会跳 */
#xzFilter .xz-eq{justify-content:center}
#xzFilter .xz-zero,#xzFilter .xz-eq-note{text-align:center}
/* 整块右移：只挪位置，不改字序，长段落仍是左对齐好读 */
.xz-shift{margin-left:clamp(0px,15vw,230px)}
/* 判决屏：问题在左起，判决在右收，一句话跨过整屏 */
#xzNotExist .xz-slogan{text-align:right}

/* ── 断句屏：两个字居中，断得更干净 ── */
#xzBut .xz-huge{text-align:center}

/* ── 命名屏：整屏居中，这是全章第一次落槌 ── */
#xzName{text-align:center}
#xzName .xz-kick{justify-content:center}
#xzName .xz-chain{justify-content:center;margin-inline:auto}
#xzName .xz-chain-cap{margin-inline:auto;max-width:34em;line-height:2.1}
/* 链条变宽时两边同时展开，比单边拉长更像"接上" */
#xzName .xz-chain .xz-mid{transform-origin:50% 50%}

/* ── 底线屏：不居中。「有。」「骗得过一次」「真相」是一条链，
   中间任何一块离开左轴，链就断了 ── */
#xzEdge .xz-name>p{margin-bottom:10px}

/* ── 你的客户也是：不动图文左右，只把这一屏的两栏拉开一点 ── */
@media(min-width:961px){
  #xzClient .xz-two{grid-template-columns:1.02fr .98fr;gap:clamp(48px,7vw,110px)}
}

/* ── 结语：居中收笔，留足余白 ── */
#xzEnd{text-align:center;min-height:84vh;min-height:84svh;
  padding-block:clamp(80px,11vh,124px)}
#xzEnd .xz-kick{justify-content:center}
#xzEnd .xz-say{max-width:100%}
#xzEnd .xz-ans{margin-top:clamp(14px,2.2vh,22px);max-width:30em;margin-inline:auto}
#xzEnd .xz-lede{margin-inline:auto;max-width:40em;line-height:2.1}
#xzEnd .xz-end{margin-top:clamp(30px,4.6vh,52px);border-top:0;padding-top:0}
#xzEnd .xz-end-mail{margin-top:16px}
/* 屏内短横在居中时会偏，收掉 */
#xzEnd .xz-kick::before{display:none}

/* ── 窄屏：对位一律收回左轴，只有命名屏与结语保留居中 ── */
@media(max-width:960px){
  /* 手机上不缩进：屏宽本来就窄，再缩会把问题句挤成碎行 */
  .xz-shift{margin-left:0;max-width:100%}
  #xzEnd{min-height:0;min-height:0}
  #xzEnd .xz-say,#xzEnd .xz-ans{text-align:center}
  #xzEnd .xz-lede{text-align:center}
}
/* 768 高的笔电：结语屏居中后要留一口气，别顶到边 */
@media(min-width:761px) and (max-height:820px){
  #xzEnd{min-height:0;padding-block:64px}
}

/* 结语收尾动作：降到副句以下，不做第二次高潮 */
#xzEnd .xz-end-say{font-size:clamp(18px,2.1vw,24px);letter-spacing:-.02em;margin-inline:auto}

/* 底线屏收一下：「有。」和它的解释之间要有一口气 */
#xzEdge .xz-yes + .xz-lede{margin-top:clamp(26px,3.6vh,34px)}
#xzEdge .xz-name{margin-top:clamp(30px,4.4vh,46px)}
/* 结语屏：84svh 时下方空太多，收到 76svh，内容自然靠中 */
#xzEnd{min-height:76vh;min-height:76svh}

/* 手机：窄屏不做左右错位，判决句收回左轴 */
@media(max-width:760px){
  #xzNotExist .xz-slogan{text-align:left}
}

/* ══ v16 · 一个音量，一口气（2026-10-26）════════════════════════════
   上一轮修的是「横向对位」，这一轮修纵向的两件事。

   ① 音量：全页只留一处最高音。
      「但是。」172px 曾是全页最响的一下，可它只是个过渡词；而四个概念名
      共用 98px —— 四个重点一起喊，等于没有重点。现在一句话一个音量：

          成为答案 126  >  但是 118  >  判决 92  >  概念名 78
          >  贾维斯 74  >  真相 70  >  问题句 36~40  >  说明 15

   ② 呼吸：三屏（答案位 1297 / 五道过滤器 1343 / 选择飞轮 1289）压进一屏，
      让「我们把它叫作 ×××」这一下落点回到折线以内，不再是滚半屏才看见的图注。
      短屏的上下留白抬到 ≥96px，屏与屏之间才有真正的停顿。
   ──────────────────────────────────────────────────────────────── */

/* ── ① 字级阶梯 ──
   v24 改：「概念名」从 L4 提到 L1。概念名是骨架，不是说明；
   五个名字（选择革命/答案位/五道过滤器/选择飞轮/成为答案）统一用 --t-name，
   谁都不许比另一个名字小。 */
.xz-becom{font-size:var(--t-name);letter-spacing:-.052em}               /* L1 名字 */
.xz-huge{font-size:clamp(52px,8.2vw,118px)}                           /* L2 过渡 */
.xz-slogan{font-size:clamp(38px,6.2vw,92px);letter-spacing:-.02em}    /* L3 判决 */
.xz-name h2{font-size:var(--t-name)}                                  /* L1 名字（同档）*/
.xz-jarvis-say{font-size:clamp(36px,5vw,74px)}                        /* L5 现象主张 */
#xzEdge .xz-truth{font-size:clamp(34px,4.8vw,70px)}                    /* L6 底线（ID 覆盖旧规则）*/

/* ── ② 呼吸：短屏的留白抬一档 ── */
.xz-screen.xz-tight{padding-block:clamp(96px,12.4vh,136px)}
#xzEdge{padding-block:clamp(76px,9.4vh,104px)}
/* 概念名与他上面那句「我们把它叫作」本来就是一组，不必隔一整行 */
#xzSlot .xz-kick.xz-ctr,#xzFilter .xz-kick.xz-ctr,#xzWheel .xz-kick.xz-ctr{margin-bottom:14px}
#xzSlot .xz-name>p,#xzFilter .xz-name>p,#xzWheel .xz-name>p{font-size:12px;letter-spacing:.06em}
#xzSlot .xz-kick.xz-ctr{margin-top:clamp(24px,3.2vh,34px)}
/* 空着的小注不该占一行（点过门之后 JS 才会写进内容） */
.xz-eq-note:empty{display:none}

/* ── ③ 答案位：三个时代与十选三并成两栏 ──
   原来上下各占一段，加起来两百多像素，命名块只能被挤到底。
   现在左边竖排三个时代（左字、右动作），右边十选三，一眼对照：时代在变，位置越来越窄。 */
#xzSlot{padding-block:clamp(58px,7.4vh,84px)}
#xzSlot .xz-ask{padding-top:0;margin-bottom:clamp(14px,2vh,20px)}
#xzSlot .xz-ask p{font-size:clamp(22px,2.6vw,36px)}
#xzSlot .xz-proof{display:grid;grid-template-columns:.78fr 1.22fr;
  gap:clamp(26px,3.4vw,52px);align-items:start;
  margin-top:clamp(18px,2.4vh,26px);border-top:1px solid var(--line-soft)}
#xzSlot .xz-ages{display:block;margin-top:0;border-top:0}
#xzSlot .xz-ages>div{display:flex;justify-content:space-between;align-items:baseline;
  gap:14px;padding:clamp(12px,1.9vh,18px) 0;border-bottom:1px solid var(--line-soft)}
#xzSlot .xz-ages p{margin-top:0;font-size:clamp(17px,1.72vw,22px);text-align:right}
#xzSlot .xz-slots{margin-top:0;padding-top:0;border-top:0;max-width:none}
#xzSlot .xz-slots-head{margin-bottom:11px;padding-top:clamp(12px,1.9vh,18px)}
#xzSlot .xz-slots li{height:21px;max-height:21px;margin-bottom:5px}
#xzSlot .xz-slots li i{height:6px}
#xzSlot .xz-slots.go li:nth-child(-n+3) i{height:16px}
#xzSlot .xz-name h2{margin-top:4px}
#xzSlot .xz-name .tail{margin-top:12px}
/* 收窄之后不要变成「只有三条」：4~10 留一层极淡的残影，10 → 3 的落差才看得见 */
.xz-slots.go li:nth-child(n+4){max-height:7px;margin:0;opacity:.14}

/* ── ④ 五道过滤器：门回到 196，门内分成「关卡名 / 分值」两段 ── */
#xzFilter{padding-block:clamp(44px,5.6vh,64px)}
#xzFilter .xz-ask{padding-top:0;margin-bottom:12px}
#xzFilter .xz-ask p{font-size:clamp(22px,2.6vw,36px)}
#xzFilter .xz-ans{font-size:clamp(18px,1.9vw,26px)}
#xzFilter .xz-filters{margin-top:clamp(15px,2vh,20px);min-height:176px}
#xzFilter .xz-name h2{margin-top:2px}
#xzFilter .xz-eq{margin-top:11px}
#xzFilter .xz-eq-res{font-size:clamp(28px,3.8vw,52px)}
#xzFilter .xz-zero{margin-top:11px;font-size:clamp(19px,2vw,27px)}
#xzFilter .xz-eq-note{margin-top:5px}
/* 门与「我们把它叫作」之间要让出一步，否则标签贴着门框 */
#xzFilter .xz-kick.xz-ctr{margin-top:20px}
/* 分值不再孤零零挂在底边：一条发丝线把它和关卡名分开，空白有了归属 */
.xz-filter .fv{border-top:1px solid var(--line-soft);display:block}

/* ── ⑤ 选择飞轮：轮盘是主角，说明栏不贴着它飘 ── */
#xzWheel{padding-block:clamp(38px,4.6vh,52px)}
#xzWheel .xz-ask{padding-top:0;margin-bottom:12px}
#xzWheel .xz-ask p{font-size:clamp(22px,2.6vw,36px)}
#xzWheel .xz-wheel-wrap{margin-top:14px}
@media(min-width:961px){
  .xz-wheel-wrap{grid-template-columns:minmax(268px,380px) minmax(0,452px);
    justify-content:center;align-items:center;gap:clamp(30px,3.8vw,54px)}
}
#xzWheel .xz-name h2{margin-top:0}
#xzWheel .xz-name .tail{margin-top:4px}
#xzWheel .xz-name .tail-2 .k{font-size:clamp(17px,1.7vw,22px);line-height:1.3}
#xzWheel .xz-name .tail-2 p{line-height:1.7;margin-top:2px}
#xzWheel .xz-wd-title{font-size:clamp(22px,2.5vw,32px)}
#xzWheel .xz-wd-desc{max-width:30em}

/* ── ⑥ 平板：两栏拆回单列 ── */
@media(max-width:960px){
  #xzSlot .xz-proof{grid-template-columns:1fr;gap:22px}
  #xzSlot .xz-ages>div{padding:10px 0}
  #xzSlot .xz-ages p{text-align:left}
}

/* ── ⑦ 手机：压缩不跟到手机，字级另给 ── */
@media(max-width:760px){
  #xzSlot,#xzFilter,#xzWheel{padding-block:clamp(70px,9vh,92px)}
  #xzSlot .xz-ask p,#xzFilter .xz-ask p,#xzWheel .xz-ask p{font-size:clamp(24px,6.4vw,31px)}
  #xzFilter .xz-filters{min-height:0}
  .xz-screen.xz-tight{padding-block:clamp(84px,11vh,120px)}
  /* 桌面换成 vw 之后，手机反而被压小了，这一组单独给 */
  .xz-huge{font-size:clamp(66px,18vw,92px)}
  .xz-slogan{font-size:clamp(42px,11.4vw,58px)}
  #xzEdge .xz-truth{font-size:clamp(36px,9.6vw,50px)}
  .xz-jarvis-say{font-size:clamp(38px,10.4vw,54px)}
  .xz-wd-desc{text-wrap:pretty}
  /* 单列时每扇门都开着，分值不必再拉一道分隔线 */
  .xz-filter .fv{border-top:0;padding-top:6px;margin-top:6px}
}

/* ── ⑧ 800 高的笔电（1280×800 / 1024×800）：这几屏会差一点到底 ── */
@media(min-width:961px) and (max-height:820px){
  #xzSlot,#xzFilter,#xzWheel{padding-block:clamp(26px,3.2vh,34px)}
  .xz-wheel-wrap{grid-template-columns:minmax(236px,330px) minmax(0,420px)}
  #xzClient{padding-block:clamp(56px,7vh,76px)}
}

/* v16 补⑨：字放大后，左栏撑不住「成为答案」了 —— 5 字 620px，栏宽只有 608
   两件事一起做：左栏加宽到 1.14fr，并锁死这一句不折行。 */
@media(min-width:961px){
  #xzBecom .xz-why-two{grid-template-columns:1.14fr .86fr}
}
.xz-becom{white-space:nowrap}
/* 答案位左栏三行撑满，底部与右侧列表齐 */
#xzSlot .xz-proof{align-items:stretch}
#xzSlot .xz-ages{display:flex;flex-direction:column;justify-content:space-between}

/* ══════════════════════════════════════════════════════════
   v17 · 首页「关于我们」（经营者，而非旁观者）
   肖像的活全在入库前做掉：灰底键控换黑、暖调影调、背景暖光、轮廓光，
   四边封到页面底色 #050505。页面上不再叠任何遮罩或滤镜。
   ══════════════════════════════════════════════════════════ */
.abt{
  display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);
  gap:clamp(38px,5vw,80px);align-items:center;
}
.abt-photo{position:relative;margin:0}
.abt-pic{position:relative;isolation:isolate}
/* 图片自身四边已经封到 #050505，页面上不再叠遮罩、不再加暖光——
   任何一层叠加都会把「边界」重新勾出来 */
.abt-pic img{
  width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;
  filter:saturate(.96);
}

.abt-cap{
  display:flex;align-items:baseline;gap:14px;
  margin-top:2px;padding-top:14px;border-top:1px solid var(--line-soft);position:relative;
}
.abt-cap b{font-weight:400;font-size:15px;letter-spacing:.02em}
.abt-cap span{font-size:11px;letter-spacing:.16em;color:var(--faint)}

.abt-copy .eyebrow{margin-bottom:22px}
.abt-copy h2{font-size:clamp(30px,3.7vw,52px);line-height:1.26;margin-bottom:clamp(24px,2.6vw,34px)}
.abt-body p{color:var(--dim);font-size:16px;line-height:2.05;max-width:32em}
.abt-body p+p{margin-top:1.05em}
.abt-say{
  margin-top:clamp(26px,3vw,38px);font-size:clamp(18px,1.75vw,22px);
  line-height:1.72;letter-spacing:-.005em;color:var(--text);
}
.abt-say em{font-style:normal;color:var(--gold)}

/* 三条事实 */
.abt-facts{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,3.4vw,52px);
  margin-top:clamp(52px,6vw,84px);padding-top:clamp(22px,2.3vw,32px);
  border-top:1px solid var(--line);
}
.abt-fact .k{display:block;font-size:10.5px;letter-spacing:.18em;color:var(--faint);margin-bottom:14px}
.abt-fact b{display:block;font-weight:400;font-size:clamp(21px,2.1vw,27px);line-height:1.15;letter-spacing:-.01em}
.abt-fact b em{font-style:normal;color:var(--gold);font-size:1.32em;letter-spacing:-.03em;margin-right:3px}
.abt-fact p{margin-top:11px;font-size:13.5px;line-height:1.8;color:var(--dim)}

/* 相关阅读 */
.abt-read{
  /* 和上面的两栏同栅格：标签守左基线，条目对齐正文栏 */
  display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);
  gap:clamp(38px,5vw,80px);
  margin-top:clamp(42px,4.6vw,60px);padding-top:clamp(20px,2vw,26px);
  border-top:1px solid var(--line-soft);
}
.abt-read .k{font-size:10.5px;letter-spacing:.18em;color:var(--faint);padding-top:2px}
.abt-read ul{list-style:none;display:grid;gap:10px}
.abt-read a{display:flex;gap:14px;font-size:14.5px;line-height:1.75;color:var(--dim);transition:color .25s}
.abt-read a i{font-style:normal;color:var(--gold-deep);flex:0 0 auto;min-width:74px;font-size:11.5px;letter-spacing:.06em;padding-top:3px}
.abt-read a:hover{color:var(--gold-bright)}
.abt-read a:hover i{color:var(--gold)}

@media(max-width:960px){
  .abt{grid-template-columns:1fr;gap:clamp(34px,6vw,48px)}
  .abt-photo{max-width:min(100%,380px)}
  /* 手机上网点边距只有 24，暖光负边距会顶出视口，收窄 */
  .abt-pic::before{inset:-10% -5% -6%}
  .abt-cap{margin-top:-16px}
  .abt-copy h2 br{display:none}
  .abt-facts{grid-template-columns:1fr;gap:0;margin-top:clamp(40px,7vw,60px)}
  .abt-fact{padding:20px 0;border-top:1px solid var(--line-soft)}
  .abt-fact:first-child{border-top:0;padding-top:0}
  .abt-read{grid-template-columns:1fr;gap:16px}
  .abt-read a{font-size:14px;flex-direction:column;gap:2px}
  .abt-read a i{min-width:0;padding-top:0}
}

/* ══════════════════════════════════════════════════════════
   v18 · 首页收身
   ① 业务五条线：由「每行一屏」收成「一行一条」，悬停 / 聚焦才展开
   ② 案例六类：卡片只留标签与标题，说明在悬停时作为浮层弹出
   ③ 关于我们：三条事实只留数字，不再各配一句解释
   规矩不变：无卡片底、无描边框，结构只靠发丝线与留白。
   ══════════════════════════════════════════════════════════ */

/* ── ① 业务行 ───────────────────────────────────────── */
/* 旧版这几条带 margin-bottom，会把手里的行高撑虚，先归零 */
.bz-no,.bz-title,.bz-stance{margin:0}
.bizlist{border-top:1px solid var(--line-soft)}
.bizrow{
  display:block;position:relative;
  padding:0;border-bottom:1px solid var(--line-soft);
  outline:none;
}
.bz-head{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto 20px;
  align-items:center;
  gap:clamp(12px,1.5vw,22px);
  padding:clamp(19px,2.05vw,25px) 0;
  cursor:pointer;
  transition:padding-bottom .5s var(--e);
}
.bz-no{
  font-size:11.5px;letter-spacing:.12em;font-weight:500;
  color:var(--gold-deep);line-height:1.6;
  font-variant-numeric:tabular-nums;
  transition:color .3s;
}
.bz-title{
  font-weight:400;font-size:clamp(19px,1.85vw,26px);
  line-height:1.45;letter-spacing:-.012em;color:var(--text);
  transition:color .3s;
}
.bz-stance{
  font-size:clamp(12.5px,1.02vw,14.5px);letter-spacing:.02em;
  color:var(--dim);line-height:1.7;white-space:nowrap;
  transition:color .3s;
}
.bz-stance em{font-style:normal;color:var(--gold)}
.bz-plus{
  position:relative;width:15px;height:15px;justify-self:end;align-self:center;
}
.bz-plus::before,.bz-plus::after{
  content:"";position:absolute;background:var(--gold);
  transition:transform .45s var(--e),opacity .35s var(--e),background .3s;
}
.bz-plus::before{left:0;right:0;top:50%;height:1px;margin-top:-.5px}
.bz-plus::after{top:0;bottom:0;left:50%;width:1px;margin-left:-.5px}

.bizrow:hover .bz-title,.bizrow:focus-visible .bz-title{color:#fff}
.bizrow:hover .bz-no,.bizrow:focus-visible .bz-no{color:var(--gold)}
.bizrow:hover .bz-plus::before,.bizrow:focus-visible .bz-plus::before,
.bizrow.open .bz-plus::before{background:var(--gold)}
.bizrow:hover .bz-plus::after,.bizrow:focus-visible .bz-plus::after,
.bizrow.open .bz-plus::after{transform:scaleY(0);opacity:0}

/* 展开：grid-rows 0fr → 1fr，内容在 overflow 里被裁，收起时高度真的是 0 */
.bz-fold{
  display:grid;grid-template-rows:0fr;opacity:0;
  transition:grid-template-rows .58s var(--e),opacity .4s var(--e);
}
.bz-fold-in{
  overflow:hidden;min-height:0;
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(28px,4vw,72px);
}
.bizrow:hover .bz-fold,
.bizrow:focus-within .bz-fold,
.bizrow.open .bz-fold{grid-template-rows:1fr;opacity:1}

.bz-body{padding-top:clamp(16px,1.8vw,24px);padding-bottom:clamp(18px,2vw,26px)}
.bz-en{
  font-size:10.5px;letter-spacing:.17em;color:var(--faint);
  margin-bottom:14px;font-weight:500;
}
.bz-body p{font-size:15px;line-height:1.95;font-weight:200;color:var(--dim);max-width:34em}
.bz-keys{
  margin-top:16px;font-size:12px;letter-spacing:.1em;
  font-weight:500;color:var(--faint);
}
.bz-go{
  display:inline-block;margin-top:18px;font-size:12.5px;
  letter-spacing:.08em;font-weight:500;color:var(--gold);transition:color .3s;
}
.bz-go:hover{color:var(--gold-bright)}
.bz-go::after{content:"";display:block;height:1px;width:0;background:var(--gold);transition:width .35s ease}
.bz-go:hover::after{width:100%}

/* 承诺栏与左栏同一顶端：都不加线，靠小标签起段 */
.bz-promise{border-top:0;padding-top:clamp(16px,1.8vw,24px);padding-bottom:clamp(18px,2vw,26px)}
.bz-promise .wk{
  font-size:10.5px;letter-spacing:.16em;font-weight:500;
  color:var(--gold-deep);margin-bottom:10px;
}
.bz-promise b{
  display:block;font-weight:400;letter-spacing:-.02em;
  font-size:clamp(16px,1.6vw,19px);color:var(--gold-bright);margin-bottom:8px;
}
.bz-promise p{font-size:13px;line-height:1.9;font-weight:400;color:var(--dim)}

/* ── ② 案例：只留标签与标题，说明悬停浮出 ─────────────── */
.cases{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(22px,2.4vw,30px) clamp(26px,3vw,48px);
  background:none;border:0;
}
.case{
  position:relative;
  display:block;background:none;border:0;
  border-top:1px solid var(--line);
  padding:22px 0 0;
  cursor:pointer;outline:none;
}
.case:last-child{border-bottom:0}
.case .tag{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  margin:0;font-size:10.5px;letter-spacing:.13em;color:var(--gold-deep);
  font-weight:500;
}
.case .tag span{border:0;padding:0;letter-spacing:.13em;color:var(--gold-deep)}
.case h3{
  font-family:var(--sans);font-weight:400;
  font-size:clamp(17px,1.5vw,20px);line-height:1.5;letter-spacing:-.008em;
  margin:11px 0 0;color:var(--text);
  transition:color .3s;
}
.case:hover h3,.case:focus-visible h3{color:var(--gold-bright)}
/* 悬停时在标题右侧点一粒金点，提示还有一层 */
.case h3::after{
  content:"";display:inline-block;width:5px;height:5px;border-radius:50%;
  background:var(--gold);vertical-align:middle;margin-left:9px;
  opacity:0;transform:translateY(-1px);
  transition:opacity .35s var(--e);
}
.case:hover h3::after,.case:focus-visible h3::after,.case.open h3::after{opacity:.85}

/* 说明文字：在卡内预留三行位置，默认不可见，悬停淡入。
   不浮层、不遮下一行、不改变栅格高度——收起时只是一块留白 */
.cs-fold{
  position:static;
  margin-top:12px;
  min-height:calc(2 * 1.86em);
  opacity:0;transform:translateY(-5px);
  transition:opacity .3s var(--e),transform .4s var(--e);
  pointer-events:none;
}
.cs-fold p{font-size:13.5px;line-height:1.86;color:var(--dim);font-weight:400}
.case:hover .cs-fold,.case:focus-visible .cs-fold,.case.open .cs-fold{
  opacity:1;transform:none;
}

/* ── ③ 关于我们：三条事实只留数字 ─────────────────────── */
.abt-facts{
  gap:clamp(22px,3vw,44px);
  margin-top:clamp(46px,5vw,70px);
  padding-top:clamp(20px,2vw,28px);
}
.abt-fact{padding:0}
.abt-fact .k{margin-bottom:16px;letter-spacing:.2em}
.abt-fact b{font-size:clamp(24px,2.5vw,34px);line-height:1.1}
.abt-fact b em{font-size:1.5em;letter-spacing:-.035em}

/* ── 平板 / 手机：没有悬停，折层常开，浮层改成卡内展开 ──── */
@media(max-width:960px){
  .bz-head{
    grid-template-columns:34px minmax(0,1fr) 18px;
    gap:7px 12px;
    padding:20px 0 5px;
    cursor:pointer;
  }
  .bz-no{grid-column:1;grid-row:1}
  .bz-title{grid-column:2;grid-row:1;font-size:20px}
  .bz-stance{grid-column:2;grid-row:2;white-space:normal;font-size:12.5px;margin:0}
  .bz-plus{display:block;grid-column:3;grid-row:1;justify-self:end;align-self:center}
  .bz-fold{grid-template-rows:0fr;opacity:0}
  .bizrow.open .bz-fold{grid-template-rows:1fr;opacity:1}
  .bz-fold-in{grid-template-columns:1fr;gap:22px;padding-bottom:4px}
  .bz-body{padding-top:16px}
  .bz-promise{padding-top:18px;margin-top:4px}

  .cases{grid-template-columns:1fr 1fr;gap:0 clamp(18px,4vw,32px)}
  .case{cursor:pointer;padding:18px 0 24px}
  .case h3{font-size:16.5px}
  .cs-fold{min-height:0;margin-top:10px;opacity:1;transform:none;pointer-events:auto}
  .cs-fold p{font-size:13px}
  .case.open .cs-fold{opacity:1}
  .case:hover h3{color:var(--text)}
}
@media(max-width:640px){
  .cases{grid-template-columns:1fr}
  .abt-facts{grid-template-columns:1fr;gap:0}
  .abt-fact{padding:16px 0;border-top:1px solid var(--line-soft)}
  .abt-fact:first-child{border-top:0;padding-top:0}
  .abt-fact .k{margin-bottom:10px}
}

/* 事实条的单位：数字大、单位小一号，三条才不互相抢 */
.abt-fact b i{
  font-style:normal;font-size:.54em;letter-spacing:0;
  margin-left:.28em;color:var(--dim);font-weight:400;
}
/* 相关阅读：标签窄栏，条目紧跟，不让左半边空掉一大片 */
.abt-read{
  grid-template-columns:150px minmax(0,1fr);
  gap:clamp(14px,2.4vw,34px);
  margin-top:clamp(34px,3.6vw,50px);
  padding-top:clamp(18px,1.8vw,24px);
}
@media(max-width:960px){
  .abt-read{grid-template-columns:1fr;gap:14px}
}

/* 相关阅读：与事实条同一套三列，右半边不再空着 */
.abt-read{
  display:block;
  margin-top:clamp(34px,3.6vw,50px);
  padding-top:clamp(18px,1.8vw,26px);
  border-top:1px solid var(--line-soft);
}
.abt-read .k{display:block;font-size:10.5px;letter-spacing:.2em;color:var(--faint)}
.abt-read ul{
  list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(22px,3vw,44px);margin-top:clamp(16px,1.8vw,24px);
}
.abt-read a{display:block}
.abt-read a i{
  display:block;font-style:normal;font-size:10.5px;letter-spacing:.14em;
  color:var(--gold-deep);margin-bottom:9px;font-weight:500;
}
.abt-read a span{display:block;font-size:13.5px;line-height:1.85;color:var(--dim);transition:color .25s}
.abt-read a:hover span{color:var(--text)}
@media(max-width:860px){
  .abt-read ul{grid-template-columns:1fr;gap:16px}
}

/* 键盘可达：Tab 到业务行 / 案例卡时给一条淡金环，不然只剩文字变化太弱 */
.bizrow:focus-visible,.case:focus-visible{
  outline:1px solid rgba(201,164,92,.42);outline-offset:8px;
}

/* 过场屏：只留一句断言，把「我们做什么」直接交给下面的五条线 */
.sec-open{padding-block:clamp(96px,11vw,168px)}
.sec-open .sec-head{margin-bottom:0}
.sec-open .open-line{
  font-size:clamp(42px,5.2vw,78px);line-height:1.16;letter-spacing:-.04em;
  margin-bottom:clamp(18px,2vw,26px);
}
.sec-open .lead{max-width:30em}

/* ══ v19 · 松一口气，让图说话（2026-10-26）═════════════════════════
   用户反馈：从「答案位」那一屏起，越往后越紧；旁边还要一点动态图示，
   篇幅可以长一点，也更好懂。
   根因是 v16 定的「所有屏都压进一屏」——为了一屏，padding 压到 38px，
   密度上去了，呼吸没了。这一轮：
     ① 三处硬压的 padding 恢复正常，一屏装不下就让它长出去
     ② 答案位、五道过滤器各拆成两屏：先给证据，再落名字
     ③ 两处新图示：三格答案位（空位被填上）、五道漏斗（100 → 2）
   ──────────────────────────────────────────────────────────────── */

/* ── ① 呼吸回来 ── */
#xzSlot{padding-block:clamp(84px,10.4vh,124px)}
#xzFilter{padding-block:clamp(78px,9.6vh,116px)}
#xzWheel{padding-block:clamp(72px,9vh,110px)}
#xzSlotName,#xzFilterName{padding-block:clamp(92px,12vh,132px)}

/* ── ② 图屏：十选三放大，它是这一屏的主角 ── */
#xzSlot .xz-proof{margin-top:clamp(34px,5vh,48px);gap:clamp(30px,4vw,64px)}
#xzSlot .xz-slots-head{margin-bottom:14px;padding-top:0}
#xzSlot .xz-slots li{height:26px;max-height:26px;margin-bottom:7px}
#xzSlot .xz-slots li i{height:8px}
#xzSlot .xz-slots.go li:nth-child(-n+3) i{height:20px}
#xzSlot .xz-ages>div{padding:clamp(16px,2.4vh,24px) 0}

/* ── ③ 三格答案位：第 3 格空着，等一下被填上 ── */
.xz-seats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--line-soft);
  border:1px solid var(--line-soft);padding:1px;
  width:min(100%,620px);margin:clamp(42px,6vh,66px) auto 0;
  text-align:left;
}
.seat{
  background:var(--bg);min-height:clamp(96px,12vh,118px);
  padding:clamp(15px,2vh,20px) clamp(13px,1.5vw,20px);
  display:flex;flex-direction:column;justify-content:space-between;gap:14px;
  transition:background .55s var(--e),box-shadow .55s var(--e);
}
.seat b{font-size:10.5px;letter-spacing:.16em;font-weight:500;color:var(--gold-deep);transition:color .4s}
.seat span{font-size:clamp(15px,1.45vw,18px);letter-spacing:-.01em;color:var(--dim);transition:color .4s}
.seat.empty{position:relative;background:rgba(201,164,92,.05)}
.seat.empty b{color:var(--gold)}
.seat .ghost{color:var(--faint);transition:opacity .45s}
.seat .you{
  position:absolute;left:clamp(13px,1.5vw,20px);bottom:clamp(15px,2vh,20px);
  color:var(--gold);opacity:0;transform:translateY(9px);
  transition:opacity .5s,transform .55s var(--e);
}
.seat .caret{
  position:absolute;left:clamp(13px,1.5vw,20px);bottom:calc(clamp(15px,2vh,20px) + .12em);
  width:1px;height:1.05em;background:var(--gold);
  animation:xzblink 1.05s steps(1) infinite;transition:opacity .3s;
}
.seats-wrap.go .xz-seats .seat.empty{background:rgba(201,164,92,.15);box-shadow:inset 0 0 0 1px rgba(201,164,92,.38)}
.seats-wrap.go .xz-seats .seat.empty .ghost{opacity:0}
.seats-wrap.go .xz-seats .seat.empty .you{opacity:1;transform:none}
.seats-wrap.go .xz-seats .seat.empty .caret{opacity:0}

.seats-arrow{
  grid-column:3;justify-self:center;
  width:1px;height:clamp(22px,3vh,32px);
  background:linear-gradient(180deg,var(--gold-deep),transparent);
}
.seats-note{
  grid-column:1/-1;text-align:center;
  font-size:13px;font-weight:400;letter-spacing:.04em;color:var(--faint);
  padding-top:clamp(10px,1.4vh,14px);
}

/* ── ④ 五道漏斗：一百家进去，两家出来 ── */
.xz-funnel{width:min(100%,640px);margin:clamp(40px,5.6vh,60px) auto 0;text-align:left}
.xf-head{
  display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  padding-bottom:clamp(15px,2vh,20px);border-bottom:1px solid var(--line-soft);
}
.xf-head b{font-size:clamp(30px,3.4vw,42px);font-weight:400;letter-spacing:-.04em;line-height:1;color:var(--text)}
.xf-head b.xf-final{color:var(--gold)}
.xf-head span{font-size:12px;letter-spacing:.06em;color:var(--faint)}
.xf-head i{font-style:normal;color:var(--gold-deep);margin:0 3px;font-size:15px}
.xf-row{
  display:grid;grid-template-columns:76px minmax(0,1fr) 42px;align-items:center;
  gap:clamp(12px,1.6vw,18px);padding:clamp(11px,1.5vh,15px) 0;
  border-bottom:1px solid var(--line-soft);
}
.xf-row small{font-size:11.5px;letter-spacing:.1em;color:var(--dim);white-space:nowrap}
.xf-row i{height:9px;background:rgba(232,230,224,.05);overflow:hidden;display:block}
.xf-row i b{display:block;height:100%;width:0;background:rgba(201,164,92,.3);transition:width 1.15s var(--e)}
.xf-row:nth-child(1) i b{transition-delay:.05s}
.xf-row:nth-child(2) i b{transition-delay:.22s}
.xf-row:nth-child(3) i b{transition-delay:.39s}
.xf-row:nth-child(4) i b{transition-delay:.56s}
.xf-row:nth-child(5) i b{transition-delay:.73s}
.xz-funnel.go .xf-row i b{width:var(--w);min-width:7px}
.xf-row em{
  font-style:normal;text-align:right;font-size:13.5px;color:var(--dim);
  letter-spacing:.02em;font-variant-numeric:tabular-nums;
}
.xf-row.last i b{background:var(--gold)}
.xf-row.last em{color:var(--gold)}
.xf-note{margin-top:clamp(16px,2.2vh,22px);font-size:13px;font-weight:400;color:var(--dim);text-align:center}
.xf-note em{font-style:normal;color:var(--gold)}

/* ── ⑤ 手机：图不缩成一团 ── */
@media(max-width:760px){
  #xzSlot,#xzFilter,#xzWheel{padding-block:clamp(76px,10vh,96px)}
  #xzSlotName,#xzFilterName{padding-block:clamp(84px,11vh,112px)}
  #xzSlot .xz-slots li{height:22px;max-height:22px}
  .xz-seats{margin-top:clamp(34px,5vh,46px)}
  .seat{min-height:86px;padding:14px 12px;gap:10px}
  .seat span,.seat .you{font-size:14px}
  .seat .you,.seat .caret{left:12px;bottom:14px}
  .seats-note{font-size:12px;padding-inline:12px}
  .xf-row{grid-template-columns:62px minmax(0,1fr) 32px;gap:10px}
  .xf-row small{font-size:11px;letter-spacing:.03em}
  .xf-head b{font-size:30px}
  .xf-head span{font-size:11.5px}
}

/* ── ⑥ 800 高的笔电：允许略紧，但不许回到 38px ── */
@media(min-width:961px) and (max-height:820px){
  #xzSlot,#xzFilter,#xzWheel{padding-block:clamp(46px,6vh,62px)}
  #xzSlotName,#xzFilterName{padding-block:clamp(54px,7vh,72px)}
}

/* ── v19 补：三格与漏斗的细节，以及飞轮命名屏的复利环 ── */

/* 三格：外层管居中，内层只管分格，中间那条 1px 才不会被撑成一条灰带 */
.seats-wrap{width:min(100%,620px);margin:clamp(42px,6vh,66px) auto 0;text-align:left}
.xz-seats{width:auto;margin:0}
.seats-arrow{
  grid-column:auto;margin:0 0 0 calc(83.333% - .5px);
  position:relative;height:clamp(24px,3.2vh,34px);
  background:linear-gradient(180deg,rgba(201,164,92,.5),rgba(201,164,92,0));
}
.seats-arrow::after{
  content:"";position:absolute;left:50%;bottom:-1px;width:5px;height:5px;
  border-right:1px solid var(--gold-deep);border-bottom:1px solid var(--gold-deep);
  transform:translate(-50%,0) rotate(45deg);
}
.seats-note{padding-top:clamp(12px,1.6vh,16px);text-align:center}

/* 先让人看见那格是空的（光标闪一会儿），再填进去 */
.seat .ghost{transition-delay:1.25s}
.seat .you{transition-delay:1.55s}
.seats-wrap.go .xz-seats .seat.empty{transition-delay:1.55s}
.seats-wrap.go .xz-seats .seat.empty .caret{transition-delay:0s}

/* 左栏三个时代回到自然间距：拆屏之后右栏不再那么长，不必再撑 */
#xzSlot .xz-ages{justify-content:flex-start}
#xzSlot .xz-proof{align-items:start}

/* 漏斗：轨道退到几乎看不见，留下的那一截才是主角 */
.xf-row i{background:rgba(232,230,224,.032)}
.xf-row em{font-size:14.5px}

/* ── 飞轮命名：一圈一圈攒起来的信任 ── */
.xz-loop2{position:relative;width:clamp(184px,19vw,228px);aspect-ratio:1;
  margin:clamp(36px,5.2vh,56px) auto 0}
.xz-loop2 svg{width:100%;height:100%;display:block;overflow:visible}
.l2-base{fill:none;stroke:rgba(232,230,224,.075);stroke-width:1.1}
.l2-arc{
  fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;
  stroke-dasharray:0 465;transform-box:view-box;transform-origin:100px 100px;
  transform:rotate(-90deg);transition:stroke-dasharray 1s var(--e);
}
.l2-dot{
  fill:var(--gold);transform-box:view-box;transform-origin:100px 100px;
  animation:l2spin 6s linear infinite;
  filter:drop-shadow(0 0 5px rgba(201,164,92,.75));
}
@keyframes l2spin{to{transform:rotate(360deg)}}
.l2-core{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.l2-core small{display:block;font-size:10.5px;letter-spacing:.18em;font-weight:500;color:var(--faint)}
.l2-core b{display:block;font-size:clamp(26px,2.7vw,34px);font-weight:400;
  letter-spacing:-.03em;color:var(--gold-bright);line-height:1.15}

/* 边界那屏是这一章唯一抬起的一块平面，四周多留一点，判决才站得住 */
#xzEdge{padding-block:clamp(88px,10.6vh,120px)}

/* ── 三个时代的位置：方块的数量本身就是论证，不用再配说明 ── */
.xz-cellmap{margin-top:clamp(34px,5vh,48px);border-top:1px solid var(--line-soft)}
.ga{
  display:grid;grid-template-columns:minmax(150px,26%) minmax(0,1fr);
  gap:clamp(20px,3.4vw,56px);align-items:center;
  padding:clamp(20px,2.9vh,32px) 0;border-bottom:1px solid var(--line-soft);
}
.ga-head{display:flex;align-items:baseline;gap:16px}
.ga-head small{font-size:11.5px;letter-spacing:.14em;font-weight:500;color:var(--dim);white-space:nowrap}
.ga-head p{font-size:clamp(17px,1.7vw,22px);letter-spacing:-.022em;color:var(--text);
  margin-left:auto;text-align:right}
.ga.hot .ga-head p{color:var(--gold)}
.ga-cells{display:flex;flex-wrap:wrap;gap:5px;max-width:min(100%,300px)}
.ga-cells i{
  width:15px;height:15px;background:rgba(232,230,224,.11);
  opacity:0;transform:scale(.55);transition:opacity .45s,transform .5s var(--e);
}
.ga-cells.hot{gap:13px}
.ga-cells.hot i{
  width:30px;height:30px;background:rgba(201,164,92,.16);
  border:1px solid var(--gold-deep);
}
.xz-cellmap.go .ga-cells i{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 12ms)}
.xz-cellmap.go .ga.hot .ga-cells i{transition-delay:calc(var(--i,0) * 150ms + 460ms)}
.ga.hot .ga-cells i{transition-delay:calc(var(--i,0) * 150ms + 460ms)}
@media(max-width:760px){
  .ga{grid-template-columns:1fr;gap:12px;padding:18px 0}
  .ga-head small{font-size:11px}
  .ga-head p{margin-left:auto;font-size:16px}
  .ga-cells{gap:4px}
  .ga-cells i{width:13px;height:13px}
  .ga-cells.hot{gap:10px}
  .ga-cells.hot i{width:26px;height:26px}
}

/* 位置图：行距撑开一点，小方块提到 16，三个大格再大一号 —— 「只剩三个」才扎眼 */
.ga{padding:clamp(24px,3.7vh,40px) 0}
.ga-cells i{width:16px;height:16px}
.ga-cells{max-width:min(100%,320px)}
.ga-cells.hot i{width:34px;height:34px}
.ga-cells.hot{gap:14px}

/* ── 三张图再大一档：命名屏是落槌，图不能比字弱太多 ── */
.seats-wrap{width:min(100%,660px);margin-top:clamp(44px,6.4vh,70px)}
.seat{min-height:clamp(104px,13vh,128px);padding:clamp(17px,2.2vh,22px) clamp(15px,1.7vw,22px)}
.seat span,.seat .you{font-size:clamp(16px,1.55vw,19px)}
.seat .you,.seat .caret{left:clamp(15px,1.7vw,22px);bottom:clamp(17px,2.2vh,22px)}
.seats-arrow{background:linear-gradient(180deg,rgba(201,164,92,.75),rgba(201,164,92,.05));width:1px}
.seats-arrow::after{width:6px;height:6px;border-color:var(--gold)}
.seats-note{font-size:13.5px;color:var(--dim)}

.xz-loop2{width:clamp(206px,21vw,264px);margin-top:clamp(40px,5.8vh,62px)}
.l2-arc{stroke-width:2}
.l2-base{stroke-width:1.2}
.l2-core small{font-size:11px;letter-spacing:.2em}
.l2-core b{font-size:clamp(30px,3.1vw,40px)}

@media(max-width:760px){
  .seats-wrap{width:100%}
  .seat{min-height:92px;padding:15px 13px}
  .seat span,.seat .you{font-size:14.5px}
  .seat .you,.seat .caret{left:13px;bottom:15px}
  .seats-note{font-size:12.5px;line-height:1.8}
  .xz-loop2{width:min(64vw,220px)}
}

/* 三张图再推一档：屏里除了字就是图，图太小，留白就变成空洞 */
.seats-wrap{width:min(100%,700px)}
.seat{min-height:clamp(116px,15vh,150px)}
.xz-loop2{width:clamp(228px,23vw,300px)}
.l2-base{stroke:rgba(232,230,224,.11)}
.l2-arc{stroke-width:2.4}
.l2-dot{r:4px}
.xz-funnel{width:min(100%,700px)}
.xf-row{padding:clamp(14px,1.9vh,19px) 0}
.xf-row i{height:10px}

/* 空着 → 你：先让「空着」退干净，再让「你」进来，中间不留双影 */
.seat .ghost{transition:opacity .16s;transition-delay:1.42s}
.seat .you{transition-delay:1.6s}

@media(max-width:760px){
  .seats-wrap{width:100%}
  .xz-loop2{width:min(66vw,230px)}
  .xz-funnel{width:100%}
  .xf-row{padding:12px 0}
}
#xzFilterName{padding-block:clamp(82px,10.8vh,120px)}

/* 问句里的金色短语不拆开：「到底有多稀缺」断成「到底有 / 多稀缺」读着硌牙 */
.xz-ask p em{white-space:nowrap}

/* 800 高的笔电：上面那条无条件的 #xzFilterName 会盖掉媒体查询里的规则，
   所以这里连 padding 和行距一起收，别让它顶出视口 */
@media(min-width:961px) and (max-height:820px){
  #xzSlotName,#xzFilterName{padding-block:clamp(46px,6vh,64px)}
  #xzEdge{padding-block:clamp(74px,9.4vh,96px)}
  .xf-row{padding:12px 0}
  .seat{min-height:112px}
}

/* 飞轮：命名搬走之后，轮盘得自己撑住这一屏 */
@media(min-width:961px){
  .xz-wheel-wrap{grid-template-columns:minmax(300px,440px) minmax(0,514px);
    gap:clamp(36px,4.6vw,66px)}
}
#xzWheel .xz-wd-title{font-size:clamp(24px,2.7vw,36px)}
#xzWheel .xz-wd-desc{font-size:15.5px;max-width:32em}
#xzWheel .xz-wd-gate{font-size:12px}

/* 边界：最长的一句落在底部，下面要留够，不然最后一个字贴着屏边 */
#xzEdge{padding-block:clamp(96px,11.5vh,126px) clamp(112px,13.4vh,152px)}

/* 「你的客户，也是。」是这一屏的重音，不是旁注：#6e6a61 只有 3.78:1，读不动 */
.xz-ans .dim{color:var(--dim)}

/* ══ v20 · 图要讲对，线要收掉（2026-10-26）═══════════════════════════
   用户四条 + 一条总纲：
     ① 结语不要"这四个字是我们提的"那段来历
     ② 图示没讲对：成为答案 = 一堆对话泡里只有一个是你；选择飞轮 = 多枚齿轮咬着转，
        而且这些图可以是"背景"，印在字后面
     ③ 贾维斯：不是"已办清单"，是提问的泡泡
     ④ 三个年代一行行出得太快，要慢到能领着人读
     ⑤ 总纲：前半页一路往下读是通畅的（苹果那种），从中间开始横线突然多了，
        阅读方式被切成"表格"——横线全部收掉，靠留白和字级分段落
   ──────────────────────────────────────────────────────────────── */

/* ── ① 结语：来历那段拿掉之后，收笔只剩一句 ── */
#xzEnd .xz-ans{margin-bottom:0}
#xzEnd .xz-end{margin-top:clamp(34px,5.4vh,58px)}

/* ── ② 成为答案：一屏对话泡，只亮一个 ── */
#xzBecom{padding-block:clamp(80px,10vh,120px)}
.bc-stage{
  position:relative;isolation:isolate;
  min-height:clamp(304px,42vh,404px);
  margin-top:clamp(24px,3.6vh,40px);
  padding-block:clamp(34px,5.4vh,64px);
  display:grid;place-items:center;overflow:hidden;
}
.bc-field{
  position:absolute;inset:0 -2%;z-index:0;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 42% 44% at 50% 52%,transparent 30%,#000 92%);
  mask-image:radial-gradient(ellipse 42% 44% at 50% 52%,transparent 30%,#000 92%);
}
.bc-bub{
  position:absolute;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;justify-content:center;gap:7px;
  padding:10px 12px;border-radius:13px;min-width:54px;
  border:1px solid rgba(232,230,224,.1);background:rgba(232,230,224,.018);
  opacity:0;scale:.94;
  transition:opacity 1.1s var(--e),scale 1.1s var(--e);
  transition-delay:calc(var(--i,0) * 17ms);
}
.bc-stage.go .bc-bub{opacity:var(--o,.7);scale:1}
.bc-bub i{display:block;height:1px;border-radius:1px;background:rgba(232,230,224,.14)}
.bc-bub i:first-child{width:var(--w1,70%)}
.bc-bub i:nth-child(2){width:var(--w2,46%)}

.bc-core{position:relative;z-index:2;width:100%;text-align:center}
/* 字后面挖一个"洞"：泡再密，也不穿过笔画 */
.bc-core::before{
  content:"";position:absolute;z-index:-1;inset:-14% -4%;
  background:radial-gradient(ellipse 54% 52% at 50% 50%,
    rgba(5,5,5,.92) 30%,rgba(5,5,5,.7) 62%,rgba(5,5,5,0) 100%);
}
#xzBecom .bc-ask{max-width:none;margin:0 auto clamp(10px,1.6vh,16px);padding-top:0;
  text-align:center;transition:none}
#xzBecom .bc-ask .qn{justify-content:center;margin-bottom:11px}
#xzBecom .bc-ask p{max-width:none;font-size:clamp(21px,2.25vw,31px);line-height:1.4}
#xzBecom .xz-becom{margin:0;line-height:.98}

/* 那一格金色的：它和背景那些泡是同一个东西，只是被点亮了 */
.bc-you{
  position:absolute;z-index:3;left:72%;top:15%;
  opacity:0;transform:translateY(12px) scale(.94);
  transition:opacity .9s var(--e) 1.05s,transform 1s var(--e) 1.05s;
}
.bc-stage.go .bc-you{opacity:1;transform:none}
.bc-you-in{
  display:flex;align-items:center;gap:11px;padding:11px 17px;border-radius:14px;
  border:1px solid rgba(201,164,92,.62);
  background:linear-gradient(180deg,rgba(201,164,92,.2),rgba(201,164,92,.07));
  box-shadow:0 0 30px rgba(201,164,92,.18),0 0 76px rgba(201,164,92,.09),
    inset 0 1px 0 rgba(246,236,210,.2);
}
.bc-you b{font-size:16.5px;font-weight:400;letter-spacing:.02em;color:var(--gold-bright);line-height:1}
.bc-you i{display:block;width:46px;height:1px;background:rgba(201,164,92,.42)}

.bc-note{
  margin-top:clamp(18px,2.6vh,26px);text-align:center;
  font-size:13.5px;font-weight:400;line-height:1.95;color:var(--dim);
  text-wrap:balance;
}
.bc-note em{font-style:normal;color:var(--gold)}
#xzBecom .xz-lede{margin-top:clamp(26px,3.8vh,38px)}
#xzBecom .xz-creed-list{margin-top:clamp(30px,4.6vh,48px)}

/* ── ③ 选择飞轮：齿轮咬着齿轮，印在名字后面 ── */
#xzWheelName{
  position:relative;overflow:hidden;
  display:grid;align-content:center;
  min-height:clamp(500px,78vh,780px);
  padding-block:clamp(70px,9vh,110px);
}
.gear-bg{
  position:absolute;inset:0;z-index:0;display:grid;place-items:center;
  pointer-events:none;opacity:0;transition:opacity 2.4s var(--e);
}
.gear-bg.go{opacity:1}
.gear-svg{width:min(96vw,690px);height:auto;display:block;overflow:visible}
.gear{
  transform-box:fill-box;transform-origin:center;
  fill:none;stroke:var(--gold-deep);
  animation:xzspin 260s linear infinite;
}
.gear .gt{stroke-width:1.15;opacity:.42;stroke:var(--gold)}
.gear .gh{stroke-width:1;opacity:.26;stroke:var(--gold)}
.gear .gs{stroke-width:.9;opacity:.18;stroke:var(--gold)}
.g-core .gt{stroke-width:1.1;opacity:.34}
.g-core .gr{stroke-width:.9;opacity:.16;stroke:var(--gold)}
#xzWheelName .wrap{position:relative;z-index:1}
#xzWheelName .wrap::before{
  content:"";position:absolute;z-index:-1;left:50%;top:50%;
  width:min(116%,780px);height:clamp(210px,32vh,290px);transform:translate(-50%,-50%);
  background:radial-gradient(ellipse at 50% 50%,
    rgba(5,5,5,.94) 38%,rgba(5,5,5,.72) 68%,rgba(5,5,5,0) 100%);
  pointer-events:none;
}

/* ── ④ 贾维斯：提问是泡泡，不是清单 ── */
#xzJarvis .xz-agent{position:relative;display:block;min-height:clamp(322px,46vh,430px)}
#xzJarvis .xz-orb{
  position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);
  margin:0;width:clamp(132px,15.5vw,196px);z-index:2;
}
.xz-asks{position:absolute;inset:0;z-index:1;pointer-events:none}
.xz-askb{
  position:absolute;max-width:min(72%,268px);padding:9px 14px;
  border:1px solid rgba(201,164,92,.22);border-radius:16px 16px 16px 5px;
  background:rgba(18,17,13,.94);
  font-size:12.5px;font-weight:400;line-height:1.72;color:rgba(240,238,232,.88);
  opacity:0;
}
.xz-askb::after{
  content:"";position:absolute;left:16px;bottom:-5px;width:8px;height:8px;
  background:rgba(18,17,13,.94);transform:rotate(45deg);
  border-right:1px solid rgba(201,164,92,.22);border-bottom:1px solid rgba(201,164,92,.22);
}
.xz-askb.r{border-radius:16px 16px 5px 16px}
.xz-askb.r::after{left:auto;right:16px}
.xz-askb:nth-child(1){left:0;top:1%;max-width:min(78%,262px)}
.xz-askb:nth-child(2){right:0;top:11%;max-width:min(72%,240px)}
.xz-askb:nth-child(3){left:0;bottom:3%;max-width:min(72%,240px)}
.xz-askb:nth-child(4){right:0;bottom:11%;max-width:min(66%,216px)}
.xz-agent.go .xz-askb{
  animation:xzpop 12s var(--e) infinite;
  animation-delay:calc(var(--i,0) * 2.4s);
}
@keyframes xzpop{
  0%{opacity:0;transform:translateY(20px) scale(.9)}
  6%{opacity:1;transform:translateY(8px) scale(1.02)}
  13%{transform:translateY(5px) scale(1)}
  22%{opacity:1;transform:translateY(0) scale(1)}
  68%{opacity:1;transform:translateY(-9px) scale(1)}
  82%,100%{opacity:0;transform:translateY(-26px) scale(.97)}
}

/* ── ⑤ 三个年代：一行一行，慢到能领着人看 ── */
#xzEra .xz-eras{--step:560ms}
#xzEra .xz-era{transition-duration:1.5s,.7s}
#xzEra .xz-era::after{transition-duration:1.25s}
#xzEra .xz-eras::after{transition-duration:1.6s}
#xzEra .xz-eras::before{transition-duration:2.2s}
/* 大句落定之后，小句再跟上来；金线最后压上 */
#xzEra .xz-era .sub{
  opacity:0;transform:translateY(8px);
  transition:opacity .95s var(--e),transform .95s var(--e);
  transition-delay:calc(var(--i,0) * var(--step) + 780ms);
}
#xzEra .xz-eras.cloth .xz-era .sub{opacity:1;transform:none}
#xzEra .xz-era .tag::before{transition-delay:calc(var(--i,0) * var(--step) + 460ms)}
#xzEra .xz-v::after{transition-delay:calc(var(--i,0) * var(--step) + 940ms);transition-duration:.9s}
#xzEra .xz-close{transition-delay:2.6s}

/* ── ⑥ 横线收掉：章节之间用留白，不用尺子 ──
   前半页一路往下读，中间不要突然变成一张表。
   清掉的是：问题块顶线、三格边框与竖分隔、五道门的表格线、漏斗的五行尺、
   提示行的上下线、creed 顶线、贾维斯收笔线。留白、字级、对齐代替它们。 */
.xz-ask::before{display:none}
.xz-ask{padding-top:0}
#xzJarvis .xz-close{border-top:0;padding-top:0}
.xz-creed-list>div{border-top:0;padding-top:0}
.xz-prompts{border-top:0}
.xz-prompt{border-bottom:0;padding:13px 0}
.xz-prompt + .xz-prompt{margin-top:2px}
.xz-cellmap{border-top:0}
.ga{border-bottom:0}
.xz-filter .fv{border-top:0}

/* 三格：不留框，只给"空着的那一格"一层底色 —— 它是个位置，不是一格表格 */
.xz-seats{grid-template-columns:repeat(3,1fr);gap:0;background:none;border:0;padding:0}
.seat{background:none;min-height:clamp(92px,11vh,110px);
  padding:clamp(16px,2.2vh,22px) clamp(14px,1.7vw,20px)}
.seats-wrap{width:min(100%,600px)}
.seat.empty{background:rgba(201,164,92,.05)}
.seats-wrap.go .xz-seats .seat.empty{background:rgba(201,164,92,.13);box-shadow:none}
.seat b{font-size:10.5px}
/* 箭头从「你」那格垂下来，指给下面那句话 */
.seats-arrow{height:clamp(22px,3vh,30px)}

/* 五道门：五列并排，靠间距分，不靠竖线切 */
.xz-filters{background:none;border:0;gap:clamp(10px,1.5vw,24px)}
.xz-filter{background:none;padding-inline:0}
.xz-filter:hover{background:none}
.xz-filter.zero{background:none}
/* 归零的那道门不画框，只在它身上留一点光 */
.xz-filter.zero::after{
  content:"";position:absolute;inset:-8% -18%;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at 50% 58%,rgba(201,164,92,.12),rgba(201,164,92,0) 72%);
}
.xz-filter{position:relative;isolation:isolate}

/* 漏斗：去掉五行尺，轨道往右淡出，只剩"进去一百、出来两个" */
.xf-head{border-bottom:0;padding-bottom:clamp(10px,1.4vh,14px)}
.xf-row{border-bottom:0;padding:clamp(9px,1.3vh,13px) 0}
.xf-row i{background:linear-gradient(90deg,rgba(232,230,224,.075),rgba(232,230,224,.012))}
/* 窗口期那三根条同理：右端不要硬边 */
.xz-bar{background:linear-gradient(90deg,rgba(232,230,224,.085),rgba(232,230,224,.015))}

@media(max-width:960px){
  .xz-ask{margin-bottom:clamp(20px,3vh,30px)}
}

/* ── ⑦ 手机 ── */
@media(max-width:760px){
  .bc-stage{min-height:clamp(280px,38vh,340px);padding-block:26px}
  .bc-bub{display:none}
  .bc-bub:nth-child(3n+2){display:flex}
  .bc-core::before{inset:-12% -8%}
  .bc-you{position:static;margin:clamp(16px,2.6vh,24px) auto 0;
    display:flex;justify-content:center}
  .bc-note{font-size:12.5px;padding-inline:8px}
  #xzBecom .bc-ask p{font-size:clamp(19px,5.4vw,24px)}
  #xzWheelName{min-height:0;padding-block:clamp(84px,13vh,120px) clamp(96px,15vh,140px)}
  .gear-svg{width:min(112vw,460px)}
  #xzWheelName .wrap::before{width:104%;height:clamp(180px,30vh,240px)}
  #xzJarvis .xz-agent{min-height:clamp(300px,44vh,380px)}
  #xzJarvis .xz-orb{width:clamp(112px,30vw,140px);top:50%}
  .xz-askb{font-size:11.5px;padding:8px 12px;line-height:1.68}
  .xz-askb:nth-child(1){left:0;top:0;max-width:68%}
  .xz-askb:nth-child(2){right:0;top:12%;max-width:60%}
  .xz-askb:nth-child(3){left:0;bottom:0;max-width:64%}
  .xz-askb:nth-child(4){display:none}
  #xzEra .xz-eras{--step:480ms}
  #xzEra .xz-close{transition-delay:2.2s}
}

/* 矮屏：图缩一档，别把字挤出去 */
@media(min-width:961px) and (max-height:820px){
  .bc-stage{min-height:300px;padding-block:26px}
  #xzBecom .xz-becom{font-size:clamp(48px,7vw,96px)}
  #xzWheelName{min-height:0;padding-block:70px}
  .gear-svg{width:min(88vw,520px)}
  #xzJarvis .xz-agent{min-height:330px}
}

@media(prefers-reduced-motion:reduce){
  #xzEra .xz-era .sub{opacity:1;transform:none;transition:none}
  .bc-bub{transition:none;opacity:var(--o,.7);scale:1}
  .bc-you{transition:none;opacity:1;transform:none}
  .gear-bg{transition:none;opacity:1}
  .gear{animation:none}
  .xz-agent.go .xz-askb{animation:none;opacity:1;transform:none}
}

/* ══ v21 · 图要说得出话（2026-10-26 傍晚）═════════════════════════════
   用户四条：
     ① 「不被选择，就不存在」那块太空，要配一张具象的图
     ② 答案位的 01/02/03 太粗、看不懂 —— 改成一段 AI 的回答
     ③ 「成为答案」的对话框没感觉，要有弹出的过程、有科技感，
        鼠标动了后面的对话框也跟着动
     ④ 结语按 poe 那份稿子重写，配一颗转着的地球（参考首页）
   ──────────────────────────────────────────────────────────────── */

/* ── ① 不被选择：三样都还在，可它们走不到 AI 那头 ── */
#xzNotExist{padding-block:clamp(78px,10vh,116px)}
.ne-stage{
  --gap:clamp(48px,7.4vw,104px);
  display:grid;grid-template-columns:minmax(120px,176px) minmax(0,396px);
  justify-content:start;column-gap:var(--gap);align-items:center;
  width:min(100%,760px);margin:clamp(30px,4.6vh,48px) 0 clamp(28px,4.4vh,46px);
}
.ne-left{display:flex;flex-direction:column;gap:clamp(16px,2.4vh,24px)}
.ne-item{
  position:relative;padding-left:16px;white-space:nowrap;
  font-size:15.5px;font-weight:400;letter-spacing:.02em;line-height:1;color:var(--dim);
}
.ne-item i{
  position:absolute;left:0;top:50%;width:5px;height:5px;margin-top:-2.5px;
  border-radius:50%;background:rgba(201,164,92,.5);
}
/* 伸出去的那条线：走到一半就淡了，到不了对面 */
.ne-item::after{
  content:"";position:absolute;left:100%;top:50%;height:1px;
  width:calc(var(--gap) * .66);
  background:linear-gradient(90deg,rgba(201,164,92,.36),rgba(201,164,92,.12) 62%,rgba(201,164,92,0) 96%);
  transform:scaleX(0);transform-origin:left;
  transition:transform 1.15s var(--e);
  transition-delay:calc(var(--i,0) * 130ms + 260ms);
}
.ne-stage.go .ne-item::after{transform:scaleX(1)}
/* 一颗小光点：走出去，到不了，就散了 */
.ne-item::before{
  content:"";position:absolute;left:100%;top:50%;width:5px;height:5px;margin-top:-2.5px;
  border-radius:50%;background:#f2e4c4;box-shadow:0 0 9px rgba(201,164,92,.8);opacity:0;
}
.ne-stage.go .ne-item::before{
  animation:neSpark 3.4s var(--e) infinite;
  animation-delay:calc(var(--i,0) * 640ms + 1.15s);
}
@keyframes neSpark{
  0%{opacity:0;transform:translateX(0) scale(.5)}
  9%{opacity:1;transform:translateX(3px) scale(1)}
  74%{opacity:.62;transform:translateX(calc(var(--gap) * .40)) scale(.85)}
  100%{opacity:0;transform:translateX(calc(var(--gap) * .60)) scale(.3)}
}

.ne-panel{
  width:min(100%,396px);overflow:hidden;
  background:#12110d;border:1px solid rgba(201,164,92,.26);border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(232,230,224,.05),0 20px 48px rgba(0,0,0,.5);
}
.ne-head,.ab-head{
  display:flex;align-items:center;gap:5px;padding:10px 14px;
  background:rgba(201,164,92,.05);border-bottom:1px solid rgba(201,164,92,.16);
  font-size:10.5px;letter-spacing:.14em;color:var(--dim);
}
.ne-head b,.ab-head b{width:5px;height:5px;border-radius:50%;background:rgba(201,164,92,.55)}
.ne-head em,.ab-head em{margin-left:auto;font-style:normal}
.ne-body{padding:15px 16px 14px}
.ne-q{
  margin:0 0 10px auto;width:fit-content;max-width:100%;
  padding:8px 12px;border-radius:9px 9px 2px 9px;
  background:rgba(201,164,92,.15);border:1px solid rgba(201,164,92,.22);
  font-size:13px;line-height:1.7;color:#f4f1ea;
}
.ne-rows{display:block}
.ne-row{
  display:flex;align-items:baseline;gap:12px;padding:8px 0;
  opacity:0;transform:translateY(6px);
  transition:opacity .75s var(--e),transform .75s var(--e);
  transition-delay:calc(var(--i,0) * 300ms + 520ms);
}
.ne-stage.go .ne-row{opacity:1;transform:none}
.ne-row b{font-size:10.5px;font-weight:500;letter-spacing:.14em;color:var(--gold-deep)}
.ne-row span{font-size:15px;letter-spacing:.01em;color:var(--dim)}
.ne-row:first-child span{color:var(--text)}
.ne-end{
  display:flex;align-items:center;gap:9px;margin-top:9px;padding-top:10px;
  border-top:1px solid rgba(232,230,224,.07);
  font-size:11.5px;letter-spacing:.02em;color:var(--faint);
  opacity:0;transition:opacity .8s var(--e) 1.6s;
}
.ne-stage.go .ne-end{opacity:1}
.ne-caret{width:1px;height:12px;background:var(--gold);opacity:0;flex:none}
.ne-stage.go .ne-caret{animation:neCaret .85s 1.75s 3 both}
@keyframes neCaret{0%,49%{opacity:1}50%,100%{opacity:0}}

/* ── ② 答案位：三格改成一段回答，第三条空着 ── */
.ansbox-wrap{
  width:min(100%,560px);margin:clamp(34px,5.2vh,54px) auto 0;text-align:left;
}
.ansbox{
  overflow:hidden;background:#12110d;border:1px solid rgba(201,164,92,.24);border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(232,230,224,.05),0 22px 52px rgba(0,0,0,.45);
}
.ab-body{padding:16px 18px 10px}
.ab-q{
  margin:0 0 8px auto;width:fit-content;max-width:100%;
  padding:8px 12px;border-radius:9px 9px 2px 9px;
  background:rgba(201,164,92,.15);border:1px solid rgba(201,164,92,.22);
  font-size:12.5px;line-height:1.7;color:#f4f1ea;
}
.ab-row{
  display:flex;align-items:center;gap:14px;padding:12px 10px;border-radius:8px;
  opacity:0;transform:translateY(7px);
  transition:opacity .7s var(--e),transform .7s var(--e),background .6s var(--e);
  transition-delay:calc(var(--i,0) * 200ms + 320ms);
}
.ansbox-wrap.go .ab-row{opacity:1;transform:none}
.ab-row b{
  flex:none;width:20px;font-size:10.5px;font-weight:500;
  letter-spacing:.14em;color:var(--gold-deep);
}
.ab-nm{font-size:16px;letter-spacing:-.005em;color:var(--text)}
.ab-nm-wrap{position:relative;display:grid;align-items:center}
.ab-nm-wrap>*{grid-area:1/1}
.ab-why{display:grid;margin-left:auto;text-align:right}
.ab-why>*{grid-area:1/1}
.ab-why small{font-size:11.5px;letter-spacing:.01em;color:var(--faint);white-space:nowrap}
.ab-row.empty{background:rgba(201,164,92,.05)}
.ansbox-wrap.go .ab-row.empty{transition-delay:2.9s;background:rgba(201,164,92,.14)}
.ab-row.empty .ab-nm{color:var(--gold)}
/* 回位不延时、进位才延时：重播时才不会一半旧字一半新字 */
.ab-row.empty .ab-nm.you{opacity:0;transform:translateY(7px);
  transition:opacity .6s var(--e),transform .6s var(--e)}
.ansbox-wrap.go .ab-row.empty .ab-nm.you{opacity:1;transform:none;transition-delay:2.95s}
.ab-row.empty .ab-why .you{opacity:0;transition:opacity .6s var(--e)}
.ansbox-wrap.go .ab-row.empty .ab-why .you{opacity:1;transition-delay:2.95s}
.ab-row.empty .ab-nm.ghost,.ab-row.empty .ab-why .ghost{transition:opacity .35s}
.ansbox-wrap.go .ab-row.empty .ab-nm.ghost,
.ansbox-wrap.go .ab-row.empty .ab-why .ghost{opacity:0;transition-delay:2.62s}
.ab-caret{
  position:absolute;left:-11px;top:50%;margin-top:-.55em;
  width:1px;height:1.1em;background:var(--gold);opacity:0;
}
.ansbox-wrap.go .ab-caret{animation:abBlink .8s 1.25s 2 both}
@keyframes abBlink{0%,49%{opacity:1}50%,100%{opacity:0}}
.ab-note{
  margin:clamp(16px,2.2vh,22px) 0 0;text-align:center;
  font-size:12.5px;letter-spacing:.02em;color:var(--faint);
}

/* ── ③ 成为答案：远近错开、扫一遍、金色那只弹出来被锁住 ── */
.bc-glow{
  position:absolute;left:50%;top:50%;z-index:0;pointer-events:none;
  width:min(62vw,540px);aspect-ratio:1;border-radius:50%;
  translate:-50% -50%;
  transform:translate3d(calc(var(--mx,0) * 30%),calc(var(--my,0) * 26%),0);
  background:radial-gradient(circle,rgba(201,164,92,.105),rgba(201,164,92,.03) 44%,transparent 68%);
  opacity:0;transition:opacity .9s var(--e);will-change:transform;
}
.bc-stage.go .bc-glow{opacity:1}
.bc-bub{
  translate:-50% -50%;
  transform:translate3d(calc(var(--mx,0) * var(--d,1) * 15px),calc(var(--my,0) * var(--d,1) * 12px),0);
  will-change:transform;
}
.bc-bub:nth-child(3n){border-color:rgba(232,230,224,.12)}
.bc-you{
  translate:0 0;
  transform:translate3d(calc(var(--mx,0) * 30px),calc(var(--my,0) * 24px),0);
  transition:none;will-change:transform;
}
.bc-you-in{
  position:relative;display:flex;opacity:0;
}
.bc-stage.go .bc-you-in{animation:bcPop 1.15s var(--e) 1.1s both}
@keyframes bcPop{
  0%{opacity:0;scale:.5;filter:blur(8px)}
  54%{opacity:1;scale:1.08;filter:blur(0)}
  76%{scale:.99}
  100%{opacity:1;scale:1;filter:blur(0)}
}
/* 一圈光散开，像刚被点亮 */
.bc-you-in::after{
  content:"";position:absolute;inset:-1px;border-radius:14px;pointer-events:none;
  border:1px solid rgba(201,164,92,.55);opacity:0;
}
.bc-stage.go .bc-you-in::after{animation:bcRing 1.6s var(--e) 1.32s both}
@keyframes bcRing{0%{opacity:.85;scale:1}72%{opacity:.18}100%{opacity:0;scale:1.9}}
/* 四角锁上去：它是被"认出来"的那一只，不是随便放上去的 */
.bc-tgt{
  position:absolute;inset:-7px -8px;pointer-events:none;opacity:0;
  background:
    linear-gradient(var(--gold),var(--gold)) left top/7px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) left top/1px 7px no-repeat,
    linear-gradient(var(--gold),var(--gold)) right top/7px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) right top/1px 7px no-repeat,
    linear-gradient(var(--gold),var(--gold)) left bottom/7px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) left bottom/1px 7px no-repeat,
    linear-gradient(var(--gold),var(--gold)) right bottom/7px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) right bottom/1px 7px no-repeat;
}
.bc-stage.go .bc-tgt{animation:bcTgt .5s var(--e) 2s both}
@keyframes bcTgt{0%{opacity:0;scale:1.34}65%{opacity:.95}100%{opacity:.6;scale:1}}
/* 从上往下扫一遍：它是在这一堆里被挑出来的 */
.bc-scan{
  position:absolute;left:-2%;right:-2%;top:6%;height:1px;z-index:4;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(201,164,92,.03) 10%,
    rgba(201,164,92,.5) 50%,rgba(201,164,92,.03) 90%,transparent);
  box-shadow:0 0 20px rgba(201,164,92,.22);
}
.bc-stage.go .bc-scan{animation:bcScan 1.8s var(--e) .12s both}
@keyframes bcScan{
  0%{opacity:0;top:5%}
  14%{opacity:1}
  76%{opacity:1}
  100%{opacity:0;top:95%}
}

/* ── ④ 结语：世界各地看到的同一件事 + 一颗地球 ── */
#xzEnd{text-align:left;min-height:0;padding-block:clamp(76px,9.6vh,110px)}
#xzEnd .xz-kick{justify-content:flex-start}
#xzEnd .xz-kick::before{display:block;width:22px}
.end-top{
  display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(34px,5vw,70px);align-items:center;
  margin-top:clamp(18px,3vh,30px);
}
.end-say{
  margin:0;font-size:clamp(29px,3.7vw,52px);font-weight:400;
  letter-spacing:-.042em;line-height:1.34;color:var(--text);
}
.end-say em{font-style:normal;color:var(--gold)}
.end-p{
  margin:clamp(18px,2.6vh,28px) 0 0;max-width:32em;
  font-size:16px;font-weight:200;line-height:2.05;color:var(--dim);
}
.end-p em{font-style:normal;color:var(--text)}
.end-globe{justify-self:center;width:min(100%,470px)}
.eg-canvas{position:relative;width:100%;aspect-ratio:1}
.eg-canvas canvas{display:block;width:100%;height:100%}
.end-body{margin-top:clamp(28px,4vh,42px);max-width:44em}
.end-body p{margin:0 0 clamp(14px,2vh,18px);font-size:16px;font-weight:200;line-height:2.1;color:var(--dim)}
.end-body p:last-child{margin-bottom:0}
.end-body .end-turn{
  margin:clamp(22px,3.2vh,32px) 0;color:var(--text);
  font-size:clamp(18px,1.75vw,22px);font-weight:400;letter-spacing:-.02em;line-height:1.7;
}
.end-turn em{font-style:normal;color:var(--gold)}
.end-sign{margin-top:clamp(36px,5vh,54px);padding-top:clamp(22px,3vh,30px);
  border-top:1px solid var(--line-soft)}
.end-slogan{
  margin:0;font-size:clamp(36px,5.2vw,70px);font-weight:400;
  letter-spacing:-.045em;line-height:1.14;color:var(--text);
}
.end-slogan em{font-style:normal;color:var(--gold)}
.end-cta{margin:clamp(14px,2vh,20px) 0 0;font-size:15px;font-weight:400;color:var(--dim)}
.end-mail{margin:10px 0 0;font-size:clamp(16px,1.5vw,19px)}
.end-mail a{
  display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;
  border-bottom:1px solid rgba(232,230,224,.22);padding-bottom:4px;
  transition:color .3s,border-color .3s;
}
.end-mail a:hover{color:var(--gold);border-color:var(--gold)}
.end-mail i{font-style:normal;transition:transform .3s}
.end-mail a:hover i{transform:translateX(4px)}
.end-attr{margin:clamp(26px,3.8vh,40px) 0 0;font-size:11.5px;line-height:1.9;
  letter-spacing:.02em;color:var(--faint)}

/* ── 手机 ── */
@media(max-width:760px){
  .ne-stage{grid-template-columns:1fr;row-gap:clamp(22px,3.4vh,30px);margin-block:clamp(26px,4vh,34px)}
  .ne-left{flex-direction:row;flex-wrap:wrap;gap:14px 20px}
  .ne-item{font-size:13.5px;padding-left:13px}
  .ne-item::after,.ne-item::before{display:none}
  .ne-panel{justify-self:stretch;width:100%}
  .ne-q{font-size:12.5px}
  .ne-row span{font-size:14.5px}
  .ne-end{font-size:11px}
  .ansbox-wrap{margin-top:clamp(30px,4.6vh,40px)}
  .ab-body{padding:14px 14px 8px}
  .ab-q{font-size:12px}
  .ab-row{gap:11px;padding:11px 8px}
  .ab-row b{width:16px}
  .ab-nm{font-size:15px}
  .ab-why small{font-size:10.5px}
  .ab-note{font-size:11.5px}
  .bc-glow{width:74vw}
  .bc-tgt{inset:-10px -11px}
  .end-top{grid-template-columns:1fr;gap:clamp(26px,4vh,36px)}
  .end-say{font-size:clamp(27px,7.6vw,38px)}
  .end-globe{width:min(100%,330px);justify-self:center}
  .end-p,.end-body p{font-size:15px;line-height:2.05}
  .end-attr{font-size:11px}
}

/* 平板/矮屏：地球收一档，别把句子挤窄 */
@media(min-width:761px) and (max-width:1080px){
  .end-globe{width:min(100%,340px)}
  .end-top{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,3.6vw,44px)}
}

@media(prefers-reduced-motion:reduce){
  .ne-item::before{animation:none;opacity:0}
  .ne-item::after{transition:none;transform:scaleX(1)}
  .bc-you-in{animation:none;opacity:1}
  .bc-you-in::after{animation:none;opacity:0}
  .bc-tgt{animation:none;opacity:.6}
  .bc-scan{animation:none;opacity:0}
  .ansbox-wrap.go .ab-caret{animation:none;opacity:0}
}

/* ══ v22 · 先给名字，再拆开讲（2026-10-26 夜）══════════════════════════
   用户七条：
     ① 页脚「怎么用」不要了
     ② 页面最后出现横线，很奇怪 → 收掉（落款上、页脚上、边界那块上下）
     ③ 选择飞轮被切成两段：应该是「提问 → 出来飞轮 → 再拆六步」
     ④ 「真相是唯一可持续的优化」那一篇全是字 → 判为低质信源要看得见
     ⑤ 五道过滤器同理：先名字和漏斗，再一关一关看
     ⑥ 答案位第三条只有「你」，得有一句像样的理由；那句长注释删掉
     ⑦ Q2「答案到第三条就结束了」不成立 → 换成它对你的一串追问
   ──────────────────────────────────────────────────────────────── */

/* ── ① 页脚：两栏，不留尺子 ── */
footer.gj-footwrap{border-top:0;padding-top:clamp(40px,5.4vh,64px)}
.gj-foot{grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(28px,6vw,80px);max-width:820px}

/* ── ② 横线收干净 ── */
.end-sign{border-top:0;padding-top:0;margin-top:clamp(36px,5.2vh,60px)}
/* 边界那块原来靠上下两条线框住，现在改成上下淡出的底色 */
.xz-band{
  border-block:0;
  background:linear-gradient(180deg,
    rgba(201,164,92,0) 0%,
    rgba(201,164,92,.055) 20%,
    rgba(201,164,92,.055) 80%,
    rgba(201,164,92,0) 100%);
}

/* ── ③ 居中的问题块：命名屏用 ── */
.xz-ask.xz-ctr-ask{max-width:none;margin-inline:auto;text-align:center;
  margin-bottom:clamp(16px,2.4vh,26px)}
.xz-ask.xz-ctr-ask .qn{justify-content:center;margin-bottom:11px}
.xz-ask.xz-ctr-ask p{max-width:none;margin-inline:auto;font-size:clamp(22px,2.5vw,34px)}

/* ── ④ 边界：左边三句，右边一张图 ── */
#xzEdge{padding-block:clamp(60px,7.8vh,92px)}
#xzEdge .xz-yes{font-size:clamp(26px,2.7vw,37px);margin-top:0}
#xzEdge .xz-edge-hi{font-size:clamp(19px,2.05vw,28px);line-height:1.44;
  margin-top:clamp(14px,2vh,20px);letter-spacing:-.03em}
#xzEdge .xz-name{margin-top:clamp(30px,4.4vh,46px)}
#xzEdge .xz-truth{font-size:clamp(30px,4.4vw,60px)}
.ed-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.96fr);
  gap:clamp(26px,4vw,56px);align-items:center;
  margin-top:clamp(2px,1.2vh,12px);
}
.ed-say .xz-lede{margin-top:clamp(10px,1.6vh,16px);max-width:21em}

.ed-chart{width:100%;max-width:660px;justify-self:stretch}
.ed-chart svg{width:100%;height:auto;display:block;overflow:visible}
.ed-axis{stroke:rgba(232,230,224,.13);stroke-width:1}
.ed-lb{font-size:10px;letter-spacing:.06em;fill:var(--faint)}
.ed-lb.ax{fill:rgba(138,133,120,.92);font-size:9.5px;letter-spacing:.1em}
.ed-lb.fake{fill:rgba(165,161,151,.94)}
.ed-lb.cliff{fill:rgba(165,161,151,.8)}
.ed-lb.true{fill:var(--gold);letter-spacing:.08em}
.ed-fake{stroke:rgba(232,230,224,.34);stroke-width:1.2;stroke-linecap:round}
.ed-true{stroke:var(--gold);stroke-width:1.7;stroke-linecap:round}
.ed-guide{stroke:rgba(201,164,92,.26);stroke-width:1;stroke-dasharray:2 4}
.ed-hit{fill:rgba(232,230,224,.55)}
/* 两条线各走各的：灰的先冲上去再掉下来，金的慢慢爬 */
.ed-fake,.ed-true{stroke-dasharray:100;stroke-dashoffset:100;
  transition:stroke-dashoffset 1.7s var(--e)}
.ed-true{transition-delay:.5s}
.ed-chart.go .ed-fake,.ed-chart.go .ed-true{stroke-dashoffset:0}
.ed-guide,.ed-hit,.ed-lb:not(.ax){opacity:0;transition:opacity .7s var(--e)}
.ed-chart.go .ed-guide{opacity:1;transition-delay:1.36s}
.ed-chart.go .ed-hit{opacity:1;transition-delay:1.5s}
.ed-chart.go .ed-lb{opacity:1;transition-delay:1.62s}

/* ── ⑤ 过滤器：命名屏先立，拆解屏只讲相乘 ── */
#xzFilterName{padding-block:clamp(64px,8vh,96px)}
#xzFilterName .xz-ask{margin-bottom:clamp(14px,2.2vh,22px)}
#xzFilterName .xz-funnel{margin-top:clamp(26px,3.8vh,42px)}
#xzFilter{padding-block:clamp(64px,8.4vh,100px)}
#xzFilter .xz-kick{margin-bottom:clamp(16px,2.4vh,24px)}
#xzFilter .xz-ans{margin-bottom:clamp(6px,1.2vh,12px)}
.xz-filter{min-height:clamp(122px,13.5vh,140px)}

/* ── ⑥ 飞轮命名屏：问题和名字一起压在齿轮上 ── */
#xzWheelName{min-height:100vh;min-height:100svh;padding-block:clamp(56px,7.2vh,86px)}
/* 问题和小标要在暗洗之上，不然会被压暗；再给一层极淡的底影，齿轮齿别穿字 */
#xzWheelName .xz-kick,#xzWheelName .xz-ask{position:relative;z-index:2}
#xzWheelName .xz-kick,#xzWheelName .xz-ask .qn,
#xzWheelName .xz-ask p{text-shadow:0 0 18px rgba(5,5,5,.96),0 0 7px rgba(5,5,5,.9)}
#xzWheelName .xz-ask{margin-bottom:clamp(12px,1.8vh,20px)}
/* 问题和名字挤在中间，整块要往上抬一点：让「选择飞轮」正对屏心，齿轮才咬得准 */
#xzWheelName .wrap{padding-bottom:clamp(110px,15.6vh,166px)}
#xzWheelName .wrap::before{display:none}
/* 暗洗跟着名字走，不跟着屏走 —— 否则齿轮一转，字上就浮出一块灰 */
#xzWheelName .xz-name{position:relative;isolation:isolate}
#xzWheelName .xz-name::before{
  content:"";position:absolute;z-index:-1;left:50%;top:50%;
  width:min(168%,900px);height:clamp(230px,32vh,300px);transform:translate(-50%,-50%);
  background:radial-gradient(ellipse at 50% 50%,
    rgba(5,5,5,.96) 34%,rgba(5,5,5,.82) 62%,rgba(5,5,5,0) 100%);
  pointer-events:none;
}
.gear-bg{padding-bottom:0}
.gear-svg{width:min(94vw,640px)}

/* ── ⑦ 答案位：第三条也有一句理由，像真的 ── */
.ab-row.empty .ab-why .you{color:var(--dim)}
.ab-why small{max-width:15em}

/* ── ⑧ Q2：它对你只有问题，没有答案 ── */
#xzNotExist{padding-block:clamp(54px,6.4vh,74px)}
#xzNotExist .xz-ask{margin-bottom:clamp(14px,2vh,20px)}
#xzNotExist .ne-stage{margin-block:clamp(20px,2.8vh,30px) clamp(18px,2.4vh,26px)}

/* ── 手机 ── */
@media(max-width:760px){
  .gj-foot{grid-template-columns:1fr;gap:22px;max-width:none}
  .ed-grid{grid-template-columns:1fr;gap:clamp(20px,3.2vh,28px)}
  .ed-chart{justify-self:stretch;max-width:none}
  .ed-lb{font-size:9.5px}
  #xzEdge .xz-edge-hi{font-size:20px}
  #xzFilterName{padding-block:clamp(52px,7vh,72px)}
  #xzFilterName .tail{max-width:22em}
  #xzWheelName{min-height:0;padding-block:clamp(52px,7.4vh,74px) clamp(46px,7vh,64px)}
  #xzWheelName .wrap{padding-bottom:0}
  #xzWheelName .xz-name::before{height:clamp(190px,28vh,240px);width:132%}
  .gear-svg{width:min(100vw,420px)}
  .ab-why small{max-width:9em;white-space:normal}
}

/* 平板 / 矮屏 */
@media(min-width:761px) and (max-height:830px){
  #xzWheelName{min-height:100vh;min-height:100svh;padding-block:48px}
  #xzEdge{padding-block:52px}
  #xzEdge .xz-truth{font-size:clamp(28px,3.8vw,50px)}
  .ed-chart{max-width:430px}
}

@media(prefers-reduced-motion:reduce){
  .ed-fake,.ed-true{transition:none;stroke-dashoffset:0}
  .ed-guide,.ed-hit,.ed-lb{transition:none;opacity:1}
}

/* 768 ~ 960：两栏放不下这张图，标注会缩到看不见 —— 改成一栏，图单独走 */
@media(min-width:761px) and (max-width:960px){
  .ed-grid{grid-template-columns:1fr;gap:clamp(22px,3.4vh,32px)}
  .ed-chart{max-width:none;justify-self:stretch}
  .ed-say .xz-lede{max-width:26em}
  #xzEdge .xz-truth{font-size:clamp(30px,5.4vw,44px)}
}

/* ══ v23 · 2026-10-26：几处关键的字，和这一屏的底 ═════════════════
   ①「如今」太小 —— 它不是脚注，是这一屏的时间坐标，要顶得住下面那行巨字
   ② 选择革命这一屏加底：点阵 + 数字/AI 标记 + 横向扫描带，
      一片候选里只亮少数几个 —— 做选择的那一方已经是机器了
   ③ Q2 左边原来的「产品还在/官网还在/团队还在」换成它想问你的四个问题，
      对话框里那一段撤掉（问题不该塞进 AI 的嘴里，该挂在它对面）
   ④「为什么是现在」升成一屏的问题（Q8），不再缩在一行 kick 里
   ⑤ 结语：让你成为答案 → 一起成为答案；重点句改成「好消息是：有变化，才有机会」
   ──────────────────────────────────────────────────────────────── */

/* ── ① 如今 ── */
#xzNow .xz-tag{
  display:flex;align-items:center;gap:13px;
  font-size:clamp(12.5px,1.06vw,15px);letter-spacing:.42em;font-weight:500;
  color:var(--gold);margin-bottom:clamp(15px,2.2vh,22px);
}
#xzNow .xz-tag::after{content:"";width:clamp(30px,3vw,46px);height:1px;background:var(--gold-deep);opacity:.7}
#xzNow .xz-now-line{margin-top:0}

/* ── ② 选择革命的底 ── */
#xzName > .wrap{position:relative;z-index:2}
.nm-matrix{
  position:absolute;inset:0;z-index:0;display:block;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 82% 70% at 50% 45%,#000 24%,rgba(0,0,0,.72) 56%,transparent 90%);
  mask-image:radial-gradient(ellipse 82% 70% at 50% 45%,#000 24%,rgba(0,0,0,.72) 56%,transparent 90%);
}

/* ── ③ 它想问你的四个问题 ── */
#xzNotExist .ne-left{gap:clamp(13px,1.9vh,19px)}
#xzNotExist .ne-item{font-size:15px;color:var(--dim);letter-spacing:.01em}
#xzNotExist .ne-item i{background:rgba(201,164,92,.62)}

/* ── ④ 为什么是现在 ── */
#xzWhen .when-ask{max-width:min(100%,26em);margin-bottom:clamp(30px,4vh,44px)}
#xzWhen .when-ask p{font-size:clamp(32px,5vw,66px);letter-spacing:-.045em;line-height:1.14}
#xzWhen .when-ask .qn{margin-bottom:clamp(12px,1.8vh,18px)}
#xzWhen .xz-say{max-width:24em}

/* ── ⑤ 结语的重点关系 ── */
#xzEnd .end-turn{font-size:clamp(20px,2.05vw,27px);letter-spacing:-.025em;line-height:1.62}
#xzEnd .end-slogan{letter-spacing:-.05em}

@media(max-width:760px){
  #xzNow .xz-tag{font-size:12.5px;letter-spacing:.34em;margin-bottom:12px}
  #xzNotExist .ne-item{font-size:13.5px}
  #xzWhen .when-ask p{font-size:clamp(28px,8.4vw,40px);line-height:1.2}
  #xzEnd .end-turn{font-size:clamp(18px,4.8vw,22px)}
}

/* ══ v24 · 2026-10-26 晚：名字一级、飞轮收拢、进屏过渡 ═════════════
   ① 名字一级：五个概念名同一档（--t-name）。用户原话：「选择革命的字号，
      至少要和成为答案，最大那几个字一样大吧。毕竟这个概念非常重要。」
      → 概念名从 L4 提到 L1；顺带把手机档那几条各写一套的覆盖删掉，
        一个 token 走全站，以后不会再出现「同类不同号」。
   ② 飞轮：轮盘和右边六个动作之间空了 118px（轮盘盒子里还有一圈死白），
      右边文字块只有 200 宽，整屏左重右空 → 收 gap、限文字栏、轮盘略缩。
   ③ 进屏：从贾维斯（全黑）直切到点阵，边缘一刀切很突然 →
      上沿从黑里长出来（#xzName::after 渐变压黑），并且透明度跟着滚动进场，
      是一点一点显影，不是整块亮起来。
   ──────────────────────────────────────────────────────────────── */

/* ── ① 名字一级（token 在 :root，这里只补短屏的例外说明） ── */
/* 短屏（≤820 高）成为答案那一屏内容多，仍按 96 收一档；这是「装不下」的例外，
   不是字号体系里的另一级。 */

/* ── ② 飞轮：把两栏拉近 ── */
@media(min-width:961px){
  .xz-wheel-wrap{
    grid-template-columns:minmax(320px,430px) minmax(0,1fr);
    gap:clamp(16px,1.8vw,26px);
  }
  .xz-wheel-wrap .xz-wd{max-width:520px}
}
/* 换步那一下：底色和字色必须同时到位。
   原来两者都带 .35s 过渡，中间那几帧是「深底深字 / 灰底灰字」，每 2.8 秒闪一次看不见。
   现在只有缩放是渐变的，颜色直接切。 */
.xz-wn{transition:transform .35s var(--e)}
.xz-wn.on{transition:transform .35s var(--e)}

/* 名字长到 126 之后，齿轮屏的暗洗要跟着加宽，否则字会骑在齿上 */
#xzWheelName .xz-name::before{
  width:min(178%,960px);height:clamp(250px,34vh,320px);
}

/* ── ③ 进屏：上沿从黑里长出来 ── */
#xzName{overflow:hidden}
#xzName::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    #050505 0,rgba(5,5,5,.86) 4%,rgba(5,5,5,.34) 12%,rgba(5,5,5,0) 22%,
    rgba(5,5,5,0) 84%,rgba(5,5,5,.34) 93%,rgba(5,5,5,.86) 97%,#050505 100%);
}
.nm-matrix{opacity:0}

/* ── ④ 结语那一句是最后一锤，不能比中段的判决小 ── */
#xzEnd .end-slogan{font-size:clamp(40px,6vw,86px)}

/* ── ⑤ 飞轮的背景：两条媒体标墙慢慢走 ──
   六个动作里第三条是「铺证」，背后走的正是被谁写过。
   位置钉在轮盘上下沿（不按屏幕百分比）—— 屏高不同，轮盘的位置差得远，
   按百分比摆会在矮屏上压到 ① 号按钮。手机不给（那块本来就挤）。 */
#xzWheel{overflow:hidden}
.xz-logos{
  position:absolute;inset:0;z-index:0;
  display:none;pointer-events:none;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);
}
@media(min-width:761px){ .xz-logos{display:block} }
.lg-row{
  position:absolute;left:0;display:flex;flex:none;align-items:center;width:max-content;
  gap:clamp(42px,4.8vw,88px);
  animation:lgdrift var(--dur,120s) linear infinite;
}
/* 两条带子放在屏的上下边：标题之上、落款之下，中间所有内容都碰不到 */
.lg-row:nth-child(1){top:clamp(84px,10.2vh,114px)}
.lg-row:nth-child(2){bottom:clamp(34px,4.6vh,52px)}
.lg-row.rev{animation-direction:reverse}
.lg-row span{flex:none;display:block}
.lg-row img{display:block;height:clamp(15px,1.45vw,21px);width:auto;opacity:.19}
/* 隔几个错一点高低，别排成一条直线 */
.lg-row span:nth-child(3n+2){transform:translateY(5px)}
.lg-row span:nth-child(4n+3){transform:translateY(-4px)}
@keyframes lgdrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){
  .lg-row{animation:none}
}

/* ══ v25 · 2026-10-26 夜：名字逐字显影、AI 标水印、地球连线 ═══════════
   ① 「选择革命」四个字要有渐显：一个字一个字浮出来，像被念出来的，
      不是整块贴上去。整块 opacity 那层撤掉，只做字的层次（不然双重淡入发灰）。
   ② 名字背后加闪烁的金光（canvas 里，见 xuanze.html 的 nmMatrix），
      暗处偶尔反一下光 —— 金属感，不是星空。
   ③ Q1 / Q2 两屏的底压一层 AI 公司的标（assets/img/platform 已有，
      .05 上下的白标），格子统一、留三成空 —— 让人感觉到"它们无处不在"。
   ④ 地球下面那两行小字（国家名 / 应用程度各不相同）全撤，球放大；
      球上的点之间补连线：五个地方两两相连，另加三十条点与点的短线。
   ──────────────────────────────────────────────────────────────── */

/* ── ① 名字逐字显影 ── */
#xzName .xz-name.rv{opacity:1;transform:none;transition:none}
#xzName .nm-word span{
  display:inline-block;
  opacity:0;
  filter:blur(14px);
  transform:translateY(24px) scale(1.06);
  transition:opacity 1.3s var(--e),filter 1.3s var(--e),transform 1.3s var(--e);
}
#xzName .xz-name.in .nm-word span{
  opacity:1;filter:blur(0);transform:none;
  transition-delay:calc(var(--i) * 145ms + .2s);
}
/* 句号最后落，稍轻一点，别和四个字抢 */
#xzName .nm-word span.p{transition-duration:1s}

/* ── ③ AI 标水印 ── */
#xzClient,#xzNotExist{overflow:hidden}
#xzClient > .wrap,#xzNotExist > .wrap{position:relative;z-index:2}
.ai-wm{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse 80% 78% at 50% 48%,#000 24%,rgba(0,0,0,.42) 68%,transparent 94%);
  mask-image:radial-gradient(ellipse 80% 78% at 50% 48%,#000 24%,rgba(0,0,0,.42) 68%,transparent 94%);
}
.ai-wm span{
  position:absolute;display:block;translate:-50% -50%;
  animation:aifloat var(--du,24s) ease-in-out var(--dl,0s) infinite alternate;
}
.ai-wm img{display:block;height:var(--s,26px);width:auto;opacity:var(--o,.06);filter:grayscale(1)}
@keyframes aifloat{from{transform:translateY(0)}to{transform:translateY(-13px)}}

@media(max-width:760px){
  .ai-wm{opacity:.6}
}

@media(prefers-reduced-motion:reduce){
  #xzName .nm-word span{opacity:1;filter:none;transform:none;transition:none}
  .ai-wm span{animation:none}
}

/* ══ v26 · 2026-10-26：加小助手（二维码进联系板块） ═════════════════
   除了写信，也能扫码加小助手。要求是「说明白」——所以文案只干一件事：
   告诉人这一步要做什么（备注公司与来意），不解释二维码是什么。
   码本身已经是站内素材（暖纸底 / 墨黑码点 / 四点五模块静区），
   这里只加一层极淡的金线，让它像一张名片，不像贴上去的一块白。
   ──────────────────────────────────────────────────────────────── */

.qr-way{
  display:flex;align-items:center;gap:clamp(16px,2.1vw,24px);
  margin:clamp(26px,3.4vh,38px) 0 0;
  width:fit-content;max-width:100%;
}
.mail-big .qr-way{margin-inline:auto;text-align:left}
.qr-way img{
  display:block;flex:none;
  width:clamp(124px,11.2vw,156px);height:auto;
  border-radius:12px;
  background:#f2ede3;
  border:1px solid rgba(201,164,92,.20);
}
.qr-txt{min-width:0}
.qr-h{
  margin:0;font-size:clamp(14px,1.15vw,15.5px);font-weight:400;
  letter-spacing:0;line-height:1.5;color:var(--text);
}
.qr-p{
  margin:7px 0 0;font-size:12.5px;font-weight:400;line-height:1.72;
  letter-spacing:.01em;color:var(--dim);
}
.qr-p b{font-weight:500;color:var(--gold)}

/* 选择革命那一屏的签名区是左轴，码也跟着左轴，不居中 */
#xzEnd .qr-way img{width:clamp(112px,9.6vw,136px);border-radius:10px}

@media(max-width:760px){
  .qr-way{gap:14px;margin-top:24px}
  .qr-way img{width:112px;border-radius:9px}
  .qr-h{font-size:14px}
  .qr-p{font-size:12px;margin-top:5px}
  #xzEnd .qr-way img{width:106px}
}
