/* 磐石量化 · 动效层 */
/* 入场编排：整页淡入 */
@keyframes pageIn{from{opacity:0}to{opacity:1}}
body{animation:pageIn .5s ease-out both}

/* 英雄区标题逐行升起（clip 裁切） */
.hero-title .ln,.pd-title{
  display:block;overflow:hidden;
}
.hero-title .ln>span,.pd-title>span{
  display:inline-block;transform:translateY(110%);animation:riseUp .9s cubic-bezier(.19,1,.22,1) forwards;
}
.hero-title .ln:nth-child(1)>span{animation-delay:.05s}
.hero-title .ln:nth-child(2)>span{animation-delay:.16s}
.hero-title .ln:nth-child(3)>span{animation-delay:.27s}
.pd-title>span{animation-delay:.08s}
@keyframes riseUp{to{transform:translateY(0)}}
.hero-manifesto,.hero .btn,.hero-meta{opacity:0;animation:pageIn .8s ease-out forwards}
.hero-manifesto{animation-delay:.4s}
.hero .btn{animation-delay:.55s}
.hero-meta{animation-delay:.5s}

/* 滚动显现 */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.19,1,.22,1);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .hero-title .ln>span,.pd-title>span{animation:none;transform:none}
  .hero-manifesto,.hero .btn,.hero-meta{opacity:1;animation:none}
}

/* 巨幅宣言跑马灯 */
.marquee{
  overflow:hidden;border-block:1px solid var(--ink);background:var(--paper);
  padding:26px 0;position:relative;white-space:nowrap;
}
.marquee-inner{display:inline-flex;animation:mq 30s linear infinite;will-change:transform}
.marquee:hover .marquee-inner{animation-play-state:paused}
.marquee-inner b{
  font-family:var(--serif);font-weight:900;font-size:clamp(34px,5vw,64px);line-height:1;
  padding:0 34px;letter-spacing:.04em;color:var(--ink);
}
.marquee-inner b:nth-child(even){color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.marquee-inner i{
  font-family:var(--mono);font-style:normal;font-size:13px;color:var(--gold-deep);
  align-self:center;letter-spacing:.2em;
}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* 英雄区画布 */
.hero-canvas{
  position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.5;
}
.hero{position:relative;overflow:hidden}
.hero .wrap{position:relative;z-index:1}

/* 数据带 */
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);
}
.stat{
  padding:34px 30px 40px;border-right:1px solid var(--line);position:relative;
}
.stat:last-child{border-right:none}
.stat-num{
  font-family:var(--mono);font-weight:500;font-size:clamp(34px,4vw,52px);line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.stat-num em{font-style:normal;color:var(--gold-deep);font-size:.55em;margin-left:2px}
.stat-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;margin-top:14px}
.stat-bar{position:absolute;left:0;bottom:0;height:3px;background:var(--gold);width:0;transition:width 1.4s cubic-bezier(.19,1,.22,1)}
.rv.in .stat-bar{width:var(--w,60%)}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2n){border-right:none}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* 按钮扫光 */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{
  content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(201,162,39,.35) 50%,transparent 70%);
  transform:translateX(-110%);transition:transform .5s ease;z-index:-1;
}
.btn:hover::after{transform:translateX(110%)}

/* 台账行动态强化 */
.ledger-row .ledger-name{transition:transform .25s cubic-bezier(.19,1,.22,1)}
.ledger-row:hover .ledger-name{transform:translateX(6px)}
.ledger-row::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);
  transform:scaleY(0);transition:transform .25s ease;transform-origin:top;
}
.ledger-row:hover::before{transform:scaleY(1)}

/* 规格格浮起 */
.spec-item{transition:background .15s,transform .25s cubic-bezier(.19,1,.22,1)}
.spec-item:hover{transform:translateY(-4px);background:rgba(11,11,11,.03)}
.spec-num{transition:color .2s}
.spec-item:hover .spec-num{color:var(--ink)}

/* 检查清单划线完成感 */
.check-list li{transition:color .2s}
.check-list li:hover{color:var(--ink)}

/* Kicker 细线生长 */
.kicker::after{transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.19,1,.22,1) .1s}
.rv.in .kicker::after,.kicker.grown::after{transform:scaleX(1)}

/* 页脚印章呼吸 */
.brand-seal{transition:transform .3s cubic-bezier(.19,1,.22,1)}

/* 行情条入口 */
.ticker{transform:translateY(100%);animation:tickIn .6s cubic-bezier(.19,1,.22,1) .5s forwards}
@keyframes tickIn{to{transform:translateY(0)}}
