/* ============================================================
   everup.life — 设计系统 v2.0
   语言：夜 · 山径 · 晨光
   ============================================================ */

:root{
  /* —— 夜 —— */
  --night:#08120E;
  --deep:#0C1C15;
  --forest:#14301F;
  --forest-2:#1B3D2E;
  --moss:#3E5C48;
  --sage:#7E9686;

  /* —— 光 —— */
  --life:#9BC53D;
  --glow:#C9E265;
  --amber:#E0A44A;
  --ember:#CE6E3B;

  /* —— 纸 —— */
  --white:#FFFFFF;
  --paper:#F6F3EA;
  --paper-2:#EDE7D8;
  --ink:#111C16;
  --ink-2:#2C3D33;
  --muted:#5F6F66;
  --muted-2:#8A968D;
  --line:rgba(17,28,22,.13);
  --line-2:rgba(17,28,22,.06);
  --line-dk:rgba(246,243,234,.15);
  --line-dk-2:rgba(246,243,234,.07);

  /* —— 字体 —— */
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"PingFang SC","Noto Sans SC","Source Han Sans CN","Microsoft YaHei",-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono","SF Mono",ui-monospace,Menlo,Consolas,monospace;

  /* —— 尺度 —— */
  --wrap:1180px;
  --gutter:clamp(22px, 5vw, 72px);
  --sec:clamp(84px, 10.5vw, 168px);
  --r:2px;

  /* —— 字号 —— */
  --t-hero:clamp(42px, 7vw, 100px);
  --t-h1:clamp(33px, 4.9vw, 66px);
  --t-h2:clamp(25px, 3.2vw, 42px);
  --t-h3:clamp(19px, 1.95vw, 25px);
  --t-lead:clamp(16px, 1.45vw, 21px);

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.8;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
ul,ol{margin:0; padding:0; list-style:none}
button{font:inherit; color:inherit; background:none; border:none; cursor:pointer}
::selection{background:var(--glow); color:var(--night)}
:focus-visible{outline:2px solid var(--life); outline-offset:3px}

.wrap{width:100%; max-width:var(--wrap); margin:0 auto; padding:0 var(--gutter)}
.wrap--wide{max-width:1360px}

/* ============ 图标 ============ */
.ic{
  width:1em; height:1em; flex:none;
  stroke:currentColor; fill:none;
  stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;
  vertical-align:-.14em;
}

/* ============ 通用文字件 ============ */
.kick{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--moss);
  display:flex; align-items:center; gap:10px;
}
.kick::before{content:""; width:22px; height:1px; background:currentColor; opacity:.55; flex:none}
.on-night .kick{color:var(--life)}
.hero .kick,.shero .kick{color:var(--life)}

.serif{font-family:var(--serif)}
.num{font-family:var(--mono); font-variant-numeric:tabular-nums}

.lead{font-size:var(--t-lead); line-height:1.78; color:var(--ink-2); max-width:62ch}
.on-night .lead{color:rgba(246,243,234,.80)}

/* ============ 导航 ============ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:90;
  padding:16px 0; transition:background .45s var(--ease), padding .45s var(--ease), box-shadow .45s;
}
.nav.is-solid{
  background:rgba(246,243,234,.92); backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 1px 0 var(--line); padding:10px 0;
}
.nav.is-dark{background:rgba(8,18,14,.76); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line-dk)}
.nav__in{display:flex; align-items:center; justify-content:space-between; gap:24px}
.brand{display:flex; align-items:center; gap:10px; font-family:var(--serif);
  font-size:17.5px; font-weight:500; letter-spacing:.02em; color:var(--ink)}
.nav.is-dark .brand, .nav.is-hero .brand{color:var(--paper)}
.brand__mark{width:26px; height:26px; flex:none}
.brand small{font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; font-weight:400;
  opacity:.55; display:block; margin-top:-2px}
.nav__links{display:flex; align-items:center; gap:clamp(14px,2vw,30px)}
.nav__links a{
  font-size:13.5px; letter-spacing:.02em; color:var(--ink-2);
  position:relative; padding:4px 0; transition:color .3s;
}
.nav.is-dark .nav__links a, .nav.is-hero .nav__links a{color:rgba(246,243,234,.78)}
.nav__links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--life); transform:scaleX(0); transform-origin:left;
  transition:transform .38s var(--ease-out);
}
.nav__links a:hover::after, .nav__links a[aria-current]::after{transform:scaleX(1)}
.nav__links a:hover{color:var(--ink)}
.nav.is-dark .nav__links a:hover, .nav.is-hero .nav__links a:hover{color:var(--paper)}
.nav__cta{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; padding:9px 18px; border:1px solid var(--line);
  border-radius:100px; transition:all .35s var(--ease);
}
.nav.is-dark .nav__cta, .nav.is-hero .nav__cta{border-color:rgba(201,226,101,.42); color:var(--glow)}
.nav__cta:hover{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.nav.is-dark .nav__cta:hover, .nav.is-hero .nav__cta:hover{background:var(--life); color:var(--night); border-color:var(--life)}
.nav__burger{display:none; width:38px; height:38px; align-items:center; justify-content:center; color:inherit; flex:none}
.nav.is-hero .nav__burger,.nav.is-dark .nav__burger{color:var(--paper)}
.nav__burger span{display:block; width:18px; height:1.5px; background:currentColor; position:relative}
.nav__burger span::before,.nav__burger span::after{content:""; position:absolute; left:0; width:18px; height:1.5px; background:currentColor}
.nav__burger span::before{top:-5px} .nav__burger span::after{top:5px}

/* 移动抽屉 */
.drawer{
  position:fixed; inset:0; z-index:95; background:var(--night); color:var(--paper);
  padding:26px var(--gutter); display:none; flex-direction:column;
}
.drawer.open{display:flex}
.drawer__top{display:flex; justify-content:space-between; align-items:center; margin-bottom:40px}
.drawer nav{display:flex; flex-direction:column; gap:2px}
.drawer nav a{font-family:var(--serif); font-size:26px; font-weight:500; padding:14px 0; border-bottom:1px solid var(--line-dk-2)}
.drawer nav a:hover{color:var(--glow)}
.drawer__close{font-family:var(--mono); font-size:12px; letter-spacing:.16em; color:rgba(246,243,234,.6)}

/* ============ 按钮 ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px; font-size:14.5px; letter-spacing:.02em;
  border-radius:100px; transition:all .4s var(--ease); position:relative; overflow:hidden;
}
.btn--solid{background:var(--forest); color:var(--paper)}
.btn--solid:hover{background:var(--ink); transform:translateY(-2px); box-shadow:0 12px 28px -12px rgba(17,28,22,.5)}
.btn--light{background:var(--glow); color:var(--night)}
.btn--light:hover{background:var(--paper); transform:translateY(-2px); box-shadow:0 12px 30px -10px rgba(201,226,101,.45)}
.btn--ghost{border:1px solid var(--line); color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink); background:rgba(17,28,22,.03)}
.on-night .btn--ghost, .btn--ghost-dk{border-color:rgba(246,243,234,.42); color:var(--paper)}
.on-night .btn--ghost:hover, .btn--ghost-dk:hover{border-color:var(--glow); color:var(--glow); background:rgba(201,226,101,.06)}
.btn .ar{transition:transform .4s var(--ease-out)}
.btn:hover .ar{transform:translateX(4px)}

.arrow-link{
  display:inline-flex; align-items:center; gap:10px; font-size:14px;
  padding-bottom:3px; border-bottom:1px solid currentColor;
  transition:gap .35s var(--ease-out), color .3s;
}
.arrow-link:hover{gap:16px}
.arrow-link .ar{transition:transform .35s var(--ease-out)}
.arrow-link:hover .ar{transform:translateX(3px)}

/* ============ 段落容器 ============ */
.band{position:relative; padding:var(--sec) 0}
.band--paper{background:var(--paper)}
.band--paper2{background:var(--paper-2)}
.band--night{background:var(--night); color:var(--paper)}
.band--deep{background:var(--deep); color:var(--paper)}
.band--forest{background:var(--forest); color:var(--paper)}
.on-night{color:var(--paper)}
.on-night h1,.on-night h2,.on-night h3,.on-night h4{color:var(--paper)}

.grain{position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:url(../img/grain.svg); background-size:160px; opacity:.26; mix-blend-mode:overlay}
.band > .wrap{position:relative; z-index:1}

/* ============ 标题组 ============ */
.sec-head{max-width:min(100%,940px)}
.sec-head h2{
  font-family:var(--serif); font-size:var(--t-h2); font-weight:500;
  line-height:1.28; letter-spacing:-.01em; margin:20px 0 22px;
}
.sec-head h2 em{font-style:normal; color:var(--forest); position:relative; z-index:0}
.on-night .sec-head h2 em{color:var(--glow)}
.sec-head h2 em::after{
  content:""; position:absolute; left:0; right:0; bottom:.02em; height:.34em;
  background:linear-gradient(90deg,rgba(155,197,61,.30),rgba(155,197,61,.05)); z-index:-1;
}
.on-night .sec-head h2 em::after{display:none}

/* ============ 首屏 ============ */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  background:var(--night); color:var(--paper); overflow:hidden;
  padding:118px 0 clamp(84px,9vw,116px);
}
.hero__bg{position:absolute; inset:0; z-index:0}
.hero__topo{
  position:absolute; inset:-8% -4% -8% -4%;
  background:url(../img/topo-night.svg) center/cover no-repeat;
  opacity:.85; will-change:transform;
}
.hero__glow{
  position:absolute; width:82vw; height:82vw; max-width:1100px; max-height:1100px;
  right:-18vw; top:-22vw; border-radius:50%;
  background:radial-gradient(circle,rgba(155,197,61,.17),rgba(155,197,61,.05) 42%,transparent 68%);
  filter:blur(6px);
}
.hero__warm{
  position:absolute; width:60vw; height:60vw; left:-14vw; bottom:-30vw; border-radius:50%;
  background:radial-gradient(circle,rgba(224,164,74,.13),transparent 66%);
}
.hero__vig{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg,rgba(8,18,14,.72) 0%,rgba(8,18,14,.16) 34%,rgba(8,18,14,.34) 74%,rgba(8,18,14,.94) 100%),
    linear-gradient(100deg,rgba(8,18,14,.90) 0%,rgba(8,18,14,.44) 46%,transparent 74%);
}
.hero__in{position:relative; z-index:2; width:100%}

.hero h1{
  font-family:var(--serif); font-weight:500;
  font-size:var(--t-hero); line-height:1.14; letter-spacing:-.018em;
  margin:28px 0 0;
}
.hero h1 .ln{display:block; overflow:hidden; padding-bottom:.06em}
.hero h1 .ln > span{display:block; transform:translateY(115%); animation:riseUp 1.05s var(--ease-out) forwards}
.hero h1 .ln:nth-child(1) > span{animation-delay:.08s}
.hero h1 .ln:nth-child(2) > span{animation-delay:.20s}
.hero h1 .ln:nth-child(3) > span{animation-delay:.32s}
@keyframes riseUp{to{transform:translateY(0)}}
.hero h1 em{font-style:normal; color:var(--glow); position:relative; display:inline-block; z-index:0}
.hero h1 em::after{
  content:""; position:absolute; left:-.02em; right:-.02em; bottom:.12em; height:.28em;
  background:linear-gradient(90deg,rgba(155,197,61,.55),rgba(155,197,61,.08));
  transform:scaleX(0); transform-origin:left; animation:swipe 1s var(--ease-out) .95s forwards;
  z-index:-1;
}
@keyframes swipe{to{transform:scaleX(1)}}

.hero__sub{
  margin-top:32px; max-width:56ch; font-size:var(--t-lead); line-height:1.85;
  color:rgba(246,243,234,.76);
  opacity:0; animation:fadeUp .8s var(--ease-out) .55s forwards;
}
.hero__sub strong{color:var(--paper); font-weight:500}
.hero__act{
  margin-top:42px; display:flex; flex-wrap:wrap; gap:14px;
  opacity:0; animation:fadeUp .8s var(--ease-out) .72s forwards;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)}}

/* 首屏底部事实条 */
.hero__facts{
  margin-top:clamp(56px,8vw,96px); padding-top:26px; border-top:1px solid var(--line-dk);
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  opacity:0; animation:fadeUp .9s var(--ease-out) .88s forwards;
}
.hero__facts > div{padding-right:20px; border-right:1px solid var(--line-dk-2)}
.hero__facts > div:last-child{border-right:0}
.hero__facts .n{
  font-family:var(--mono); font-size:clamp(26px,3.1vw,40px); font-weight:500;
  color:var(--glow); line-height:1.1; letter-spacing:-.02em;
  display:flex; align-items:baseline; gap:3px;
}
.hero__facts .n small{font-size:.44em; letter-spacing:.04em; opacity:.72; font-weight:400}
.hero__facts .n--cn{font-family:var(--serif); font-size:clamp(23px,2.6vw,34px); font-weight:500; letter-spacing:.02em}
.hero__facts .l{font-size:12.5px; color:rgba(246,243,234,.56); margin-top:9px; line-height:1.6}

.scroll-hint{
  position:absolute; left:50%; bottom:22px; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.24em;
  color:rgba(246,243,234,.42); text-transform:uppercase;
}
.scroll-hint i{display:block; width:1px; height:38px; background:linear-gradient(180deg,var(--life),transparent);
  animation:drop 2.2s var(--ease) infinite}
@keyframes drop{0%{transform:scaleY(.2);transform-origin:top;opacity:0}
  40%{transform:scaleY(1);opacity:1} 100%{transform:scaleY(1);transform-origin:bottom;opacity:0}}


/* ============ 摄影图位（有图即显，无图自动隐藏） ============ */
.hero__photo{
  position:absolute; right:0; top:0; width:54%; height:100%; overflow:hidden; z-index:1;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 34%,#000 62%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 34%,#000 62%);
}
.hero__photo img{
  width:100%; height:100%; object-fit:cover; object-position:center 28%;
  opacity:.60; filter:saturate(.86) contrast(1.04);
}
.shero__photo{
  position:absolute; inset:0; z-index:1; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 58%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 58%);
}
.shero__photo img{
  width:100%; height:100%; object-fit:cover; object-position:center 32%;
  opacity:.52; filter:saturate(.82) contrast(1.05);
}
@media(max-width:820px){
  .hero__photo,.shero__photo{width:100%; inset:0;
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.25));
    mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.25));}
  .hero__photo img{opacity:.40;object-position:72% 34%}
  .shero__photo img{opacity:.36;object-position:66% 34%}
}

/* ============ 一句话段 ============ */
.torn{padding:clamp(64px,8vw,120px) 0; background:var(--paper-2); position:relative; overflow:hidden}
.torn__q{
  font-family:var(--serif); font-size:clamp(24px,3.4vw,46px); line-height:1.5;
  font-weight:400; letter-spacing:-.01em; max-width:24ch;
}
.torn__q b{font-weight:500; color:var(--forest); position:relative; z-index:0;
  box-shadow:inset 0 -.30em 0 rgba(155,197,61,.42)}
.torn__q b::after{content:""; position:absolute; left:0; right:0; bottom:.02em; height:.36em;
  background:rgba(155,197,61,.34); z-index:-1}
.torn__meta{
  margin-top:30px; font-family:var(--mono); font-size:11.5px; letter-spacing:.14em;
  color:var(--muted); text-transform:uppercase;
}

/* ============ 五扇门 ============ */
.doors{padding:var(--sec) 0 clamp(60px,7vw,96px); background:var(--paper); position:relative}
.doors__head{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap; margin-bottom:clamp(38px,5vw,64px)}
.doors__head h2{
  font-family:var(--serif); font-size:var(--t-h2); font-weight:500; line-height:1.26;
  max-width:15em; letter-spacing:-.01em; margin-top:18px;
}
.doors__hint{font-size:13.5px; color:var(--muted); max-width:30ch; line-height:1.75;
  padding-left:18px; border-left:1px solid var(--line)}

.door-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(10px,1.4vw,18px)}
.door{
  position:relative; grid-column:span 2;
  background:var(--white); border:1px solid var(--line);
  padding:clamp(22px,2.6vw,34px) clamp(20px,2.4vw,30px) clamp(20px,2.2vw,28px);
  display:flex; flex-direction:column; min-height:clamp(280px,30vw,340px);
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease), border-color .4s, background .5s;
  overflow:hidden;
}
.door:nth-child(4),.door:nth-child(5){grid-column:span 3}
.door::before{
  content:""; position:absolute; inset:0 0 auto 0; height:2px; background:var(--life);
  transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease-out);
}
.door:hover{transform:translateY(-6px); box-shadow:0 22px 48px -28px rgba(17,28,22,.42); border-color:transparent; background:var(--white)}
.door:hover::before{transform:scaleX(1)}
.door__no{
  font-family:var(--mono); font-size:10px; letter-spacing:.2em; color:var(--muted-2);
  display:flex; align-items:center; justify-content:space-between;
}
.door__icon{
  width:40px; height:40px; margin:18px 0 16px; color:var(--forest);
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:50%; transition:all .5s var(--ease-out);
}
.door:hover .door__icon{background:var(--forest); color:var(--glow); border-color:var(--forest); transform:rotate(-6deg) scale(1.05)}
.door__icon .ic{width:22px; height:22px}
.door__who{
  font-family:var(--mono); font-size:11px; letter-spacing:.16em; color:var(--moss);
  text-transform:uppercase; margin-bottom:10px;
}
.door__q{
  font-family:var(--serif); font-size:clamp(18px,1.9vw,22px); line-height:1.6;
  font-weight:500; letter-spacing:-.005em; color:var(--ink); margin-bottom:auto;
}
.door__q span{color:var(--muted); font-weight:400; display:block; margin-top:4px; font-size:.84em; font-family:var(--sans)}
.door__go{
  margin-top:24px; display:flex; align-items:center; gap:9px;
  font-size:13px; color:var(--forest); padding-top:16px; border-top:1px solid var(--line-2);
  transition:gap .4s var(--ease-out), color .3s;
}
.door:hover .door__go{gap:15px}

/* ============ 旅程曲线 ============ */
.journey{position:relative}
.journey__head{max-width:820px; margin-bottom:clamp(36px,4.5vw,58px)}
.journey__head h2{
  font-family:var(--serif); font-size:var(--t-h2); font-weight:500; line-height:1.28;
  margin:18px 0 20px; letter-spacing:-.01em;
}
.curve-wrap{
  position:relative; background:var(--white); border:1px solid var(--line);
  padding:clamp(24px,3.4vw,46px) clamp(20px,3vw,40px) clamp(18px,2.4vw,26px);
  margin-bottom:clamp(30px,4vw,54px); overflow:hidden;
}
.curve-wrap::after{
  content:""; position:absolute; right:-60px; top:-60px; width:220px; height:220px;
  border-radius:50%; background:radial-gradient(circle,rgba(155,197,61,.10),transparent 70%);
}
.curve-legend{display:flex; gap:clamp(14px,2.4vw,30px); flex-wrap:wrap; margin-bottom:18px;
  font-family:var(--mono); font-size:10px; letter-spacing:.14em; color:var(--muted-2); text-transform:uppercase}
.curve-legend i{display:inline-block; width:22px; height:2px; vertical-align:middle; margin-right:7px}
.curve-svg{width:100%; height:clamp(190px,24vw,300px); display:block; overflow:visible}
.curve-svg .axis{stroke:var(--line); stroke-width:1}
.curve-svg .gl{stroke:var(--line-2); stroke-width:1; stroke-dasharray:2 5}
.curve-svg .line{fill:none; stroke:url(#cgrad); stroke-width:3; stroke-linecap:round;
  stroke-dasharray:var(--len); stroke-dashoffset:var(--len);
  transition:stroke-dashoffset 2.2s var(--ease-out) .2s}
.curve-svg.in .line{stroke-dashoffset:0}
.curve-svg .area{fill:url(#cgrad-area); opacity:0; transition:opacity 1.2s ease 1.1s}
.curve-svg .motline{stroke:rgba(155,197,61,.5); stroke-width:1; stroke-dasharray:3 4}
.curve-svg.in .area{opacity:1}
.curve-svg .pt{fill:var(--white); stroke:var(--moss); stroke-width:2; opacity:0; transition:opacity .5s ease}
.curve-svg.in .pt{opacity:1}
.curve-svg .pt--mot{fill:var(--glow); stroke:var(--forest); stroke-width:2.6}
.curve-svg .pt-label{font-family:var(--mono); font-size:9.5px; fill:var(--muted); letter-spacing:.06em}
.curve-svg .pt-label--mot{fill:var(--forest); font-weight:600}
.curve-note{
  margin-top:14px; padding-top:14px; border-top:1px solid var(--line-2);
  display:flex; gap:10px; font-size:12.5px; color:var(--muted); line-height:1.7;
}
.curve-note .ic{color:var(--forest); margin-top:3px}

/* ============ 一天时间轴 ============ */
.daytl{position:relative; margin-top:clamp(8px,1.5vw,16px)}
.daytl__rail{position:absolute; left:clamp(58px,7vw,86px); top:8px; bottom:8px; width:1px;
  background:linear-gradient(180deg,transparent,var(--line) 6%,var(--line) 94%,transparent)}
.day{
  display:grid; grid-template-columns:clamp(54px,6.2vw,76px) 24px 1fr;
  gap:0; padding:0 0 clamp(15px,1.75vw,23px); position:relative;
}
.day:last-child{padding-bottom:0}
.day__t{
  font-family:var(--mono); font-size:12px; color:var(--muted); letter-spacing:.01em;
  padding-top:2px; text-align:right; white-space:nowrap;
}
.day__dot{display:flex; justify-content:center; padding-top:6px; position:relative; z-index:1}
.day__dot i{
  width:9px; height:9px; border-radius:50%; background:var(--paper);
  border:1.5px solid var(--moss); display:block; transition:all .4s var(--ease-out);
}
.day--flat .day__dot i{border-color:var(--muted-2); background:var(--muted-2); transform:scale(.72)}
.day--mot .day__dot i{background:var(--glow); border-color:var(--forest); width:13px; height:13px; box-shadow:0 0 0 5px rgba(155,197,61,.24)}
.day__body{padding-left:clamp(14px,2vw,26px)}
.day__body h4{
  font-family:var(--sans); font-size:clamp(15px,1.55vw,17px); font-weight:600;
  line-height:1.5; margin-bottom:3px;
}
.day__body p{font-size:14px; line-height:1.72; color:var(--muted); max-width:58ch}
.day--mot .day__body{
  background:linear-gradient(90deg,rgba(155,197,61,.11),rgba(155,197,61,.01));
  border-left:2px solid var(--life); padding:11px 16px 12px;
  margin-left:calc(clamp(14px,2vw,26px) * -1);
}
.day--mot .day__body h4{color:var(--forest)}
.day--mot .day__body p{color:var(--ink-2)}
.mot-tag{
  display:inline-flex; align-items:center; gap:6px; margin-bottom:8px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--forest); background:rgba(155,197,61,.24); padding:3px 9px; border-radius:100px;
}


/* ============ 主语对齐图 ============ */
.align-map{
  display:grid; grid-template-columns:1.3fr 54px .7fr; align-items:center;
  gap:clamp(16px,3vw,40px); margin-top:clamp(36px,4.5vw,58px);
}
.align-list li{
  display:grid; grid-template-columns:minmax(60px,84px) 1fr; gap:14px;
  padding:clamp(11px,1.4vw,15px) 0; border-bottom:1px solid var(--line-dk-2); align-items:baseline;
}
.align-list li:last-child{border-bottom:0}
.align-list span{
  font-family:var(--sans); font-size:12px; letter-spacing:.02em;
  color:var(--life); font-weight:500;
}
.align-list p{
  font-family:var(--serif); font-size:clamp(14.5px,1.55vw,17.5px);
  color:rgba(246,243,234,.86); line-height:1.55;
}
.align-arrow{display:flex; justify-content:center; color:rgba(201,226,101,.45)}
.align-result{
  font-family:var(--serif); font-size:clamp(26px,3.6vw,46px); line-height:1.22;
  color:var(--glow); font-weight:500; letter-spacing:-.01em;
}
.align-result em{display:block; font-style:normal}
.align-result small{
  display:block; margin-top:16px; font-family:var(--mono); font-size:10px;
  letter-spacing:.2em; color:rgba(246,243,234,.36); text-transform:uppercase;
}
.align-note{
  margin-top:clamp(28px,3.6vw,44px); font-size:14px; line-height:1.8;
  color:rgba(246,243,234,.62); max-width:52ch;
}
@media(max-width:840px){
  .align-map{grid-template-columns:1fr; gap:18px}
  .align-arrow{justify-content:flex-start; transform:rotate(90deg); padding-left:6px}
  .align-result small{margin-top:10px}
}
.hero__src{margin-top:14px; font-size:10.5px; color:rgba(246,243,234,.30); letter-spacing:.02em}
.hero__src a{border-bottom:1px solid rgba(246,243,234,.22); padding-bottom:1px}
.hero__src a:hover{color:rgba(246,243,234,.6)}


/* ============ 决定性时刻 ============ */
.mot-block{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(24px,4vw,64px);
  align-items:start; margin-top:clamp(30px,4vw,50px);
}
.mot-time{
  font-family:var(--mono); font-size:clamp(52px,8.5vw,118px); line-height:.9;
  letter-spacing:-.05em; color:var(--glow); opacity:.92;
  border-left:2px solid var(--life); padding-left:clamp(16px,2vw,26px);
}
.mot-q{
  font-family:var(--serif); font-size:clamp(22px,3.2vw,42px); line-height:1.45;
  font-weight:500; letter-spacing:-.01em; color:var(--paper); max-width:24ch;
}
.mot-p{
  margin-top:clamp(18px,2.4vw,28px); font-size:var(--t-lead); line-height:1.8;
  color:rgba(246,243,234,.66); max-width:46ch;
}
.mot-close{
  margin-top:clamp(22px,3vw,34px); padding-top:clamp(18px,2.2vw,26px);
  border-top:1px solid var(--line-dk); font-family:var(--serif);
  font-size:clamp(16px,1.9vw,21px); line-height:1.6; color:var(--life);
  max-width:44ch; font-weight:500;
}
@media(max-width:720px){
  .mot-block{grid-template-columns:1fr; gap:16px}
  .mot-time{font-size:56px; border-left:0; padding-left:0}
}

/* ============ 场景页：双栏说明 ============ */
.duo{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(26px,4.5vw,64px); align-items:start}
.duo--rev{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
@media(max-width:900px){.duo,.duo--rev{grid-template-columns:1fr}}
.sticky{position:sticky; top:96px}
@media(max-width:900px){.sticky{position:static}}

/* ============ 小标题块 ============ */
.blk + .blk{margin-top:clamp(40px,5vw,68px)}
.blk h3{
  font-family:var(--serif); font-size:clamp(19px,2.1vw,25px); font-weight:500;
  line-height:1.5; margin-bottom:12px;
}
.blk p{font-size:15px; line-height:1.85; color:var(--muted)}
.on-night .blk p{color:rgba(246,243,234,.68)}

/* ============ 清单 ============ */
.checklist{display:grid; gap:12px}
.checklist li{display:flex; gap:12px; font-size:14.5px; line-height:1.75; color:var(--ink-2)}
.checklist li .ic{width:17px; height:17px; color:var(--forest); margin-top:4px; flex:none}
.on-night .checklist li{color:rgba(246,243,234,.78)}
.on-night .checklist li .ic{color:var(--life)}

/* ============ 脚注 ============ */
.footnote{
  margin-top:clamp(20px,2.6vw,30px); padding-left:18px;
  border-left:1px solid var(--line); font-size:12.5px; line-height:1.8;
  color:var(--muted); max-width:74ch;
}
.on-night .footnote{border-color:var(--line-dk); color:rgba(246,243,234,.5)}

/* ============ 场景页收尾 ============ */
.scene-end{padding:clamp(60px,7vw,96px) 0}


/* ============ 交付台账 ============ */
.ledger{margin-top:clamp(32px,4vw,50px); border-top:1px solid var(--line)}
.ledger__head,.ledger__row{
  display:grid; grid-template-columns:40px minmax(0,1.5fr) 132px minmax(0,1.4fr);
  gap:clamp(12px,2vw,24px); align-items:baseline;
}
.ledger__head{
  padding:11px 0; border-bottom:1px solid var(--line);
  font-family:var(--mono); font-size:9.5px; letter-spacing:.16em;
  color:var(--muted-2); text-transform:uppercase;
}
.ledger__row{
  padding:clamp(12px,1.5vw,17px) 0; border-bottom:1px solid var(--line-2);
  transition:background .3s var(--ease);
}
.ledger__row:hover{background:rgba(155,197,61,.06)}
.ledger__n{font-family:var(--mono); font-size:11px; color:var(--muted-2)}
.ledger__t{font-size:14.5px; font-weight:500; line-height:1.6; color:var(--ink)}
.ledger__d{font-size:13px; line-height:1.7; color:var(--muted)}
@media(max-width:840px){
  .ledger__head{display:none}
  .ledger__row{grid-template-columns:34px 1fr; row-gap:8px; padding:16px 0}
  .ledger__t{grid-column:2}
  .ledger__row > span:nth-child(3){grid-column:2; margin-top:2px}
  .ledger__d{grid-column:2; padding-left:0}
}

/* ============ 案例 ============ */
.cases{margin-top:clamp(36px,4.5vw,58px)}
.case{
  display:grid; grid-template-columns:minmax(140px,190px) 1fr;
  gap:clamp(22px,4vw,56px); padding:clamp(30px,4vw,50px) 0;
  border-bottom:1px solid var(--line-dk);
}
.case:first-child{padding-top:0}
.case:last-child{border-bottom:0; padding-bottom:0}
.case__no{font-family:var(--mono); font-size:11px; letter-spacing:.18em; color:rgba(246,243,234,.36)}
.case__tag{font-family:var(--serif); font-size:clamp(17px,1.9vw,21px); color:var(--glow); margin:10px 0 6px}
.case__year{font-family:var(--mono); font-size:11px; color:rgba(246,243,234,.4); margin-bottom:14px}
.case__body h3{
  font-family:var(--serif); font-size:clamp(19px,2.3vw,27px); font-weight:500;
  line-height:1.45; margin-bottom:14px;
}
.case__body p{font-size:14.5px; line-height:1.85; color:rgba(246,243,234,.66); max-width:60ch}
.case__nums{
  display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,52px);
  margin:22px 0; padding:18px 0; border-top:1px solid var(--line-dk-2); border-bottom:1px solid var(--line-dk-2);
}
.case__nums dt{font-family:var(--mono); font-size:clamp(21px,2.5vw,30px); color:var(--glow); line-height:1.1}
.case__nums dt small{font-size:.42em; margin-left:2px; opacity:.75}
.case__nums dd{margin:4px 0 0; font-size:12px; color:rgba(246,243,234,.46)}
.case__extra{font-size:13px !important; color:rgba(246,243,234,.44) !important; padding-left:17px; border-left:1px solid rgba(201,226,101,.3)}
@media(max-width:760px){
  .case{grid-template-columns:1fr; gap:18px}
  .case__tag{margin-top:6px}
}

/* ============ 数据来源 ============ */
.src{margin-top:clamp(32px,4vw,50px); border-top:1px solid var(--line)}
.src__row{
  display:grid; grid-template-columns:minmax(120px,180px) 1fr;
  gap:clamp(18px,3vw,40px); padding:clamp(18px,2.4vw,26px) 0;
  border-bottom:1px solid var(--line-2); align-items:baseline;
}
.src__v{
  font-family:var(--mono); font-size:clamp(18px,2.2vw,26px); line-height:1.2;
  color:var(--forest); letter-spacing:-.01em;
}
.src__d p{font-size:14.5px; line-height:1.7; color:var(--ink-2); margin-bottom:9px}
.src__s{display:block; margin-top:9px; font-size:12.5px; line-height:1.75; color:var(--muted)}
@media(max-width:680px){
  .src__row{grid-template-columns:1fr; gap:8px}
}


/* ============ 90 天路线 ============ */
.track{
  position:relative; display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,2.6vw,34px); margin-top:clamp(38px,5vw,60px);
}
.track__bar{position:absolute; left:6px; right:6px; top:7px; height:1px;
  background:linear-gradient(90deg,var(--moss),rgba(155,197,61,.35))}
.track__dot{position:relative; z-index:1; margin-bottom:clamp(16px,2vw,24px)}
.track__dot i{display:block; width:15px; height:15px; border-radius:50%;
  background:var(--paper-2); border:1.5px solid var(--moss);
  box-shadow:0 0 0 4px var(--paper-2)}
.track__step:first-of-type .track__dot i{background:var(--forest); border-color:var(--forest)}
.track__wk{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em;
  color:var(--moss); text-transform:uppercase; margin-bottom:9px}
.track__step h4{font-family:var(--serif); font-size:clamp(17px,1.9vw,21px);
  font-weight:500; line-height:1.45; margin-bottom:9px}
.track__step p{font-size:13.5px; line-height:1.8; color:var(--muted)}
.track__out{display:inline-block; margin-top:14px; font-family:var(--mono);
  font-size:10px; letter-spacing:.12em; color:var(--forest);
  background:rgba(155,197,61,.16); padding:4px 9px; border-radius:100px}
@media(max-width:860px){
  .track{grid-template-columns:1fr; gap:0}
  .track__bar{left:7px; right:auto; top:6px; bottom:10px; width:1px; height:auto;
    background:linear-gradient(180deg,rgba(155,197,61,.5),rgba(155,197,61,.1))}
  .track__step{display:grid; grid-template-columns:22px 1fr; column-gap:14px;
    padding-bottom:26px}
  .track__dot{grid-row:1/span 5; margin-bottom:0; padding-top:2px}
  .track__step > *:not(.track__dot){grid-column:2}
}

/* ============ 三件事 ============ */
.give{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line)}
.give__item{
  padding:clamp(26px,3.2vw,42px) clamp(20px,2.6vw,34px) clamp(28px,3.4vw,44px);
  border-right:1px solid var(--line); position:relative; transition:background .45s;
}
.give__item:last-child{border-right:0}
.give__item:hover{background:rgba(155,197,61,.05)}
.on-night .give{border-color:var(--line-dk)}
.on-night .give__item{border-right-color:var(--line-dk)}
.give__ic{
  width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--forest); color:var(--glow); margin-bottom:20px;
}
.on-night .give__ic{background:rgba(201,226,101,.14); color:var(--glow)}
.give__ic .ic{width:24px; height:24px}
.give__item h3{
  font-family:var(--serif); font-size:var(--t-h3); font-weight:500; line-height:1.45; margin-bottom:10px;
}
.give__item p{font-size:14.5px; line-height:1.85; color:var(--muted)}
.on-night .give__item p{color:rgba(246,243,234,.66)}
.give-coda{
  margin-top:clamp(30px,3.6vw,44px); padding-top:clamp(22px,2.6vw,30px);
  border-top:1px solid var(--line); font-family:var(--serif);
  font-size:clamp(17px,2vw,22px); line-height:1.6; color:var(--forest); font-weight:500;
}
.give__no{position:absolute; top:clamp(20px,2.4vw,30px); right:clamp(18px,2vw,26px);
  font-family:var(--mono); font-size:10px; color:var(--muted-2); letter-spacing:.14em}

/* ============ 数字组 ============ */
.figs{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line)}
.on-night .figs{background:var(--line-dk); border-color:var(--line-dk)}
.fig{background:var(--white); padding:clamp(24px,3vw,40px) clamp(20px,2.6vw,32px)}
.on-night .fig{background:var(--night)}
.fig .v{
  font-family:var(--mono); font-size:clamp(34px,4.6vw,58px); line-height:1;
  letter-spacing:-.03em; color:var(--forest); font-weight:500;
  display:flex; align-items:baseline; gap:2px;
}
.on-night .fig .v{color:var(--glow)}
.fig .v small{font-size:.36em; letter-spacing:.02em; opacity:.7; font-weight:400}
.fig .k{font-size:13.5px; color:var(--ink-2); margin-top:14px; font-weight:500; line-height:1.6}
.on-night .fig .k{color:rgba(246,243,234,.86)}
.fig .s{font-family:var(--mono); font-size:10px; letter-spacing:.12em; color:var(--muted-2); margin-top:8px; text-transform:uppercase}

/* ============ 边界（不做什么） ============ */
.edge{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2.6vw,34px)}
.edge__i{display:flex; gap:16px; padding:clamp(20px,2.4vw,28px);
  border:1px solid var(--line-dk); background:rgba(246,243,234,.03)}
.edge__i .ic{width:19px; height:19px; color:var(--life); margin-top:4px; flex:none}
.edge__i h4{font-family:var(--sans); font-size:15.5px; font-weight:600; margin-bottom:6px}
.edge__i p{font-size:13.5px; line-height:1.75; color:rgba(246,243,234,.62)}

/* ============ 证据标签 ============ */
.tier{
  display:inline-flex; align-items:center; gap:6px; font-family:var(--mono);
  font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  padding:3.5px 10px; border-radius:100px; white-space:nowrap; vertical-align:middle;
}
.tier--a{background:rgba(21,94,60,.12); color:#12603C; border:1px solid rgba(21,94,60,.22)}
.tier--b{background:rgba(224,164,74,.14); color:#8A5C12; border:1px solid rgba(224,164,74,.28)}
.tier--c{background:rgba(95,111,102,.10); color:var(--muted); border:1px solid rgba(95,111,102,.20)}
.on-night .tier--a{background:rgba(201,226,101,.14); color:var(--glow); border-color:rgba(201,226,101,.28)}
.on-night .tier--b{background:rgba(224,164,74,.16); color:var(--amber); border-color:rgba(224,164,74,.3)}
.on-night .tier--c{background:rgba(246,243,234,.07); color:rgba(246,243,234,.6); border-color:rgba(246,243,234,.16)}

/* ============ 场景页首屏 ============ */
.shero{
  position:relative; padding:clamp(130px,15vw,190px) 0 clamp(56px,7vw,90px);
  background:var(--night); color:var(--paper); overflow:hidden;
}
.shero__bg{position:absolute; inset:-10% -4%; background:url(../img/topo-night.svg) center/cover no-repeat;
  opacity:.55; z-index:0}
.shero__glow{position:absolute; width:70vw; height:70vw; max-width:900px; max-height:900px;
  right:-24vw; top:-26vw; border-radius:50%;
  background:radial-gradient(circle,rgba(155,197,61,.16),transparent 66%); z-index:0}
.shero__vig{position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg,rgba(8,18,14,.55),rgba(8,18,14,.18) 40%,rgba(8,18,14,.92))}
.shero__in{position:relative; z-index:2}
.shero h1{
  font-family:var(--serif); font-size:var(--t-h1); font-weight:500;
  line-height:1.20; letter-spacing:-.015em; margin:26px 0 0;
  max-width:min(94%, 17em);
}
.shero h1 em{font-style:normal; color:var(--glow)}
.shero__sub{
  margin-top:28px; max-width:60ch; font-size:var(--t-lead); line-height:1.8;
  color:rgba(246,243,234,.74);
}
.shero__facts{
  margin-top:clamp(40px,5vw,62px); padding-top:24px; border-top:1px solid var(--line-dk);
  display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,64px);
}
.shero__facts div .n{font-family:var(--mono); font-size:clamp(22px,2.6vw,32px); color:var(--glow); line-height:1.15}
.shero__facts div .l{font-size:12px; color:rgba(246,243,234,.52); margin-top:6px; letter-spacing:.02em}
.crumb{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(246,243,234,.44); display:flex; gap:9px; align-items:center; flex-wrap:wrap;
}
.crumb a:hover{color:var(--glow)}
.crumb i{opacity:.4; font-style:normal}

/* ============ 标签栏 ============ */
.tabbar{
  display:flex; gap:6px; overflow-x:auto; padding:4px; border:1px solid var(--line);
  border-radius:100px; background:rgba(255,255,255,.55); width:fit-content; max-width:100%;
  scrollbar-width:none;
}
.tabbar::-webkit-scrollbar{display:none}
.tabbar button{
  padding:9px 18px; border-radius:100px; font-size:13px; white-space:nowrap;
  color:var(--muted); transition:all .35s var(--ease);
}
.tabbar button[aria-selected=true]{background:var(--forest); color:var(--paper)}
.tabbar button:hover:not([aria-selected=true]){color:var(--ink); background:rgba(17,28,22,.05)}

/* ============ 工具面板 ============ */
.tool{display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:clamp(24px,4vw,56px); align-items:start}
.form-panel{border:1px solid var(--line); padding:clamp(24px,3vw,36px); background:rgba(255,255,255,.66)}
.field{margin-bottom:22px}
.field > label{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); margin-bottom:10px}
.opts{display:flex; flex-wrap:wrap; gap:7px}
.opts button{
  padding:9px 15px; font-size:13px; border:1px solid var(--line); border-radius:100px;
  transition:all .3s var(--ease); background:rgba(255,255,255,.65);
}
.opts button:hover{border-color:var(--moss)}
.opts button[aria-pressed=true]{background:var(--forest); border-color:var(--forest); color:var(--paper)}
.range-row{display:flex; align-items:center; gap:14px}
input[type=range]{
  -webkit-appearance:none; appearance:none; flex:1; height:2px; background:var(--line); border-radius:2px; outline:none;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:18px; height:18px; border-radius:50%;
  background:var(--forest); border:3px solid var(--paper); box-shadow:0 0 0 1px var(--forest); cursor:pointer;
}
input[type=range]::-moz-range-thumb{
  width:14px; height:14px; border-radius:50%; background:var(--forest);
  border:3px solid var(--paper); box-shadow:0 0 0 1px var(--forest); cursor:pointer;
}
.range-val{font-family:var(--mono); font-size:15px; min-width:66px; text-align:right; color:var(--forest)}

.out{
  background:var(--night); color:var(--paper); padding:clamp(26px,3.4vw,42px);
  position:relative; overflow:hidden;
}
.out::before{content:""; position:absolute; right:-80px; top:-80px; width:250px; height:250px;
  border-radius:50%; background:radial-gradient(circle,rgba(155,197,61,.14),transparent 70%)}
.out__head{display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding-bottom:16px; border-bottom:1px solid var(--line-dk); margin-bottom:22px}
.out__head span{font-family:var(--mono); font-size:10px; letter-spacing:.18em; color:var(--glow); text-transform:uppercase}
.out h3{font-family:var(--serif); font-size:clamp(19px,2.1vw,26px); line-height:1.45; margin-bottom:8px; font-weight:500}
.out .sub{font-size:12.5px; color:rgba(246,243,234,.5); font-family:var(--mono); letter-spacing:.06em}
.out__row{display:grid; grid-template-columns:78px 1fr; gap:14px; padding:13px 0;
  border-bottom:1px solid var(--line-dk-2)}
.out__row:last-of-type{border-bottom:0}
.out__k{font-family:var(--mono); font-size:10px; letter-spacing:.12em; color:rgba(246,243,234,.42);
  text-transform:uppercase; padding-top:3px}
.out__v{font-size:14px; line-height:1.72; color:rgba(246,243,234,.88)}
.out__v ul{display:flex; flex-direction:column; gap:5px}
.out__v li{position:relative; padding-left:14px}
.out__v li::before{content:""; position:absolute; left:0; top:.66em; width:5px; height:1px; background:var(--life)}
.kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dk);
  border:1px solid var(--line-dk); margin-top:18px}
.kpis div{background:var(--night); padding:14px 12px}
.kpis .v{font-family:var(--mono); font-size:clamp(18px,2vw,23px); color:var(--glow); line-height:1.2}
.kpis .l{font-size:10.5px; color:rgba(246,243,234,.5); margin-top:5px; line-height:1.5}

/* ============ 卡片网格 ============ */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line)}
.card{background:var(--white); padding:clamp(24px,2.8vw,34px); transition:background .4s}
.card:hover{background:#fff}
.card h3{font-family:var(--serif); font-size:var(--t-h3); line-height:1.45; margin-bottom:10px; font-weight:500}
.card p{font-size:14px; line-height:1.8; color:var(--muted)}
.card .tag{font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; color:var(--moss);
  text-transform:uppercase; display:block; margin-bottom:12px}

/* ============ 引用块 ============ */
.pull{
  font-family:var(--serif); font-size:clamp(21px,2.8vw,34px); line-height:1.55;
  font-weight:500; letter-spacing:-.01em; max-width:26ch;
  padding-left:clamp(20px,3vw,34px); border-left:2px solid var(--life);
}
.pull cite{display:block; font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  color:var(--muted); font-style:normal; margin-top:22px; text-transform:uppercase}
.on-night .pull cite{color:rgba(246,243,234,.44)}

/* ============ 一页纸 ============ */
.sheet{background:#fff; border:1px solid var(--line); padding:clamp(28px,4vw,52px);
  box-shadow:0 24px 60px -40px rgba(17,28,22,.34); position:relative}
.sheet__head{display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  padding-bottom:20px; border-bottom:2px solid var(--ink); margin-bottom:24px}
.sheet__head h3{font-family:var(--serif); font-size:clamp(20px,2.3vw,28px); line-height:1.35; font-weight:500}
.sheet__meta{font-family:var(--mono); font-size:10px; letter-spacing:.14em; color:var(--muted-2);
  text-align:right; line-height:1.9; text-transform:uppercase; flex:none}
.sheet__grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0}
.sheet__cell{padding:16px 0; border-bottom:1px solid var(--line-2)}
.sheet__cell:nth-child(odd){padding-right:24px; border-right:1px solid var(--line-2)}
.sheet__cell:nth-child(even){padding-left:24px}
.sheet__cell dt{font-family:var(--mono); font-size:10px; letter-spacing:.14em; color:var(--muted-2);
  text-transform:uppercase; margin-bottom:6px}
.sheet__cell dd{margin:0; font-size:14px; line-height:1.72; color:var(--ink-2)}

/* ============ 步骤 ============ */
.steps{display:grid; gap:0; counter-reset:s}
.step{display:grid; grid-template-columns:56px 1fr; gap:20px; padding:clamp(20px,2.4vw,28px) 0;
  border-bottom:1px solid var(--line); counter-increment:s; align-items:start}
.step:last-child{border-bottom:0}
.step::before{
  content:counter(s,decimal-leading-zero);
  font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--moss);
  padding-top:4px;
}
.step h4{font-family:var(--sans); font-size:16.5px; font-weight:600; margin-bottom:7px; line-height:1.5}
.step p{font-size:14px; line-height:1.8; color:var(--muted)}
.on-night .step{border-color:var(--line-dk)}
.on-night .step p{color:rgba(246,243,234,.62)}

/* ============ 收尾 ============ */
.endnote{
  position:relative; background:var(--night); color:var(--paper); overflow:hidden;
  padding:clamp(84px,11vw,150px) 0 clamp(70px,9vw,110px);
}
.endnote__bg{position:absolute; inset:-20% -5%; background:url(../img/topo-night.svg) center/cover;
  opacity:.42; z-index:0}
.endnote__vig{position:absolute; inset:0; z-index:0;
  background:radial-gradient(62% 70% at 30% 40%,rgba(8,18,14,.30),rgba(8,18,14,.95))}
.endnote__in{position:relative; z-index:2}
.endnote h2{
  font-family:var(--serif); font-size:clamp(28px,4.2vw,56px); line-height:1.24;
  font-weight:500; letter-spacing:-.015em; max-width:20ch;
}
.endnote h2 em{font-style:normal; color:var(--glow)}
.endnote__body{margin-top:28px; max-width:52ch; font-size:var(--t-lead); line-height:1.85;
  color:rgba(246,243,234,.72)}
.endnote__act{margin-top:38px; display:flex; flex-wrap:wrap; gap:14px}
.endnote__fine{margin-top:44px; padding-top:22px; border-top:1px solid var(--line-dk);
  font-size:12.5px; color:rgba(246,243,234,.42); line-height:1.9; max-width:64ch}

/* ============ 页脚 ============ */
.foot{background:#06100C; color:rgba(246,243,234,.56); padding:clamp(48px,6vw,74px) 0 34px; font-size:13px}
.foot__top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:clamp(24px,4vw,48px);
  padding-bottom:38px; border-bottom:1px solid var(--line-dk-2)}
.foot__brand{display:flex; align-items:center; gap:10px; color:var(--paper);
  font-family:var(--serif); font-size:17.5px; font-weight:500; margin-bottom:14px}
.foot__desc{line-height:1.85; max-width:34ch; font-size:12.5px}
.foot h5{font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(246,243,234,.34); margin-bottom:14px; font-weight:400}
.foot ul{display:flex; flex-direction:column; gap:9px}
.foot ul a:hover{color:var(--glow)}
.foot__bot{padding-top:26px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;
  font-size:11.5px; color:rgba(246,243,234,.34); line-height:1.9}
.foot__bot a:hover{color:rgba(246,243,234,.7)}
.foot__bot span{display:block}
.src__link{display:inline-block;margin-left:.6em;color:var(--forest);border-bottom:1px solid rgba(20,48,31,.35);line-height:1.4}
.src__link:hover{color:var(--life);border-color:currentColor}

/* ============ 入场动画 ============ */
.rv{opacity:0; transform:translateY(26px); transition:opacity .85s var(--ease-out), transform .85s var(--ease-out)}
.rv.in{opacity:1; transform:none}
.rv-d1{transition-delay:.10s} .rv-d2{transition-delay:.20s} .rv-d3{transition-delay:.30s}
.rv-d4{transition-delay:.40s} .rv-d5{transition-delay:.50s}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important; animation-delay:0s!important;
    transition-duration:.001s!important}
  .rv{opacity:1; transform:none}
  .hero h1 .ln > span{transform:none}
  .curve-svg .line{stroke-dashoffset:0}
  .curve-svg .area,.curve-svg .pt{opacity:1}
  html{scroll-behavior:auto}
}

/* ============ 响应式 ============ */
@media(max-width:1000px){
  .nav__links{display:none}
  .nav__burger{display:flex}
  .door-grid{grid-template-columns:repeat(2,1fr)}
  .door,.door--wide,.door:nth-child(4),.door:nth-child(5){grid-column:span 1}
  .give{grid-template-columns:1fr}
  .give__item{border-right:0; border-bottom:1px solid var(--line)}
  .give__item:last-child{border-bottom:0}
  .tool{grid-template-columns:1fr}
  .foot__top{grid-template-columns:1fr 1fr}
  .hero__facts{grid-template-columns:repeat(3,1fr)}
  .hero__facts > div{padding:18px 0; border-bottom:1px solid var(--line-dk-2)}
  .hero__facts > div{padding:18px 18px 18px 0}
  .hero__facts > div:last-child{border-right:0}
  .figs{grid-template-columns:1fr}
  .edge{grid-template-columns:1fr}
  .sheet__grid{grid-template-columns:1fr}
  .sheet__cell:nth-child(odd){border-right:0; padding-right:0}
  .sheet__cell:nth-child(even){padding-left:0}
}
@media(max-width:640px){
  :root{--sec:clamp(60px,9vw,90px)}
  .door-grid{grid-template-columns:1fr}
  .hero{min-height:auto; padding:98px 0 44px}
  .hero h1{font-size:clamp(33px,9vw,44px); margin-top:20px}
  .hero__sub{margin-top:22px; font-size:15px; line-height:1.78}
  .hero__act{margin-top:26px; gap:10px}
  .hero__facts{margin-top:34px; padding-top:20px}
  .hero__facts .l{font-size:11.5px}
  .kick{font-size:10px; letter-spacing:.18em}
  .hero__facts{grid-template-columns:1fr}
  .hero__facts > div{border-right:0;padding:14px 0}
  .hero__facts .n{font-size:26px}
  .hero__act{flex-direction:column; align-items:stretch}
  .hero__act .btn{width:100%}
  .day{grid-template-columns:44px 20px 1fr}
  .daytl__rail{left:44px}
  .day__t{font-size:10.5px}
  .out__row{grid-template-columns:1fr; gap:4px}
  .out__k{padding-top:0}
  .foot__top{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr}
  .pull{max-width:none}
  .scroll-hint{display:none}
  .tabbar{border-radius:14px}
  .tabbar button{border-radius:10px}
}

/* ============ 打印 ============ */
@media print{
  .nav,.drawer,.scroll-hint,.hero__act,.endnote__act,.tabbar,.form-panel,.foot,.grain,
  .btn,.drawer__close,.ledger__head{display:none!important}
  .tool{grid-template-columns:1fr!important}
  .out h3,.out__head span{color:#111!important}
  .kpis{background:#ddd; border-color:#ddd}
  .kpis div{background:#fff}
  .kpis .v{color:#14301F!important}
  .kpis .l{color:#555!important}
  .tier{border-color:#bbb!important; color:#333!important; background:#f3f3f3!important}
  a[href]:after{content:""}
  body{background:#fff}
  .band{padding:24px 0; break-inside:avoid}
  .hero,.shero,.band--night,.band--deep,.band--forest,.endnote{background:#fff!important; color:#111!important}
  .hero h1,.shero h1,.on-night h1,.on-night h2,.on-night h3,.on-night h4{color:#111!important}
  .hero__sub,.shero__sub,.lead,.endnote__body{color:#333!important}
  .hero__bg,.shero__bg,.endnote__bg,.shero__vig,.hero__vig,.endnote__vig{display:none!important}
  .out{background:#fff; border:1px solid #ccc; color:#111!important}
  .out__v,.out .sub{color:#333!important}
  .out__k{color:#888!important}
  .curve-svg .line{stroke-dashoffset:0!important}
  .fig,.on-night .fig{background:#fff}
  .fig .v,.on-night .fig .v{color:#14301F}
  .edge__i{border-color:#ddd; background:#fff}
  .edge__i p{color:#333}
}

/* ---- 产品截图 / 二维码（20261028 P0 落地） ---- */
.qr-pair{display:inline-flex;gap:12px;align-items:center;vertical-align:middle}
.qr-pair img{display:block;width:84px;height:84px;border-radius:10px;background:var(--paper)}
.shots{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:clamp(34px,4.5vw,54px)}
.shots figure{width:186px;margin:0}
.shots img{display:block;width:100%;height:auto;border-radius:18px;border:1px solid rgba(246,243,234,.16);box-shadow:0 12px 32px rgba(4,10,7,.45)}
.shots figcaption{margin-top:10px;font-size:12.5px;color:var(--sage);text-align:center;line-height:1.5}
@media (max-width:480px){.shots figure{width:150px}}
