/* ================================================
   穿越天山 - Scroll Storytelling Styles
   Inspired by "听见天山" reference
   ================================================ */
:root{
  --bg:#0a1628;
  --bg-card:rgba(15,32,53,.82);
  --ink:#eae8e4;
  --ink-soft:rgba(234,232,228,.72);
  --ink-faint:rgba(234,232,228,.42);
  --ink-dim:rgba(234,232,228,.22);
  --border:rgba(255,255,255,.09);
  --mono:'JetBrains Mono',monospace;
  --sans:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --serif:'Noto Serif SC','STSong',serif;
  /* 五色暗到明隧道穿越配色 */
  --act1-color:#C0392B;   /* 深赤岩 · 暗 —— 危途 */
  --act2-color:#D4742A;   /* 炉火橙 · 暗中有光 —— 凿穿 */
  --act3-color:#C9A43B;   /* 曙光金 · 半明半暗 —— 坦途 */
  --act4-color:#5EA87A;   /* 绿洲青 · 明亮温暖 —— 繁荣 */
  --act5-color:#4A90D9;   /* 天际蓝 · 最亮最远 —— 未来 */
  /* 前后对比双色 */
  --data-before:#8B6F5E;  /* 暗褐（旧路、过去） */
  --data-after:#5CB882;   /* 亮绿（新路、改善） */
  --data-alert:#C0392B;   /* 深赤岩 · 警示 */
  --data-quote:#2C3E50;   /* 引语色 */
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{font-size:16px;scroll-behavior:auto;}
body{
  font-family:var(--sans);background:var(--bg);color:var(--ink);
  line-height:1.85;overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
::selection{background:rgba(234,232,228,.2);color:#fff;}
img{max-width:100%;display:block;}

/* ===== START OVERLAY ===== */
#start-overlay{
  position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  background:#0a1628;
  background-image:url('assets/images/bg_hero.jpg');
  background-size:cover;background-position:center;
  transition:opacity .8s ease,visibility .8s ease;
}
#start-overlay::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:radial-gradient(ellipse at center,rgba(10,22,40,.45) 0%,rgba(10,22,40,.65) 70%,rgba(10,22,40,.88) 100%);
}
#start-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none;}
.start-card{max-width:480px;text-align:center;position:relative;z-index:1;padding:0 24px;}
.start-card .kicker{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-faint);margin:0 0 18px;
}
.start-card h2{font-family:var(--serif);font-weight:700;font-size:44px;margin:0 0 18px;letter-spacing:-.01em;}
.start-card p{font-size:14.5px;line-height:1.75;color:var(--ink-soft);margin:0 0 14px;}
.start-card p.hint{font-size:12.5px;color:var(--ink-faint);}
#start-btn{
  margin-top:14px;font-family:var(--mono);font-size:13px;letter-spacing:.04em;
  background:var(--ink);color:#0a1628;border:none;padding:14px 30px;border-radius:30px;
  cursor:pointer;transition:transform .15s ease,opacity .15s ease;
}
#start-btn:hover{transform:translateY(-1px);opacity:.88;}

/* ===== CONTROL BAR ===== */
.control-bar{
  position:fixed;top:18px;left:18px;z-index:50;display:flex;align-items:center;gap:12px;
  background:rgba(15,32,53,.55);backdrop-filter:blur(8px);border:1px solid var(--border);
  border-radius:30px;padding:8px 8px 8px 16px;
  transition:opacity .4s ease;
}
#current-act-label{
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;min-width:64px;
  transition:color .4s ease;
}
#meter{display:block;}
#mute-btn{
  font-family:var(--mono);font-size:11px;background:rgba(255,255,255,.08);color:var(--ink);
  border:none;padding:7px 12px;border-radius:20px;cursor:pointer;white-space:nowrap;
  transition:background .2s;
}
#mute-btn:hover{background:rgba(255,255,255,.16);}

/* ===== DOT NAV ===== */
.dot-nav{
  position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:50;
  display:flex;flex-direction:column;gap:16px;align-items:center;
}
.dot-nav-track{
  position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;
  background:rgba(255,255,255,.14);border-radius:2px;z-index:0;
}
.dot-nav-progress{
  position:absolute;left:50%;top:0;width:2px;margin-left:-1px;
  background:linear-gradient(to bottom,#C0392B,#D4742A,#C9A43B,#5EA87A,#4A90D9);
  border-radius:2px;z-index:1;height:0;transition:height .15s ease-out;
}
.dot-nav a{
  width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.22);
  border:1px solid rgba(255,255,255,.3);transition:all .3s ease;position:relative;z-index:2;
  text-decoration:none;
}
.dot-nav a.active{
  width:15px;height:15px;background:var(--dot-color,#fff);border-color:transparent;
  box-shadow:0 0 12px var(--dot-color,#fff);
}
.dot-nav a.passed{background:var(--dot-color,rgba(255,255,255,.5));border-color:transparent;opacity:.6;}
.dot-nav a .tip{
  position:absolute;right:24px;top:50%;transform:translateY(-50%);white-space:nowrap;
  font-family:var(--mono);font-size:11px;opacity:0;transition:opacity .2s;pointer-events:none;
  color:var(--ink-soft);background:rgba(10,22,40,.8);padding:4px 10px;border-radius:4px;
  border:1px solid var(--border);
}
.dot-nav a:hover .tip{opacity:1;}

/* ===== CHAPTER SUMMARY SIDEBAR ===== */
#chapter-summary{
  position:fixed;right:60px;top:50%;transform:translateY(-50%);z-index:48;
  pointer-events:none;opacity:0;transition:opacity .8s ease;
}
#chapter-summary.visible{opacity:1;}
#chapter-summary .summary-card{
  background:rgba(10,22,40,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--border);border-left:3px solid var(--act-color,var(--ink-faint));
  padding:18px 22px;max-width:260px;border-radius:4px;position:relative;
}
#chapter-summary .summary-card::before{
  content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);
  width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;
  border-right:8px solid var(--act-color,var(--ink-faint));
}
#chapter-summary .summary-label{
  font-family:var(--mono);font-size:10px;color:var(--act-color,var(--ink-faint));
  letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;
}
#chapter-summary .summary-text{
  font-size:13px;color:var(--ink-soft);line-height:1.7;font-weight:300;
}

/* ===== PROGRESS BAR ===== */
#progress-bar{
  position:fixed;top:0;left:0;height:3px;z-index:9999;width:0%;transition:width .1s linear;
  background:linear-gradient(90deg,#C0392B,#D4742A,#C9A43B,#5EA87A,#4A90D9);
}

/* ===== SECTIONS - 从暗到亮渐变 ===== */
.act-section{
  min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  padding:120px 9vw 100px;position:relative;overflow:hidden;
  transition:background .8s ease;
}
.act-section .bg-grad{position:absolute;inset:0;z-index:1;transition:opacity .8s ease;}
.act-section>*{position:relative;z-index:2;}

/* 背景从深蓝逐幕变亮 - 隧道穿越感 */
#act1{background:#0a1628;}
#act2{background:#0e1c30;}
#act3{background:#142438;}
#act4{background:#1a2f3a;}
#act5{background:#1f3a4a;}

/* Act section background images - 新背景图 + 从暗到明 opacity */
#act1::before,#act2::before,#act3::before,#act4::before,#act5::before{
  content:'';position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
  pointer-events:none;
  mix-blend-mode:overlay;
}
#act1::before{background-image:url('assets/images/bg_act1.jpg');opacity:.15;}
#act2::before{background-image:url('assets/images/bg_act2.jpg');opacity:.16;}
#act3::before{background-image:url('assets/images/bg_act3.jpg');opacity:.18;}
#act4::before{background-image:url('assets/images/bg_act4.jpg');opacity:.20;}
#act5::before{background-image:url('assets/images/bg_act5.jpg');opacity:.22;}
/* 每幕径向渐变 - 匹配新配色 */
#act1 .bg-grad{background:radial-gradient(ellipse at 20% 40%,rgba(192,57,43,.12) 0%,transparent 60%);}
#act2 .bg-grad{background:radial-gradient(ellipse at 80% 40%,rgba(212,116,42,.14) 0%,transparent 60%);}
#act3 .bg-grad{background:radial-gradient(ellipse at 20% 50%,rgba(201,164,59,.16) 0%,transparent 60%);}
#act4 .bg-grad{background:radial-gradient(ellipse at 80% 40%,rgba(94,168,122,.18) 0%,transparent 60%);}
#act5 .bg-grad{background:radial-gradient(ellipse at 50% 50%,rgba(74,144,217,.20) 0%,transparent 60%);}
.mag-left{max-width:680px;margin:0 auto;}
.mag-right{max-width:680px;margin:0 auto 0 auto;}
.mag-center{max-width:740px;margin:0 auto;text-align:center;}
.mag-center .prose-block,.mag-center blockquote{text-align:left;}

/* ===== ACT HEADER ===== */
.act-header{margin-bottom:48px;}
.act-index{
  font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-faint);display:block;margin-bottom:12px;
}
.act-title{
  font-family:var(--serif);font-weight:700;font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.2;margin:0 0 12px;letter-spacing:-.01em;
}
.act-subtitle{font-size:15px;color:var(--ink-soft);font-weight:300;}

/* ===== PULL QUOTES ===== */
.pull-quote{
  border-left:4px solid var(--data-quote);padding:20px 0 20px 28px;margin:40px 0;
  font-size:18px;line-height:1.8;color:var(--ink);font-style:italic;
  position:relative;
}
.pull-quote cite{
  display:block;margin-top:14px;font-size:13px;font-style:normal;color:var(--ink-faint);
  letter-spacing:.02em;
}
.pull-quote cite strong{color:var(--ink-soft);font-weight:500;}

/* ===== PROSE BLOCKS ===== */
.prose-block{margin:24px 0;}
.prose-block p{font-size:16px;line-height:1.85;color:var(--ink-soft);margin-bottom:24px;text-indent:2em;}
.prose-block p:last-child{margin-bottom:0;}
.prose-block p em{font-style:normal;font-weight:600;color:var(--ink);}
.prose-block .cite{
  display:block;margin-top:8px;font-size:12.5px;color:var(--ink-faint);
  letter-spacing:.02em;
}
.prose-block .cite strong{color:var(--ink-soft);font-weight:500;}

/* ===== BIG STAT ===== */
.big-stat{margin:36px 0;text-align:center;}
.big-stat .big-num{
  font-family:var(--mono);font-size:clamp(3rem,8vw,5.5rem);font-weight:600;
  display:block;line-height:1.1;letter-spacing:-.02em;
}
.big-stat .big-label{
  font-size:13.5px;color:var(--ink-faint);margin-top:8px;display:block;letter-spacing:.02em;
}
.mag-left .big-stat,.mag-right .big-stat{text-align:left;}
.mag-left .big-stat .big-num,.mag-right .big-stat .big-num{font-size:clamp(2.5rem,6vw,4rem);}

/* ===== TRIPLE STAT ===== */
.triple-stat{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0;
}
.ts-item{
  padding:24px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;
  text-align:center;
}
.ts-item .ts-num{
  font-family:var(--mono);font-size:1.5rem;font-weight:600;
  background:linear-gradient(135deg,var(--ink),var(--ink-soft));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.ts-item .ts-label{font-size:12.5px;color:var(--ink-faint);margin-top:6px;}

/* ===== SUB HEADING ===== */
.sub-heading{
  font-family:var(--serif);font-size:1.2rem;font-weight:600;margin:40px 0 16px;
  color:var(--ink);letter-spacing:.01em;
}

/* ===== INJECTED IMAGE ===== */
.injected-image{margin:32px 0;border-radius:8px;overflow:hidden;}
.injected-image img{width:100%;height:auto;display:block;border-radius:6px;transition:transform .4s ease,box-shadow .4s ease;cursor:zoom-in;}
.injected-image:hover img{transform:scale(1.02);box-shadow:0 8px 32px rgba(0,0,0,.3);}
.img-caption{
  font-size:12px;color:var(--ink-faint);line-height:1.7;padding:16px 4px 0;
  letter-spacing:.01em;
}

/* ===== DATA TABLE ===== */
.data-table-wrap{margin:20px 0 32px;}
.data-table{
  width:100%;border-collapse:collapse;font-size:14px;
  font-family:var(--mono);
}
.data-table thead th{
  text-align:left;padding:10px 14px;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-faint);
  border-bottom:1px solid var(--border);
}
.data-table tbody td{
  padding:10px 14px;color:var(--ink-soft);
  border-bottom:1px solid rgba(255,255,255,.04);
}
.data-source{
  font-size:11.5px;color:var(--ink-faint);margin-top:8px;letter-spacing:.01em;
}

/* ===== AUDIO TRIGGER ===== */
.audio-trigger-wrap{margin:32px 0;}
.audio-trigger-btn{
  font-family:var(--mono);font-size:12px;letter-spacing:.04em;
  background:rgba(255,255,255,.06);color:var(--ink-soft);border:1px solid var(--border);
  padding:10px 20px;border-radius:24px;cursor:pointer;
  transition:all .2s ease;
}
.audio-trigger-btn:hover{background:rgba(255,255,255,.12);color:var(--ink);}
.audio-trigger-btn.playing{
  background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);
  color:var(--ink);
}

/* ===== ENDING ===== */
.ending-cta{margin:60px 0 20px;padding:40px 0;}
.ending-line{
  font-family:var(--serif);font-size:clamp(1.4rem,3vw,2rem);
  color:var(--ink-soft);font-weight:600;letter-spacing:.02em;
}

/* ===== DATA SOURCES SECTION ===== */
.data-sources-section{
  max-width:680px;margin:0 auto;padding:80px 9vw 120px;
  border-top:1px solid var(--border);
}
.data-sources-section h2{
  font-family:var(--serif);font-size:1.4rem;margin:0 0 16px;
}
.data-sources-section h3{
  font-size:1rem;margin:32px 0 10px;color:var(--ink-soft);
}
.ds-intro{font-size:14px;color:var(--ink-soft);line-height:1.8;margin-bottom:20px;}
.ds-list{list-style:none;padding:0;}
.ds-list li{
  font-size:13px;color:var(--ink-faint);line-height:1.8;
  padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04);
}
.ds-list li strong{color:var(--ink-soft);font-weight:500;}
.data-sources-section p{font-size:13px;color:var(--ink-faint);line-height:1.8;}
.ds-note{
  font-size:11.5px !important;color:var(--ink-dim) !important;
  margin-top:32px;font-style:italic;
}

/* ===== REVEAL ANIMATIONS ===== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* Text entrance animations */
.anim-slide-up{
  opacity:0;transform:translateY(32px);
  transition:opacity .7s cubic-bezier(.25,.46,.45,.94),transform .7s cubic-bezier(.25,.46,.45,.94);
}
.anim-slide-up.visible{opacity:1;transform:translateY(0);}

.anim-slide-left{
  opacity:0;transform:translateX(-40px);
  transition:opacity .7s cubic-bezier(.25,.46,.45,.94),transform .7s cubic-bezier(.25,.46,.45,.94);
}
.anim-slide-left.visible{opacity:1;transform:translateX(0);}

.anim-slide-right{
  opacity:0;transform:translateX(40px);
  transition:opacity .7s cubic-bezier(.25,.46,.45,.94),transform .7s cubic-bezier(.25,.46,.45,.94);
}
.anim-slide-right.visible{opacity:1;transform:translateX(0);}

.anim-fade-in{
  opacity:0;
  transition:opacity .9s ease;
}
.anim-fade-in.visible{opacity:1;}

.anim-scale-in{
  opacity:0;transform:scale(.92);
  transition:opacity .6s cubic-bezier(.25,.46,.45,.94),transform .6s cubic-bezier(.25,.46,.45,.94);
}
.anim-scale-in.visible{opacity:1;transform:scale(1);}

/* Stagger delay children within a group */
.anim-stagger .anim-slide-up:nth-child(1){transition-delay:0s;}
.anim-stagger .anim-slide-up:nth-child(2){transition-delay:.1s;}
.anim-stagger .anim-slide-up:nth-child(3){transition-delay:.2s;}
.anim-stagger .anim-slide-up:nth-child(4){transition-delay:.3s;}
.anim-stagger .anim-slide-up:nth-child(5){transition-delay:.4s;}
.anim-stagger .anim-fade-in:nth-child(1){transition-delay:0s;}
.anim-stagger .anim-fade-in:nth-child(2){transition-delay:.12s;}
.anim-stagger .anim-fade-in:nth-child(3){transition-delay:.24s;}

/* ===== ROUTE STATIONS (Act 3) ===== */
.route-stations{
  display:flex;flex-direction:column;gap:0;
  margin:20px 0 28px;padding-left:16px;
  border-left:2px solid var(--ink-dim);
}
.station-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 0 10px 20px;position:relative;
  opacity:0;transform:translateX(-16px);
  transition:opacity .5s ease,transform .5s ease;
}
.station-item.visible{opacity:1;transform:translateX(0);}
.station-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--ink-dim);flex-shrink:0;
  position:relative;z-index:1;
  transition:background .3s,box-shadow .3s;
}
.station-item.visible .station-dot{background:var(--act3-color);box-shadow:0 0 8px var(--act3-color);}
.station-item.station-highlight .station-dot{
  width:12px;height:12px;border:2px solid var(--act3-color);background:transparent;
}
.station-item.station-highlight.visible .station-dot{
  background:var(--act3-color);
}
.station-name{
  font-size:14px;color:var(--ink-soft);letter-spacing:.02em;
}

/* ===== TOURISM COMPARE SLIDER (Act 5) ===== */
.tourism-compare{
  margin:32px 0;padding:28px;
  background:var(--bg-card);border:1px solid var(--border);border-radius:8px;
}
.compare-label{
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  color:var(--ink-faint);text-transform:uppercase;
}
.compare-left{float:left;}.compare-right{float:right;}
.compare-visual{margin:24px 0 20px;clear:both;}
.compare-bar-wrap{
  margin:8px 0;position:relative;height:36px;
  background:rgba(255,255,255,.04);border-radius:4px;overflow:hidden;
}
.compare-bar{
  height:100%;display:flex;align-items:center;padding:0 14px;
  border-radius:4px;transition:width .3s ease;
  font-family:var(--mono);font-size:13px;font-weight:500;
  white-space:nowrap;overflow:hidden;
}
.compare-2015{background:rgba(154,165,177,.25);color:var(--ink-soft);}
.compare-2025{background:rgba(79,195,192,.3);color:var(--ink);}
.compare-slider-wrap{position:relative;padding:8px 0;}
.compare-slider{
  -webkit-appearance:none;appearance:none;width:100%;height:4px;
  background:var(--ink-dim);border-radius:2px;outline:none;cursor:pointer;
}
.compare-slider::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:20px;height:20px;
  border-radius:50%;background:var(--act3-color);cursor:grab;
  box-shadow:0 0 10px rgba(79,195,192,.4);
  transition:box-shadow .2s;
}
.compare-slider::-webkit-slider-thumb:active{cursor:grabbing;box-shadow:0 0 18px rgba(79,195,192,.6);}
.compare-slider::-moz-range-thumb{
  width:20px;height:20px;border:none;
  border-radius:50%;background:var(--act3-color);cursor:grab;
}
.compare-growth{
  text-align:center;margin-top:16px;font-size:13px;color:var(--ink-soft);
}
.compare-growth strong{color:var(--act3-color);font-size:1.1em;}
.compare-detail{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  margin-top:20px;padding-top:16px;border-top:1px solid var(--border);
}
.compare-stat{display:flex;flex-direction:column;gap:4px;}
.cs-label{font-size:11px;color:var(--ink-faint);letter-spacing:.04em;}
.cs-val{font-family:var(--mono);font-size:14px;color:var(--ink);font-weight:500;}

/* ===== MOBILE ===== */
@media(max-width:768px){
  .act-section{padding:80px 6vw 60px;}
  .dot-nav{display:none;}
  #chapter-summary{right:12px;}
  #chapter-summary .summary-card{max-width:180px;padding:12px 14px;}
  .triple-stat{grid-template-columns:1fr;gap:12px;}
  .control-bar{top:10px;left:10px;padding:6px 6px 6px 12px;gap:8px;}
  #current-act-label{font-size:10px;min-width:48px;}
  .start-card h2{font-size:32px;}
  .pull-quote{font-size:16px;padding-left:20px;margin:32px 0;}
  /* Mobile: chart/image caption +2px */
  .img-caption{font-size:14px !important;}
  .data-callout{font-size:14px !important;}
  /* Mobile: section-tag */
  .section-tag{font-size:11px;padding:4px 10px;margin:24px 0 12px;}
  /* Mobile: compare table */
  .compare-table{font-size:12px;}
  .compare-table thead th,.compare-table tbody td{padding:8px 10px;}
  .compare-table .ct-change{display:none;}
  .compare-table .ct-change-val{display:none;}
  /* Mobile: soul quote */
  .soul-quote{min-height:60vh;padding:60px 6vw;}
  .soul-quote .soul-text{font-size:clamp(1.3rem,5vw,2rem);}
  .injected-image img{cursor:default;}
  .injected-image:hover img{transform:none;box-shadow:none;}
  /* Mobile: stations simpler */
  .route-stations{padding-left:12px;}
  .station-item{padding:8px 0 8px 16px;}
  .station-name{font-size:13px;}
  /* Mobile: compare slider */
  .tourism-compare{padding:20px 16px;}
  .compare-detail{grid-template-columns:1fr;}
  /* Mobile: transitions smaller */
  .act-transition .transition-text{font-size:clamp(1.3rem,5vw,1.8rem);}
  .act-transition .transition-sub{font-size:12px;}
}
@media(max-width:480px){
  .act-section{padding:60px 16px 40px;}
  .big-stat .big-num{font-size:2.2rem !important;}
  .start-card h2{font-size:26px;}
  .start-card p{font-size:13px;}
  #chapter-summary{display:none;}
}

/* ===== 优化1: 章节过渡 - 数据锚点副标题增强 ===== */
.act-subtitle{
  font-size:13px;
  letter-spacing:.04em;
  margin-top:-4px;
  color:var(--ink-faint);
  position:relative;
  padding-bottom:16px;
}
.act-subtitle::after{
  content:'';position:absolute;bottom:0;left:0;
  width:40px;height:2px;
  background:var(--ink-dim);
}

/* ===== 优化2: 引言留白 - 已合并到基础 pull-quote ===== */

/* ===== 优化3: 数据面板与正文间距 ===== */
.big-stat{
  margin:48px 0 !important;
}
.triple-stat{
  margin-top:48px !important;
}
.sub-heading{
  margin-top:48px !important;
}

/* ===== 优化4: 数据点睛样式 (.data-callout) ===== */
.data-callout{
  background:rgba(200,164,94,0.06);
  border-left:3px solid rgba(200,164,94,0.4);
  padding:16px 20px;
  margin:20px 0 24px;
  border-radius:0 4px 4px 0;
  font-size:13px;
  line-height:1.8;
  color:var(--ink-soft);
  letter-spacing:.01em;
}
/* 数据高亮：数字放大+配色 */
.data-callout .d-red{color:var(--data-alert);font-size:1.35em;font-weight:600;}
.data-callout .d-green{color:var(--data-after);font-size:1.35em;font-weight:600;}
.data-callout .d-orange{color:var(--data-before);font-size:1.35em;font-weight:600;}
.data-callout .d-bold{font-size:1.2em;font-weight:600;color:var(--ink);}
/* 正文中的数据高亮 */
.d-red{color:var(--data-alert);font-weight:600;}
.d-green{color:var(--data-after);font-weight:600;}
.d-orange{color:var(--data-before);font-weight:600;}

/* ===== 优化5: 结尾强化 ===== */
.ending-cta{
  margin:80px 0 40px;
  padding:80px 0 60px;
  position:relative;
  text-align:center;
}
.ending-cta::before{
  content:'';position:absolute;
  top:0;left:50%;transform:translateX(-50%);
  width:1px;height:60px;
  background:linear-gradient(to bottom,var(--ink-dim),transparent);
}
.ending-cta::after{
  content:'';position:absolute;inset:0;z-index:0;
  background-image:url('assets/images/bg_act3.jpg');
  background-size:cover;background-position:center;
  opacity:.1;pointer-events:none;border-radius:8px;
  mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,.5) 30%,rgba(0,0,0,.5) 70%,transparent);
  -webkit-mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,.5) 30%,rgba(0,0,0,.5) 70%,transparent);
}
.ending-line{
  font-family:var(--serif);
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  color:var(--ink);
  font-weight:600;
  letter-spacing:.04em;
  line-height:1.6;
  position:relative;z-index:1;
}

/* ===== ACT TRANSITIONS ===== */
.act-transition{
  min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;position:relative;overflow:hidden;
  background:var(--bg);
}
.act-transition .transition-visual{
  position:absolute;inset:0;z-index:0;
  opacity:.08;pointer-events:none;
  background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.06) 0%,transparent 70%);
}
.act-transition[data-transition="1"] .transition-visual{
  background:radial-gradient(ellipse at 50% 50%,rgba(224,162,61,.08) 0%,transparent 60%);
}
.act-transition[data-transition="2"] .transition-visual{
  background:radial-gradient(ellipse at 50% 50%,rgba(79,195,192,.08) 0%,transparent 60%);
}
.act-transition[data-transition="3"] .transition-visual{
  background:radial-gradient(ellipse at 50% 50%,rgba(224,98,138,.08) 0%,transparent 60%);
}
.act-transition[data-transition="4"] .transition-visual{
  background:radial-gradient(ellipse at 50% 50%,rgba(154,165,177,.08) 0%,transparent 60%);
}
.act-transition .transition-text{
  font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.8rem);
  color:var(--ink);font-weight:600;letter-spacing:.04em;
  position:relative;z-index:1;text-align:center;
  opacity:0;transform:translateY(30px);
  transition:opacity .8s ease,transform .8s ease;
}
.act-transition.in-view .transition-text{
  opacity:1;transform:translateY(0);
}
.act-transition .transition-sub{
  font-size:14px;color:var(--ink-faint);margin-top:16px;
  position:relative;z-index:1;text-align:center;
  opacity:0;transform:translateY(20px);
  transition:opacity .8s ease .2s,transform .8s ease .2s;
}
.act-transition.in-view .transition-sub{
  opacity:1;transform:translateY(0);
}
/* Transition divider line - removed for cleaner look */
.act-transition::after{
  display:none;
}

/* ===== SECTION TAG (█ 黑底白字标签) ===== */
.section-tag{
  display:inline-block;
  background:#1a1a2e;color:#fff;
  font-family:var(--mono);font-size:12px;font-weight:500;
  letter-spacing:.08em;padding:5px 14px;border-radius:3px;
  margin:36px 0 16px;white-space:nowrap;
}

/* ===== COMPARE TABLE (左右对比表) ===== */
.compare-table{
  width:100%;border-collapse:collapse;margin:28px 0;
  font-size:14px;
}
.compare-table thead th{
  padding:12px 16px;font-size:13px;font-weight:600;
  text-align:center;letter-spacing:.04em;
}
.compare-table thead th:first-child{text-align:left;color:var(--ink-faint);}
.compare-table thead .ct-before{color:var(--data-before);background:rgba(139,111,94,.06);}
.compare-table thead .ct-after{color:var(--data-after);background:rgba(92,184,130,.06);}
.compare-table tbody td{
  padding:12px 16px;text-align:center;
  border-bottom:1px solid var(--border);
  font-family:var(--mono);font-size:14px;
}
.compare-table tbody td:first-child{
  text-align:left;font-family:var(--sans);font-size:13px;color:var(--ink-faint);
}
.compare-table tbody .ct-before-val{color:var(--ink-soft);}
.compare-table tbody .ct-after-val{color:var(--data-after);font-weight:600;}
.compare-table tbody .ct-change-val{color:var(--data-after);font-weight:500;}
.compare-table thead .ct-change{color:var(--data-after);background:rgba(92,184,130,.06);}
.compare-table tbody tr{cursor:pointer;transition:background .2s;}
.compare-table tbody tr:hover{background:rgba(255,255,255,.03);}
.compare-table tbody tr.active-row{background:rgba(92,184,130,.05);}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* ===== SOUL QUOTE (全屏灵魂句收束) ===== */
.soul-quote{
  min-height:80vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;padding:80px 9vw;
  position:relative;
  background:#0a0e18;
}
.soul-quote::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 50%,rgba(234,232,228,.04) 0%,transparent 70%);
  pointer-events:none;
}
.soul-quote .soul-text{
  font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.8rem);
  font-weight:700;color:var(--ink);line-height:1.6;
  letter-spacing:.04em;max-width:680px;
  position:relative;z-index:1;
}
.soul-quote .soul-text::before{content:'\201C';display:block;font-size:2em;color:var(--ink-dim);margin-bottom:8px;}
.soul-quote .soul-text::after{content:'\201D';display:block;font-size:2em;color:var(--ink-dim);margin-top:8px;text-align:right;}
.soul-quote .soul-author{
  margin-top:32px;font-size:14px;color:var(--ink-faint);
  letter-spacing:.06em;position:relative;z-index:1;
}

/* ===== 封面导语文字 ===== */
.start-card .lead{
  font-size:1.1rem;
  color:var(--ink);
  font-weight:400;
  margin-bottom:20px;
}
.start-card .intro-text{
  font-size:.9rem;
  line-height:1.9;
  color:var(--ink-soft);
  margin:0 0 16px;
  text-align:left;
}
.start-card .audio-hint{
  font-size:.8rem;
  color:var(--ink-faint);
  margin-top:8px;
}