/* base.css —— 变量、重置、字体栈、排版基准 */
:root{
  /* 宣纸米白 / 青檀灰 / 墨色 —— 三色体系 */
  --paper:        #f7f2e7;
  --paper-2:      #f2ebdb;
  --paper-3:      #e9e0cd;
  --tan:          #6d7a70;   /* 青檀灰 */
  --tan-soft:     #8d9891;
  --ink:          #242a2e;   /* 墨色 */
  --ink-soft:     #5a6058;
  --ink-faint:    #6d6b60;
  --seal:         #9c4a3c;   /* 印章朱 */
  --seal-soft:    #c07a68;
  --water:        #8fa3ad;
  --line:         #ddd4c0;
  --line-soft:    #e8e1d1;

  --maxw: 1180px;
  --radius: 2px;

  --fs-xs: 12px;
  --fs-sm: 13px;
  --fs-md: 15px;
  --fs-lg: 18px;
  --fs-xl: 24px;
  --fs-2xl: 38px;
  --fs-3xl: 54px;

  --dur: .45s;
  --ease: cubic-bezier(.22,.61,.36,1);

  /* 字体：本地/系统优先，保证断网可用；思源宋体若已本地安装则优先 */
  --font-serif: "Source Han Serif SC","Noto Serif CJK SC","STSong",STSong,"SimSun",Songti SC,serif;
  --font-sans:  "Source Han Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-num:   "Source Han Serif SC",Georgia,"Times New Roman",serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html,body{ margin:0; padding:0; }
html{ scroll-behavior:smooth; }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-serif);
  font-size:var(--fs-md);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

h1,h2,h3,h4{ margin:0; font-weight:600; line-height:1.35; letter-spacing:.04em; }
h1{ font-size:var(--fs-3xl); }
h2{ font-size:var(--fs-2xl); }
h3{ font-size:var(--fs-xl); }
h4{ font-size:var(--fs-lg); }
p{ margin:0 0 1em; }
p:last-child{ margin-bottom:0; }

a{ color:inherit; text-decoration:none; }
img,svg,canvas{ max-width:100%; display:block; }

button{
  font-family:inherit; font-size:var(--fs-sm); line-height:1.5;
  color:var(--ink); background:var(--paper-2);
  border:1px solid var(--line); border-radius:var(--radius);
  padding:7px 15px; cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
button:hover{ background:var(--paper-3); }
button:focus-visible{ outline:2px solid var(--tan); outline-offset:2px; }
button:disabled{ opacity:.42; cursor:default; }

table{ width:100%; border-collapse:collapse; }
th,td{ padding:9px 10px; text-align:left; border-bottom:1px solid var(--line-soft); }
th{ font-weight:600; color:var(--ink-soft); font-size:var(--fs-sm); letter-spacing:.08em; }
td{ font-size:var(--fs-sm); }

/* 数字统一表格数字 + 衬线呈现 */
.num{ font-family:var(--font-num); font-variant-numeric:tabular-nums; }

/* 通用容器 */
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
.narrow{ max-width:820px; }

/* 无障碍 */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* 入场动画：由 scrolly 的 IntersectionObserver 加 .is-in 触发 */
.reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.reveal.is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* 截图/校验模式：?scrollto= 存在时由 main.js 挂上，跳过全部入场过渡 */
body.no-anim .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
body.no-anim *{ animation:none !important; transition:none !important; }

/* 小屏排版降级 */
@media (max-width:720px){
  :root{
    --fs-2xl:28px; --fs-3xl:34px;
  }
  body{ line-height:1.75; }
  .wrap{ padding:0 18px; }
}
