/* ===== 1. Reset ===== */
*,
*::before,
*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{max-width:100%;display:block}
button{font:inherit;color:inherit}
a{color:inherit}
hr{border:0}

/* ===== 2. 变量 ===== */
:root{
  --rice:#F7EFDF;
  --paper:#FFF9EF;
  --ink-deep:#0E2C22;
  --green:#173F30;
  --orange:#D97A1E;
  --terra:#A9402A;
  --copper:#C7A063;
  --copper-line:#8A6238;
  --ink:#211A13;
  --soft-gold:#F0C36B;
  --sage:#5E7163;
  --success:#2F6B4F;

  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC",serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --mono:"IBM Plex Mono","JetBrains Mono",SFMono-Regular,monospace;

  --shell:1180px;
  --gutter:clamp(1rem,4vw,2.75rem);
  --line:1px solid var(--copper-line);
}

/* ===== 3. 中文排版基础 ===== */
body{
  background:var(--rice);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(1rem,0.96rem + 0.18vw,1.075rem);
  line-height:1.75;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:800;
  line-height:1.18;
  letter-spacing:-.02em;
  color:var(--ink-deep);
}
#main-content{scroll-margin-top:1rem}

/* ===== 4. 版心与基础布局 ===== */
.shell{
  width:min(calc(100% - var(--gutter) * 2), var(--shell));
  margin-inline:auto;
}
.grid{display:grid;gap:clamp(1rem,2.5vw,2rem)}
.grid--2{grid-template-columns:1fr}
@media (min-width:760px){
  .grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.rule{height:1px;background:var(--copper-line);border:0;margin:0}
.num{
  font-family:var(--mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
}

/* ===== 5. 跳转链接与焦点 ===== */
.skip-link{
  position:fixed;
  top:-5rem;
  left:1rem;
  z-index:200;
  padding:.7rem 1.25rem;
  border-radius:999px;
  background:var(--ink-deep);
  color:var(--paper);
  border:1px solid var(--soft-gold);
  font-size:.9rem;
  font-weight:600;
  text-decoration:none;
  transition:top .18s ease;
}
.skip-link:focus{top:.75rem}
:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
  border-radius:3px;
}
.site-footer :focus-visible{outline-color:var(--soft-gold)}

/* ===== 6. 页头 ===== */
.site-header{
  position:relative;
  background:
    radial-gradient(120% 90% at 12% 0%, rgba(240,195,107,.20), transparent 62%),
    var(--rice);
  border-bottom:1px solid var(--copper-line);
}
.scroll-meter{
  position:fixed;
  inset:0 0 auto 0;
  z-index:120;
  height:3px;
  width:100%;
  transform:scaleX(0);
  transform-origin:0 50%;
  background:linear-gradient(90deg,var(--orange),var(--soft-gold));
  pointer-events:none;
}

.utility-rail{background:var(--ink-deep);color:var(--soft-gold)}
.utility-rail-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-block:.45rem;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.1em;
}
.rail-stamp{margin:0;color:rgba(240,195,107,.82)}
.rail-link{
  color:var(--soft-gold);
  text-decoration:none;
  padding-bottom:.1rem;
  border-bottom:1px dashed rgba(240,195,107,.5);
  transition:color .18s ease, border-color .18s ease;
}
.rail-link::before{
  content:"";
  display:inline-block;
  width:.42rem;
  height:.42rem;
  margin-right:.45rem;
  border-radius:50%;
  background:var(--orange);
  vertical-align:.05em;
}
.rail-link:hover{color:var(--paper);border-color:var(--paper)}

.masthead{
  display:grid;
  gap:.65rem;
  justify-items:center;
  text-align:center;
  padding:clamp(1.1rem,3vw,1.9rem) 0 clamp(.9rem,2vw,1.4rem);
}
.masthead-line,
.masthead-note{
  font-size:.78rem;
  line-height:1.6;
  letter-spacing:.14em;
  color:var(--sage);
}
.masthead-line::before{
  content:"";
  display:block;
  width:2.2rem;
  height:2px;
  margin:0 auto .55rem;
  background:var(--copper-line);
}
.masthead-note::after{
  content:"";
  display:block;
  width:2.2rem;
  height:2px;
  margin:.55rem auto 0;
  background:var(--copper-line);
}
.wordmark{
  display:inline-flex;
  align-items:baseline;
  gap:.4rem;
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(2.2rem,7vw,3.5rem);
  line-height:.98;
  letter-spacing:-.035em;
  color:var(--ink-deep);
  text-decoration:none;
}
.wordmark-cn{
  font-family:var(--mono);
  font-size:.3em;
  font-weight:600;
  letter-spacing:.18em;
  color:var(--orange);
  border:1px solid var(--orange);
  padding:.18em .42em;
  border-radius:2px;
}
@media (min-width:900px){
  .masthead{
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    justify-items:start;
    text-align:left;
    gap:1rem 2rem;
  }
  .wordmark{justify-self:center}
  .masthead-line::before{margin-left:0}
  .masthead-note{margin-left:auto;text-align:right}
  .masthead-note::after{margin-right:0}
}

.nav-bar{
  border-top:1px solid var(--copper-line);
  background:linear-gradient(180deg,rgba(255,249,239,.8),rgba(255,249,239,0));
}
.nav-shell{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:.55rem;
  padding-block:.55rem .8rem;
}
.nav-toggle{
  display:inline-flex;
  align-self:center;
  align-items:center;
  gap:.6rem;
  padding:.42rem 1rem;
  border-radius:999px;
  border:1px solid var(--copper-line);
  background:var(--paper);
  color:var(--ink-deep);
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.08em;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.nav-toggle:hover{background:rgba(199,160,99,.26);border-color:var(--terra)}
.nav-toggle-icon{
  position:relative;
  display:inline-block;
  width:1.05rem;
  height:.62rem;
  flex:none;
}
.nav-toggle-icon::before,
.nav-toggle-icon::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background:var(--ink-deep);
  transition:transform .2s ease;
}
.nav-toggle-icon::before{top:0}
.nav-toggle-icon::after{bottom:0}
.nav-toggle-text{white-space:nowrap}
.site-header[data-open] .nav-toggle{
  background:var(--ink-deep);
  color:var(--paper);
  border-color:var(--ink-deep);
}
.site-header[data-open] .nav-toggle-icon::before,
.site-header[data-open] .nav-toggle-icon::after{background:var(--soft-gold)}
.site-header[data-open] .nav-toggle-icon::before{transform:translateY(.29rem) rotate(45deg)}
.site-header[data-open] .nav-toggle-icon::after{transform:translateY(-.29rem) rotate(-45deg)}

.nav-list{display:none;width:100%}
.site-header[data-open] .nav-list{
  display:flex;
  flex-direction:column;
  gap:.15rem;
  padding-top:.5rem;
  border-top:1px solid rgba(138,98,56,.35);
}
.nav-link{
  display:block;
  padding:.6rem .9rem;
  border-radius:999px;
  color:var(--ink-deep);
  font-size:.94rem;
  font-weight:500;
  text-align:center;
  text-decoration:none;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease;
}
.nav-link:hover{background:rgba(199,160,99,.26)}
.nav-link[aria-current="page"]{
  background:rgba(217,122,30,.16);
  box-shadow:inset 0 -3px 0 var(--orange);
  color:var(--ink-deep);
  font-weight:700;
}
@media (min-width:900px){
  .nav-shell{
    flex-direction:row;
    justify-content:center;
    align-items:center;
    gap:0;
    padding-block:.45rem;
  }
  .nav-toggle{display:none}
  .nav-list,
  .site-header[data-open] .nav-list{
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
    justify-content:center;
    gap:.2rem;
    padding-top:0;
    border-top:0;
  }
  .nav-link{text-align:left;padding:.45rem .95rem}
}

/* ===== 7. 页脚 ===== */
.site-footer{
  background:
    radial-gradient(90% 70% at 82% 0%, rgba(199,160,99,.18), transparent 62%),
    linear-gradient(180deg,var(--ink-deep),#0A2019);
  color:rgba(247,239,223,.88);
  border-top:4px solid var(--orange);
}
.footer-main{padding:clamp(2.2rem,5vw,3.6rem) 0 clamp(1.6rem,4vw,2.6rem)}
.footer-lede{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:2rem;
}
@media (min-width:820px){
  .footer-lede{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:3rem}
  .footer-contact{
    padding-left:2.2rem;
    border-left:1px solid rgba(199,160,99,.35);
  }
}
.footer-brand-block{min-width:0}
.footer-brand{
  display:inline-flex;
  align-items:baseline;
  gap:.45rem;
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(1.8rem,4vw,2.6rem);
  letter-spacing:-.02em;
  color:var(--paper);
  text-decoration:none;
}
.footer-brand-cn{
  font-family:var(--mono);
  font-size:.34em;
  font-weight:600;
  letter-spacing:.16em;
  color:var(--soft-gold);
  border:1px solid rgba(240,195,107,.55);
  padding:.2em .45em;
  border-radius:2px;
}
.footer-tagline{
  margin-top:.9rem;
  max-width:34ch;
  font-size:1rem;
  color:rgba(247,239,223,.82);
}
.footer-note{
  margin-top:.7rem;
  max-width:42ch;
  font-size:.85rem;
  line-height:1.7;
  color:rgba(247,239,223,.6);
}
.footer-note--contact{margin-top:1rem}
.footer-contact-title{
  margin-bottom:1rem;
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.18em;
  color:var(--soft-gold);
}
.contact-list{display:grid;gap:.95rem}
.contact-item{
  display:flex;
  flex-direction:column;
  gap:.28rem;
  min-width:0;
}
.contact-label{
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.16em;
  color:rgba(199,160,99,.92);
}
.copy-chip{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  gap:.6rem;
  max-width:100%;
  padding:.42rem .7rem;
  border-radius:2px;
  border:1px solid rgba(199,160,99,.42);
  background:rgba(255,249,239,.07);
  color:var(--paper);
  font-family:var(--mono);
  font-size:.86rem;
  text-align:left;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease, transform .18s ease;
}
.copy-chip:hover{
  background:rgba(217,122,30,.2);
  border-color:var(--orange);
  transform:translateY(-1px);
}
.copy-chip-value{overflow-wrap:anywhere}
.copy-chip-hint{
  flex:none;
  padding-left:.55rem;
  border-left:1px solid rgba(199,160,99,.42);
  font-size:.68rem;
  letter-spacing:.12em;
  color:var(--soft-gold);
}
.copy-chip[data-copied="true"]{
  background:rgba(47,107,79,.32);
  border-color:var(--success);
}
.copy-chip[data-copied="true"] .copy-chip-hint{color:#A6E3C2}
.contact-value{
  font-size:.92rem;
  color:rgba(247,239,223,.78);
}

.footer-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:1.8rem 2rem;
  margin-top:clamp(2rem,4vw,3rem);
  padding-top:clamp(1.6rem,3vw,2.2rem);
  border-top:1px solid rgba(199,160,99,.3);
}
.footer-col{min-width:0}
.footer-col-title{
  margin-bottom:.9rem;
  font-family:var(--mono);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.18em;
  color:var(--soft-gold);
}
.footer-links{display:grid;gap:.55rem}
.footer-link{
  display:inline-block;
  padding-bottom:.1rem;
  font-size:.95rem;
  color:rgba(247,239,223,.86);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .18s ease, border-color .18s ease;
}
.footer-link:hover{color:var(--soft-gold);border-color:var(--soft-gold)}

.footer-bottom{
  border-top:1px solid rgba(199,160,99,.26);
  background:rgba(0,0,0,.2);
}
.footer-bottom-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem 1.6rem;
  padding-block:1.1rem;
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.06em;
  color:rgba(247,239,223,.62);
}
.footer-copy{color:rgba(247,239,223,.78)}
.footer-legal{color:rgba(240,195,107,.8)}
.footer-version{margin-left:auto}
@media (max-width:600px){
  .footer-version{margin-left:0}
}

/* ===== 8. 通用组件 ===== */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.7rem 1.35rem;
  border-radius:999px;
  border:1px solid transparent;
  font-family:var(--sans);
  font-size:.95rem;
  font-weight:600;
  text-decoration:none;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.btn--primary{
  background:var(--orange);
  border-color:var(--orange);
  color:var(--ink-deep);
}
.btn--primary:hover{
  background:var(--soft-gold);
  border-color:var(--soft-gold);
  transform:translateY(-2px);
}
.btn--ghost{
  background:transparent;
  border-color:var(--copper-line);
  color:var(--ink-deep);
}
.btn--ghost:hover{
  background:rgba(199,160,99,.2);
  transform:translateY(-2px);
}

.tag{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.2rem .6rem;
  border-radius:2px;
  border:1px solid rgba(138,98,56,.4);
  background:rgba(199,160,99,.25);
  color:var(--ink-deep);
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.1em;
}
.tag--terra{
  background:rgba(169,64,42,.14);
  border-color:rgba(169,64,42,.42);
  color:var(--terra);
}
.tag--gold{
  background:rgba(217,122,30,.16);
  border-color:rgba(217,122,30,.46);
  color:#8A4A0E;
}

.breadcrumbs{
  padding-block:1.1rem 0;
  font-family:var(--mono);
  font-size:.75rem;
  letter-spacing:.06em;
  color:var(--sage);
}
.breadcrumbs ol{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.4rem;
}
.breadcrumbs li{display:flex;align-items:center;gap:.4rem}
.breadcrumbs li::after{content:"/";color:var(--copper)}
.breadcrumbs li:last-child::after{content:""}
.breadcrumbs a{
  color:var(--ink-deep);
  text-decoration:none;
  border-bottom:1px solid rgba(138,98,56,.45);
}
.breadcrumbs a:hover{border-color:var(--orange);color:var(--terra)}

.prose{max-width:66ch;color:var(--ink)}
.prose p + p{margin-top:1rem}
.prose h2,.prose h3{margin-top:1.8rem}
.prose ul,.prose ol{
  margin-top:1rem;
  padding-left:1.3rem;
  display:grid;
  gap:.4rem;
  list-style:disc;
}
.prose ol{list-style:decimal}
.prose a{color:var(--terra);text-decoration:underline;text-underline-offset:3px}

.panel{
  background:var(--paper);
  border:1px solid var(--copper-line);
  border-radius:2px;
  padding:clamp(1rem,2.5vw,1.6rem);
}

/* 图片容器基础规则（页面阶段放置占位） */
.img-frame{
  position:relative;
  overflow:hidden;
  aspect-ratio:4 / 3;
  border:1px solid var(--copper-line);
  border-radius:2px;
  background:
    linear-gradient(135deg, rgba(199,160,99,.42), rgba(23,63,48,.14) 55%, rgba(247,239,223,.6)),
    var(--paper);
}
.img-frame::after{
  content:"";
  position:absolute;
  inset:.5rem;
  border:1px solid rgba(138,98,56,.3);
  pointer-events:none;
}
.img-frame > img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.img-frame--wide{aspect-ratio:16 / 9}
.img-frame--tall{aspect-ratio:3 / 4}
.img-frame--square{aspect-ratio:1 / 1}

/* ===== 9. 动效与可访问性 ===== */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}
