/* ============ 基础 ============ */
:root{
  --bg:#050b13;
  --ink:#eef3fc;
  --dim:rgba(176,196,228,.85);
  --faint:rgba(176,196,228,.55);
  --ghost:rgba(158,178,212,.14);
  --gold:#7ea6ff;
  --cream:#dce9ff;
  --blue:#8db4ff;
  --mint:#4fd8b8;
  --line:rgba(158,178,212,.16);
  --ease:cubic-bezier(.25,1,.5,1);
  --serif:'Space Grotesk',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  --sans:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  letter-spacing:.02em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
/* 背景：用户提供的深蓝底图 + 哑光遮罩 + 顶部微光 */
.bgfx{position:fixed;inset:0;z-index:-2;background:url('../bg.jpg') center/cover no-repeat}
.bgfx::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,17,32,.82) 0%,rgba(8,17,32,.66) 40%,rgba(8,17,32,.88) 100%)}
.bgfx::before{content:'';position:absolute;inset:0;
  background:radial-gradient(120% 60% at 70% 0%,rgba(143,184,221,.10),transparent 60%)}
::selection{background:rgba(126,166,255,.35)}

/* 桌面端：内容收敛为手机宽度一栏 */
.wrap{max-width:480px;margin:0 auto;position:relative}
@media(min-width:600px){
  .wrap{box-shadow:0 0 120px rgba(0,0,0,.55)}
  body::before,body::after{content:'';position:fixed;top:0;bottom:0;width:1px;background:rgba(226,236,252,.05);z-index:5}
  body::before{left:calc(50% - 240px)}body::after{right:calc(50% - 240px)}
}

/* 顶部阅读进度发丝线 */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--mint));transition:width .15s linear}

/* ============ 通用排版 ============ */
.kicker{font-family:var(--serif);font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--mint);margin-bottom:22px}
.kicker b{color:var(--faint);font-weight:400}
h1,h2{font-weight:300}
.serif{font-family:var(--serif)}
.statement{font-size:clamp(30px,8.4vw,38px);line-height:1.5;font-weight:500;letter-spacing:.04em}
.statement .gold{color:var(--gold);font-weight:600}
.statement .blue{color:var(--blue);font-weight:600}
.impact{color:var(--gold);font-weight:600}
.micro{font-size:12px;letter-spacing:.24em;color:var(--faint);font-weight:400}
.small{font-size:14px;line-height:2.05;color:var(--dim);letter-spacing:.04em;font-weight:400}
.gold-t{color:var(--cream)} .blue-t{color:var(--blue)} .dim-t{color:var(--dim)}

/* 屏幕容器 */
.screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:88px 28px;position:relative;text-align:left}
.screen.top-pad{padding-top:120px}

/* 进场动效：blur-to-sharp */
.rv{opacity:0;transform:translateY(26px);filter:blur(3px);
  transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);
  transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none;filter:blur(0)}

/* ============ 分镜（scrolly）系统 ============ */
.scrolly{position:relative;height:calc(var(--len,3) * 100vh)}
.scrolly .stick{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.st{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 28px;text-align:left;
  opacity:0;visibility:hidden;transform:translateY(30px);
  transition:opacity .65s var(--ease),transform .65s var(--ease),visibility 0s .65s}
.st.on{opacity:1;visibility:visible;transform:none;transition:opacity .85s var(--ease) .06s,transform .85s var(--ease) .06s,visibility 0s}
.st .it{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i,0)*.13s + .18s)}
.st.on .it{opacity:1;transform:none}

/* SVG 连线描绘 */
.draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s var(--ease);transition-delay:var(--dd,0s)}
.on .draw, .stage-on .draw{stroke-dashoffset:0}
#p1[data-stage="2"] .net-svg line:nth-of-type(1){stroke-dashoffset:0}
#p1[data-stage="3"] .net-svg line,#p1[data-stage="4"] .net-svg line{stroke-dashoffset:0}
#p2[data-stage="1"] .net .draw,#p2[data-stage="2"] .net .draw,
#p2[data-stage="3"] .net .draw,#p2[data-stage="4"] .net .draw{stroke-dashoffset:0}

/* 节点 */
.node{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:50%;background:rgba(13,26,44,.55);backdrop-filter:blur(6px);
  font-size:12px;letter-spacing:.14em;color:var(--dim);white-space:nowrap}
.node::after{content:'';position:absolute;inset:-1px;border-radius:50%;box-shadow:0 0 18px rgba(143,184,221,.0);transition:box-shadow 1s var(--ease)}
.node.lit::after{box-shadow:0 0 26px rgba(143,184,221,.22)}

/* ============ P0 Opening ============ */
#p0{min-height:100vh;min-height:100dvh}
#p0 .brandline{font-family:var(--serif);letter-spacing:.5em;font-size:12px;color:var(--dim)}
#p0 .hero-line{font-family:var(--sans);font-weight:600;font-size:clamp(38px,11.5vw,54px);letter-spacing:.12em;margin:38px 0 26px;color:var(--ink)}
#p0 .hero-line em{font-style:normal;color:var(--gold)}
.scrollhint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:14px}
.scrollhint .wire{width:1px;height:64px;background:linear-gradient(180deg,var(--gold),transparent);position:relative;overflow:hidden}
.scrollhint .wire::after{content:'';position:absolute;top:-40%;left:0;width:100%;height:40%;background:var(--cream);animation:wireDrop 2.4s var(--ease) infinite}
@keyframes wireDrop{0%{top:-40%}70%,100%{top:110%}}

/* ============ P1 组织结构改变 ============ */
.diagram{position:relative;width:min(86vw,360px);aspect-ratio:1}
.chip{position:absolute;transform:translate(-50%,-50%);padding:11px 19px;border:1px solid var(--line);border-radius:999px;
  background:rgba(13,26,44,.6);backdrop-filter:blur(8px);font-size:14px;letter-spacing:.16em;color:var(--ink);white-space:nowrap;
  opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease),box-shadow 1.2s var(--ease)}
.chip.core{border-color:rgba(126,166,255,.4);color:var(--cream);box-shadow:0 0 30px rgba(126,166,255,.12)}
.chip.agent{border-color:rgba(143,184,221,.45);color:var(--blue)}
.chip.agent.on{box-shadow:0 0 34px rgba(143,184,221,.25)}
.chip.mini{padding:8px 13px;font-size:11px;color:#c8d9f5;border-color:rgba(141,180,255,.28);background:rgba(126,166,255,.09)}
  .chip.mini.hot{background:rgba(126,166,255,.18);border-color:rgba(141,180,255,.5);color:#eaf2ff;font-weight:600;box-shadow:0 0 22px rgba(126,166,255,.14)}
#p1 .net-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#p1 .net-svg line{stroke:var(--line);stroke-width:.6}
#p1 .net-svg line.hot{stroke:rgba(143,184,221,.5)}
#p1 .old{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:0;
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
#p1 .old .ob{padding:10px 22px;border:1px solid var(--line);border-radius:999px;background:rgba(13,26,44,.55);font-size:13px;letter-spacing:.2em;color:var(--dim)}
#p1 .old .ol{width:1px;height:22px;background:var(--line)}
#p1 .old .olabel{font-family:var(--serif);font-size:11px;letter-spacing:.5em;color:var(--faint);margin-bottom:20px}
#p1 .nlabel{position:absolute;left:50%;top:-7%;transform:translateX(-50%);margin:0 0 0 .3em;font-family:var(--serif);font-size:16px;font-weight:600;letter-spacing:.5em;color:var(--gold);white-space:nowrap;opacity:0;transition:opacity .9s var(--ease) .2s}
#p1[data-stage="2"] .nlabel,#p1[data-stage="3"] .nlabel,#p1[data-stage="4"] .nlabel{opacity:1}
#p1[data-stage="0"] .chip{opacity:0}
#p1[data-stage="1"] .old,#p1[data-stage="2"] .old,#p1[data-stage="3"] .old,#p1[data-stage="4"] .old{opacity:.16;transform:translate(-50%,-50%) translate(-30vw,-16vh) scale(.6)}
#p1[data-stage="1"] .chip.core,#p1[data-stage="2"] .chip.core,#p1[data-stage="3"] .chip.core,#p1[data-stage="4"] .chip.core{opacity:1}
#p1[data-stage="2"] .chip.agent,#p1[data-stage="3"] .chip.agent,#p1[data-stage="4"] .chip.agent{opacity:1}
#p1[data-stage="3"] .chip.mini,#p1[data-stage="4"] .chip.mini{opacity:1}
#p1[data-stage="4"] .diagram{opacity:.14;transform:scale(.86);filter:blur(1px)}
#p1 .diagram{transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
#p1 .finale{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding:0 30px;text-align:left;
  opacity:0;visibility:hidden;transform:translateY(20px);transition:all .8s var(--ease)}
#p1[data-stage="4"] .finale{opacity:1;visibility:visible;transform:none;transition:all .8s var(--ease) .25s}
.from-to{display:flex;align-items:center;gap:16px;font-size:clamp(22px,6.2vw,26px);letter-spacing:.08em}
.from-to .q{color:var(--cream);font-weight:600;text-decoration:line-through;text-decoration-color:rgba(226,236,252,.4);text-decoration-thickness:1px}
.from-to .arr{color:var(--gold);font-family:var(--serif)}
.from-to .t{color:var(--gold);font-weight:600}

/* ============ P2 旧方式失效 ============ */
#p2 .net{position:relative;width:min(88vw,380px);aspect-ratio:4/5}
#p2 .net svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#p2 .cap{position:absolute;transform:translate(-50%,-50%);padding:9px 15px;border:1px solid rgba(226,236,252,.12);border-radius:999px;
  background:rgba(13,26,44,.55);font-size:12px;letter-spacing:.14em;color:var(--dim);white-space:nowrap;
  opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--dd,0s)}
#p2 .founder{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:104px;height:104px;border-radius:50%;
  border:1.5px solid rgba(183,209,255,.95);background:radial-gradient(circle at 50% 36%,rgba(150,186,255,.85),rgba(84,128,220,.62) 52%,rgba(20,38,72,.95) 84%);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;letter-spacing:.24em;color:#ffffff;
  box-shadow:0 0 64px rgba(126,166,255,.45),inset 0 0 30px rgba(190,214,255,.25);opacity:0;transition:opacity .8s var(--ease) .1s}
#p2 .verb{position:absolute;transform:translate(-50%,-50%);font-size:11px;font-weight:500;letter-spacing:.3em;color:#a8ecd9;
  padding:5px 11px;border:1px solid rgba(79,216,184,.5);border-radius:999px;background:rgba(79,216,184,.15);box-shadow:0 0 18px rgba(79,216,184,.14);
  opacity:0;transition:opacity .7s var(--ease);transition-delay:var(--dd,0s)}
#p2[data-stage="1"] .founder,#p2[data-stage="2"] .founder,#p2[data-stage="3"] .founder,#p2[data-stage="4"] .founder{opacity:1}
#p2[data-stage="1"] .cap,#p2[data-stage="2"] .cap,#p2[data-stage="3"] .cap,#p2[data-stage="4"] .cap{opacity:1}
#p2[data-stage="2"] .verb,#p2[data-stage="3"] .verb,#p2[data-stage="4"] .verb{opacity:1}
#p2 .net{transition:opacity 1s var(--ease),filter 1s var(--ease),transform 1s var(--ease)}
#p2[data-stage="3"] .net{opacity:.45}
#p2[data-stage="4"] .net{opacity:.08;filter:blur(2px);transform:scale(.94)}
#p2 .turn{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);padding:0 34px;opacity:0;visibility:hidden;transition:all .8s var(--ease);text-align:left}
#p2[data-stage="3"] .turn{opacity:1;visibility:visible;transition:all .8s var(--ease) .3s}
#p2[data-stage="4"] .turn{opacity:0;visibility:hidden}
#p2 .final2{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);padding:0 34px;opacity:0;visibility:hidden;transition:all .8s var(--ease);text-align:left}
#p2[data-stage="4"] .final2{opacity:1;visibility:visible;transition:all .8s var(--ease) .3s}

/* ============ P3 新范式 ============ */
#p3 .chips-col{display:flex;flex-direction:column;align-items:center;gap:0;margin-top:8px}
#p3 .pc{padding:14px 28px;border:1px solid rgba(226,236,252,.16);border-radius:999px;background:rgba(13,26,44,.6);backdrop-filter:blur(8px);
  font-size:17px;letter-spacing:.2em;color:var(--ink);
  opacity:0;transform:translate(var(--sx,0),var(--sy,0)) rotate(var(--sr,0deg));
  transition:opacity .8s var(--ease),transform 1s var(--ease),border-color 1s var(--ease);transition-delay:var(--dd,0s)}
#p3 .plus{color:var(--gold);font-family:var(--serif);font-size:14px;line-height:1;padding:9px 0;opacity:0;transition:opacity .6s var(--ease);transition-delay:var(--dd,0s)}
#p3 .thread{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(126,166,255,.4),transparent);
  transform:scaleY(0);transform-origin:top;transition:transform 1.6s var(--ease) .3s}
#p3[data-stage="2"] .pc{opacity:.92}
#p3[data-stage="3"] .pc,#p3[data-stage="4"] .pc{opacity:1;transform:none;border-color:rgba(126,166,255,.35)}
#p3[data-stage="3"] .plus,#p3[data-stage="4"] .plus{opacity:1}
#p3[data-stage="3"] .thread,#p3[data-stage="4"] .thread{transform:scaleY(1)}

/* ============ P4 对话 + 流程 ============ */
.chat{width:100%;max-width:380px;border:1px solid var(--line);border-radius:14px;background:rgba(10,20,36,.72);backdrop-filter:blur(10px);overflow:hidden;text-align:left}
.chat-h{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid rgba(226,236,252,.08)}
.chat-h .dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px rgba(143,184,221,.6)}
.chat-h .t{font-size:12px;letter-spacing:.24em;color:var(--dim)}
.bubble{max-width:82%;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.8;letter-spacing:.03em}
.bubble.user{margin:18px 16px 6px auto;background:rgba(79,216,184,.10);border:1px solid rgba(79,216,184,.32);color:#d9f6ec;border-bottom-right-radius:3px}
.bubble.agent{margin:18px auto 6px 16px;background:rgba(143,184,221,.10);border:1px solid rgba(143,184,221,.28);color:var(--ink);border-bottom-left-radius:3px}
.chat .checks{padding:4px 20px 20px 20px}
.chat .checks li{list-style:none;font-size:12.5px;color:var(--dim);letter-spacing:.04em;line-height:2.2;display:flex;gap:9px;align-items:baseline}
.chat .checks li::before{content:'✓';color:var(--gold);font-size:11px}
.flow{width:100%;max-width:380px;text-align:left;position:relative;margin:0 auto}
.flow::before{content:'';position:absolute;left:23px;top:14px;bottom:14px;width:1px;background:linear-gradient(180deg,rgba(126,166,255,.35),rgba(143,184,221,.25))}
.step{display:flex;gap:20px;padding:20px 0;position:relative}
.step .no{font-family:var(--serif);font-size:15px;color:var(--mint);width:48px;height:48px;flex:none;border:1px solid rgba(79,216,184,.4);
  border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(8,17,32,.9);position:relative;z-index:1}
.step .body{padding-top:4px}
.step .body h3{font-size:16px;font-weight:400;letter-spacing:.16em;margin-bottom:8px}
.step .body p{font-size:12.5px;color:var(--dim);letter-spacing:.06em;line-height:1.9}
.step .body p i{font-style:normal;color:var(--faint);padding:0 6px}

/* ============ P4 微信式对话（动态执行） ============ */
.wxchat{width:100%;max-width:400px;border:1px solid var(--line);border-radius:18px;background:#0b1523;box-shadow:0 24px 70px rgba(0,0,0,.4);overflow:hidden;text-align:left}
.wx-h{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid rgba(226,236,252,.08);background:rgba(8,17,32,.6)}
.wx-h .wx-back,.wx-h .wx-more{color:var(--dim);font-size:19px;line-height:1}
.wx-h .wx-title{font-size:14.5px;letter-spacing:.12em;color:var(--ink);font-weight:400}
.wx-h .wx-sub{display:block;font-size:10px;color:var(--mint);letter-spacing:.12em;margin-top:4px}
.wx-body{padding:22px 16px 26px;display:flex;flex-direction:column;gap:16px}
.wx-row{display:flex;gap:10px;align-items:flex-start}
/* 头像与右侧气泡顶边严格同一水平线（保险：任何状态下都不允许偏移） */
#p4 .wx-row{align-items:flex-start}
#p4 .wx-avatar,#p4 .wx-col{margin-top:0}
.wx-row.user{justify-content:flex-end}
.wx-avatar{width:36px;height:36px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;font-size:13px}
.wx-avatar.u{background:linear-gradient(135deg,#4169c9,#26386b);color:#e3ecff}
.wx-avatar.a{background:linear-gradient(135deg,rgba(79,216,184,.25),rgba(79,216,184,.08));border:1px solid rgba(79,216,184,.45);color:var(--mint)}
.wx-col{display:flex;flex-direction:column;gap:12px;align-items:flex-start;max-width:calc(100% - 46px)}
.wx-bubble{max-width:100%;padding:12px 15px;font-size:14px;line-height:1.8;border-radius:12px;letter-spacing:.02em}
.wx-bubble.u{background:rgba(79,216,184,.14);border:1px solid rgba(79,216,184,.38);color:#dcf7ee;border-top-right-radius:3px}
.wx-bubble.a{background:rgba(126,166,255,.09);border:1px solid rgba(126,166,255,.22);color:var(--ink);border-top-left-radius:3px}
.wxchat .anim{opacity:0;transform:translateY(10px)}
.wxchat.in .anim{animation:wxIn .55s var(--ease) forwards;animation-delay:var(--md,0s)}
@keyframes wxIn{to{opacity:1;transform:none}}
@keyframes wxOut{to{opacity:0}}
.typing{display:inline-flex;gap:6px;padding:15px 17px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--dim);animation:tp .9s ease-in-out infinite}
.typing i:nth-child(2){animation-delay:.15s}
.typing i:nth-child(3){animation-delay:.3s}
@keyframes tp{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.wxchat.in .typing{animation:wxIn .45s var(--ease) var(--md) forwards,typingGone .45s var(--ease) calc(var(--md) + 1.2s) forwards}
  @keyframes typingGone{to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;border-width:0;margin:0;margin-bottom:-12px}}
  .wx-bubble.typing{max-height:60px;overflow:hidden}
.wx-task{width:100%;border:1px solid rgba(126,166,255,.28);border-radius:12px;background:rgba(9,20,40,.85);padding:15px 16px 8px}
.wt-h{display:flex;justify-content:space-between;align-items:center;padding-bottom:11px}
.wt-name{font-size:12.5px;letter-spacing:.14em;color:var(--blue)}
.wt-status{position:relative;height:16px;min-width:60px}
.wt-status i{position:absolute;right:0;top:0;font-style:normal;font-size:10.5px;letter-spacing:.18em;white-space:nowrap}
.wt-status .s-run{color:var(--mint)}
.wt-status .s-run::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);margin-right:6px;animation:tp 1s infinite}
.wxchat.in .s-run{animation:wxOut .3s ease 8s forwards}
.wt-status .s-done{color:var(--cream);opacity:0}
.wxchat.in .s-done{animation:wxIn .4s ease 8.1s forwards}
.tstep{display:flex;gap:11px;padding:10px 0;border-top:1px dashed rgba(226,236,252,.08);opacity:0;transform:translateX(-10px)}
.wxchat.in .tstep{animation:wxIn .5s var(--ease) var(--sd) forwards}
.tck{width:20px;height:20px;flex:none;margin-top:2px}
.tck circle{fill:none;stroke:rgba(226,236,252,.2);stroke-width:1.2}
.tck path{fill:none;stroke:var(--mint);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20}
.wxchat.in .tstep .tck path{animation:draw20 .45s cubic-bezier(.65,0,.45,1) forwards;animation-delay:calc(var(--sd) + .6s)}
@keyframes draw20{to{stroke-dashoffset:0}}
.tstep h4{font-size:13.5px;font-weight:500;letter-spacing:.08em;color:var(--ink)}
.tstep p{font-size:11.5px;color:var(--dim);margin-top:3px;letter-spacing:.02em;line-height:1.7}
.wx-checks{list-style:none;padding:6px 0 2px}
.wx-checks li{font-size:13px;color:var(--dim);line-height:2.1;display:flex;gap:8px;align-items:baseline;opacity:0}
.wxchat.in .wx-checks li{animation:wxIn .5s var(--ease) forwards;animation-delay:var(--cd)}
.wx-checks li::before{content:'✓';color:var(--mint);font-size:11px}
  .wx-bs{width:100%;border:1px solid rgba(126,166,255,.25);border-radius:12px;background:rgba(9,20,40,.88);padding:13px 15px 8px;max-height:280px;overflow:hidden}
  .wxchat.in .wx-bs{animation:wxIn .55s var(--ease) var(--md) forwards,bsGone .6s var(--ease) 7.5s forwards}
  @keyframes bsGone{to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;border-width:0;margin-bottom:-12px}}
  .bs-h{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.16em;color:var(--blue);padding-bottom:2px}
  .bs-dot{width:7px;height:7px;border-radius:50%;background:var(--gold)}
  .wxchat.in .bs-dot{animation:bsPulse 1s ease-in-out infinite}
  @keyframes bsPulse{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
  .bs-step{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:12.5px;color:var(--dim);opacity:0}
  .wxchat.in .bs-step{animation:wxIn .5s var(--ease) var(--sd) forwards}
  .bs-ic{position:relative;width:16px;height:16px;flex:none}
  .bs-spin{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(126,166,255,.22);border-top-color:var(--gold)}
  .wxchat.in .bs-spin{animation:bsSpin .7s linear infinite,bsHide .25s ease calc(var(--sd) + 1s) forwards}
  @keyframes bsSpin{to{transform:rotate(360deg)}}
  @keyframes bsHide{to{opacity:0}}
  .bs-ck{position:absolute;inset:0}
  .bs-ck circle{fill:none;stroke:var(--mint);stroke-width:1.4;opacity:0}
  .bs-ck path{fill:none;stroke:var(--mint);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20}
  .wxchat.in .bs-ck circle{animation:wxIn .3s ease calc(var(--sd) + 1s) forwards}
  .wxchat.in .bs-ck path{animation:draw20 .4s cubic-bezier(.65,0,.45,1) calc(var(--sd) + 1.05s) forwards}
  .wxchat.in .wx-row.user{animation:wxIn .55s var(--ease) .3s forwards,bsDim 5.2s ease 2.7s forwards}
  .wxchat.in .wx-h{animation:bsDim 5.2s ease 2.7s forwards}
  @keyframes bsDim{0%{opacity:1}10%{opacity:.35}86%{opacity:.35}100%{opacity:1}}
  .wx-bubble .hl{color:var(--gold);font-weight:600}
  .wx-link{color:var(--blue);font-weight:500}

/* ============ P5 验证数据 ============ */
.bignum{font-family:var(--serif);font-weight:300;font-size:clamp(52px,16.5vw,76px);line-height:1;color:var(--cream);letter-spacing:.02em}
.bignum small{font-size:.32em;color:var(--gold);letter-spacing:.2em;margin-left:4px}
.num-label{font-size:12px;letter-spacing:.26em;color:var(--dim);margin-top:12px}
#p5 .grid{display:grid;grid-template-columns:1fr 1fr;gap:38px 20px;width:100%;max-width:360px;
  transition:transform 1s var(--ease),opacity 1s var(--ease)}
#p5 .cell{opacity:0;transform:translateY(24px) scale(1.06);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--dd,0s)}
#p5[data-stage="2"] .cell,#p5[data-stage="3"] .cell,#p5[data-stage="4"] .cell{opacity:1;transform:none}
#p5 .pathrow{display:flex;align-items:flex-start;justify-content:space-between;width:100%;max-width:380px;
  opacity:0;transform:translateY(18px);transition:all .9s var(--ease) .35s}
#p5 .pathrow .pn{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px}
#p5 .pathrow .pn .k{font-family:var(--serif);font-size:18px;color:var(--cream)}
#p5 .pathrow .pn .v{font-size:11px;letter-spacing:.14em;color:var(--dim)}
#p5 .pathrow .arw{color:var(--gold);font-family:var(--serif);padding-top:2px;font-size:12px;opacity:.8}
#p5[data-stage="3"] .grid,#p5[data-stage="4"] .grid{transform:scale(.6) translateY(-9vh);opacity:.28}
#p5[data-stage="3"] .pathrow,#p5[data-stage="4"] .pathrow{opacity:1;transform:none}
#p5 .final5{position:absolute;left:0;right:0;bottom:12vh;padding:0 34px;opacity:0;visibility:hidden;transition:all .8s var(--ease)}
#p5[data-stage="4"] .final5{opacity:1;visibility:visible;transition:all .8s var(--ease) .3s}

/* ============ P6 壁垒 ============ */
.tri{display:flex;flex-direction:column;align-items:center;gap:0;width:100%;max-width:360px}
.tri .tn{width:100%;padding:20px 12px;border:1px solid rgba(226,236,252,.14);background:rgba(13,26,44,.5);backdrop-filter:blur(8px);
  font-size:17px;letter-spacing:.2em;position:relative;text-align:center}
.tri .tn.hot{border-color:rgba(126,166,255,.4);color:var(--cream)}
.tri .tn .sub{display:block;font-size:11px;letter-spacing:.1em;color:var(--dim);margin-top:10px;line-height:1.9}
.tri .x{color:var(--mint);font-family:var(--serif);padding:7px 0;font-size:15px}

/* ============ P7 DAO Core ============ */
#p7 .core-diagram{position:relative;width:min(88vw,380px);aspect-ratio:5/6}
#p7 .core-diagram svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#p7 .dao{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:150px;height:150px;border-radius:50%;
  border:1.5px solid rgba(141,180,255,.9);background:radial-gradient(circle at 50% 30%,rgba(126,166,255,.55),rgba(13,28,54,.97) 70%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  box-shadow:0 0 90px rgba(126,166,255,.38),inset 0 0 44px rgba(126,166,255,.16)}
#p7 .dao::before{content:'';position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(126,166,255,.3);
  animation:corePulse 3.2s var(--ease) infinite}
@keyframes corePulse{0%{transform:scale(.9);opacity:0}35%{opacity:.9}100%{transform:scale(1.14);opacity:0}}
#p7 .dao .n{font-family:var(--serif);font-size:22px;letter-spacing:.1em;color:#ffffff}
#p7 .dao .d{font-size:10.5px;letter-spacing:.16em;color:#d3e2ff}
#p7 .portal{position:absolute;transform:translate(-50%,-50%);width:41%;padding:14px 8px;border:1px solid rgba(126,166,255,.32);border-radius:10px;
  background:rgba(126,166,255,.07);backdrop-filter:blur(8px);text-align:center}
#p7 .portal .pn{font-size:13px;letter-spacing:.08em;color:#dbe7ff}
#p7 .portal .pd{font-size:10.5px;letter-spacing:.08em;color:var(--dim);margin-top:6px;line-height:1.7}
#p7 .portal .pr{font-size:10px;letter-spacing:.22em;color:var(--mint);margin-top:7px}
.flowline{stroke:rgba(143,184,221,.55);stroke-width:.9;fill:none;stroke-dasharray:3 6;animation:flowMove 3.2s linear infinite}
@keyframes flowMove{to{stroke-dashoffset:-18}}

/* ============ P8 融资 ============ */
.money{font-family:var(--serif);font-size:clamp(46px,14.5vw,68px);color:var(--cream);letter-spacing:.03em;line-height:1.1}
.money .cur{font-size:.45em;color:var(--gold);vertical-align:.42em;margin-right:.08em}
.now-next{width:100%;max-width:380px;text-align:left}
.now-next .col{padding:20px 22px;border:1px solid var(--line);background:rgba(13,26,44,.5)}
.now-next .col.next{border-color:rgba(126,166,255,.35);background:rgba(126,166,255,.06)}
.now-next .col .tag{font-size:10px;letter-spacing:.4em;color:var(--faint);margin-bottom:14px}
.now-next .col.next .tag{color:var(--mint)}
.now-next .col ul{list-style:none}
.now-next .col li{font-size:13px;letter-spacing:.06em;color:var(--dim);line-height:2.3;display:flex;align-items:baseline;gap:10px}
.now-next .col li::before{content:'→';color:var(--gold);font-size:11px;flex:none}
.now-next .down{text-align:center;color:var(--gold);padding:10px 0;font-family:var(--serif)}

/* ============ P9 邀请卡 ============ */
.invite{width:100%;max-width:400px;border:1px solid rgba(126,166,255,.35);background:linear-gradient(180deg,rgba(13,26,44,.75),rgba(8,17,32,.85));
  padding:44px 30px 38px;position:relative;backdrop-filter:blur(10px)}
.invite::before,.invite::after{content:'';position:absolute;width:18px;height:18px;border-color:var(--gold);border-style:solid}
.invite::before{top:-1px;left:-1px;border-width:1px 0 0 1px}
.invite::after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}
.invite .date{font-family:var(--serif);font-size:clamp(52px,15vw,68px);color:var(--ink);line-height:1;letter-spacing:.04em}
.invite .yr{font-size:13px;letter-spacing:.38em;color:var(--dim);margin-top:14px}
.seats{display:flex;align-items:stretch;justify-content:center;gap:0;margin:30px 0 6px}
.seats .seat{flex:1;padding:18px 6px;text-align:center}
.seats .seat + .seat{border-left:1px solid var(--line)}
.seats .num{font-family:var(--serif);font-size:clamp(44px,13vw,58px);color:var(--cream);line-height:1}
.seats .cap2{font-size:11.5px;letter-spacing:.26em;color:var(--dim);margin-top:12px;padding-left:.26em}
.agenda{width:100%;max-width:400px;margin-top:34px;text-align:left}
.agenda .row{display:flex;gap:18px;padding:15px 4px;border-top:1px solid rgba(226,236,252,.08);align-items:baseline}
.agenda .row .k{font-family:var(--serif);font-size:14px;letter-spacing:.2em;color:var(--mint);width:76px;flex:none}
.agenda .row .v{font-size:14px;color:var(--dim);letter-spacing:.04em}

/* ============ CTA 按钮 ============ */
.cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:17px 34px;border:1px solid rgba(126,166,255,.55);border-radius:999px;
  background:linear-gradient(180deg,rgba(126,166,255,.22),rgba(126,166,255,.10));
  color:var(--cream);font-size:14.5px;letter-spacing:.22em;text-decoration:none;cursor:pointer;
  transition:box-shadow .5s var(--ease),transform .3s var(--ease);position:relative;overflow:hidden}
.cta::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(126,166,255,.18) 50%,transparent 70%);
  transform:translateX(-120%);animation:sheen 3.6s var(--ease) infinite}
@keyframes sheen{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.cta:active{transform:scale(.97)}
.cta.solid{background:linear-gradient(180deg,#9dbcff,#6a92f0);color:#050b13;border-color:transparent;font-weight:500;width:100%;max-width:340px}

/* ============ P10 表单 ============ */
.form{width:100%;max-width:400px;text-align:left;margin-top:36px}
.field{margin-bottom:26px}
.field label{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;letter-spacing:.26em;color:var(--dim);margin-bottom:12px}
.field label .req{color:var(--mint)}
.field label .opt{font-size:10px;letter-spacing:.2em;color:var(--faint)}
.field input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(226,236,252,.18);
  padding:10px 2px;font-size:16px;color:var(--ink);letter-spacing:.05em;font-family:var(--sans);font-weight:300;
  transition:border-color .4s var(--ease);border-radius:0;-webkit-appearance:none}
.field input:focus{outline:none;border-bottom-color:var(--gold)}
.field input::placeholder{color:rgba(226,236,252,.22);font-size:14px;letter-spacing:.08em}
.field.err input{border-bottom-color:rgba(224,122,95,.7)}
.field.err .seat-card{border-color:rgba(224,122,95,.55)}
.seat-cards{display:flex;gap:14px}
.seat-card{flex:1;border:1px solid rgba(226,236,252,.16);background:rgba(13,26,44,.5);padding:20px 10px;text-align:center;cursor:pointer;
  transition:all .45s var(--ease);position:relative}
.seat-card .t{font-size:14px;letter-spacing:.3em;margin-bottom:8px;padding-left:.3em}
.seat-card .n{font-family:var(--serif);font-size:26px;color:var(--dim)}
.seat-card .n small{font-size:11px;color:var(--faint);letter-spacing:.15em;margin-left:3px}
.seat-card.sel{border-color:rgba(126,166,255,.6);background:rgba(126,166,255,.10);box-shadow:0 0 30px rgba(126,166,255,.10)}
.seat-card.sel .n{color:var(--cream)}
.seat-card:focus-visible,.checkline:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
.seat-hint{font-size:11.5px;letter-spacing:.16em;color:var(--faint);margin-top:12px;text-align:left}
.checkline{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:6px 0;user-select:none}
.checkline .box{width:17px;height:17px;flex:none;border:1px solid rgba(226,236,252,.3);margin-top:2px;position:relative;transition:all .4s var(--ease)}
.checkline .box::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;color:#0b1526;opacity:0;transition:opacity .3s}
.checkline.on .box{background:var(--gold);border-color:var(--gold)}
.checkline.on .box::after{opacity:1}
.checkline .ct{font-size:14px;color:var(--dim);letter-spacing:.04em;line-height:1.8}
.submit-note{text-align:left;font-size:12px;letter-spacing:.2em;color:var(--faint);margin-top:16px}
.submit-note:empty{display:none}
.submit-note.error{color:rgba(255,171,147,.9)}
.cta[aria-busy="true"]{cursor:wait;opacity:.72}
.fa-entry{margin-top:64px;padding-top:28px;border-top:1px solid rgba(226,236,252,.07);text-align:left}
.fa-entry p{font-size:13.5px;color:var(--cream);font-weight:500;letter-spacing:.06em;line-height:2}
.index-fa-entry{width:100%;max-width:480px;margin:0 auto}
#p9 .p9-main-cta{width:100%;max-width:400px;text-align:center}
#p9 .p9-primary-action{width:100%;max-width:none;min-height:54px;padding:15px 22px;background:linear-gradient(180deg,#aec8ff 0%,#7199f4 100%);border-color:rgba(190,211,255,.72);color:#07101e;font-weight:600;letter-spacing:.13em;box-shadow:0 14px 36px rgba(73,119,220,.30),inset 0 1px 0 rgba(255,255,255,.34)}
#p9 .p9-primary-action::after{background:linear-gradient(104deg,transparent 23%,rgba(255,255,255,.08) 37%,rgba(235,243,255,.42) 50%,rgba(255,255,255,.08) 63%,transparent 77%);animation:p9PrimarySheen 3s var(--ease) infinite}
@keyframes p9PrimarySheen{0%,55%{transform:translateX(-125%)}100%{transform:translateX(125%)}}
#p9 .p9-fa-entry{width:100%;margin:24px 0 0;padding-top:24px;border-top:1px solid rgba(226,236,252,.10);text-align:left}
#p9 .p9-fa-entry .fa-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;margin-top:16px;padding:13px 22px;color:#ffc566;border-color:rgba(245,166,35,.72);background:linear-gradient(180deg,rgba(245,166,35,.13),rgba(245,166,35,.06));box-shadow:0 0 18px rgba(245,166,35,.08);animation:p9FaPulse 3.4s ease-in-out infinite}
#p9 .p9-fa-entry .fa-link:active{transform:scale(.98)}
#p9 .p9-primary-action:focus-visible,#p9 .p9-fa-entry .fa-link:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
@keyframes p9FaPulse{0%,100%{border-color:rgba(245,166,35,.55);box-shadow:0 0 12px rgba(245,166,35,.06)}50%{border-color:rgba(255,197,102,.92);box-shadow:0 0 24px rgba(245,166,35,.18)}}
.fa-entry .fa-link{display:inline-block;margin-top:14px;color:var(--gold);font-size:13px;font-weight:600;letter-spacing:.2em;text-decoration:none;border:1px solid rgba(126,166,255,.55);border-radius:999px;padding:11px 24px;background:rgba(126,166,255,.09);transition:all .4s var(--ease);font-family:var(--sans);cursor:pointer}
.fa-entry .fa-link:hover{border-color:var(--gold);background:rgba(126,166,255,.15)}

/* ============ P11 成功页 ============ */
#p11{display:none}
#p11.show{display:block}
.checkmark{width:64px;height:64px;margin-bottom:30px}
.checkmark circle{stroke:var(--gold);stroke-width:1;fill:none;opacity:.5}
.checkmark path{stroke:var(--cream);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:48;stroke-dashoffset:48}
#p11.show .checkmark path{animation:drawCheck .6s cubic-bezier(.65,0,.45,1) .4s forwards}
@keyframes drawCheck{to{stroke-dashoffset:0}}
.addr-card{width:100%;max-width:400px;border:1px solid rgba(126,166,255,.3);border-radius:16px;
  background:linear-gradient(180deg,rgba(13,26,44,.75),rgba(8,17,32,.85));
  padding:26px 26px 24px;margin-top:36px;backdrop-filter:blur(8px);text-align:left}
.addr-main{font-size:21px;font-weight:600;color:var(--cream);letter-spacing:.06em;line-height:1.5}
.addr-sub{font-size:13.5px;color:var(--dim);margin-top:8px;letter-spacing:.04em}
.addr-meta{font-size:12.5px;color:var(--faint);margin-top:18px;letter-spacing:.06em;line-height:2}
.addr-meta strong{color:var(--mint);font-weight:500}
.founder-card{width:100%;max-width:400px;border:1px solid var(--line);background:rgba(13,26,44,.55);padding:30px 26px;margin-top:44px;text-align:center}
.founder-card .fn{font-size:17px;letter-spacing:.24em}
.founder-card .fr{font-family:var(--serif);font-size:12px;letter-spacing:.3em;color:var(--gold);margin-top:8px}
.qr-frame{width:150px;height:150px;margin:26px auto 18px;position:relative;border:1px solid rgba(226,236,252,.12);
  display:flex;align-items:center;justify-content:center;background:#fff;padding:9px}
  .qr-frame img{width:100%;height:100%;display:block}
.qr-frame .corner{position:absolute;width:14px;height:14px;border-color:var(--gold);border-style:solid}
.qr-frame .c1{top:-1px;left:-1px;border-width:1.5px 0 0 1.5px}
.qr-frame .c2{top:-1px;right:-1px;border-width:1.5px 1.5px 0 0}
.qr-frame .c3{bottom:-1px;left:-1px;border-width:0 0 1.5px 1.5px}
.qr-frame .c4{bottom:-1px;right:-1px;border-width:0 1.5px 1.5px 0}
.qr-frame span{font-size:11px;letter-spacing:.22em;color:var(--dim);line-height:2.1}

/* FA 弹层 */
.fa-modal{position:fixed;inset:0;z-index:80;display:none;align-items:flex-end;justify-content:center;background:rgba(4,9,17,.72);backdrop-filter:blur(8px)}
.fa-modal.open{display:flex}
.fa-sheet{width:100%;max-width:480px;background:#0c1728;border-top:1px solid rgba(126,166,255,.35);padding:38px 32px calc(40px + env(safe-area-inset-bottom));
  animation:sheetUp .5s var(--ease)}
@keyframes sheetUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.fa-sheet h3{font-weight:300;font-size:19px;letter-spacing:.2em;margin-bottom:18px}
.fa-sheet p{font-size:14px;color:var(--dim);line-height:2.1;letter-spacing:.03em}
.fa-sheet .mail{display:inline-block;margin-top:22px;color:var(--cream);font-family:var(--serif);letter-spacing:.08em;font-size:15px;
  border-bottom:1px solid rgba(126,166,255,.5);padding-bottom:4px;text-decoration:none}
.fa-close{margin-top:34px;width:100%;padding:14px;border:1px solid var(--line);background:none;color:var(--dim);font-size:12px;letter-spacing:.3em;cursor:pointer;font-family:var(--sans)}

.hairline{width:52px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin:30px 0}
  #p4 .hairline{margin:24px 0 10px}
.vspace-lg{height:14vh}
footer{padding:60px 0 80px;text-align:center}
footer .fb{font-family:var(--serif);letter-spacing:.4em;font-size:11px;color:var(--faint)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01s !important;animation-delay:0s !important;transition-duration:.01s !important;transition-delay:0s !important}
  .rv{opacity:1;transform:none;filter:none}
  #p9 .p9-primary-action::after,#p9 .p9-fa-entry .fa-link{animation:none!important}
}

/* ============ 双网页框架补充 ============ */
.back-link{position:fixed;top:22px;left:max(20px,calc(50% - 220px));z-index:70;color:var(--dim);font-size:12px;letter-spacing:.12em;text-decoration:none;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(8,17,32,.72);backdrop-filter:blur(10px)}
.back-link:hover{color:var(--ink);border-color:rgba(126,166,255,.45)}
.cta[disabled]{opacity:.45;cursor:not-allowed;filter:saturate(.55);box-shadow:none;pointer-events:none}
