/* 本轮：品牌透明、红线定位、阶段顶边对齐、E3文字整合。 */
.topnav-brand { background:none; border-radius:0; padding:0; gap:10px; }
.brand-portrait { display:block; width:58px; height:58px; border-radius:50%; overflow:hidden; flex:none; }
.brand-portrait img { width:65px; height:auto; max-width:none; display:block; transform:translate(-7px,-3px); }
.brand-lettering { display:flex; flex-direction:column; gap:5px; color:#f3ede4; transition:opacity .5s ease; }
.brand-lettering strong { font:700 24px/1.15 var(--serif-cn); letter-spacing:0; }
.brand-lettering strong span { font-family:var(--serif-en); }
.brand-lettering small { font:400 11px/1.2 var(--serif-en); letter-spacing:.015em; }
.topnav.is-dimmed .brand-lettering { opacity:.42; }
.headline { top:22vh; }
.card:not([data-key="intro"]):not([data-key="design"]) { min-height:var(--design-card-height); }
.ruler { z-index:5; }
.tree-drag-hint { top:calc(var(--ground-y,68vh) - 24px); }
/* E3 原样张 fixed 版面，整合为第二屏 sticky 容器内绝对定位。 */
.dance-copy.mz { position:absolute; top:100px; bottom:24px; left:54%; right:var(--gutter); transform:none; opacity:0; transition:opacity .5s; z-index:10; }
.dance-copy.mz.is-visible { opacity:1; }
.dance-stage .kwcloud { position:absolute; }
.dance-stage .mz-margin { position:absolute; top:100px; bottom:30px; left:calc(54% - 48px); }
.dance-ticks { display:none; }
.mz-view { top:25%; }
.mz-head { padding-top:12px; }
.voices-opening { position:absolute; top:18%; left:0; font:900 clamp(36px,4vw,64px)/1.3 var(--serif-cn); color:var(--text); animation:openingFade 8s forwards; }
@keyframes openingFade { 0%,65% {opacity:1} 100% {opacity:0;transform:translateY(-40px)} }
.dance-copy.mz .mz-body { max-height:44vh; overflow:auto; scrollbar-width:thin; }
@media(max-width:760px) {
 .brand-portrait { width:42px; height:42px; }
 .brand-portrait img { width:47px; transform:translate(-5px,-2px); }
 .brand-lettering strong { font-size:18px; }
 .brand-lettering small { font-size:9px; }
 .headline { top:130px; }
 .dance-copy.mz { left:var(--gutter); right:var(--gutter); top:45%; bottom:45px; background:rgba(17,18,22,.82); }
 .dance-stage .mz-margin { display:none; }
 .mz-head { font-size:9px; gap:8px; }
 .mz-title i { display:none; }
 .mz-pull { font-size:30px; }
 .mz-view { top:15%; }
 .mz-body { columns:1; }
 .dance-copy.mz .mz-body { max-height:25vh; }
 .mz-foot { padding-bottom:0; }
 .tree-drag-hint { top:calc(var(--ground-y,60vh) - 22px); }
}
.voices-opening { animation-play-state:paused; }
.is-visible .voices-opening { animation-play-state:running; }

.s-q1 .voices-opening { display:none; }
.dance-stage:has(.mz) .dance-hint { display:none; }
@media(max-width:760px) {
 .dance-stage:has(.mz) .dance-figure { top:64px; bottom:56%; }
}

/* 阶段标注逐项校正；项目页原字形统一品牌。 */
.brand-original-type { display:block; width:150px; height:auto; filter:brightness(0) invert(1); }
.topnav-brand { opacity:.72; transition:opacity .5s; }
.topnav.is-dimmed .topnav-brand { opacity:.46; }
.topnav.is-dimmed .brand-lettering { opacity:1; }
.brand-portrait { mask-image:radial-gradient(circle at 50% 50%, #000 58%, transparent 63%); }
.rl[data-k="skeleton"] { display:none; }
/* 新共舞版式：去刊头、气泡上推、两列显式分组。 */
.dance-copy.mz { left:50%; right:var(--gutter); max-width:none; top:100px; }
.dance-stage .mz-margin, .mz-head { display:none; }
.mz-dialog { top:16%; gap:22px; }
.mz-q { max-width:75%; padding:12px 18px; }
.mz-q--l { justify-self:start; }
.mz-q--r { justify-self:end; margin-right:0; max-width:80%; }
.mz-q--r p { font-size:clamp(18px,1.65vw,26px); }
.s-rise .mz-dialog { top:0; transform:none; opacity:.78; gap:12px; }
.s-rise .mz-q { padding:9px 14px; }
.s-rise .mz-q p { font-size:clamp(14px,1.15vw,20px); }
.mz-stream { z-index:0; }
.mz-dialog, .mz-view { z-index:1; }
.mz-view { top:23%; }
.mz-doubt, .mz-partner { font:500 clamp(17px,1.4vw,23px)/1.5 var(--serif-cn); color:#5CFFB0; white-space:nowrap; }
.mz-partner { margin:8px 0 0; opacity:0; transform:translateY(10px); transition:opacity .8s,transform .8s; }
.s-partner .mz-partner { opacity:1; transform:none; }
.mz-pull { font-size:clamp(28px,3.25vw,64px); line-height:1.2; margin-top:20px; }
.mz-pull em { color:var(--rust-lit); }
.mz-pull .ln { white-space:nowrap; }
.dance-copy.mz .mz-body { columns:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; column-rule:none; max-height:none; overflow:visible; font-size:14px; line-height:1.85; }
.mz-body .k-ai, .mz-body .k-me, .mz-body .k-gold { color:var(--rust-lit); }
.mz-body p:first-child::first-letter { float:none; font:inherit; margin:0; color:inherit; }
.mz-sign { display:none; }
@media(max-width:760px) {
 .brand-original-type { width:120px; }
 .dance-copy.mz { left:var(--gutter); right:var(--gutter); top:45%; }
 .mz-dialog { gap:14px; top:12%; }
 .s-rise .mz-dialog { top:0; gap:7px; }
 .mz-q p { font-size:16px; }
 .mz-q--r p { font-size:15px; }
 .s-rise .mz-q p { font-size:12px; }
 .mz-view { top:24%; }
 .mz-doubt, .mz-partner { font-size:14px; }
 .mz-pull { font-size:clamp(22px,6vw,30px); margin-top:12px; }
 .dance-copy.mz .mz-body { gap:14px; font-size:12px; max-height:25vh; overflow:auto; line-height:1.75; }
}
.mz-dialog { transition:top .65s var(--ease-out), transform .65s var(--ease-out), opacity .65s ease; }

/* 2026-10-21：恢复完整手势；去长滚动空档，放大标题与签名。 */
.brand-portrait { width:64px; height:64px; border-radius:0; overflow:visible; mask-image:none; }
.brand-portrait img { width:auto; height:64px; transform:none; }
.brand-original-type { width:auto; height:44px; filter:grayscale(1) invert(1) brightness(1.2); }
.topnav-brand { opacity:1; }
.topnav.is-dimmed .topnav-brand { opacity:.48; }
.dance-hint { display:none !important; }
.mz-doubt { display:none; }
.mz-dialog { top:8%; gap:16px; }
.mz-q p { font-size:clamp(17px,1.55vw,25px); }
.mz-q--r p { font-size:clamp(16px,1.4vw,23px); }
.mz-q { padding:10px 16px; }
.s-rise .mz-dialog { top:0; }
.mz-view { top:19%; }
.mz-partner { font-size:clamp(16px,1.3vw,22px); margin-top:0; }
.mz-pull { font:900 clamp(36px,4.25vw,82px)/1.12 var(--serif-cn); margin-top:16px; }
.mz-pull .ln { padding-bottom:.06em; }
.mz-pull .ln > span { position:relative; }
.mz-pull .ln:last-child { overflow:visible; }
.dance-autograph { display:inline-block; margin-left:16px; font:400 clamp(12px,1.1vw,18px)/1.3 var(--serif-en); color:var(--rust-lit); vertical-align:baseline; white-space:nowrap; }
.mz-pull .ln:first-child { color:var(--text); }
.dance-copy.mz .mz-body { margin-top:16px; padding-top:14px; font-size:13px; }
.page-flow { position:fixed; right:var(--gutter); bottom:24px; z-index:60; display:flex; align-items:center; gap:10px; padding:8px 0; border:0; background:none; color:var(--dim); font:400 11px/1.3 var(--sans); cursor:pointer; }
.page-flow[hidden],.is-embed .page-flow { display:none; }
.page-flow:focus-visible { outline:1px solid var(--gold); outline-offset:6px; }
.mouse-guide { width:15px; height:23px; border:1px solid currentColor; border-radius:9px; display:block; position:relative; }
.mouse-guide i { position:absolute; width:2px; height:5px; border-radius:2px; background:currentColor; top:4px; left:5.5px; animation:mouseDown 1.8s ease infinite; }
@keyframes mouseDown { 0%{opacity:0;transform:translateY(0)} 35%{opacity:1} 100%{opacity:0;transform:translateY(7px)} }
.hint { display:none; }
@media(max-width:760px){
 .brand-portrait,.brand-portrait img { height:42px; width:auto; }
 .brand-original-type { height:28px; width:auto; }
 .mz-dialog { top:5%; gap:12px; }
 .mz-q p,.mz-q--r p { font-size:15px; }
 .mz-view { top:23%; }
 .mz-pull { font-size:clamp(26px,7.4vw,44px); }
 .dance-autograph { font-size:11px; margin-left:10px; }
 .dance-copy.mz .mz-body { font-size:12px; }
 .page-flow { bottom:14px; }
}
@media(prefers-reduced-motion:reduce){.mouse-guide i{animation:none}}
/* 标题两行一起入场，避免第二行在气泡阶段提前露出。 */
.mz-pull { visibility:hidden; }
.s-partner .mz-pull { visibility:visible; }
.mz-skip { display:none; }
/* 10-21 第二轮：短暂众声、绿色对话、留白后给出结论。 */
.mz-stream { inset:20px 0 45%; overflow:visible; }
.mz-v { animation-name:voicesBrief; }
@keyframes voicesBrief {
  0%{opacity:0;transform:translateY(16px) scale(.96);filter:blur(3px)}
  18%{opacity:.85;transform:translateY(0);filter:none}
  100%{opacity:.16;transform:translateY(-65px);filter:blur(1px)}
}
.s-rise .mz-stream { opacity:.65; }
.mz-dialog { top:8%; gap:28px; }
.mz-q { border-color:rgba(92,255,176,.55);background:rgba(92,255,176,.045);box-shadow:0 0 22px #5cffb015; }
.mz-q p { color:#5cffb0; }
.mz-q--r { margin-right:15%; }
.s-rise .mz-dialog { top:0;opacity:.8;gap:24px; }
.mz-view { top:17%; }
.mz-partner { opacity:0;min-height:1.5em; }
.s-verdict .mz-partner { opacity:1;transform:none; }
.s-verdict:not(.s-partner) .mz-partner::after {content:'▏';animation:mouseDown .8s infinite;}
.mz-pull {font-size:clamp(30px,3.5vw,68px);margin-top:100px;line-height:1.2;}
.mz-pull .ln:last-child {margin-top:6px;}
.dance-copy.mz .mz-body {margin-top:48px;}
@media(max-width:760px){
 .mz-q--r{margin-right:8%;}
 .mz-pull{font-size:clamp(19px,5.2vw,36px);margin-top:65px;}
 .dance-copy.mz .mz-body{margin-top:24px;}
}
@media(min-width:761px){.dance-copy.mz .mz-body{margin-top:100px;}}
/* 恢复众声原有层次：词云 + 多个错落气泡 + 亮暗和向上漂浮。 */
.mz-stream { inset:20px 0 10%; overflow:hidden; }
.mz-v { animation-name:voicesRestored; }
@keyframes voicesRestored {
  0%{opacity:0;transform:translateY(14px) scale(.96);filter:blur(4px)}
  12%{opacity:1;transform:translateY(0) scale(1);filter:none;box-shadow:0 0 28px #5cffb040}
  40%{opacity:.7;box-shadow:none}
  100%{opacity:.22;transform:translateY(-140px) scale(.94);filter:blur(1px)}
}
.s-rise .mz-stream {opacity:.7;}

/* 2026-10-22: static fallback follows the bottom-anchored smaller portrait. */
@media(min-width:761px){.is-static .dance-still{height:82.8%}}

/* 2026-10-22 · 红线定位：树页字块上提，共舞紧凑版面与连续上移动画。 */
@media(min-width:761px){
 .cards{top:53.5vh;bottom:auto;align-items:start}
 .cards:has(.card[data-key="intro"].on){top:46vh}
 .cards .card{align-self:start}
 .card[data-key="intro"]{max-height:43vh}
 .dance-copy.mz .mz-pull{margin-top:28px}
 .dance-copy.mz .mz-body{margin-top:52px}
}
/* Move the compact crowd as one layer; keep all residual voices above the verdict. */
.dance-copy.mz .mz-stream{inset:0 0 auto;height:38%;overflow:hidden;transition:height 2s cubic-bezier(.22,1,.36,1),transform 2s cubic-bezier(.22,1,.36,1),opacity 2s ease}
.dance-copy.mz.s-rise .mz-stream{height:15%;transform:translateY(-12px);opacity:.65}
.dance-copy.mz .mz-v{max-width:46%;animation-name:voicesCompact}
@keyframes voicesCompact{0%{opacity:0;transform:translateY(12px);filter:blur(1px)}18%{opacity:.9;transform:none;filter:none}65%{opacity:.6;filter:none}100%{opacity:.4;transform:translateY(-16px);filter:none}}
.dance-copy.mz .mz-dialog{transition:top 2s cubic-bezier(.22,1,.36,1),transform 2s cubic-bezier(.22,1,.36,1),opacity 2s ease,gap 2s ease}
.dance-copy.mz .mz-q,.dance-copy.mz.s-rise .mz-q{padding:10px 16px}
.dance-copy.mz .mz-q p,.dance-copy.mz.s-rise .mz-q p{font-size:clamp(15px,1.25vw,22px)}
.dance-copy.mz.s-partner .mz-dialog{top:0;transform:none;opacity:.8}
.dance-copy.mz .mz-pull .ln>span{transition-duration:1.2s}
.dance-copy.mz .mz-pull .ln+.ln>span{transition-delay:.28s}
@media(max-width:760px){.dance-copy.mz .mz-pull{margin-top:26px}.dance-copy.mz .mz-body{margin-top:24px}.dance-copy.mz .mz-q p,.dance-copy.mz.s-rise .mz-q p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.dance-copy.mz .mz-stream,.dance-copy.mz .mz-dialog,.dance-copy.mz .mz-pull .ln>span{transition:none}.dance-copy.mz .mz-v{animation:none;opacity:.4}}

@media(min-width:761px){.dance-copy.mz .mz-body{max-height:max(140px,calc(67svh - 270px));overflow:auto;padding-right:8px;scrollbar-width:thin}}

/* 导览提示居于右半屏中部，靠近底边。 */
.page-flow { left:75%; right:auto; bottom:8px; transform:translateX(-50%); white-space:nowrap; }
@media(max-width:760px){.page-flow{left:50%;bottom:6px}}
