/* ===== 设计变量（沿用 ivory / slate 纸感色板） ===== */
:root{
  --bg:#faf9f5; --bg-2:#f0eee6; --bg-3:#e8e6dc;
  --fg:#141413; --fg-2:#3d3d3a; --fg-3:#73726c; --fg-4:#87867f;
  --slate-100:#f5f4ed; --slate-150:#f0eee6; --slate-200:#e8e6dc; --slate-250:#dedcd1; --slate-300:#d1cfc5; --slate-350:#c2c0b6; --slate-400:#b0aea5; --slate-500:#87867f; --slate-700:#3d3d3a;
  --clay:#d97757; --oat:#e3dacc; --olive:#788c5d; --cactus:#bcd1ca; --sky:#6a9bcc; --heather:#cbcadb; --fig:#c46686; --coral:#ebcece;
  --c-unchanged:#bdbaae; --c-aug:#a094ee; --c-auto:#78b0ea; --c-new:#f2b547; --c-green:#5dae8e; --c-prod:#b5b2a8; --c-cap:#e8876c;
  --c-know:#f2c45a; --c-other:#a9cbee; --c-disp:#d9605a; --c-labor:#63a98a; --c-capital:#bdbaae; --c-moved:#4d4c48;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",Georgia,serif;
  --sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;
  --header-h:68px; --col:640px; --br-6:6px; --br-8:8px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--serif);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
button{font:inherit;color:inherit}
svg{display:block}
.sr{position:absolute;left:-9999px}

/* ===== 顶栏 ===== */
.hdr{position:fixed;inset:0 0 auto 0;height:var(--header-h);z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 84px;transition:transform .35s cubic-bezier(.32,.72,0,1),background .3s}
.hdr.hide{transform:translateY(-100%)}
.hdr.solid{background:var(--bg)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--sans);font-weight:700;letter-spacing:.22em;font-size:17px}
.logo .mark{width:26px;height:26px;overflow:visible}
.logo .word{transition:opacity .3s,max-width .3s;white-space:nowrap;max-width:200px;overflow:hidden}
.hdr.compact .logo .word{opacity:0;max-width:0}
.nav{display:flex;align-items:center;gap:26px;font-family:var(--sans);font-size:16px}
.nav a{text-decoration:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.nav a svg{width:10px;height:10px}
.cta{display:inline-flex;margin-left:6px;border-radius:8px;overflow:hidden;background:var(--fg);color:var(--bg);cursor:pointer;border:0;padding:0}
.cta span{padding:9px 16px;font-size:15px;font-weight:500;font-family:var(--sans)}
.cta i{display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border-left:1px solid #3d3d3a}
.cta i svg{width:11px;height:11px}
@media(max-width:1024px){.hdr{padding:0 24px}.nav{display:none}}

/* ===== 顶部进度条 ===== */
.pbar{position:fixed;top:0;left:0;height:6px;width:0;background:var(--slate-350);z-index:60;opacity:0;transition:opacity .3s}
.pbar.on{opacity:1}

/* ===== 通用 ===== */
.paper-wrap{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.paper-wrap svg{width:100%;height:100%;-webkit-mask-image:radial-gradient(ellipse 75% 80% at 50% 50%,#000 45%,transparent 100%);mask-image:radial-gradient(ellipse 75% 80% at 50% 50%,#000 45%,transparent 100%)}
.z1{position:relative;z-index:1}
.prose{max-width:var(--col);margin:0 auto;padding:0 24px;position:relative;z-index:1}
.prose p{margin:0 0 26px;font-size:17px;line-height:1.6;text-wrap:pretty}
.prose p:last-child{margin-bottom:0}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose em{font-style:italic}
.dropcap::first-letter{float:left;font-size:84px;line-height:.82;padding:6px 12px 0 0;color:var(--fg-3);font-weight:500}
.prose p.pull{font-size:28px;line-height:1.3;text-align:center;margin:48px 0 24px;font-weight:400}
.eyebrow{display:block;color:var(--slate-500);font-size:22px;line-height:1.45;font-weight:400}
.ftitle{font-size:22px;line-height:1.5;margin:0 0 24px;font-weight:400;text-wrap:pretty}
.chart-title{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.13px;text-align:center;margin:0 0 8px;position:relative;z-index:1}
.key{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;font-family:var(--sans);font-size:13px;color:var(--fg-3);margin-top:14px;position:relative;z-index:1}
.key .t{color:var(--fg);margin-right:2px}
.key i{display:inline-flex;align-items:center;gap:6px;font-style:normal}
.key i svg{width:16px;height:16px;overflow:visible}
.key i.dash svg{width:22px}
.note{font-family:var(--sans);font-size:12px;line-height:1.45;color:var(--fg-4);text-align:center;margin:8px auto 0;max-width:480px;position:relative;z-index:1}
.note.left{text-align:left}
.btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border:1px solid var(--slate-200);border-radius:var(--br-6);background:var(--slate-100);color:var(--slate-700);font-family:var(--sans);font-size:13px;letter-spacing:.13px;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{opacity:.85}
.btn svg{width:11px;height:11px}
.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn.on{background:var(--slate-200);border-color:var(--slate-250);color:var(--fg)}
.btn.pill{border-radius:96px;height:30px;padding:0 14px}
section{position:relative}
/* ===== 滚动浮现 ===== */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.33,1,.68,1),transform .9s cubic-bezier(.33,1,.68,1);transition-delay:calc(var(--ri,0) * 90ms)}
[data-reveal].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-reveal]{transition:none;opacity:1;transform:none}}
/* ===== 马克笔描画 ===== */
.ink-draw .sline{clip-path:inset(0 100% 0 0);transition:clip-path .3s cubic-bezier(.33,1,.68,1) calc(var(--td,0s) + var(--dd,0s))}
.ink-draw.inked .sline{clip-path:inset(0)}
.ink-draw.inked.reset .sline{transition:none}
/* 趋势线描线 */
path.drawline{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s cubic-bezier(.33,1,.68,1) var(--ld,0s)}
.in path.drawline{stroke-dashoffset:0}
/* 桑基流动箭头 */
@keyframes flowdot{from{offset-distance:0%}to{offset-distance:100%}}
.sankey .dot{offset-rotate:auto;opacity:.9;mix-blend-mode:multiply;animation:flowdot var(--fd,6s) linear infinite;animation-delay:var(--fs,0s)}
/* 蜂群点 */
.swarm .lc path.pt{opacity:0;transition:opacity .35s cubic-bezier(.33,1,.68,1) calc(var(--k,0) * 5ms + .2s)}
.swarm .lane.in .lc path.pt{opacity:.85}
/* 问答面板切换 */
@keyframes swapin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.quiz .left,.quiz .right{animation:swapin .4s cubic-bezier(.33,1,.68,1) both}
.ecard{animation:swapin .5s cubic-bezier(.33,1,.68,1) both;animation-delay:calc(var(--ri,0) * 90ms)}


/* ===== Hero ===== */
.hero{height:100vh;min-height:720px;position:relative;overflow:hidden}
.hero .graphic{position:absolute;left:0;top:0;bottom:0;width:74%;-webkit-mask-image:linear-gradient(90deg,#000 62%,transparent 100%);mask-image:linear-gradient(90deg,#000 62%,transparent 100%)}
.hero .graphic svg{width:100%;height:100%;overflow:visible}
.hero .copy{position:absolute;right:60px;top:50%;transform:translateY(-50%);width:334px;z-index:1}
.hero h1{font-size:28px;line-height:1.29;font-weight:400;margin:0 0 24px;text-wrap:balance}
.hero .stand{font-size:15px;line-height:24px;color:var(--fg-2);margin:0 0 24px;max-width:308px}
.hero .actions{display:flex;gap:8px;flex-wrap:wrap}
.hero .hint{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:1}
@keyframes dashflow{to{stroke-dashoffset:-56}}
.fanline{animation:dashflow 2.6s linear infinite}
@keyframes gridin{from{opacity:0}to{opacity:1}}
.gridin{animation:gridin .55s cubic-bezier(.33,1,.68,1) both;transform-origin:center}
@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.fadeup{animation:fadeup .8s cubic-bezier(.33,1,.68,1) both;animation-delay:.4s}
@keyframes hintpulse{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
.hero .hint svg{animation:hintpulse 1.6s ease-in-out 2s infinite}
@keyframes cuein{from{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%,0)}}
.hero .hint{animation:cuein .8s cubic-bezier(.33,1,.68,1) .9s both}

@media(max-width:1024px){.hero{height:auto;min-height:0;padding-top:var(--header-h)}.hero .graphic{position:relative;width:100%;height:56vw}.hero .copy{position:static;transform:none;width:auto;padding:24px 24px 64px}.hero .hint{display:none}}

/* ===== 导读 ===== */
.intro{padding:120px 0 40px}

/* ===== 任务束（滚动叙事） ===== */
.taskbundle{position:relative}
.taskbundle .sticky{position:sticky;top:0;height:100vh;overflow:clip}
.taskbundle .stage{position:absolute;inset:0}
.taskbundle svg.field{position:absolute;inset:0;width:100%;height:100%;transition:opacity .9s}
.taskbundle svg.field.off{opacity:0}
.taskbundle .nurse{position:absolute;left:50%;top:0;transform:translateX(-50%);width:600px;height:100%;opacity:0;transition:opacity .8s}
.taskbundle .nurse.on{opacity:1}
.taskbundle .nurse svg{width:100%;height:100%;overflow:visible}
.taskbundle .jobtag{position:absolute;top:calc(var(--header-h) - 18px);left:50%;transform:translateX(-50%);font-family:var(--sans);font-weight:700;font-size:13px;transition:opacity .5s;opacity:0}
.taskbundle .jobtag.on{opacity:1}
.taskbundle .legend{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);display:flex;gap:22px;font-family:var(--sans);font-size:13px;color:var(--fg-3);white-space:nowrap;transition:opacity .5s;opacity:0}
.taskbundle .legend.on{opacity:1}
.taskbundle .legend i{display:inline-flex;align-items:center;gap:6px;font-style:normal}
.taskbundle .legend svg{width:18px;height:18px;overflow:visible}
.taskbundle .steps{position:relative;z-index:2;margin-top:-100vh;pointer-events:none}
.taskbundle .step{min-height:100vh;display:flex;align-items:flex-end;padding:0 0 60px 64px}
.card{pointer-events:auto;width:min(416px,calc(100vw - 48px));background:var(--slate-100);border:1px solid var(--slate-350);border-radius:var(--br-8);padding:16px;box-shadow:0 4px 24px #0000000d;font-size:15px;line-height:24px}
.card .lead{font-family:var(--sans);font-weight:700;font-size:17px;line-height:1.55;margin:0}
.card p{margin:12px 0 0}
.card .fn{font-family:var(--sans);font-size:13px;line-height:20px;color:var(--fg-3)}
.nurse text{font-family:var(--sans);font-size:13px;fill:var(--fg-3);text-anchor:middle}
.nurse .task{transition:opacity .5s}
.nurse .task.gone{opacity:0}
.nurse .task.hidden{opacity:0}
.nurse .sqwrap{transition:transform .8s cubic-bezier(.33,1,.68,1)}
.nurse .lbl{transition:transform .8s cubic-bezier(.33,1,.68,1)}
.nurse .ink{transition:opacity .45s}
.nurse .fillclip rect{transition:y .8s cubic-bezier(.33,1,.68,1),height .8s cubic-bezier(.33,1,.68,1)}
.taskbundle .arrow{position:absolute;left:50%;top:0;transform:translateX(-50%);width:600px;height:100%;opacity:0;transition:opacity .7s;pointer-events:none}
.taskbundle .arrow svg{width:100%;height:100%;overflow:visible}
.taskbundle .arrow.on{opacity:1}
.after-tasks{padding:80px 0 40px}
@media(max-width:1024px){.taskbundle .step{padding:0 16px 24px}.taskbundle .nurse,.taskbundle .arrow{width:100%}.taskbundle .legend{flex-wrap:wrap;justify-content:center;width:calc(100% - 32px);white-space:normal;gap:8px 16px}}

/* ===== 情景扇形图（GDP） ===== */
.fanchart{position:relative}
.fanchart .sticky{position:sticky;top:0;height:100vh;overflow:clip}
.fanchart .sticky svg{width:100%;height:100%;overflow:visible}
.fanchart .steps{position:relative;z-index:2;margin-top:-100vh;pointer-events:none}
.fanchart .step{min-height:100vh;display:flex;align-items:flex-end;padding:0 0 60px 64px}
.fanchart text{font-family:var(--sans);font-size:13px;fill:var(--fg-3)}
.fanchart text.ttl{font-weight:700;fill:var(--fg);text-anchor:middle}
.fanchart .lbl{transition:opacity .6s}
.fanchart .line{transition:stroke-dashoffset 1.8s cubic-bezier(.33,1,.68,1),opacity .6s}
.fanchart .bloom{transition:opacity .9s cubic-bezier(.32,.72,0,1)}
.fanchart .bloom path{stroke-width:2.2;opacity:.75}
.sc{position:relative;white-space:nowrap}
.sc::after{content:"";position:absolute;left:-2px;right:-2px;bottom:1px;height:6px;border-radius:3px;opacity:.5;z-index:-1}
.sc.modest::after{background:var(--sky)}.sc.subst::after{background:var(--olive)}.sc.extreme::after{background:var(--fig)}
@media(max-width:1024px){.fanchart .step{padding-left:24px}}

/* ===== 问答 CTA ===== */
.quizcta{padding:0 0 60px;text-align:center;position:relative;overflow:hidden}
.quizcta .frame{position:relative;width:100%;height:220px;pointer-events:none}
.quizcta .frame svg{width:100%;height:100%}
.quizcta .sides{position:absolute;inset:220px 0 0 0;pointer-events:none}
.quizcta .sides svg{position:absolute;top:0;width:230px;height:100%}
.quizcta .sides svg.l{left:0}.quizcta .sides svg.r{right:0}
.quizcta h2{font-size:clamp(32px,6.4vw,61px);line-height:1.2;margin:0 auto 24px;max-width:21ch;font-weight:400;position:relative;z-index:1}
.quizcta .stand{font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--fg-2);max-width:600px;margin:0 auto 24px;position:relative;z-index:1}
.quizcta .actions{display:flex;gap:8px;justify-content:center;position:relative;z-index:1}

/* ===== 问答弹层 ===== */
.quiz{position:fixed;inset:0;z-index:40;background:var(--bg);display:none;padding-top:var(--header-h);overflow:auto}
.quiz.open{display:block}
.quiz .inner{display:grid;grid-template-columns:408px 1fr;min-height:calc(100vh - var(--header-h))}
.quiz .left{padding:0 40px 40px 40px;border-right:1px solid var(--slate-250);position:relative}
.quiz .right{padding:0 40px 40px 40px;position:relative}
.quiz .step-eyebrow{font-family:var(--sans);font-size:13px;color:var(--fg-3);display:flex;justify-content:space-between;margin:8px 0 20px}
.quiz h3{font-size:24px;line-height:1.35;font-weight:400;margin:0 0 16px}
.quiz .hint{font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--fg-4);margin:0 0 28px}
.quiz .val{font-family:var(--sans);font-size:17px;margin:0 0 8px}
.quiz .val .frac{color:var(--fg-4)}
.slider{position:relative;height:28px;border:1px solid var(--slate-250);border-radius:96px;background:var(--slate-100);padding:0 16px;margin-bottom:6px}
.slider input{-webkit-appearance:none;appearance:none;width:100%;height:26px;margin:0;background:transparent;position:relative;z-index:2;cursor:pointer}
.slider input::-webkit-slider-runnable-track{height:1px;background:transparent}
.slider input::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--fg);margin-top:-6.5px;cursor:pointer;border:none}
.slider input::-moz-range-track{height:1px;background:transparent}
.slider input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--fg);border:none;cursor:pointer}
.slider .track{position:absolute;left:16px;right:16px;top:50%;height:1px;background:var(--slate-350)}
.slider .ticks{position:absolute;left:23px;right:23px;top:50%;height:1px}
.slider .ticks i{position:absolute;top:-3px;width:1px;height:7px;background:var(--slate-350)}
.slider .today{position:absolute;top:34px;transform:translateX(-50%);font-family:var(--sans);font-size:11px;padding:3px 8px;border:1px solid var(--slate-250);border-radius:6px;background:var(--bg);white-space:nowrap;box-shadow:0 2px 8px #0000000d;z-index:3}
.slider .today::before{content:"";position:absolute;left:50%;top:-5px;width:8px;height:8px;background:var(--bg);border-left:1px solid var(--slate-250);border-top:1px solid var(--slate-250);transform:translateX(-50%) rotate(45deg)}
.quiz .navrow{display:flex;justify-content:space-between;margin-top:72px}
.quiz .privacy{display:flex;justify-content:space-between;font-family:var(--sans);font-size:13px;color:var(--fg-3);border-top:1px solid var(--slate-250);border-bottom:1px solid var(--slate-250);padding:10px 0;margin-top:56px}
.quiz .grid{display:flex;flex-direction:column;align-items:center;padding-top:4px}
.quiz .grid svg.g{width:560px;height:560px;overflow:visible;touch-action:none;cursor:ns-resize}
.quiz .grid .legend{display:flex;gap:22px;font-family:var(--sans);font-size:13px;color:var(--fg);margin-top:12px}
.quiz .grid .legend i{display:inline-flex;align-items:center;gap:6px;font-style:normal}
.quiz .grid .legend svg{width:18px;height:18px;overflow:visible}
.quiz .drawhint{font-family:var(--sans);font-size:12px;color:var(--fg-4);text-align:center;margin-top:10px}
.quiz .yeargrid text{font-family:var(--sans);font-size:13px;fill:var(--fg-4);text-anchor:middle}
.quiz .close{position:absolute;right:40px;top:8px;z-index:2;border:0;background:none;font-family:var(--sans);font-size:13px;color:var(--fg-3);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1024px){.quiz .inner{grid-template-columns:1fr}.quiz .left{border-right:0;padding:0 24px 24px}.quiz .right{padding:0 24px 40px}.quiz .grid svg.g{width:100%;height:auto;aspect-ratio:1.08}}

/* 结果面板 */
.explorer h3{font-size:24px;line-height:1.35;margin:8px 0 16px;font-weight:400}
.explorer ul{margin:0 0 24px;padding-left:20px;font-size:17px;line-height:1.55}
.explorer li{margin:6px 0}
.explorer .spectrum{margin-top:200px;font-family:var(--sans);font-size:13px;color:var(--fg-3)}
.explorer .spectrum svg{width:100%;height:64px;overflow:visible}
.explorer .spectrum text{font-family:var(--sans);font-size:13px;fill:var(--fg-3)}
.explorer .actions{display:flex;gap:16px;align-items:center;margin-top:16px}
.explorer .link{font-family:var(--sans);font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;background:none;border:0;padding:0;color:var(--fg)}
.explorer .tabs{display:flex;gap:6px;margin:8px 0 14px;font-family:var(--sans);font-size:13px}
.explorer .tabs button{border:0;background:none;padding:4px 12px;border-radius:6px;color:var(--fg-3);cursor:pointer}
.explorer .tabs button.on{background:var(--slate-200);color:var(--fg)}
.explorer .cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ecard{border:1px solid var(--slate-350);border-radius:4px;background:#fbfaf6;padding:18px 16px 14px;position:relative;min-height:378px;display:flex;flex-direction:column}
.ecard.hide{display:none}
.ecard .k{font-family:var(--sans);font-size:13px;color:var(--fg-3)}
.ecard .q{font-size:19px;margin:6px 0 10px;font-weight:400}
.ecard .big{font-size:30px;line-height:1.1;text-align:right;position:absolute;right:16px;top:120px}
.ecard .big small{display:block;font-family:var(--sans);font-size:13px;color:var(--fg-3);margin-top:4px}
.ecard svg{width:100%;height:auto;overflow:visible}
.ecard .foot{font-family:var(--sans);font-size:12px;color:var(--fg-4);margin-top:auto}
.ecard .foot .key{justify-content:flex-start;margin:10px 0 4px;font-size:12px}
.ecard text{font-family:var(--sans);font-size:13px;fill:var(--fg-3)}
.ecard .nums{position:absolute;right:16px;top:90px;text-align:right}
.ecard .nums div{font-size:24px;line-height:1.1;margin-bottom:22px}
.ecard .nums small{display:block;font-family:var(--sans);font-size:13px;color:var(--fg-3);margin-top:2px}
@media(max-width:1024px){.explorer .cards{grid-template-columns:1fr}.explorer .spectrum{margin-top:40px}}

/* ===== 预期分布 ===== */
.beliefs{padding:80px 0 40px}
.beliefs h2{font-size:28px;line-height:1.3;text-align:center;font-weight:400;margin:0 auto 24px;max-width:22ch;text-wrap:balance}
.swarm{position:relative;max-width:1100px;margin:96px auto 0;padding:24px 0 40px}
.swarm .lanes{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:52px;position:relative;z-index:1}
.swarm .lane{display:grid;grid-template-columns:300px 1fr;gap:26px;align-items:center;padding:0 20px}
.swarm .lt{font-size:20px;margin:0}
.swarm .ld{font-family:var(--sans);font-size:13px;color:var(--fg-3)}
.swarm .lc svg{width:100%;height:76px;overflow:visible}
.swarm text{font-family:var(--sans);font-size:11px;fill:var(--fg-4)}
.swarm .keyrow{display:flex;justify-content:center;gap:40px;font-family:var(--sans);font-size:13px;color:var(--fg-3);margin-top:34px;position:relative;z-index:1}
.swarm .keyrow i{display:inline-flex;align-items:center;gap:8px;font-style:normal}
.swarm .keyrow b{font-weight:400;margin-left:6px}
.swarm .keyrow svg{width:14px;height:14px;overflow:visible}
@media(max-width:1024px){.swarm .lane{grid-template-columns:1fr;gap:8px}}

/* ===== 发现 ===== */
.findings{padding:80px 0 0}
.findings .prose h3{font-size:28px;line-height:1.3;text-align:center;font-weight:400;margin:0 0 48px;text-wrap:balance}
.finding{margin-top:72px}
.chartblock{position:relative;max-width:1100px;margin:64px auto;padding:40px 24px}
.rows{position:relative;display:flex;flex-direction:column;gap:56px;margin-top:40px;z-index:1}
.row{display:grid;grid-template-columns:260px 160px 1fr;align-items:center;gap:20px;padding:0 60px}
.row .name{font-size:17px}
.row .sqs svg{width:150px;height:170px;overflow:visible}
.row .bar{display:flex;align-items:center;gap:14px}
.row .bar svg{height:44px;overflow:visible}
.row .v{font-size:22px;line-height:1.15;white-space:nowrap}
.row .v small{display:block;font-family:var(--sans);font-size:13px;color:var(--fg-4)}
.row.share .bar{display:block}
.row.share .bar .top{display:flex;align-items:center;gap:12px}
.row.share .bar .top svg{height:52px}
.row.share .lbls{display:flex;font-size:22px;line-height:1.15;margin-top:8px}
.row.share .lbls small{display:block;font-family:var(--sans);font-size:13px;color:var(--fg-4)}
.row.share .gdp{font-family:var(--sans);font-size:13px;color:var(--fg-4);white-space:nowrap}
@media(max-width:1024px){.row{grid-template-columns:1fr;padding:0;gap:8px}}

/* 桑基 */
.sankey{position:relative;max-width:1100px;margin:64px auto;padding:40px 24px}
.sankey .presets{display:flex;justify-content:center;gap:8px;margin:0 0 20px;position:relative;z-index:1}
.sankey svg.main{width:100%;max-width:820px;height:auto;margin:0 auto;overflow:visible;position:relative;z-index:1}
.sankey text{font-family:var(--sans);font-size:13px;fill:var(--fg-4)}
.sankey text.big{font-family:var(--serif);font-size:22px;fill:var(--fg)}

/* 趋势小图 */
.trend{max-width:1100px;margin:64px auto;padding:0 24px}
.trend .row3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.panel{border:1px solid var(--slate-250);background:#fbfaf6;padding:16px 14px 18px}
.panel .pt{font-size:20px;margin:0 0 10px;font-weight:400}
.panel svg{width:100%;height:auto;overflow:visible}
.panel text{font-family:var(--sans);font-size:12px;fill:var(--fg-4)}
@media(max-width:1024px){.trend .row3{grid-template-columns:1fr}}

/* 结尾扇形 */
.ending{position:relative;height:110vh;min-height:860px;overflow:hidden;margin-top:-20px}
.ending svg{position:absolute;left:50%;top:0;transform:translateX(-50%);width:1440px;height:100%;overflow:visible}
.endnote{padding:40px 0 140px}
.endnote h4{font-size:22px;font-weight:400;margin:0 0 24px}

/* ===== 页脚 ===== */
.footer{background:#141413;color:#faf9f5;padding:60px 84px 40px;display:grid;grid-template-columns:347px repeat(4,1fr);gap:24px;font-family:var(--sans)}
.footer .flogo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:.22em}
.footer .flogo svg{width:30px;height:30px;overflow:visible}
.footer h5{font-size:13px;font-weight:700;margin:0 0 20px}
.footer ul{list-style:none;padding:0;margin:0 0 36px}
.footer li{font-size:13px;color:#b0aea5;margin:0 0 15px}
.footer li a{text-decoration:none;cursor:pointer}
.footer .copy{grid-column:1;font-size:12px;color:#b0aea5;align-self:end}
.footer .copy .soc{display:flex;gap:14px;margin-top:14px}
.footer .copy .soc svg{width:18px;height:18px;fill:#faf9f5}
@media(max-width:1024px){.footer{grid-template-columns:1fr 1fr;padding:48px 24px}.footer .flogo{grid-column:1/-1}.footer .copy{grid-column:1/-1}}
