@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@300;400;500;600;700&family=Russo+One&display=swap');

:root{
  --ink:#000000;
  --paper:#ffffff;
  --grey:#3a3a3a;
  --maxw:1200px;
  --pad:clamp(1rem,4vw,3rem);
  --display:'Russo One','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --body:'Chakra Petch','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
}

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

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.6;
  padding-bottom:158px;
}

main{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--pad);
  display:grid;
  grid-template-columns:minmax(0,1fr);
}

main > *{
  grid-column:1;
  min-width:0;
}

img{max-width:100%;height:auto;display:block}

p{margin:0 0 1em}

a{color:var(--ink);text-decoration:none;border-bottom:1px solid currentColor}
a:hover{border-bottom-width:2px}

:focus-visible{outline:3px solid #000;outline-offset:2px}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.55em 1.15em;
  border:2px solid #000;
  border-radius:10px;
  background:#000;
  color:#fff;
  font-family:var(--body);
  font-size:16px;
  font-weight:600;
  letter-spacing:.02em;
  transition:background .22s ease,color .22s ease;
}
.btn:hover{background:#fff;color:#000;border-bottom-width:2px}
.btn-line{background:#fff;color:#000}
.btn-line:hover{background:#000;color:#fff}

/* 首屏 */
.hero{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1rem;
  padding:1.1rem 0 1.9rem;
  border-bottom:1px solid #000;
}

.hero-art{
  margin:0;
  position:relative;
  overflow:hidden;
  border-radius:10px;
  background:#000;
  background-image:radial-gradient(#fff 1.5px,transparent 1.5px);
  background-size:12px 12px;
  aspect-ratio:16/9;
  max-height:200px;
}

.hero-art .hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-art figcaption{
  position:absolute;
  left:0;
  bottom:0;
  background:#000;
  color:#fff;
  font-size:16px;
  line-height:1.4;
  padding:.15em .6em;
}

.eyebrow{
  margin:0 0 .45rem;
  font-size:16px;
  letter-spacing:.12em;
  color:var(--grey);
}

.hero h1{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.9rem,8vw,3.5rem);
  line-height:1.06;
  letter-spacing:-.01em;
  margin:0 0 .65rem;
}

.lede{
  margin:0 0 1.1rem;
  color:var(--grey);
  max-width:56ch;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin:0;
}
.hero-actions a{border-bottom-width:2px}

/* 正文区块 */
main > div:not(.hero):not(.rail){
  padding:2.2rem 0;
  border-top:1px solid #000;
  scroll-margin-top:1.5rem;
}

main > .hero + div{border-top:0}

main h2{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.4rem,4.4vw,2.1rem);
  line-height:1.22;
  margin:0 0 .9rem;
  letter-spacing:-.005em;
}

main h2 > span{
  display:inline-block;
  padding-bottom:.12em;
  border-bottom:6px solid #000;
}

main h3{
  font-family:var(--display);
  font-weight:700;
  font-size:1.15rem;
  line-height:1.35;
  margin:1.6rem 0 .6rem;
}

main h3 > span{
  display:inline-block;
  padding-bottom:.1em;
  border-bottom:3px solid #000;
}

main p,main li{max-width:70ch}
main ul,main ol{padding-left:1.25rem;margin:0 0 1em}
main li{margin:.3rem 0}

main blockquote{
  margin:1.2rem 0;
  padding:.55rem 1rem;
  border-left:6px solid #000;
  background:#f2f2f2;
}
main blockquote p:last-child{margin-bottom:0}

main table{
  width:100%;
  border-collapse:collapse;
  margin:1rem 0;
  font-size:16px;
}
main th,main td{border:1px solid #000;padding:.5rem .6rem;text-align:left}
main th{background:#000;color:#fff;font-weight:600}

main img{border-radius:10px}
main strong{font-weight:700}

/* 右侧便签 */
.rail{
  display:grid;
  gap:1rem;
  padding:2.2rem 0;
  align-content:start;
}

.rail-box{
  border:1px solid #000;
  border-bottom:6px solid #000;
  border-radius:10px;
  padding:1rem;
}

.rail-h{
  font-family:var(--display);
  font-size:1rem;
  letter-spacing:.03em;
  margin:0 0 .7rem;
}

.rail-h > span{
  display:inline-block;
  padding-bottom:.1em;
  border-bottom:3px solid #000;
}

.rail-list{list-style:none;margin:0;padding:0}

.rail-list a{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:.2rem .1rem;
  border-bottom:1px solid #000;
  font-size:16px;
}
.rail-list li:last-child a{border-bottom:0}
.rail-list a:hover{background:#000;color:#fff}

.rail-about p{font-size:16px;margin-bottom:0}
.rail-about p:last-child{margin-bottom:0}

/* 页脚 */
footer{
  margin-top:2.5rem;
  background:#000;
  color:#fff;
  padding:2.5rem var(--pad) 1.3rem;
}

footer a{color:#fff;border-bottom:1px solid rgba(255,255,255,.45)}
footer a:hover{border-bottom-color:#fff}

.cta{
  max-width:var(--maxw);
  margin:0 auto 2rem;
  padding-bottom:1.6rem;
  border-bottom:1px solid rgba(255,255,255,.35);
}

.cta h2{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.6rem,5.4vw,2.7rem);
  line-height:1.14;
  margin:0 0 .7rem;
}

.cta h2 > span{
  display:inline-block;
  padding-bottom:.12em;
  border-bottom:6px solid #fff;
}

.cta p{max-width:52ch;color:#e6e6e6}

.btn-invert{background:#fff;color:#000;border-color:#fff}
.btn-invert:hover{background:#000;color:#fff;border-bottom-width:2px}

.foot-cols{
  max-width:var(--maxw);
  margin:0 auto 1.7rem;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1.3rem;
}

.foot-cols dt{
  font-family:var(--display);
  letter-spacing:.05em;
  margin-bottom:.4rem;
}

.foot-cols dd{
  margin:0;
  padding:.1rem 0;
  font-size:16px;
}

.foot-cols dd a,
.foot-links a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  border-bottom:1px solid transparent;
}

.foot-bar{
  max-width:var(--maxw);
  margin:0 auto;
  padding-top:.9rem;
  border-top:1px solid rgba(255,255,255,.35);
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1rem;
  justify-content:space-between;
  align-items:center;
}

.foot-bar p{margin:0;font-size:16px}
.foot-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1rem}

/* 底部固定导航 */
.nav{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:60;
  background:#000;
  color:#fff;
  border-top:3px solid #000;
  padding:.25rem .45rem calc(.25rem + env(safe-area-inset-bottom));
}

.nav ol{
  list-style:none;
  margin:0 auto;
  padding:0;
  max-width:var(--maxw);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.nav li{display:flex;min-width:0}

.nav a{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  padding:.35rem .15rem;
  color:#fff;
  border:0;
  font-size:16px;
  line-height:1.2;
  text-align:center;
  transition:background .22s ease,color .22s ease;
}

.nav a:hover,.nav a:focus-visible,.nav a[aria-current="true"]{
  background:#fff;
  color:#000;
}

.nav li.brand{
  grid-column:1 / -1;
  order:-1;
  align-items:center;
  justify-content:center;
  gap:.9rem;
  padding-bottom:.25rem;
  margin-bottom:.25rem;
  border-bottom:1px solid rgba(255,255,255,.3);
}

.nav .brand-link{
  display:flex;
  width:auto;
  align-items:center;
  gap:.45rem;
  font-family:var(--display);
  letter-spacing:.03em;
}

.nav .brand-contact{width:auto;opacity:.85}

.brand-mark{width:24px;height:24px;object-fit:contain;filter:invert(1)}

/* 滚动显现 */
.reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .5s ease,transform .5s ease;
}
.reveal.is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  a,.btn,.nav a{transition:none}
}

@media (min-width:860px){
  body{padding-bottom:112px}

  main{
    grid-template-columns:minmax(0,1fr) 300px;
    column-gap:3rem;
  }

  .hero{
    grid-column:1 / -1;
    grid-template-columns:minmax(0,5fr) minmax(0,7fr);
    gap:2.5rem;
    align-items:center;
    min-height:45vh;
    padding:2rem 0 2.6rem;
  }

  .hero-art{aspect-ratio:4/3;max-height:340px}
  .hero-copy{text-align:right}
  .lede{margin-left:auto}
  .hero-actions{justify-content:flex-end}

  main > div:not(.hero):not(.rail){grid-column:1}

  .rail{
    grid-column:2;
    grid-row:2 / span 40;
    align-self:start;
    position:sticky;
    top:1.5rem;
    padding-top:2.4rem;
  }

  .foot-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}

  .nav{padding:.15rem 1rem calc(.15rem + env(safe-area-inset-bottom))}

  .nav ol{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.2rem;
  }

  .nav li{flex:0 1 auto;justify-content:center}
  .nav li.brand{
    order:0;
    grid-column:auto;
    flex:0 0 auto;
    border:0;
    margin:0;
    padding:0;
    gap:.55rem;
  }

  .nav a{width:auto;min-height:48px;padding:.4rem .7rem}

  .cta{padding-bottom:1.8rem}
}

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