/* ============================================================
   基础层：重置 / 排版 / 键盘可达 / 降级动效
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:1.75;          /* 中文正文行高 ≥1.7 */
  letter-spacing:.02em;      /* 中文字距 */
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* 氛围层：渐变网格 + 噪点，替代纯色平铺 */
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(58rem 38rem at 8% -12%, rgba(255,106,26,.20), transparent 62%),
    radial-gradient(46rem 34rem at 102% 2%, rgba(124,107,245,.16), transparent 58%);
}
body::after{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.app{ position:relative; z-index:2; }

h1,h2,h3,h4{ margin:0; font-family:var(--font-display); font-weight:900; letter-spacing:-.03em; line-height:1.08; }
h1{ font-size:var(--fs-5xl); }
h2{ font-size:var(--fs-3xl); }
h3{ font-size:var(--fs-xl); letter-spacing:-.02em; }
h4{ font-size:var(--fs-lg); letter-spacing:-.01em; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
img,svg{ display:block; max-width:100%; }
button{ font:inherit; color:inherit; }

/* 等宽数字：所有金额 / 百分比 / 计数统一等宽对齐，工业仪表感的来源 */
.num{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.mono{ font-family:var(--font-mono); }

/* 键盘可达：可见焦点圈 2px + 2px 偏移 */
:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:2px;
  border-radius:var(--radius-sm);
}
::selection{ background:var(--color-accent); color:#0A0C10; }

/* 入场序列：只动 opacity 与 translateY */
.reveal{ opacity:0; transform:translateY(24px); }
.reveal.in{
  opacity:1; transform:none;
  transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

/* 降级：尊重系统减少动效偏好 */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
