/* ============================================================
   拂晓智能 Forshine AI · 设计系统
   语言：破晓编辑部（暖纸 / 墨 / 拂晓红 / 地平线光带母题）
   60-30-10：暖纸 60 / 墨 30 / 拂晓红 10；晨金仅存在于光带与数据
   ============================================================ */

/* ---------- 自托管字体（无 Google Fonts 依赖） ---------- */
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-serif-4-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-serif-4-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/source-serif-4-latin-700-normal.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/source-serif-4-latin-400-italic.woff2) format('woff2');}
/* Noto Serif SC 子集（构建时按全站用字裁剪；加载失败自动回退宋体栈，页面不塌） */
@font-face{font-family:'Noto Serif SC';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/noto-sc-600.woff2) format('woff2');}
@font-face{font-family:'Noto Serif SC';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/noto-sc-700.woff2) format('woff2');}

/* ---------- 令牌 ---------- */
:root{
  --paper:#FAF6EF;            /* 暖纸 60 */
  --paper-2:#F2ECDF;          /* 次级纸面 */
  --ink:#171512;              /* 墨 30 */
  --ink-deep:#131009;         /* 夜场底 */
  --line:#E2D8C6;             /* 纸线（发丝） */
  --line-strong:#CDBFA5;
  --line-dark:rgba(250,246,239,.16);
  --red:#AA0000;              /* 拂晓红 10（logo 实测色） */
  --red-deep:#7E0000;
  --red-tint:rgba(170,0,0,.06);
  --gold:#C98A2E;             /* 晨金：只许出现在光带/数据高亮 */
  --muted:#5F5748;            /* 纸面弱化文字（≥4.5:1） */
  --muted-dark:#C9BFA9;       /* 暗场弱化文字 */
  --serif:'Source Serif 4','Noto Serif SC','Songti SC','STSong','SimSun',serif;
  --sans:'PingFang SC','Microsoft YaHei','Hiragino Sans GB',-apple-system,'Segoe UI',sans-serif;
  --mono:ui-monospace,'Cascadia Mono','JetBrains Mono',Consolas,monospace;
  --step--1:clamp(.8125rem,.8rem + .1vw,.875rem);      /* 13–14 caption */
  --step-0:clamp(1.0625rem,1.04rem + .15vw,1.125rem);  /* 17–18 body */
  --step-1:clamp(1.3125rem,1.25rem + .3vw,1.5rem);     /* h3 */
  --step-2:clamp(1.625rem,1.45rem + .8vw,2.125rem);    /* h2 */
  --step-3:clamp(2.125rem,1.75rem + 1.9vw,3.25rem);    /* 章标题 */
  --step-4:clamp(2.625rem,2rem + 3.4vw,4.75rem);       /* 页面大标题 */
  --gutter:clamp(1.25rem,4vw,2.5rem);
  --maxw:1220px;
  --maxw-text:44em;
  --e:cubic-bezier(.22,.61,.21,1);
}

/* ---------- 基础 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;color-scheme:light}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* 锚点落点为粘性页眉让位；拂晓金选中色 */
[id]{scroll-margin-top:5.5rem}
::selection{background:rgba(201,138,46,.32)}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:var(--step-0);line-height:1.78;
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
  font-variant-numeric:tabular-nums;
}
p{margin:0 0 1.1em;text-wrap:pretty}
strong{font-weight:600}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
:lang(en),.en{font-family:var(--serif)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.32;margin:0 0 .55em;text-wrap:balance;letter-spacing:.01em}
h1{font-size:var(--step-4)}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-1)}
small,.small{font-size:var(--step--1);line-height:1.7}
.mono{font-family:var(--mono)}
em{font-style:normal;border-bottom:2px solid var(--red);padding-bottom:1px}
::selection{background:var(--red);color:var(--paper)}

.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6em 1.2em;z-index:99}
.skip:focus{left:1rem;top:1rem}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:1px}
.band-ink :focus-visible{outline-color:var(--gold)}

/* ---------- 版式骨架 ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-text{max-width:var(--maxw-text);margin-inline:auto;padding-inline:var(--gutter)}
.band{padding-block:clamp(4rem,7vw,7rem)}
.band-tight{padding-block:clamp(2.5rem,4vw,4rem)}
.band-alt{background:var(--paper-2)}
.band-ink{background:var(--ink-deep);color:var(--paper)}
.band-ink h1,.band-ink h2,.band-ink h3{color:var(--paper)}
.band-ink .muted{color:var(--muted-dark)}
.band-red{background:var(--red);color:#FFF6EF}
.muted{color:var(--muted)}
.lead{font-size:clamp(1.125rem,1.05rem + .4vw,1.375rem);line-height:1.72}

/* 章头：红色光杠 + 编号 + 标题 */
.shead{display:grid;grid-template-columns:auto 1fr;gap:0 1.25rem;align-items:start;margin-bottom:clamp(2.5rem,4vw,4rem)}
.shead .tick{width:4px;align-self:stretch;min-height:2.6rem;background:linear-gradient(var(--red),rgba(170,0,0,.15))}
.kicker{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin:0 0 .4em}
.band-ink .kicker{color:var(--gold)}
.shead h2{margin:0}
.shead .sub{margin:.5em 0 0;max-width:52ch}

/* 发丝线数据条 */
.stats{display:grid;border-top:1px solid var(--line);border-left:1px solid var(--line);margin:0}
.stats>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.4rem 1.5rem;background:transparent}
.stats .n{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,1.4rem + 1.8vw,2.9rem);line-height:1.15;color:var(--red);display:block}
/* 视频号二维码：白底卡片，细边贴合网格纸色 */
.stats .qr-card{display:block;width:7.4rem;height:auto;margin-top:1rem;border:1px solid var(--line);border-radius:2px;background:#fff}
.stats .n .unit{font-size:.55em;margin-left:.1em}
.stats .l{font-size:var(--step--1);color:var(--muted);line-height:1.55;display:block;margin-top:.35em}
.band-ink .stats{border-color:var(--line-dark)}
.band-ink .stats>div{border-color:var(--line-dark)}
.band-ink .stats .n{color:var(--gold)}
.band-ink .stats .l{color:var(--muted-dark)}
.stats.c2{grid-template-columns:repeat(2,1fr)}
.stats.c3{grid-template-columns:repeat(3,1fr)}
.stats.c4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.stats.c4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.stats.c3,.stats.c2{grid-template-columns:1fr}}

/* 三栏发丝网格（非卡片：靠线不靠影） */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.cols3>div{background:var(--paper);padding:clamp(1.5rem,2.5vw,2.25rem)}
.band-alt .cols3>div{background:var(--paper-2)}
.cols3 .idx{font-family:var(--mono);font-size:var(--step--1);color:var(--red);letter-spacing:.18em;display:block;margin-bottom:.9rem}
.cols3 h3{font-size:var(--step-1);margin-bottom:.4em}
.cols3 .en-name{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:.95rem;display:block;margin-bottom:1em}
@media (max-width:900px){.cols3{grid-template-columns:1fr}}

/* 编辑式编号条目（数字是衬线大字，不用 icon） */
.nlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.nlist>li{display:grid;grid-template-columns:minmax(3.5rem,5rem) 1fr;gap:0 clamp(1rem,3vw,2.5rem);padding:clamp(1.4rem,2.6vw,2rem) 0;border-bottom:1px solid var(--line);align-items:baseline}
.nlist .no{font-family:var(--serif);font-weight:700;font-size:clamp(1.5rem,1.2rem + 1vw,2rem);color:var(--red);line-height:1}
.nlist h3{margin:0 0 .35em;font-size:var(--step-1)}
.nlist p{margin:0;color:var(--muted)}
.nlist .meta{font-family:var(--mono);font-size:var(--step--1);color:var(--red-deep);margin-top:.6em;display:inline-block}

/* 左右分栏：粘性左侧 + 右侧内容 */
.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.split .aside{position:sticky;top:7rem}
.split.wide-left{grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr)}
.split.quiz-split{grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr)}
@media (max-width:960px){.split,.split.wide-left,.split.quiz-split{grid-template-columns:1fr}.split .aside{position:static}}

/* ---------- 按钮 / 链接 ---------- */
.btn{display:inline-flex;align-items:center;gap:.6em;background:var(--red);color:#FFF6EF;
  font-weight:600;font-size:1rem;line-height:1.2;padding:.85em 1.6em;border:1px solid var(--red-deep);
  border-radius:2px;cursor:pointer;transition:background 160ms var(--e),border-color 160ms var(--e)}
.btn:hover{background:var(--red-deep)}
.btn .arr{transition:transform 160ms var(--e)}
.btn:hover .arr{transform:translateX(3px)}
.btn-ghost{background:transparent;color:inherit;border-color:currentColor}
.btn-ghost:hover{background:rgba(23,21,18,.06);border-color:currentColor}
.band-ink .btn-ghost:hover{background:rgba(250,246,239,.08)}
.btn-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-light:hover{background:#fff;border-color:#fff}
.link{border-bottom:1px solid var(--red);color:var(--red-deep);padding-bottom:1px;cursor:pointer;transition:color 160ms}
.link:hover{color:var(--red)}

/* 行内文本链接（导航/正文） */
.tlink{position:relative}
.tlink::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 180ms var(--e)}
.tlink:hover::after{transform:scaleX(1);transform-origin:left}

/* ---------- 页眉 ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(250,246,239,.96);border-bottom:1px solid var(--line);transition:box-shadow 240ms var(--e)}
.site-head.scrolled{box-shadow:0 10px 28px rgba(23,21,18,.07)}
.site-head .wrap{display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);min-height:4.25rem}
.brand{display:flex;align-items:center;margin-right:auto}
/* 严格使用客户提供的原版 SVG（白底）：multiply 让白底融入暖纸，图形本身零修改 */
.brand .logo-crop{width:10.37rem;height:2.8rem;overflow:hidden;flex:none}
.brand img{display:block;height:7.69rem;width:auto;max-width:none;margin:-2.54rem 0 0 -6.35rem;mix-blend-mode:multiply}
.nav{display:flex;gap:clamp(.9rem,2vw,1.7rem);align-items:center;font-size:.98rem}
.nav a{padding:.3rem 0;white-space:nowrap}
.nav a[aria-current]{color:var(--red)}
.nav .nav-cta[aria-current]:not(.is-filled){box-shadow:0 0 0 3px var(--red-tint)}
.nav .nav-cta{border:1px solid var(--red);color:var(--red);padding:.45em 1em;border-radius:2px}
.nav .nav-cta.is-filled{background:var(--red);color:#FFF6EF;border-color:var(--red-deep)}
.nav .nav-cta.is-filled:hover{background:var(--red-deep)}
.nav .nav-cta:hover{background:var(--red);color:#FFF6EF}
.menu-btn{display:none;background:none;border:1px solid var(--line-strong);border-radius:2px;padding:.55em .8em;font:inherit;font-size:.9rem;cursor:pointer}
@media (max-width:1020px){
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:.5rem var(--gutter) 1.2rem;gap:0}
  .nav.open{display:flex}
  .nav a{padding:.85rem 0;border-bottom:1px solid var(--line)}
  .nav .nav-cta{margin-top:.8rem;text-align:center}
  .menu-btn{display:block}
}

/* ---------- 首屏 ---------- */
.hero{background:var(--ink-deep);color:var(--paper);position:relative;overflow:hidden;isolation:isolate}
.hero::before{ /* 夜穹微光，刻意非对称偏右 */
  content:"";position:absolute;inset:-30% -10% auto;height:80%;z-index:-1;
  background:radial-gradient(60% 55% at 68% 12%,rgba(201,138,46,.14),transparent 70%),radial-gradient(45% 40% at 78% 30%,rgba(170,0,0,.22),transparent 72%);
}
.hero .wrap{padding-block:clamp(5rem,9vw,8.5rem) 0;position:relative}
.hero .eyebrow{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:clamp(1.2rem,2vw,2rem)}
.hero h1{max-width:18ch;margin-bottom:clamp(1.2rem,2vw,1.8rem)}
.hero h1 .dawn{color:var(--gold)}
.hero .sub{color:var(--muted-dark);max-width:56ch;margin-bottom:clamp(2rem,3vw,2.8rem)}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;padding-bottom:clamp(3rem,6vw,5.5rem)}
.hero .stats{border-color:var(--line-dark);position:relative;margin-bottom:0}
.hero .stats>div{background:transparent;border-color:var(--line-dark)}

/* ---------- 案例行（行式，非卡片） ---------- */
.cases{border-top:1px solid var(--line)}
.case{display:grid;grid-template-columns:11rem minmax(0,1fr) auto;gap:.5rem clamp(1.5rem,4vw,3rem);padding:clamp(1.3rem,2.4vw,1.9rem) .25rem;border-bottom:1px solid var(--line);align-items:baseline;position:relative;transition:background 160ms var(--e)}
.case::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,var(--gold),var(--red));transform:scaleX(0);transform-origin:left;transition:transform 240ms var(--e)}
.case:hover{background:var(--red-tint)}
.case:hover::after{transform:scaleX(1)}
.case .ind{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.1em;color:var(--red-deep)}
.case h3{margin:0 0 .3em;font-size:clamp(1.15rem,1.05rem + .4vw,1.4rem)}
.case p{margin:0;color:var(--muted);max-width:60ch}
.case .kpi{font-family:var(--serif);font-weight:700;font-size:clamp(1.25rem,1.1rem + .8vw,1.8rem);color:var(--red);white-space:nowrap}
.case .kpi small{display:block;font-family:var(--mono);font-weight:400;font-size:.62rem;color:var(--muted);letter-spacing:.06em;margin-top:.2em}
@media (max-width:820px){.case{grid-template-columns:1fr}.case .kpi{white-space:normal}}

/* ---------- 时间线（拂晓四程） ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}
.steps>div{background:var(--ink-deep);padding:clamp(1.3rem,2.4vw,2rem);position:relative;min-height:11rem}
.steps .ph{font-family:var(--serif);font-weight:700;font-size:var(--step-1);color:var(--gold);margin:0 0 .15em}
.steps .en{font-family:var(--serif);font-style:italic;font-size:.9rem;color:var(--muted-dark);margin:0 0 .9em}
.steps p{font-size:.95rem;color:var(--muted-dark);margin:0}
.steps .tag{position:absolute;top:1rem;right:1.1rem;font-family:var(--mono);font-size:.72rem;color:var(--gold);letter-spacing:.14em;opacity:.85}
/* 阶段间的光递进：每条底部渐亮 */
.steps>div::before{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold));opacity:calc(.18 * var(--i,1))}
.steps>div:nth-child(1){--i:1}.steps>div:nth-child(2){--i:2}.steps>div:nth-child(3){--i:3}.steps>div:nth-child(4){--i:4}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- 引言 ---------- */
.pull{border-left:3px solid var(--red);padding:.2rem 0 .2rem clamp(1.2rem,3vw,2rem);margin:2.2rem 0}
.pull p{font-family:var(--serif);font-size:clamp(1.25rem,1.1rem + .8vw,1.6rem);line-height:1.6;margin:0 0 .5em}
.pull cite{font-style:normal;font-size:var(--step--1);color:var(--muted)}
.band-ink .pull{border-color:var(--gold)}
.band-ink .pull cite{color:var(--muted-dark)}

/* ---------- 工具：自测问卷 ---------- */
.quiz fieldset{border:1px solid var(--line);background:var(--paper);padding:1.2rem 1.4rem 1rem;margin:0 0 1rem}
.quiz legend{font-weight:600;padding:0 .5em;display:flex;gap:.8em;align-items:baseline}
.quiz legend .qid{font-family:var(--mono);color:var(--red);font-size:.85rem;letter-spacing:.1em}
.quiz .opts{display:grid;gap:.35rem;margin:.4rem 0 .2rem}
.quiz .opt{display:flex;gap:.7em;align-items:flex-start;padding:.5em .7em;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:background 140ms,border-color 140ms}
.quiz .opt:hover{background:var(--red-tint);border-color:var(--line)}
.quiz .opt input{margin-top:.45em;accent-color:var(--red)}
.quiz .opt .lab{font-size:1rem;line-height:1.65}
.quiz .hint{font-family:var(--mono);font-size:var(--step--1);color:var(--muted)}
@media (max-width:640px){.quiz .opts{grid-template-columns:1fr}}

/* 结果条 */
.meter{margin:1.2rem 0}
.meter .bar{height:10px;background:var(--paper-2);border:1px solid var(--line);position:relative}
.meter .bar i{position:absolute;inset:1px auto 1px 1px;background:linear-gradient(90deg,var(--red),var(--gold));width:0;transition:width 600ms var(--e)}
.meter .mlab{display:flex;justify-content:space-between;font-size:var(--step--1);font-family:var(--mono);margin-bottom:.45em;color:var(--muted)}
.meter .mlab b{color:var(--ink);font-weight:600}
.score-hero{display:flex;align-items:baseline;gap:1rem}
.score-hero .num{font-family:var(--serif);font-weight:700;font-size:clamp(3rem,2rem + 5vw,5rem);color:var(--red);line-height:1}

/* ---------- 表单 ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.4rem}
.form-grid .full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.field label{display:block;font-size:.92rem;font-weight:600;margin-bottom:.4em}
.field label .req{color:var(--red)}
.field input,.field select,.field textarea{
  width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line-strong);border-radius:2px;padding:.72em .9em;transition:border-color 140ms
}
.field textarea{min-height:7.5em;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px rgba(170,0,0,.12)}
.field .err{display:none;color:var(--red);font-size:var(--step--1);margin-top:.35em}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--red)}
.field.invalid .err{display:block}
.form-ok{display:none;border:1px solid var(--red);background:var(--red-tint);padding:1.6rem 1.8rem}
.form-ok.show{display:block}

/* ---------- 徽章 / 标签 ---------- */
.tag{display:inline-block;font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;color:var(--red-deep);border:1px solid rgba(170,0,0,.35);padding:.3em .7em;border-radius:2px}
.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}

/* ---------- 来源注 ---------- */
.src{font-family:var(--mono);font-size:var(--step--1);color:var(--muted)}
.band-ink .src{color:var(--muted-dark)}
sup.fn{font-family:var(--mono);font-size:.7em;color:var(--red);padding-left:2px}

/* ---------- 页脚（天亮了：从墨夜回到晨线） ---------- */
/* 底色自带地平线辉光：以晨点（底部中央、略沉于底边之下）为心，暖光从页脚最深处向上透出，
   拂晓弧画在这层辉光之上，两者同心同色，不再是一块光贴在平面上 */
.site-foot{background:radial-gradient(130% 105% at 50% 116%,rgba(201,138,46,.12),rgba(201,138,46,.045) 34%,rgba(201,138,46,.012) 55%,transparent 72%) left bottom/100% 100% no-repeat,var(--ink-deep);color:var(--muted-dark);position:relative;overflow:hidden}
.site-foot::before{content:"";position:absolute;left:0;right:0;top:0;height:clamp(6rem,10vw,9rem);background:linear-gradient(rgba(201,138,46,.13),transparent);pointer-events:none}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(1.5rem,4vw,3rem);padding-block:clamp(3.5rem,6vw,5rem) clamp(2rem,3vw,3rem)}
@media (max-width:900px){.foot-top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-top{grid-template-columns:1fr}}
.foot-brand .foot-logo{height:2.8rem;width:auto;display:block;margin-bottom:1.2rem}
.foot-col h4{font-family:var(--mono);font-size:.78rem;letter-spacing:.2em;color:var(--gold);font-weight:400;text-transform:uppercase;margin:0 0 1.1em}
.foot-col a{display:block;padding:.32rem 0;color:var(--muted-dark);transition:color 140ms}
.foot-col a:hover{color:var(--paper)}
.foot-horizon{padding:0 var(--gutter)}
.foot-legal{position:relative;padding-block:1.4rem 2rem;font-size:var(--step--1);display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between}
/* 分隔线在晨光处隐去，只从两侧浮现——光不再被一条直线横切 */
.foot-legal::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--line-dark),transparent 34%,transparent 66%,var(--line-dark))}
.foot-legal a{color:var(--muted-dark)}
.foot-legal a:hover{color:var(--paper)}

/* ---------- 入场动效（.js 门控 + reduced-motion） ---------- */
.js .reveal{opacity:0;transform:translateY(14px)}
.js .reveal.on{opacity:1;transform:none;transition:opacity 220ms var(--e),transform 220ms var(--e)}
.js .reveal.d1.on{transition-delay:90ms}
.js .reveal.d2.on{transition-delay:180ms}

/* 数据条生长：.stats 进入视口后数字下划线由红渐金扫出 */
.js .statline{position:relative}
.js .statline::after{content:"";position:absolute;left:1.5rem;right:60%;bottom:1.1rem;height:1px;background:linear-gradient(90deg,var(--red),var(--gold));transform:scaleX(0);transform-origin:left;transition:transform 700ms var(--e) 150ms;opacity:.7}
.js .band-ink .statline::after,.js .hero .statline::after{background:linear-gradient(90deg,rgba(201,138,46,.9),rgba(255,120,60,.6))}
.js .statline.on::after{transform:scaleX(1);right:1.5rem}

/* SVG 图表：折线描绘 / 面积淡入 / 柱体生长 / 节点浮现 */
.chart .line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1200ms var(--e)}
.js .chart.on .line{stroke-dashoffset:0}
.chart .area,.chart .fade{opacity:0;transition:opacity 600ms var(--e) 400ms}
.js .chart.on .area,.js .chart.on .fade{opacity:1}
.chart .grow{transform:scaleY(0);transform-origin:bottom;transition:transform 600ms var(--e)}
.js .chart.on .grow{transform:scaleY(1)}
.chart .grow:nth-of-type(2){transition-delay:80ms}.chart .grow:nth-of-type(3){transition-delay:160ms}
.chart .grow:nth-of-type(4){transition-delay:240ms}.chart .grow:nth-of-type(5){transition-delay:320ms}
.chart .grow:nth-of-type(6){transition-delay:400ms}.chart .grow:nth-of-type(7){transition-delay:480ms}
/* 横向条：自左向右生长 */
.chart .hgrow{transform:scaleX(0);transform-origin:left center;transition:transform 800ms var(--e)}
.js .chart.on .hgrow{transform:scaleX(1)}
.chart .hgrow:nth-of-type(2){transition-delay:100ms}.chart .hgrow:nth-of-type(3){transition-delay:200ms}
.chart .hgrow:nth-of-type(4){transition-delay:300ms}.chart .hgrow:nth-of-type(5){transition-delay:400ms}.chart .hgrow:nth-of-type(6){transition-delay:500ms}
/* 首屏不对称：左文右图 */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4.5rem);align-items:end}
@media (max-width:960px){.hero-grid{grid-template-columns:1fr}}
.chart-cap{font-size:var(--step--1);color:var(--muted);margin-top:.9rem}
.band-ink .chart-cap{color:var(--muted-dark)}

/* 数字滚动（count-up）由 JS 驱动，CSS 只保证等宽不跳动 */
.cnum{font-variant-numeric:tabular-nums}

/* 条目内证据条（失败根因等）：base=完成态，.js .reveal 先收起再生长 */
.failbar{height:7px;background:var(--paper-2);border:1px solid var(--line);margin-top:.9em;max-width:22rem}
.failbar i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold));transform:scaleX(var(--w,0));transition:transform 800ms var(--e) 250ms}
.js .reveal .failbar i{transform:scaleX(0)}
.js .reveal.on .failbar i{transform:scaleX(var(--w,0))}
.band-ink .failbar{background:rgba(250,246,239,.06);border-color:var(--line-dark)}

/* SVG 数据图公共样式（图表内容逐页手绘，数据即配图） */
.chart{width:100%;height:auto}
.chart text{font-family:var(--sans);fill:var(--muted)}
.chart text.val{font-family:var(--serif);font-weight:700;fill:var(--red)}
.band-ink .chart text{fill:var(--muted-dark)}
.band-ink .chart text.val{fill:var(--gold)}
.chart .axis{stroke:var(--line);stroke-width:1}
.band-ink .chart .axis{stroke:var(--line-dark)}

/* 悬停聚焦：表格行/条目 */
.hl-row{transition:background 160ms var(--e)}
.hl-row:hover{background:var(--red-tint)}
.band-ink .hl-row:hover{background:rgba(201,138,46,.07)}

/* ---------- 页脚拂晓弧：一束光的地球弧度，晨点最亮最宽、两端收细 ---------- */
.dawn-arc{display:block;width:100%;height:auto}
.js .dawn-arc .da{opacity:0;transform:scale(.7);transform-box:view-box;transform-origin:50% 81%;transition:opacity 900ms var(--e),transform 900ms var(--e)}
.js .dawn-arc.on .da{opacity:1;transform:scale(1)}
.js .dawn-arc.on .da-halo-c{transition-delay:120ms}
.js .dawn-arc.on .da-core-c{transition-delay:260ms}
.js .dawn-arc .da-line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1500ms var(--e) 150ms}
.js .dawn-arc.on .da-line{stroke-dashoffset:0}
.js .dawn-arc .da-beam-p{opacity:0;transform:translateY(5px);transition:opacity 800ms var(--e) 320ms,transform 800ms var(--e) 320ms}
.js .dawn-arc.on .da-beam-p{opacity:1;transform:none}
/* 入场落定后的常驻动效：太阳呼吸 + 光晕脉动 + 光带微光（仅 opacity/transform） */
@keyframes da-breathe{0%,100%{opacity:1}50%{opacity:.72}}
@keyframes da-sway{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes da-glow{0%,100%{opacity:1}50%{opacity:.82}}
.js .dawn-arc.on .da-core-c{animation:da-breathe 4.5s ease-in-out 1.4s infinite,da-sway 9s ease-in-out 1.4s infinite}
.js .dawn-arc.on .da-halo-c{animation:da-breathe 6.5s ease-in-out .9s infinite}
.js .dawn-arc.on .da-beam-p{animation:da-glow 7.5s ease-in-out 2s infinite}

/* 编号条目：悬停时左侧让出一道拂晓红，编号微微起身（只动位移与颜色，不动 scale） */
.nlist>li{transition:background 160ms var(--e)}
.nlist>li:hover{background:var(--red-tint)}
.nlist>li .no{transition:transform 200ms var(--e),color 200ms var(--e)}
.nlist>li:hover .no{transform:translateX(4px)}
.band-ink .nlist>li:hover{background:rgba(201,138,46,.07)}

/* 三支柱/档位格：悬停时顶部渗入一道晨光，呼应地平线母题 */
.cols3>div{position:relative;overflow:hidden;transition:background 180ms var(--e)}
.cols3>div::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--red),var(--gold));transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--e)}
.cols3>div:hover::before{transform:scaleX(1)}
.cols3>div:hover{background:#FCF9F3}
.band-alt .cols3>div:hover{background:var(--paper)}
.band-ink .cols3>div:hover::before{background:linear-gradient(90deg,var(--gold),rgba(255,120,60,.6))}

/* ---------- 首屏入场：加载即有的拂晓（仅 .js，reduced-motion 全禁） ---------- */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.js .hero .eyebrow,.js .hero h1,.js .hero .sub,.js .hero .hero-cta,.js .hero .stats{
  animation:rise 620ms var(--e) both}
.js .hero h1{animation-delay:90ms}
.js .hero .sub{animation-delay:190ms}
.js .hero .hero-cta{animation-delay:290ms}
.js .hero .stats{animation-delay:400ms}

/* 四程：进入视口后逐格起身，光随阶段递进 */
.js .steps>div{opacity:0;transform:translateY(16px)}
.js .steps.on>div{opacity:1;transform:none;transition:opacity 320ms var(--e),transform 320ms var(--e)}
.js .steps.on>div:nth-child(2){transition-delay:110ms}
.js .steps.on>div:nth-child(3){transition-delay:220ms}
.js .steps.on>div:nth-child(4){transition-delay:330ms}

@media (prefers-reduced-motion:reduce){
  .js .reveal,.js .reveal.on{opacity:1;transform:none;transition:none}
  .js .statline::after{transform:scaleX(1);right:1.5rem;transition:none}
  .chart .line{stroke-dashoffset:0;transition:none}
  .chart .area,.chart .fade{opacity:1;transition:none}
  .chart .grow{transform:none;transition:none}
  .js .hero .eyebrow,.js .hero h1,.js .hero .sub,.js .hero .hero-cta,.js .hero .stats{animation:none}
  .js .steps>div,.js .steps.on>div{opacity:1;transform:none;transition:none}
  .cols3>div::before,.nlist>li .no{transition:none}
  .js .dawn-arc .da,.js .dawn-arc.on .da{opacity:1;transform:none;transition:none}
  .js .dawn-arc .da-line{stroke-dasharray:none;stroke-dashoffset:0;transition:none}
  .js .dawn-arc .da-beam-p,.js .dawn-arc.on .da-beam-p{opacity:1;transform:none;transition:none}
  .js .dawn-arc.on .da-core-c,.js .dawn-arc.on .da-halo-c,.js .dawn-arc.on .da-beam-p{animation:none}
  *{scroll-behavior:auto!important}
}

/* ---------- 打印 ---------- */
@media print{
  .site-head,.menu-btn,.hero::before{display:none}
  body{background:#fff;color:#000}
  /* 打印时无视动效状态：一切直接落定稿态 */
  .js .reveal,.js .steps>div{opacity:1!important;transform:none!important}
  .js .dawn-arc .da,.js .dawn-arc .da-beam-p{opacity:1!important;transform:none!important;animation:none!important}
  .js .dawn-arc .da-line{stroke-dasharray:none;stroke-dashoffset:0}
  .js .hero .eyebrow,.js .hero h1,.js .hero .sub,.js .hero .hero-cta,.js .hero .stats{animation:none}
}
