/* ============================================================
   base.css — 重置 / 字体基类 / 布局原语
   依赖 tokens.css
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;
  /* 站点头是 sticky 的：锚点跳转必须让开它，否则标题被压住 */
  scroll-padding-top:calc(var(--chrome-h) + 16px)}
:where(section,article,[id]){scroll-margin-top:calc(var(--chrome-h) + 16px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  background:var(--c-canvas);
  color:var(--c-ink);
  font-family:var(--f-sans);
  font-size:var(--fs-body);
  font-weight:400;              /* v2：300 在浅底上发虚，正文一律 400 */
  line-height:var(--lh-body);
  letter-spacing:var(--ls-tight);
  /* v2：移除 -webkit-font-smoothing:antialiased —— 浅底上它把字削细 */
  /* 中文排版：标点避头尾、长英文不撑破、段落参差更均衡 */
  line-break:strict;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
/* 不该被拆开的短语（数字+单位、品牌名、日期） */
.nb{white-space:nowrap}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
::selection{background:rgba(176,138,82,.22);color:var(--c-ink)}
*{scrollbar-width:thin;scrollbar-color:var(--c-gold-line) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--c-gold-line)}
::-webkit-scrollbar-track{background:transparent}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--c-gold);
  outline-offset:3px;
}

/* ── 布局原语 ───────────────────────────── */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.section--tight{padding-block:calc(var(--section-y) * .62)}
.section--paper{background:var(--c-paper)}
.section--stone{background:var(--c-stone)}
.section--stone .t-micro,.section--stone .t-label{color:var(--c-ink-55)}
.section--stone-2 .t-micro{color:var(--c-ink-55)}
.section--stone-2{background:var(--c-stone-2)}
.section--deep{background:var(--c-deep);color:var(--c-on-deep-70)}
.section--deep h2,.section--deep h3{color:var(--c-on-deep)}
.section--deep .t-body,.section--deep .t-small,.section--deep p{color:var(--c-on-deep-70)}
.section--deep .t-label,.section--deep .t-micro{color:var(--c-on-deep-45)}
.section--deep .t-num,.section--deep .kpi dd,.section--deep .kpi dt{color:var(--c-on-deep)}
.section--deep h1,.section--deep h2,.section--deep h3{color:var(--c-on-deep)}

.grid{display:grid;gap:var(--s6)}
.grid--12{grid-template-columns:repeat(12,1fr)}
@media (max-width:900px){.grid--12{grid-template-columns:repeat(6,1fr)}}
@media (max-width:620px){.grid--12{grid-template-columns:1fr}}

.stack>*+*{margin-top:var(--s4)}
.cluster{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}

/* ── 字体基类（页面只用类，不写字号） ───────── */
.t-display-1{font-family:var(--f-serif);font-weight:700;font-size:var(--fs-display-1);
  line-height:var(--lh-display);letter-spacing:var(--ls-tight)}
.t-display-2{font-family:var(--f-serif);font-weight:700;font-size:var(--fs-display-2);
  line-height:1.2;letter-spacing:var(--ls-cn)}
.t-h1{font-family:var(--f-serif);font-weight:700;font-size:var(--fs-h1);line-height:var(--lh-title);letter-spacing:var(--ls-cn)}
.t-h2{font-family:var(--f-serif);font-weight:700;font-size:var(--fs-h2);line-height:1.35;letter-spacing:.04em}
.t-h3{font-family:var(--f-sans);font-weight:500;font-size:var(--fs-h3);line-height:1.6}
.t-body{font-size:var(--fs-body);font-weight:400;line-height:var(--lh-body);color:var(--c-ink-70)}
.t-body strong,.t-body b{font-weight:600;color:var(--c-ink)}
.t-small{font-size:var(--fs-small);font-weight:400;line-height:1.8;color:var(--c-ink-55)}
.t-label{font-size:var(--fs-label);font-weight:400;letter-spacing:var(--ls-label);line-height:1.6;color:var(--c-ink-55)}
.t-micro{font-size:var(--fs-micro);font-weight:400;letter-spacing:.06em;line-height:1.7;color:var(--c-ink-38)}
.t-num{font-family:var(--f-serif);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:var(--ls-tight)}
.measure{max-width:var(--measure)}

/* 中文正文段落间距：段间 > 行间 */
.prose>*+*{margin-top:1.15em}
.prose h3{margin-top:1.8em;margin-bottom:.55em}
.prose ul{margin-top:.9em}
.prose li{position:relative;padding-left:1.1em}
.prose li+li{margin-top:.45em}
.prose li::before{content:"";position:absolute;left:0;top:.86em;width:6px;height:1px;background:var(--c-gold)}

/* 发丝线 */
.rule{height:0;border:0;border-top:var(--hair)}
.rule--line{border-top:var(--line)}

/* 可访问性 */
.skip{position:absolute;left:-9999px;top:0;background:var(--c-ink);color:var(--c-on-deep);
  padding:var(--s3) var(--s4);z-index:100}
.skip:focus{left:var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 进入动画（每屏一个动作；尊重 reduced-motion） */
/* 用 IntersectionObserver 加 .is-in */
[data-reveal]{opacity:0;transform:translateY(12px);
  transition:opacity var(--d-slow) var(--ease-out),transform var(--d-slow) var(--ease-out)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal][data-delay="1"]{transition-delay:80ms}
[data-reveal][data-delay="2"]{transition-delay:160ms}
[data-reveal][data-delay="3"]{transition-delay:240ms}
[data-reveal][data-delay="4"]{transition-delay:320ms}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
}
