:root{
  --ink:#000;
  --paper:#fff;
  --soft:#f3f3f3;
  --grey:#6b6b6b;
  --display:'Space Grotesk','DM Sans',system-ui,-apple-system,'PingFang SC','Noto Sans SC','Microsoft YaHei',sans-serif;
  --body:'DM Sans',system-ui,-apple-system,'PingFang SC','Noto Sans SC','Microsoft YaHei',sans-serif;
  --line:2px solid #000;
  --r:10px;
  --pad:clamp(1.15rem,4.5vw,5rem);
  --bar-h:74px;
}
*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:2rem;
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.75;
  overflow-x:hidden;
  padding-bottom:calc(var(--bar-h) + env(safe-area-inset-bottom,0px) + 16px);
}
img{max-width:100%}
a{color:inherit}
h1,h2,h3,h4{text-wrap:balance}
small{
  display:block;
  font-size:.8125rem;
  letter-spacing:.24em;
  font-weight:700;
  line-height:1.5;
  margin-bottom:.6rem;
}
:focus-visible{outline:2px solid #000;outline-offset:3px}

/* 跳转 */
.skip{
  position:fixed;
  top:.5rem;left:.5rem;
  z-index:99;
  background:#000;color:#fff;
  padding:.7rem 1rem;
  border-radius:var(--r);
  text-decoration:none;
  transform:translateY(-200%);
  transition:transform .2s ease;
}
.skip:focus{transform:none}

/* 底部固定条 */
.bar{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  display:flex;
  align-items:center;
  gap:.4rem;
  background:#000;
  color:#fff;
  border-top:2px solid #000;
  padding:.45rem clamp(.6rem,2.5vw,1.75rem);
  padding-bottom:calc(.45rem + env(safe-area-inset-bottom,0px));
}
.bar :focus-visible{outline-color:#fff}
.brand{
  font-family:var(--display);
  font-weight:700;
  font-size:1rem;
  letter-spacing:-.03em;
  color:#fff;
  text-decoration:none;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.4rem .3rem;
}
.bar nav{
  flex:1 1 auto;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.bar nav::-webkit-scrollbar{display:none}
.bar nav p{
  margin:0;
  display:flex;
  align-items:center;
  gap:.1rem;
  flex-wrap:nowrap;
}
.bar nav a{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:44px;
  padding:0 .65rem;
  font-size:1rem;
  line-height:1.2;
  color:#fff;
  text-decoration:none;
  white-space:nowrap;
  border-radius:var(--r);
  transition:background .18s ease,color .18s ease;
}
.bar nav a::before{
  content:"";
  width:6px;height:6px;
  background:currentColor;
  border-radius:1px;
  opacity:.6;
  transition:transform .22s ease,opacity .22s ease;
}
.bar nav a:hover,.bar nav a:focus-visible,.bar nav a.on{
  background:#fff;
  color:#000;
}
.bar nav a:hover::before,.bar nav a:focus-visible::before{
  transform:rotate(45deg);
  opacity:1;
}
.cta{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.5rem .85rem;
  border:2px solid #fff;
  border-radius:var(--r);
  background:#fff;
  color:#000;
  font-weight:700;
  font-size:1rem;
  text-decoration:none;
  white-space:nowrap;
  transition:background .18s ease,color .18s ease;
}
.cta:hover,.cta:focus-visible{background:transparent;color:#fff}

/* 首屏 */
.hero{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:clamp(1.25rem,4vw,3.5rem);
  align-items:center;
  min-height:45vh;
  padding:clamp(1.75rem,5vh,3.25rem) var(--pad);
  border-bottom:var(--line);
}
.hero-text{
  max-width:38ch;
  margin:0 auto;
  text-align:center;
}
.hero-text small{color:#000}
.hero h1{
  font-family:var(--display);
  font-weight:900;
  font-size:clamp(2rem,5.4vw,4.2rem);
  line-height:1.02;
  letter-spacing:-.045em;
  margin:0 0 1.1rem;
}
.lede{
  margin:0 auto 1.6rem;
  max-width:32ch;
  color:#3d3d3d;
  font-size:1.0625rem;
  line-height:1.75;
}
.hero-acts{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  justify-content:center;
}
.btn{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:.6rem 1.25rem;
  border-radius:var(--r);
  border:2px solid #000;
  font-weight:700;
  font-size:1rem;
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.btn-solid{background:#000;color:#fff;border-bottom-width:6px}
.btn-ghost{background:#fff;color:#000;border-bottom-width:6px}
.btn:hover,.btn:focus-visible{transform:translateY(-2px)}
.btn-solid:hover,.btn-solid:focus-visible{background:#1c1c1c}

.hero-art{
  position:relative;
  display:grid;
  place-items:center;
  min-height:clamp(170px,34vh,330px);
  border:var(--line);
  border-radius:var(--r);
  overflow:hidden;
  background:#fff;
}
.hero-num{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-family:var(--display);
  font-weight:900;
  font-size:clamp(4.5rem,15vw,10rem);
  line-height:.8;
  letter-spacing:-.07em;
  color:#000;
}
.hero-img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* 正文区 */
.wrap{
  max-width:1200px;
  margin:0 auto;
  padding:clamp(1.75rem,5vw,3.5rem) var(--pad);
}
.body-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 292px;
  gap:clamp(1.75rem,5vw,4rem);
  align-items:start;
}
.doc{min-width:0;font-size:1.0625rem}
.doc > section{
  padding-top:clamp(1.75rem,4.5vw,3.25rem);
  border-top:var(--line);
  scroll-margin-top:1.5rem;
  transition:opacity .55s ease,transform .55s ease;
}
.doc > section:first-child{border-top:0;padding-top:0}
.doc > section.hide{opacity:0;transform:translateY(14px)}
.doc h2,.doc h3{
  font-family:var(--display);
  font-weight:900;
  letter-spacing:-.035em;
  line-height:1.1;
}
.doc h2{
  font-size:clamp(1.65rem,3.4vw,2.5rem);
  margin:0 0 1rem;
}
.doc h3{
  font-size:clamp(1.2rem,2.2vw,1.45rem);
  margin:1.9rem 0 .7rem;
}
.doc p{margin:0 0 1.15rem;line-height:1.85}
.doc ul,.doc ol{padding-left:1.25rem;margin:0 0 1.15rem;line-height:1.85}
.doc li{margin:.45rem 0}
.doc a{text-underline-offset:3px}
.doc a:hover{background:#000;color:#fff;text-decoration:none}
.doc img{display:block;width:100%;height:auto;margin:1.5rem 0;border-radius:var(--r)}
.doc blockquote{
  margin:1.4rem 0;
  padding:1rem 1.25rem;
  background:var(--soft);
  border-left:6px solid #000;
  border-radius:0 var(--r) var(--r) 0;
}
.doc blockquote p:last-child{margin-bottom:0}
.doc figure{margin:1.5rem 0}
.doc figcaption{font-size:.9375rem;color:var(--grey);margin-top:.5rem}
.doc table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:1rem}
.doc th,.doc td{border-bottom:1px solid #dcdcdc;padding:.7rem .5rem;text-align:left;line-height:1.6}
.doc th{border-bottom:2px solid #000;font-family:var(--display);font-weight:700}
.doc hr{border:0;border-top:var(--line);margin:2rem 0}

/* 侧栏 */
.side{
  position:sticky;
  top:1.5rem;
  border:var(--line);
  border-radius:var(--r);
  padding:1.15rem 1.15rem .8rem;
  border-bottom-width:6px;
}
.side h2{
  font-family:var(--display);
  font-weight:900;
  font-size:1.3rem;
  letter-spacing:-.03em;
  line-height:1.15;
  margin:0 0 .7rem;
}
.side-list{
  list-style:none;
  margin:0;
  padding:0;
}
.side-list li{
  border-top:1px solid #e4e4e4;
  opacity:0;
  transform:translateY(6px);
  animation:rise .5s ease forwards;
}
.side-list li:nth-child(1){animation-delay:.04s}
.side-list li:nth-child(2){animation-delay:.09s}
.side-list li:nth-child(3){animation-delay:.14s}
.side-list li:nth-child(4){animation-delay:.19s}
.side-list li:nth-child(5){animation-delay:.24s}
.side-list li:nth-child(6){animation-delay:.29s}
.side-list li:nth-child(7){animation-delay:.34s}
.side-list a{
  display:flex;
  align-items:center;
  gap:.6rem;
  min-height:44px;
  font-size:1rem;
  text-decoration:none;
  border-bottom:2px solid transparent;
  transition:border-color .18s ease,padding-left .18s ease;
}
.side-list a:hover,.side-list a:focus-visible{
  border-bottom-color:#000;
  padding-left:.25rem;
}
.idx{
  font-family:var(--display);
  font-weight:700;
  font-size:.875rem;
  letter-spacing:.06em;
  color:var(--grey);
  min-width:1.7em;
}
@keyframes rise{to{opacity:1;transform:none}}

/* 页脚 */
.foot{
  border-top:var(--line);
  margin-top:clamp(1.75rem,5vw,3rem);
  padding:clamp(1.75rem,5vw,3.25rem) var(--pad);
}
.cols{
  display:grid;
  grid-template-columns:1.7fr 1fr 1fr 1fr;
  gap:clamp(1.25rem,4vw,2.5rem);
}
.fmark{
  display:block;
  font-family:var(--display);
  font-weight:900;
  font-size:1.15rem;
  letter-spacing:-.03em;
  line-height:1.2;
  margin-bottom:.7rem;
}
.fcol p{
  margin:0;
  color:#4a4a4a;
  font-size:1rem;
  line-height:1.7;
  max-width:28ch;
}
.foot dl{margin:0}
.foot dt{
  font-family:var(--display);
  font-weight:700;
  font-size:1rem;
  letter-spacing:.14em;
  color:var(--grey);
  margin-bottom:.4rem;
}
.foot dd{margin:0}
.foot dd a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  font-size:1rem;
  text-decoration:none;
  border-bottom:2px solid transparent;
  transition:border-color .18s ease;
}
.foot dd a:hover,.foot dd a:focus-visible{border-bottom-color:#000}
.base{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-top:clamp(1.5rem,4vw,2.5rem);
  padding:.9rem 1.1rem;
  background:#000;
  color:#fff;
  border-radius:var(--r);
}
.base span{font-size:1rem;line-height:1.5}
.base a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 .25rem;
  color:#fff;
  font-size:1rem;
  text-decoration:none;
  border-bottom:2px solid rgba(255,255,255,.35);
}
.base a:hover,.base a:focus-visible{border-bottom-color:#fff}
.base :focus-visible{outline-color:#fff}

@media (max-width:1000px){
  .body-grid{grid-template-columns:1fr}
  .side{position:static;order:2}
  .cols{grid-template-columns:1fr 1fr}
  .fcol{grid-column:1 / -1}
}
@media (max-width:760px){
  :root{--bar-h:70px}
  .hero{grid-template-columns:1fr;text-align:center;min-height:0}
  .hero-art{order:-1;min-height:clamp(150px,30vh,240px)}
  .brand{font-size:.95rem}
  .bar{gap:.25rem}
  .cta{padding:.5rem .6rem;font-size:.95rem}
}
@media (max-width:520px){
  .cols{grid-template-columns:1fr}
  .hero h1{font-size:clamp(1.9rem,8.5vw,2.6rem)}
  .hero-acts .btn{flex:1 1 auto;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s!important;animation-delay:0s!important;transition-duration:.001s!important}
  .side-list li{opacity:1;transform:none}
  .doc > section.hide{opacity:1;transform:none}
}

button[aria-expanded]{min-width:44px;min-height:44px}
