/* ============================================================
   归雁计划 — 正式版
   吉卜力式田园治愈风 × 虚拟滚动视差引擎
   ============================================================ */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;overflow:hidden}
body{
  font-family:'PingFang SC','Microsoft YaHei','STSong','SimSun',sans-serif;
  background:#0d0a07;
  color:#f7f5f0;
  overflow:hidden;
}

/* ─── 玻璃拟态卡片（高斯模糊底图） ─── */
.glass-card{
  position:relative;
  background:rgba(255,255,255,0.42);
  border:1px solid rgba(255,255,255,0.35);
  border-radius:16px;
  box-shadow:0 8px 32px rgba(0,0,0,0.25);
  padding:clamp(16px,2vw,28px);
}
.glass-card--hero{
  position:fixed;
  top:50%;left:50%;
  transform:translate(-50%,-50%) translateY(-4vh);
  background:rgba(255,255,255,0.60);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(184,148,46,0.35);
  text-align:center;
  padding:clamp(36px,5vh,56px) clamp(32px,5vw,60px);
  max-width:min(520px,88vw);
  width:100%;
  box-shadow:0 12px 48px rgba(0,0,0,0.18), 0 0 0 1px rgba(184,148,46,0.12);
  z-index:18;
  pointer-events:none;
}
.glass-card--p4{
  background:rgba(255,255,255,0.42);
  border:1px solid rgba(255,255,255,0.35);
  padding:clamp(14px,1.8vw,24px);
}
.glass-card--p5{
  position:relative;z-index:10;
  background:transparent!important;
  border:none!important;
  border-radius:0!important;
  box-shadow:none!important;
  text-align:center;
  padding:0!important;
  margin:0 auto;
  pointer-events:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.glass-card--p6{
  background:rgba(255,255,255,0.42);
  border:1px solid rgba(255,255,255,0.35);
  padding:clamp(16px,2.2vw,28px);
  width:100%;
}
.glass-card--p8{
  background:rgba(255,255,255,0.42);
  border:1px solid rgba(255,255,255,0.35);
  border-radius:16px;
  padding:clamp(24px,3.5vh,44px) clamp(20px,3vw,36px);
  max-width:800px;
  width:100%;
}

/* ── 玻璃卡片内文字颜色（浅色底 → 深色字）── */
.glass-card .p5-chart-title,
.glass-card .p5-subtitle,
.glass-card .p5-text p,
.glass-card .p5-legend-item,
.glass-card .p5-bar-label,
.glass-card .p5-bar-val,
.glass-card .p5-donut-center,
.glass-card .p5-badge,
.glass-card .p5-source,
.glass-card .p6-chart-title,
.glass-card .p6-summary-line,
.glass-card .p8-credit-title,
.glass-card .p8-credit-list li,
.glass-card .p8-credit-meta p,
.glass-card .p5-wordcloud-title,
.glass-card .p5-wordcloud-desc,
.glass-card .p5-ending-inner p{color:#2d4a3e!important;text-shadow:none!important;}
.glass-card .p5-title{color:#5a3a1a!important;text-shadow:none!important;}
.glass-card .p5-source,
.glass-card .p8-credit-meta p{color:#666666!important;}
.glass-card .p8-credit-list li::before{color:#b8942e;}
.glass-card .p8-credit-divider{background:rgba(184,148,46,0.3);}
.glass-card .p8-credit-title{color:#2d4a3e!important;}
.glass-card .p5-badge,
.glass-card .p6-badge,
.glass-card .p5-stat-value,
.glass-card .p5-donut-center,
.glass-card .p5-bar-val,
.glass-card .p6-chart-num,
.glass-card .p5-chart-num{color:#b8942e!important;}
.glass-card .p5-subtitle,
.glass-card .p5-chart-title,
.glass-card .p5-wordcloud-desc{color:#2d4a3e!important;}
.glass-card .p5-legend-item{color:#2d4a3e!important;}
/* P1 Hero 卡片内文字 */
.glass-card--hero .title-main{color:#8a6c10!important;text-shadow:none!important;}
.glass-card--hero .title-sub{color:#8a7a5a!important;text-shadow:none!important;}
.glass-card--hero .title-quote{color:#666666!important;text-shadow:none!important;}
.glass-card--hero .top-meta{color:#8a7a5a!important;text-shadow:none!important;}

/* ── Hero 卡片内排版 ── */
.hero-meta{
  font-size:clamp(10px,0.85vw,12px);
  font-weight:600;
  letter-spacing:0.4em;
  color:#8a7a5a;
  text-transform:uppercase;
  margin-bottom:clamp(16px,2.5vh,28px);
}
.glass-card--hero .title-main{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(2.4rem,6vw,4.8rem);
  font-weight:900;
  color:#8a6c10;
  line-height:1.1;
  letter-spacing:0.06em;
  margin-bottom:clamp(16px,2.2vh,28px);
}
.glass-card--hero .title-sub{
  font-size:clamp(0.75rem,1.15vw,0.9rem);
  letter-spacing:0.35em;
  color:#8a7a5a;
  font-weight:700;
  margin-bottom:clamp(18px,2.5vh,32px);
  line-height:1.6;
}
.glass-card--hero .title-line{display:none;}
.glass-card--hero .title-quote{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(0.8rem,1.2vw,1rem);
  color:#666666;
  font-style:italic;
  font-weight:600;
  line-height:1.8;
  letter-spacing:0.05em;
  max-width:420px;
  margin-left:auto;
  margin-right:auto;
}
.hero-scroll,.hero-scroll-dot,.hero-scroll-text{display:none;}

/* Remove old scroll-hint */
.scroll-hint{display:none;}

@keyframes glassBlurIn{
  from{backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);}
  to{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
}

/* ─── 页面容器 ─── */
.screen{
  position:fixed;
  top:0;left:0;
  width:100%;
  /* ★ 删除 overflow:hidden — 不裁剪图片 */
}
.screen.pg-hide{visibility:hidden!important;pointer-events:none!important;}
.screen[data-enter="fixed-bottom"]{bottom:0;top:auto;z-index:0}

/* 纸张纹理 */
.paper-grain{
  position:fixed;inset:0;
  background-image:
    radial-gradient(rgba(255,255,255,0.08) 1px,transparent 0),
    radial-gradient(rgba(0,0,0,0.2) 1px,transparent 0);
  background-size:8px 8px;
  background-position:0 0,4px 4px;
  opacity:0.10;
  pointer-events:none;
  z-index:9999;
}

/* 信息条 */
#info-bar{
  position:fixed;top:16px;right:16px;
  z-index:99999;
  color:rgba(163,184,153,0.5);
  font-family:monospace;
  font-size:10px;
  line-height:1.5;
  text-align:right;
  white-space:nowrap;
  user-select:none;
}
#info-bar span[data-page]:hover{color:#d4af37;}
  pointer-events:none;
  user-select:none;
  white-space:pre-wrap;
  text-shadow:0 1px 4px rgba(0,0,0,0.8);
  background:rgba(255,255,255,0.85);
  padding:6px 10px;
  border-radius:6px;
  color:#555;
  text-shadow:none;
}

/* ═══════════════════════════════════════════════════════
   P1 — 视差层
   ═══════════════════════════════════════════════════════ */
#screen-hero{
  background:linear-gradient(180deg,#101f18,#1b3d2b 40%,#122218);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
}

/* 远景 / 中景 通用层 */
.parallax-layer{
  position:absolute;
  inset:0;
  pointer-events:none;
  will-change:transform;
}
.parallax-layer img{
  width:100%;
  height:auto;
  display:block;
}

.layer-far{
  z-index:5;
}
.layer-mid{
  z-index:10;
}

/* ─── 文字叠加 ─── */
.text-overlay{
  position:absolute;
  top:0;left:0;
  width:100%;height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:4vh 3vw;
  z-index:30;
  pointer-events:none;
}
.text-overlay .top-meta{
  font-size:clamp(11px,1.8vh,14px);
  font-weight:700;
  letter-spacing:0.4em;
  color:#a3b899;
  opacity:0.8;
  text-shadow:0 1px 6px rgba(0,0,0,0.5);
}
.text-overlay .title-main{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(2.5rem,6vw,5rem);
  font-weight:900;
  color:#f7f5f0;
  text-shadow:0 4px 20px rgba(0,0,0,0.6);
}
.text-overlay .title-sub{
  font-size:clamp(0.65rem,1.2vw,0.85rem);
  letter-spacing:0.35em;
  color:#d4af37;
  font-weight:700;
  margin-top:16px;
  text-shadow:0 1px 8px rgba(0,0,0,0.5);
}
.text-overlay .title-line{
  width:120px;
  height:2px;
  background:linear-gradient(90deg,transparent,#d4af37,transparent);
  margin:20px auto;
}
.text-overlay .title-quote{
  font-size:clamp(0.7rem,1vw,0.85rem);
  color:#a3b899;
  font-style:italic;
  text-shadow:0 1px 6px rgba(0,0,0,0.4);
}
.text-overlay .scroll-hint{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1vh;
  animation:pulse 2s ease-in-out infinite;
}

@keyframes pulse{
  0%,100%{opacity:0.4}
  50%{opacity:1}
}

/* ─── 大雁飞行动画区（画面上方从右到左） ─── */
.geese-fly-zone{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:50vh;
  z-index:7;
  pointer-events:none;
}

.fly-goose{
  position:absolute;
  height:clamp(50px,8vh,110px);
  width:auto;
  opacity:0;
  animation:geeseFlyAcross 10s ease-in-out infinite;
  transform-origin:center center;
}

.fly-goose-1{
  top:4%;
  height:clamp(55px,9vh,120px);
  animation-delay:0s;
  animation-duration:11s;
}
.fly-goose-2{
  top:8%;
  height:clamp(50px,8vh,110px);
  animation-delay:2.5s;
  animation-duration:12s;
}
.fly-goose-3{
  top:2%;
  height:clamp(45px,7vh,100px);
  animation-delay:5.5s;
  animation-duration:10s;
}
.fly-goose-4{
  top:10%;
  height:clamp(48px,7.5vh,105px);
  animation-delay:8s;
  animation-duration:13s;
}
.fly-goose-5{
  top:5%;
  height:clamp(42px,6.5vh,95px);
  animation-delay:11s;
  animation-duration:9s;
}

/* 从右到左飞行 + 上下波动（无左右晃动） */
@keyframes geeseFlyAcross{
  0%   { transform:translateX(110vw) translateY(0); opacity:0; }
  8%   { opacity:0.9; }
  20%  { transform:translateX(70vw) translateY(-24px); opacity:0.9; }
  40%  { transform:translateX(35vw) translateY(10px); opacity:0.9; }
  60%  { transform:translateX(0) translateY(-18px); opacity:0.9; }
  80%  { transform:translateX(-40vw) translateY(8px); opacity:0.9; }
  92%  { opacity:0; }
  100% { transform:translateX(-120vw) translateY(0); opacity:0; }
}

/* ─── 近景大树（从下方由小到大） ─── */
.tree-container{
  position:fixed;
  top:0;
  left:50%;
  transform:translateX(-50%);
  z-index:22;
  pointer-events:none;
  will-change:transform;
}
.tree-inner{
  transform-origin:bottom center;
  will-change:transform;
  /* 初始 transform 由 JS 在 DOMContentLoaded 中设置，与引擎值同源 */
  /* scale(1.4) 时宽度正好 = 100vw */
  width:calc(100vw / 1.4);
}
.tree-inner img{
  width:100%;
  height:auto;
  display:block;
  filter:drop-shadow(0 8px 30px rgba(0,0,0,0.5));
}

/* ═══════════════════════════════════════════════════════
   P2 — 泥土背景 + 大雁飞行
   ═══════════════════════════════════════════════════════ */
.screen-z1{z-index:1}
#screen-soil{
  background:#161511;
  align-items:center;
  justify-content:center;
}
/* 防止 #screen-p5 创建层叠上下文，使其子元素 z-index 在根上下文生效 */
#screen-p5{z-index:auto !important;}

/* 泥土背景 */
.soil-bg{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.soil-bg img{
  width:101%;
  height:101%;
  object-fit:cover;
  display:block;
  opacity:0.85;
  position:relative;
  left:-0.5%;top:-0.5%;
}

/* 根系 */
.roots-container{
  position:absolute;
  top:-8vh;
  left:50%;
  transform:translateX(-50%);
  width:min(600px,80vw);
  height:100%;
  z-index:10;
  pointer-events:none;
  opacity:0;
}
.roots-container svg{width:100%;height:100%}
.root-path{fill:none;stroke-linecap:round}

/* P2 文字 */
.soil-content{
  position:absolute;
  right:5vw;
  bottom:5vh;
  left:auto;
  z-index:10;
  text-align:right;
  opacity:0;
  pointer-events:none;
}
.soil-content h2{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(1.8rem,4vw,3.2rem);
  color:#f7f5f0;
  text-shadow:0 2px 8px rgba(0,0,0,0.6);
}
.soil-content .desc{
  font-size:clamp(12px,1.6vh,17px);
  color:#a3b899;
  margin-top:1.5vh;
  max-width:360px;
  line-height:1.7;
  margin-left:auto;
}

/* 根生长四标题 */
.root-label{
  position:absolute;
  z-index:12;
  pointer-events:none;
  opacity:0;
  transition:opacity 0.6s;
}
.root-label .rl-icon{
  font-size:clamp(20px,3.5vh,40px);
  display:block;
  margin-bottom:0.5vh;
}
.root-label .rl-text{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(18px,3vh,34px);
  color:#d4af37;
  font-weight:700;
  letter-spacing:0.15em;
  text-shadow:0 2px 8px rgba(0,0,0,0.5);
  display:block;
}
.root-label .rl-sub{
  font-size:clamp(12px,1.6vh,17px);
  color:rgba(163,184,153,0.7);
  margin-top:0.3vh;
  display:block;
}
.root-label.visible{opacity:1;}

/* P2 底部遮罩由 JS 动态控制 */

/* 朦胧遮罩 */
.mist-overlay{
  position:absolute;inset:0;z-index:8;
  background:radial-gradient(ellipse at center, rgba(255,255,255,0.08) 0%, rgba(0,0,0,0.92) 70%);
  pointer-events:none;
}

/* ═══════════════════════════════════════════════════════
   P3
   ═══════════════════════════════════════════════════════ */
#screen-final{
  background:#0a0a0a;
  align-items:center;justify-content:center;
  display:flex;
  will-change:filter;
}
.final-white{
  position:absolute;top:300vh;left:0;width:100%;height:100vh;z-index:-1;
  background:#fff;
}
.final-bg{
  position:absolute;top:300vh;left:0;width:100%;height:100vh;z-index:0;overflow:hidden;
}
.final-bg-img{
  position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;
}

/* P3 大雁飞过 */
.p3-geese{
  position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
}

/* ── P4 过渡页 ── */
.p4-white{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:88;
  background:linear-gradient(180deg, #c8d8e8 0%, #e8f0e8 40%, #d4c8a0 100%);
  opacity:0;
  pointer-events:none;
}
.p4-bg{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:89;overflow:hidden;
  opacity:0;
  pointer-events:none;
}
.p4-bg-img{
  position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;
}
.p4-bg-img{
  position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;
}
.p3-goose{
  position:absolute;height:clamp(30px,5vh,70px);width:auto;opacity:0;
  animation:p3GeeseFly 14s ease-in-out infinite;
}
.p3-goose-1{top:12%;animation-delay:0s;animation-duration:15s;}
.p3-goose-2{top:18%;animation-delay:4s;animation-duration:13s;}
.p3-goose-3{top:8%;animation-delay:9s;animation-duration:17s;}
@keyframes p3GeeseFly{
  0%{transform:translateX(120vw) translateY(0);opacity:0}
  8%{opacity:0.5}
  20%{transform:translateX(70vw) translateY(-12px);opacity:0.5}
  50%{transform:translateX(30vw) translateY(6px);opacity:0.5}
  80%{transform:translateX(-20vw) translateY(-8px);opacity:0.5}
  92%{opacity:0}
  100%{transform:translateX(-120vw) translateY(0);opacity:0}
}

/* ── P4 大雁飞过（中上位置）── */
.p4-geese{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:89;
  pointer-events:none;overflow:hidden;opacity:0;
}
.p4-goose{
  position:absolute;height:clamp(36px,6vh,80px);width:auto;opacity:0;
  animation:p4GeeseFly 16s ease-in-out infinite;
}
.p4-goose-1{top:18%;animation-delay:0s;animation-duration:18s;}
.p4-goose-2{top:25%;animation-delay:5s;animation-duration:15s;}
.p4-goose-3{top:14%;animation-delay:11s;animation-duration:20s;}
@keyframes p4GeeseFly{
  0%{transform:translateX(130vw) translateY(0);opacity:0}
  10%{opacity:0.4}
  25%{transform:translateX(80vw) translateY(-10px);opacity:0.4}
  55%{transform:translateX(35vw) translateY(5px);opacity:0.35}
  80%{transform:translateX(-15vw) translateY(-6px);opacity:0.3}
  92%{opacity:0}
  100%{transform:translateX(-130vw) translateY(0);opacity:0}
}

/* ── P5 归途背景 ── */
.p5-bg-layer{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:89;
  opacity:0;pointer-events:none;overflow:hidden;
}
.p5-bg-img{
  width:100%;height:100%;object-fit:cover;display:block;
}

/* ── P5 黄文秀事迹 ── */
.p5-story{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:91;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;opacity:0;
  transform:translateY(40px);
}
.p5-story-inner{
  width:min(1200px,95vw);max-height:92vh;overflow:hidden;
  background:rgba(255,255,255,0.42);
  border:1px solid rgba(255,255,255,0.35);
  border-radius:16px;
  padding:clamp(12px,1.5vh,20px);
  display:flex;
  flex-direction:column;
}

/* 三栏主体 */
.p5-body{
  flex:1;
  display:flex;
  flex-direction:row;
  gap:clamp(8px,1vw,16px);
  min-height:200px;
}

/* 左侧 25%：动漫人物 */
.p5-col-left{
  flex:0 0 25%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.p5-col-left .p5-col-img{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.p5-col-left .p5-col-img img{
  width:100%;
  height:auto;
  object-fit:contain;
  border-radius:8px;
  max-height:100%;
}

/* 中间：图片右对齐 + 文字 */
.p5-col-middle{
  flex:1;
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:0;
}
.p5-col-middle .p5-head{
  flex-shrink:0;
  text-align:center;
  margin-top:clamp(16px,2.5vh,32px);
}
.p5-col-middle .p5-head img{
  height:clamp(80px, 13vh, 160px);
  width:auto;
  display:inline-block;
}
.p5-middle-text{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:0 0 clamp(4px,0.5vh,10px);
}
.p5-middle-text p{
  font-size:clamp(13px,1.2vw,17px);
  color:#3d2a1c;
  line-height:1.7;
  margin:0 0 4px;
  letter-spacing:0.02em;
}
.p5-middle-text p:last-child{margin-bottom:0;}
.p5-middle-text strong{color:#8a6c10;}

/* 右侧 35%：相册 */
.p5-col-right{
  flex:0 0 35%;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.p5-col-right .p5-col-album{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:clamp(4px,0.4vh,8px);
  min-height:0;
}
.p5-col-right .p5-album-frame{
  flex:1;
  position:relative;
  perspective:1200px;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
}
/* 相册图片容器 */
.p5-album-stack{
  position:relative;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}
.p5-album-img{
  position:absolute;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  border-radius:6px;
  transition:transform 0.7s cubic-bezier(0.4,0,0.2,1), opacity 0.5s ease;
  transform-origin:left center;
  box-shadow:0 4px 20px rgba(0,0,0,0.35);
  opacity:0;
  pointer-events:none;
}
/* 层叠效果：非活跃照片以低透明度显现层叠 */
.p5-album-img:nth-child(1){opacity:0.18;z-index:1;transform:translate(0,0) scale(0.96);}
.p5-album-img:nth-child(2){opacity:0.14;z-index:2;transform:translate(4px,-2px) scale(0.94) rotate(0.6deg);}
.p5-album-img:nth-child(3){opacity:0.10;z-index:3;transform:translate(8px,-4px) scale(0.92) rotate(-0.4deg);}
.p5-album-img:nth-child(4){opacity:0.06;z-index:4;transform:translate(12px,-6px) scale(0.90) rotate(0.3deg);}
.p5-album-img:nth-child(5){opacity:0.03;z-index:5;transform:translate(16px,-8px) scale(0.88) rotate(-0.2deg);}
.p5-album-img.active{
  opacity:1!important;
  z-index:10!important;
  pointer-events:auto;
  transform:rotate(0deg) scale(1)!important;
}
.p5-album-img.flip-out{
  transform:rotateY(-110deg) scale(0.85);
  opacity:0!important;
}

/* 相册圆点指示器（底部居中） */
.p5-album-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  height:clamp(20px,2.5vh,28px);
}
/* 相册导航栏：左右箭头 + 中间圆点 */
.p5-album-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(8px,1vw,14px);
  flex-shrink:0;
  height:clamp(24px,3vh,34px);
}
.p5-album-arrow{
  background:none;
  border:none;
  color:#d4af37;
  font-size:clamp(18px,2vw,26px);
  cursor:pointer;
  padding:0 4px;
  line-height:1;
  user-select:none;
  transition:color 0.2s, transform 0.2s;
  pointer-events:auto;
}
.p5-album-arrow:hover{
  color:#f0d860;
  transform:scale(1.2);
}
.p5-ctrl-dots{
  display:flex;
  gap:clamp(4px,0.5vw,8px);
  align-items:center;
}
.p5-ctrl-dot{
  width:clamp(6px,0.6vw,9px);
  height:clamp(6px,0.6vw,9px);
  border-radius:50%;
  background:rgba(255,255,255,0.15);
  cursor:pointer;
  flex-shrink:0;
}
.p5-ctrl-dot.active{background:#d4af37;}
/* ── P5 词云图 ── */
.p5-wordcloud{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:91;
  display:flex;align-items:center;justify-content:center;
  opacity:0;
  transform:scale(0.92);
}
.p5-wordcloud-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-top:-25vh;
}
.p5-wordcloud-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(20px,2.5vw,34px);color:#d4af37!important;
  letter-spacing:0.25em;font-weight:700;margin-bottom:4px;
}
/* 强制覆盖玻璃卡冲突 */
.glass-card--p5 .p5-wordcloud-title{color:#d4af37!important;}
.glass-card--p5 .p5-wordcloud-desc{color:#d4c8b8!important;}
.p5-wordcloud-desc{
  font-size:clamp(17px,1.3vw,19px);color:#d4c8b8;
  margin-bottom:clamp(12px,2vh,24px);
}
.p5-cloud-fill{
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  z-index:15;
}
.p5-cloud-word{
  position:absolute;
  cursor:pointer;
  pointer-events:auto;
  white-space:nowrap;
  padding:3px 8px;
  border-radius:6px;
  user-select:none;
  will-change:transform;
  line-height:1.3;
  transition:color 0.4s ease;
  z-index:5;
}
.p5-cloud-word:hover{
  color:#f0d860!important;
  z-index:20!important;
  text-shadow:0 0 30px rgba(212,175,55,0.5);
}
.p5-cloud-word.active{color:#d4af37;}
.p5-cloud-detail{
  margin-top:clamp(8px,1vh,14px);
  font-size:clamp(17px,1.3vw,19px);color:#d4c8b8;
  min-height:clamp(40px,5vh,60px);
  background:rgba(255,255,255,0.03);
  border-radius:10px;padding:clamp(8px,1vh,14px);
  border:1px solid rgba(212,175,55,0.12);
  line-height:1.7;display:none;
}
/* 悬停浮窗 */
.p5-cloud-tip{
  position:fixed;
  z-index:99999;
  pointer-events:none;
  opacity:0;
  max-width:min(360px,45vw);
  background:rgba(20,16,12,0.92);
  border:1px solid rgba(212,175,55,0.25);
  border-radius:10px;
  padding:clamp(10px,1.2vh,16px);
  box-shadow:0 4px 24px rgba(0,0,0,0.5);
}
.p5-cloud-tip.show{opacity:1;}
.p5-cloud-tip .tip-word{
  font-size:clamp(15px,1.3vw,20px);
  font-weight:700;
  color:#d4af37;
  display:block;
  margin-bottom:4px;
}
.p5-cloud-tip .tip-freq{
  font-size:clamp(17px,1.3vw,19px);
  color:#8a7a5a;
  display:block;
  margin-bottom:6px;
}
.p5-cloud-tip .tip-ctx{
  font-size:clamp(12px,1vw,14px);
  color:#d4c8b8;
  line-height:1.6;
  display:block;
  margin-bottom:4px;
  font-style:italic;
}
.p5-cloud-tip .tip-emotion{
  font-size:clamp(17px,1.3vw,19px);
  color:#6a5a4a;
  display:block;
}
.p5-wordcloud-source{
  font-size:clamp(17px,1.3vw,19px);color:#d4c8b8!important;
  position:fixed;
  bottom:12vh;
  left:50%;
  transform:translateX(-50%);
  white-space:nowrap;
  z-index:96;
  pointer-events:none;
}

/* ── P5 结尾 ── */
.p5-ending{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:91;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;opacity:0;
  transform:translateY(30px);
}
.p5-ending-inner{
  text-align:center;max-width:min(640px,85vw);
}
.p5-ending-inner p{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(17px,1.8vw,24px);color:#d4c8b8;
  line-height:2.0;letter-spacing:0.12em;margin:0 0 12px;
  opacity:0;transform:translateY(20px);
  text-shadow:0 1px 8px rgba(0,0,0,0.4);
}
.p5-ending-inner p:last-child{margin-bottom:0;}

/* ── P4 滑动数据面板 ── */
.p4-slide{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:90;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
  opacity:0;
}
.p4-slide-inner{
  width:min(1100px,92vw);max-height:100vh;overflow:visible;
  padding:clamp(16px,2vh,28px);
}
.p4-title-slide{
  text-align:center;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  min-height:30vh;
}
.p4-chapter-title{margin-bottom:clamp(12px,2vh,24px);color:#ffffff!important;}
.p4-chapter-desc{
  font-size:clamp(17px,1.8vh,20px);color:#5a3a1a;
  line-height:1.8;max-width:480px;margin:0 auto;text-align:center;
  text-shadow:0 2px 12px rgba(0,0,0,0.3);
}

/* ── P5/P6 跨越山海 · 数据页 ── */
.p5-bg{
  position:fixed;top:0;left:0;width:100%;height:100vh;z-index:86;
  background:linear-gradient(135deg, #0f1a1e 0%, #1a2a2e 30%, #1f2f25 70%, #0f1a1e 100%);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity 0.6s ease;
  overflow:hidden;
}
.p5-inner{
  width:min(1100px,92vw);max-height:90vh;overflow-y:auto;
  padding:clamp(20px,3vh,40px);
  position:relative;
}
.p5-header{text-align:center;margin-bottom:clamp(10px,1.2vh,18px);}
.p5-badge{
  display:inline-block;font-size:clamp(12px,1.1vw,14px);
  color:#d4af37;letter-spacing:0.12em;border:1px solid rgba(212,175,55,0.3);
  padding:3px 12px;border-radius:20px;margin-bottom:clamp(4px,0.5vh,8px);
}
.p5-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(16px,1.8vw,26px);color:#e8ddd0;margin:2px 0;
  letter-spacing:0.15em;font-weight:700;
  text-shadow:0 2px 12px rgba(0,0,0,0.4);
}
/* P4 数据幻灯片标题强制深棕色 */
.p4-slide .p5-title{color:#5a3a1a!important;text-shadow:0 2px 12px rgba(0,0,0,0.4)!important;}
.p5-subtitle{
  font-size:clamp(17px,1.5vw,19px);color:#8a7a5a;margin:0;
  letter-spacing:0.06em;
  text-shadow:0 1px 4px rgba(0,0,0,0.2);
}
.p5-charts-row{
  display:flex;gap:clamp(10px,1.2vw,16px);
  margin-bottom:clamp(8px,1vh,14px);
}
.p5-chart-box{
  flex:1;min-width:0;
  border-radius:12px;padding:clamp(12px,1.5vw,20px);
}
.p5-chart-box--left{
  display:flex;
  flex-direction:column;
}
.p5-chart-title{
  font-size:clamp(14px,1.2vw,17px);color:#8a7a5a;
  margin-bottom:clamp(4px,0.5vh,8px);letter-spacing:0.06em;
  font-weight:600;
}
.p5-bar-chart{
  display:flex;align-items:flex-end;gap:clamp(3px,0.4vw,6px);
  height:clamp(120px,18vh,220px);padding-top:6px;
  margin-top:auto;
}
.p5-bar-item{
  flex:1;display:flex;flex-direction:column;align-items:center;
  gap:4px;height:100%;justify-content:flex-end;
}
.p5-bar{
  width:100%;border-radius:4px 4px 0 0;
  min-height:2px;
  position:relative;
}
.p5-bar-label{
  font-size:clamp(17px,1.3vw,19px);color:#8a7a5a;white-space:nowrap;
}
.p5-bar-val{
  font-size:clamp(17px,1.4vw,19px);color:#d4af37;font-weight:bold;
  white-space:nowrap;margin-bottom:2px;
}

/* 圆环图 */
.p5-donut-wrap{
  position:relative;width:clamp(90px,12vw,140px);
  height:clamp(90px,12vw,140px);margin:0 auto;
}
.p5-donut{width:100%;height:100%;}
.p5-donut-center{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:clamp(11px,1vw,14px);color:#d4af37;text-align:center;
  font-weight:bold;line-height:1.3;
}
.p5-legend{
  display:flex;flex-wrap:wrap;gap:2px 6px;
  margin-top:clamp(4px,0.5vh,8px);justify-content:center;
}
.p5-legend-item{
  display:flex;align-items:center;gap:4px;
  font-size:clamp(12px,1vw,14px);color:#d4c8b8;
}
.p5-legend-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
}

/* 对比条 */
.p6-compare-wrap{
  display:flex;flex-direction:column;gap:4px;
  padding:2px 0;
}
.p6-compare-row{
  display:flex;align-items:center;gap:4px;
}
.p6-compare-label{
  width:clamp(32px,4vw,48px);font-size:clamp(17px,1.3vw,19px);
  color:#8a7a5a;text-align:right;flex-shrink:0;
}
.p6-compare-bar-bg{
  flex:1;height:clamp(10px,1.5vh,16px);border-radius:4px;
  background:rgba(255,255,255,0.06);overflow:hidden;
  display:flex;
}
.p6-compare-bar{
  height:100%;border-radius:4px;
}
.p6-compare-bar--town{background:linear-gradient(90deg,#d4af37,#e8c84a);}
.p6-compare-bar--city{background:linear-gradient(90deg,#5a7a6a,#7a9a8a);}
.p6-compare-pct{
  font-size:clamp(17px,1.3vw,19px);color:#d4af37;
  width:clamp(32px,3.5vw,48px);flex-shrink:0;
}

/* 底部文本 */
.p5-text{
  border-radius:12px;padding:clamp(10px,1.2vw,16px);
}
.p5-text p{
  font-size:clamp(14px,1.2vw,17px);color:#d4c8b8;
  line-height:1.7;letter-spacing:0.03em;margin:0 0 clamp(6px,0.5vh,8px);
}
.p5-text .p5-source{
  display:block;font-size:clamp(17px,1.3vw,19px);
  color:#6a5a4a;padding-top:clamp(4px,0.4vh,8px);
  text-align:right;
  border-top:1px solid rgba(255,255,255,0.06);
}
.p6-overall-rate{margin-top:6px;text-align:center;color:#d4af37;font-weight:bold;}

/* ── 统一章节标题组件 ── */
.chapter-badge{
  display:inline-block;
  font-size:clamp(11px,1vw,13px);
  font-weight:700;
  letter-spacing:0.3em;
  color:#d4af37;
  border:1px solid rgba(212,175,55,0.3);
  padding:4px 16px;
  border-radius:20px;
  margin-bottom:clamp(10px,1.2vh,16px);
}
.chapter-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(1.8rem,4.5vw,3.6rem);
  font-weight:900;
  color:#e8ddd0;
  letter-spacing:0.2em;
  line-height:1.2;
  text-shadow:0 3px 20px rgba(0,0,0,0.5);
}
.chapter-sub{
  font-size:clamp(14px,1.4vw,18px);
  color:#a39070;
  letter-spacing:0.15em;
  margin-top:clamp(8px,1vh,14px);
  font-weight:400;
}
.chapter-divider{
  width:60px;
  height:1.5px;
  background:linear-gradient(90deg,transparent,#d4af37,transparent);
  margin:clamp(12px,1.5vh,20px) auto;
  opacity:0.5;
}

/* ── 统一章节标题组件 ── */
.chapter-badge{
  display:inline-block;
  font-size:clamp(11px,1vw,13px);
  font-weight:700;
  letter-spacing:0.3em;
  color:#d4af37;
  border:1px solid rgba(212,175,55,0.3);
  padding:4px 16px;
  border-radius:20px;
  margin-bottom:clamp(10px,1.2vh,16px);
}
.chapter-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(1.8rem,4.5vw,3.6rem);
  font-weight:900;
  color:#e8ddd0;
  letter-spacing:0.2em;
  line-height:1.2;
  text-shadow:0 3px 20px rgba(0,0,0,0.5);
}
.chapter-sub{
  font-size:clamp(14px,1.4vw,18px);
  color:#a39070;
  letter-spacing:0.15em;
  margin-top:clamp(8px,1vh,14px);
  font-weight:400;
}
.chapter-divider{
  width:60px;
  height:1.5px;
  background:linear-gradient(90deg,transparent,#d4af37,transparent);
  margin:clamp(12px,1.5vh,20px) auto;
  opacity:0.5;
}

/* Keep old class names pointing to new unified styles */
/* P3 专用标题徽章：黑字金底 */
#final-text .final-badge{
  color:#1a1a1a!important;
  background:#d4af37!important;
  border:none!important;
  padding:5px 18px!important;
}
/* P4 标题幻灯片徽章：黑字金底（与 P3 统一格式） */
.p4-title-slide .final-badge{
  color:#1a1a1a!important;
  background:#d4af37!important;
  border:none!important;
  padding:5px 18px!important;
}
/* P5 标题徽章：黑字金底（统一格式） */
.p5-content .final-badge{
  color:#1a1a1a!important;
  background:#d4af37!important;
  border:none!important;
  padding:5px 18px!important;
}

/* Keep old class names pointing to new unified styles */
.final-badge,.p5-badge,.p6-badge,.p6-p7-conclusion-badge{
  display:inline-block!important;
  font-size:clamp(11px,1vw,13px)!important;
  font-weight:700!important;
  letter-spacing:0.3em!important;
  color:#d4af37!important;
  border:1px solid rgba(212,175,55,0.3)!important;
  padding:4px 16px!important;
  border-radius:20px!important;
  margin-bottom:clamp(10px,1.2vh,16px)!important;
}
.p3-main-title,.p4-chapter-title,.p5-title,.p6-main-title,.p6-p7-conclusion-main-title{
  font-family:'STSong','SimSun',serif!important;
  font-size:clamp(1.8rem,4.5vw,3.6rem)!important;
  font-weight:900!important;
  color:#e8ddd0;
  letter-spacing:0.2em!important;
  line-height:1.2!important;
  text-shadow:0 3px 20px rgba(0,0,0,0.5)!important;
}

.final-text{
  position:fixed;
  top:38%;
  left:50%;
  transform:translateX(-50%);
  z-index:100;
  text-align:center;
  opacity:1;
  pointer-events:none;
  will-change:opacity;
}

.p3-title-block{
  opacity:0;
  transition:opacity 0.6s ease-out;
  will-change:opacity;
}
.final-badge{
  font-size:clamp(12px,1.4vw,15px);
  font-weight:700;letter-spacing:0.3em;
  color:#d4af37;display:block;margin-bottom:clamp(16px,2.5vh,28px);
  text-shadow:0 1px 6px rgba(0,0,0,0.4);
}
.final-text h2{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(1.6rem,4vw,3rem);
  color:#f7f5f0;margin-bottom:20px;
}
.final-text p{
  font-size:clamp(16px,1.8vh,19px);
  color:#9ca3af;line-height:1.8;
}
.final-text strong{color:#d4af37;}

/* ═══════════════════════════════════════════════════════
   P3 — 翻牌数字统计面板
   ═══════════════════════════════════════════════════════ */
.p3-data-panel{
  position:relative;
  z-index:3;
  text-align:center;
  pointer-events:none;
  user-select:none;
}

.p3-main-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(2rem,5vw,4rem);
  color:#ffffff!important;
  font-weight:900;
  letter-spacing:0.25em;
  margin-bottom:clamp(32px,6vh,56px);
  text-shadow:0 4px 30px rgba(0,0,0,0.6);
}

.p3-stats-group{
  display:flex;
  flex-direction:column;
  gap:clamp(24px,4vh,40px);
  align-items:center;
  margin-bottom:clamp(28px,4vh,44px);
}

.p3-stat-item{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:clamp(4px,0.6vw,10px);
  flex-wrap:wrap;
}

.p3-stat-label{
  font-size:clamp(16px,1.8vw,24px);
  color:#2d4a3e;
  letter-spacing:0.08em;
  white-space:nowrap;
}

.p3-stat-value{
  display:inline-flex;
  align-items:center;
  gap:2px;
  font-size:clamp(28px,5vw,56px);
  font-weight:900;
  font-family:'STSong','SimSun',serif;
  color:#d4af37;
  text-shadow:0 2px 16px rgba(212,175,55,0.3);
  letter-spacing:0.12em;
  font-variant-numeric:tabular-nums;
}

.p3-stat-unit{
  font-size:clamp(16px,1.6vw,22px);
  color:#2d4a3e;
  font-weight:400;
  letter-spacing:0.1em;
  text-shadow:0 1px 8px rgba(0,0,0,0.3);
}

.p3-data-source{
  font-size:clamp(12px,1.1vw,14px);
  color:#666666;
  letter-spacing:0.15em;
  margin-top:4px;
  text-shadow:0 2px 12px rgba(0,0,0,0.5);
}

/* ─── 数字翻牌槽 ─── */
.num-slot{
  display:inline-block;
  width:0.65em;
  height:1.25em;
  overflow:hidden;
  vertical-align:middle;
  position:relative;
  background:rgba(255,255,255,0.55);
  border-radius:4px;
  border:1px solid rgba(212,175,55,0.35);
  line-height:1.25em;
}

.num-slot__inner{
  display:flex;
  flex-direction:column;
  transition:transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
  will-change:transform;
}

.num-slot__inner span{
  display:flex;
  align-items:center;
  justify-content:center;
  height:1.25em;
  width:100%;
  font-size:inherit;
  font-weight:inherit;
  color:inherit;
  text-shadow:inherit;
  background:transparent;
}

/* ─── 向上滚动（随VS推进） ─── */
.p3-data-panel.scroll-up{
  will-change:transform;
}

/* ─── 数字千分位逗号 ─── */
.p3-stat-value .num-comma{
  color:#2d4a3e;
  font-size:0.7em;
  opacity:0.7;
  margin:0 1px;
  line-height:1.25em;
}

/* ── 扎根人数：独立 fixed 定位 ── */
.p3-zagen-section{
  position:fixed;
  bottom:16vh;
  left:50%;
  transform:translateX(-50%);
  z-index:95;
  opacity:0;
  transition:opacity 0.8s ease;
  display:flex;
  justify-content:center;
}

/* ── 省份来信对话框 ── */
#letter-dialog .letter-box::-webkit-scrollbar{width:4px;}
#letter-dialog .letter-box::-webkit-scrollbar-track{background:transparent;}
#letter-dialog .letter-box::-webkit-scrollbar-thumb{background:rgba(212,175,55,0.3);border-radius:2px;}
#reply-history{overflow-y:auto;}
#reply-history::-webkit-scrollbar{width:3px;}
#reply-history::-webkit-scrollbar-thumb{background:rgba(212,175,55,0.2);border-radius:2px;}
#reply-input::-webkit-scrollbar{width:4px;}
#reply-input::-webkit-scrollbar-track{background:transparent;}
#reply-input::-webkit-scrollbar-thumb{background:rgba(212,175,55,0.25);border-radius:2px;}
#reply-input:focus{border-color:rgba(212,175,55,0.5);}

/* ── 省份信件标记：暖黄信封 ── */
.province-marker{
  animation:markerBob 2.4s ease-in-out infinite;
  cursor:pointer;
  color:#c49030;
  filter:drop-shadow(0 0 10px rgba(196,144,48,0.5)) drop-shadow(0 0 24px rgba(196,144,48,0.25));
}
@keyframes markerBob{
  0%,100%{transform:scale(1) rotate(0deg);}
  15%{transform:scale(1.12) rotate(-3deg);}
  30%{transform:scale(0.97) rotate(2deg);}
  50%{transform:scale(1.06) rotate(-1deg);}
  70%{transform:scale(0.98) rotate(1.5deg);}
  85%{transform:scale(1.04) rotate(-2deg);}
}
}
.p3-zagen-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.p3-zagen-label{
  font-size:clamp(16px,1.8vw,24px);
  color:#2d4a3e;
  letter-spacing:0.08em;
}
.p3-zagen-unit{
  font-size:clamp(16px,1.6vw,22px);
  color:#2d4a3e;
  font-weight:400;
  text-shadow:0 1px 8px rgba(0,0,0,0.3);
}

/* ═══════════════════════════════════════════════════════
   P3 — 电影感诗歌（纯 JS 驱动，无 CSS 过渡）
   ═══════════════════════════════════════════════════════ */
.p3-poem{
  margin-top:clamp(48px,6vh,72px);
  text-align:center;
  pointer-events:none;
  user-select:none;
  max-width:min(580px,80vw);
  margin-left:auto;
  margin-right:auto;
}

.poem-line{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 0.55s ease-out, transform 0.55s ease-out;
  will-change:opacity,transform;
}

.poem-line.visible{
  opacity:1;
  transform:translateY(0);
}

p.poem-line--small{
  font-size:clamp(16px,1.7vw,19px);
  color:#ffffff !important;
  line-height:2.0;
  letter-spacing:0.08em;
  font-weight:500;
  margin-bottom:clamp(32px,4vh,48px);
  text-shadow:0 4px 24px rgba(0,0,0,0.8);
}

p.poem-line--emphasis{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(16px,2vw,26px);
  color:#ffffff !important;
  line-height:2.0;
  letter-spacing:0.12em;
  font-weight:700;
  margin-bottom:clamp(40px,5vh,60px);
  text-shadow:0 4px 28px rgba(0,0,0,0.85);
}

.poem-line:last-child{
  margin-bottom:0;
}

/* ── P3 过渡文案（70% 位置浮现，固定定位）── */
.p3-transition-section{
  position:fixed;top:0;left:0;width:100%;height:100%;
  z-index:89;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  pointer-events:none;
  opacity:0;
  transition:opacity 0.4s ease;
}
.p3-trans-line{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 0.55s ease-out, transform 0.35s ease-out;
  font-family:'STSong','SimSun',serif;
  font-size:clamp(17px,2vw,26px);
  color:#ffffff;
  line-height:2.2;
  letter-spacing:0.12em;
  font-weight:700;
  text-shadow:0 4px 30px rgba(0,0,0,0.85);
  margin:clamp(4px,0.6vh,10px) 0;
}
.p3-trans-line.visible{
  opacity:1;
  transform:translateY(0);
}

/* ═══════════════════════════════════════════════════════
   P5→P6 黑暗过渡遮罩
   ═══════════════════════════════════════════════════════ */
.p5-dark-bg{
  position:fixed;top:0;left:0;width:100%;height:100%;
  z-index:90;background:#000;pointer-events:none;
  opacity:0;
}
.p5-dark-overlay{
  position:fixed;top:0;left:0;width:100%;height:100%;
  z-index:95;background:#000;pointer-events:none;
  opacity:0;
}

/* ═══════════════════════════════════════════════════════
   P6 — 荒野花开
   ═══════════════════════════════════════════════════════ */
.p6-bg-layer{
  position:fixed;top:0;left:0;width:100%;height:100vh;
  z-index:86;overflow:hidden;
  pointer-events:none;
  opacity:0;
}
.p6-bg-img{
  pointer-events:none;
}

.p6-bg-img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1);
}

.p6-content{
  position:fixed;top:0;left:0;width:100%;height:100vh;
  z-index:201;
  display:flex;flex-direction:column;
  align-items:center;
  overflow-y:auto;
  pointer-events:none;
  opacity:0;
  padding:clamp(40px,6vh,80px) clamp(20px,4vw,60px) clamp(60px,8vh,100px);
  box-sizing:border-box;
  scrollbar-width:thin;
  scrollbar-color:rgba(212,175,55,0.2) transparent;
}
.p6-content::-webkit-scrollbar{width:4px;}
.p6-content::-webkit-scrollbar-track{background:transparent;}
.p6-content::-webkit-scrollbar-thumb{background:rgba(212,175,55,0.25);border-radius:2px;}

/* ── P6 顶部/底部留白 spacer ── */
.p6-spacer{
  min-height:clamp(200px,30vh,350px);
  flex-shrink:0;
}
.p6-spacer-bottom{
  min-height:120vh;
  flex-shrink:0;
}

/* ── P6 标题区 ── */
.p6-header{
  text-align:center;margin-bottom:clamp(32px,5vh,60px);
  opacity:0;transform:translateY(30px);
}
.p6-badge{
  display:inline-block;font-size:clamp(12px,1.1vw,14px);
  color:#d4af37;letter-spacing:0.12em;border:1px solid rgba(212,175,55,0.3);
  padding:4px 14px;border-radius:20px;margin-bottom:clamp(8px,1vh,14px);
  text-shadow:0 1px 6px rgba(0,0,0,0.4);
}
.p6-main-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(28px,4vw,52px);color:#e8ddd0;
  letter-spacing:0.35em;font-weight:700;
  margin:clamp(8px,1.2vh,16px) 0;
  text-shadow:0 2px 24px rgba(0,0,0,0.6);
}
.p6-subtitle{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(16px,1.8vw,24px);color:#d4af37;
  letter-spacing:0.25em;margin:0;
  text-shadow:0 2px 16px rgba(0,0,0,0.5);
}

/* ── P6 诗歌文本 ── */
.p6-poem{
  text-align:center;max-width:min(620px,85vw);
  margin-bottom:clamp(40px,6vh,80px);
}
.p6-poem-line{
  opacity:0;transform:translateY(20px);
  font-size:clamp(16px,1.7vw,22px);color:#e8ddd0;
  line-height:2.0;letter-spacing:0.08em;
  margin:clamp(4px,0.6vh,10px) 0;
  text-shadow:0 2px 12px rgba(0,0,0,0.5);
}
.p6-poem-line.visible{
  opacity:1;transform:translateY(0);
}
.p6-stat-num{
  font-family:'Georgia','Times New Roman',serif;
  font-size:clamp(22px,2.8vw,38px);color:#d4af37;
  letter-spacing:0.06em;
}
/* ★ P6 容器不创建层叠上下文，让内部文字/背景/遮罩在全局排序 */
#screen-p6.screen[data-enter="fixed-bottom"]{
  z-index:auto !important;
}

/* ── P6 收入数据表 ── */
.p6-table-section{
  width:100%;max-width:min(700px,92vw);
  margin-bottom:clamp(40px,6vh,80px);
  opacity:0;transform:translateY(30px);
}
.p6-table-header{
  text-align:center;font-size:clamp(17px,1.7vw,21px);
  color:#d4af37;letter-spacing:0.12em;
  margin-bottom:clamp(12px,1.5vh,20px);
  display:flex;align-items:center;justify-content:center;gap:8px;
}
.p6-table-icon{font-size:clamp(18px,2vw,28px);}
.p6-table-wrap{
  overflow-x:auto;
  border:1px solid rgba(212,175,55,0.15);
  border-radius:12px;
  background:rgba(0,0,0,0.35);
  backdrop-filter:blur(4px);
}
.p6-table{
  width:100%;border-collapse:collapse;
  font-size:clamp(16px,1.4vw,19px);
}
.p6-table th{
  padding:clamp(8px,1vh,14px) clamp(10px,1.2vw,18px);
  text-align:center;
  color:#d4af37;font-weight:600;
  border-bottom:1px solid rgba(212,175,55,0.2);
  letter-spacing:0.06em;
  background:rgba(212,175,55,0.05);
}
.p6-table td{
  padding:clamp(7px,0.8vh,12px) clamp(10px,1.2vw,18px);
  text-align:center;
  color:#d4c8b8;
  border-bottom:1px solid rgba(255,255,255,0.04);
  transition:color 0.3s ease;
}
.p6-table tbody tr:hover td{
  color:#fff;
  background:rgba(212,175,55,0.06);
}
.p6-table tbody tr:last-child td{
  border-bottom:none;
  color:#d4af37;font-weight:700;
}
.p6-col-growth{
  font-size:clamp(17px,1.4vw,19px);color:#8a7a5a;
}
.p6-table-source{
  text-align:right;font-size:clamp(17px,1.3vw,19px);
  color:#6a5a4a;margin-top:clamp(6px,0.6vh,10px);
}

/* ── P6 增长折线图 ── */
.p6-chart-section{
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;max-width:min(700px,92vw);
  margin:0 auto;
  z-index:202;
  opacity:0;
  pointer-events:none;
  padding:0 clamp(8px,1.5vw,20px);
}
.p6-chart-title{
  text-align:center;font-size:clamp(17px,1.8vw,24px);
  color:#e8ddd0;letter-spacing:0.06em;
  margin-bottom:clamp(8px,1vh,14px);font-weight:700;
  line-height:1.5;padding:0 8px;
}
.p6-chart-num{
  color:#d4af37;
  font-weight:700;
}
.p6-chart-canvas{
  width:100%;height:clamp(140px,32vh,300px);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:12px;
  background:rgba(0,0,0,0.25);
}

/* ── P6 折线图下方总结文本 ── */
.p6-chart-summary{
  width:100%;
  margin-top:clamp(12px,2vh,24px);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(8px,1vh,14px);
}
.p6-summary-line{
  font-size:clamp(13px,1.2vw,17px);
  color:#d4c8b8;
  line-height:1.8;
  letter-spacing:0.03em;
  opacity:0;
  transform:translateY(12px);
  max-width:min(640px,90%);
  margin:0;
}

/* ═══════════════════════════════════════════════════════
   P7 — 代际接力（反向视差 + 文字层）
   ═══════════════════════════════════════════════════════ */
#screen-p7{
  background:linear-gradient(180deg,#0a1510,#0d1f15);
}

.p7-parallax{
  position:absolute;
  inset:0;
  pointer-events:none;
  will-change:transform;
}
.p7-parallax img{
  width:100%;
  height:auto;
  display:block;
}

.p7-layer-far{
  z-index:5;
}
.p7-layer-mid{
  z-index:15;
}

/* 文字层位于远景与中景之间 — 使用 fixed 定位确保在视口内可见 */
.p7-text-layer{
  position:fixed;
  top:0;left:0;
  width:100%;height:100%;
  z-index:10;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  padding:6vh 5vw 10vh;
  box-sizing:border-box;
}
.p7-scroll-wrap{
  max-width:min(700px,85vw);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(6px,0.8vh,12px);
}
.p7-line{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(16px,2vw,24px);
  color:#3d2a1c;
  line-height:1.6;
  letter-spacing:0.12em;
  text-shadow:0 2px 12px rgba(255,255,255,0.5);
  opacity:0;
  transform:translateY(20px);
  margin:0;
  will-change:opacity,transform;
}

/* ── P7 结尾文案（50%~80% 从上方移入）── */
.p7-ending-text{
  position:fixed;
  top:0;left:0;
  width:100%;height:100%;
  z-index:6;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  transform:translateY(-100%);
  opacity:0;
}
.p7-ending-line{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(22px,2.8vw,42px);
  color:#3d2a1c;
  line-height:1.6;
  letter-spacing:0.35em;
  font-weight:700;
  text-shadow:0 4px 30px rgba(255,255,255,0.5), 0 0 60px rgba(255,255,255,0.2);
  margin:clamp(6px,0.8vh,14px) 0;
}
.p7-ending-line:first-child{
  margin-bottom:clamp(10px,1.2vh,20px);
}
.p7-ending-line:last-child{
  color:#8a6c10;
  font-size:clamp(20px,2.4vw,36px);
  letter-spacing:0.45em;
  font-style:italic;
}

/* ── P7 大雁飞行动画（水平飞行由 keyframe 驱动，垂直由 JS 控制）── */
.p7-geese-fly-zone{
  position:absolute;
  top:0;left:0;
  width:100%;
  height:50vh;
  z-index:7;
  pointer-events:none;
  visibility:hidden;
  will-change:transform;
}
.p7-fly-goose{
  position:absolute;
  height:clamp(50px,8vh,110px);
  width:auto;
  opacity:0;
  animation:geeseFlyAcross 10s ease-in-out infinite;
  transform-origin:center center;
}
.p7-fly-goose-1{ top:4%;  height:clamp(55px,9vh,120px); animation-delay:0s;   animation-duration:11s; }
.p7-fly-goose-2{ top:8%;  height:clamp(50px,8vh,110px); animation-delay:2.5s; animation-duration:12s; }
.p7-fly-goose-3{ top:2%;  height:clamp(45px,7vh,100px); animation-delay:5.5s; animation-duration:10s; }
.p7-fly-goose-4{ top:10%; height:clamp(48px,7.5vh,105px); animation-delay:8s; animation-duration:13s; }
.p7-fly-goose-5{ top:5%;  height:clamp(42px,6.5vh,95px); animation-delay:11s; animation-duration:9s; }

/* ── P6→P7 滑幕过渡（纯色遮罩）── */
.p6-p7-flip-overlay{
  position:fixed;
  top:0;left:0;
  width:100%;height:100%;
  z-index:300;
  pointer-events:none;
  visibility:hidden;
  background:linear-gradient(135deg,#0a1510,#0d1f15);
  transform:translateX(100%);
  will-change:transform;
}

/* ── P6→P7 结语引入页（fixed 居中，在幕布之上，clip-path 裁切）── */
.p6-p7-conclusion{
  position:fixed;
  top:0;left:0;
  width:100%;height:100%;
  z-index:301;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  visibility:hidden;
}
.p6-p7-conclusion-inner{
  text-align:center;
  max-width:min(520px,78vw);
  padding:4vh 5vw;
}
.p6-p7-conclusion-badge{
  display:inline-block;
  font-size:clamp(12px,1.1vw,14px);
  color:#d4af37;
  letter-spacing:0.12em;
  border:1px solid rgba(212,175,55,0.3);
  padding:4px 14px;
  border-radius:20px;
  margin-bottom:clamp(12px,2vh,20px);
}
.p6-p7-conclusion-main-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(36px,5vw,64px);
  color:#e8ddd0;
  letter-spacing:0.5em;
  font-weight:700;
  margin:0;
  text-shadow:0 2px 24px rgba(0,0,0,0.5);
}
.p6-p7-conclusion-divider{
  width:clamp(60px,8vw,120px);
  height:1px;
  background:linear-gradient(90deg,transparent,#d4af37,transparent);
  margin:clamp(16px,2.5vh,28px) auto;
}
.p6-p7-conclusion-desc{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(16px,1.6vw,20px);
  color:#c4b8a8;
  line-height:1.8;
  letter-spacing:0.12em;
  margin:clamp(4px,0.6vh,10px) 0;
  text-shadow:0 2px 12px rgba(0,0,0,0.4);
}

/* P7 默认隐藏（仅在 p7>0 时显示） */

/* ============================================================
   底部提示栏
   ============================================================ */
.page-hint-bar{
  position:fixed;
  bottom:clamp(20px,3vh,40px);
  left:50%;
  transform:translateX(-50%);
  z-index:99999;
  display:flex;
  align-items:center;
  gap:clamp(6px,0.6vw,10px);
  padding:clamp(8px,0.8vh,14px) clamp(18px,2vw,32px);
  background:rgba(255,255,255,0.60);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(184,148,46,0.35);
  border-radius:100px;
  box-shadow:0 2px 16px rgba(0,0,0,0.08);
  white-space:nowrap;
  pointer-events:none;
  transition:opacity 0.4s ease;
  opacity:0;
}
.page-hint-bar.is-visible{
  opacity:1;
}
.page-hint-bar.hint-action .page-hint-text{
  font-weight:700;
  animation:hint-shake 0.5s ease-in-out 0.5s 3;
}
@keyframes hint-shake{
  0%,100%{transform:translateX(0);}
  20%{transform:translateX(-3px);}
  40%{transform:translateX(3px);}
  60%{transform:translateX(-2px);}
  80%{transform:translateX(2px);}
}
.page-hint-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:clamp(14px,1.2vw,18px);
  color:#8a7a5a;
  animation:hint-bounce 2s ease-in-out infinite;
}
.page-hint-text{
  font-size:clamp(13px,1.1vw,16px);
  color:#5a4a3a;
  font-weight:400;
  letter-spacing:0.06em;
  font-family:'PingFang SC','Microsoft YaHei',sans-serif;
}
@keyframes hint-bounce{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(4px);}
}
@keyframes hint-bounce-up{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-4px);}
}

/* ============================================================
   右侧目录导航
   ============================================================ */
.page-toc{
  position:fixed;
  right:clamp(8px,1.2vw,20px);
  top:50%;
  transform:translateY(-50%);
  z-index:99998;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(10px,1.6vh,22px);
  pointer-events:none;
}
.toc-dot{
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(16px,1.6vw,24px);
  height:clamp(16px,1.6vw,24px);
  padding:0;
  border:none;
  background:none;
  cursor:pointer;
  pointer-events:auto;
  transition:transform 0.3s ease;
}
.toc-dot:hover{
  transform:scale(1.3);
}
.toc-line{
  display:block;
  width:clamp(10px,1vw,16px);
  height:2px;
  border-radius:1px;
  background:#8a7a5a;
  box-shadow:0 1px 4px rgba(0,0,0,0.5);
  transition:background 0.3s ease, height 0.3s ease, width 0.3s ease;
}
.toc-dot.active .toc-line{
  width:clamp(16px,1.6vw,24px);
  height:3px;
  background:#d4af37;
  box-shadow:0 1px 6px rgba(212,175,55,0.4), 0 1px 4px rgba(0,0,0,0.5);
}
#screen-p7{
  visibility:hidden;
}

/* ═══════════════════════════════════════════════════════
   P8 终幕背景（固定图层，P7 80%~100% 渐显）
   ═══════════════════════════════════════════════════════ */
.p8-final-overlay{
  position:fixed;inset:0;z-index:-1;
  pointer-events:none;
  opacity:1;
}
.p8-final-img{
  width:100%;height:100%;object-fit:cover;display:block;
}

/* ── P8 数据来源 / 致谢文字（居中高端排版）── */
.p8-credit{
  position:absolute;inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(32px,5vh,80px);
  pointer-events:auto;
}
.p8-credit-inner, .glass-card--p8{
  max-width:800px;
  width:100%;
  text-align:center;
}
.p8-credit-title{
  font-family:'STSong','SimSun',serif;
  font-size:clamp(14px,1.3vw,20px);
  color:#d4af37;
  letter-spacing:0.35em;
  margin-bottom:clamp(20px,2.5vh,36px);
  font-weight:600;
  position:relative;
  display:inline-block;
}
.p8-credit-title::before,
.p8-credit-title::after{
  content:"";
  position:absolute;
  top:50%;
  width:clamp(30px,3vw,50px);
  height:1px;
  background:rgba(212,175,55,0.3);
}
.p8-credit-title::before{right:calc(100% + 16px);}
.p8-credit-title::after{left:calc(100% + 16px);}
.p8-credit-list{
  list-style:none;
  padding:0;
  margin:0 auto clamp(20px,2.5vh,36px) auto;
  max-width:580px;
  columns:2;
  column-gap:clamp(16px,2vw,32px);
  column-rule:1px solid rgba(212,175,55,0.12);
}
.p8-credit-list li{
  font-size:clamp(13px,1.1vw,16px);
  color:rgba(240,236,228,0.85);
  line-height:1.8;
  letter-spacing:0.03em;
  padding:clamp(4px,0.4vh,7px) 0;
  break-inside:avoid;
  text-align:left;
}
.p8-credit-list li::before{
  content:"·";
  color:#d4af37;
  margin-right:6px;
}
.p8-credit-divider{
  width:60px;
  height:1px;
  background:rgba(212,175,55,0.3);
  margin:0 auto clamp(16px,2vh,28px) auto;
}
.p8-credit-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:clamp(8px,0.8vh,14px) clamp(24px,3vw,48px);
}
.p8-credit-meta p{
  font-size:clamp(13px,1.2vw,16px);
  color:rgba(240,236,228,0.65);
  letter-spacing:1.5px;
  white-space:nowrap;
  font-weight:300;
}
