/* ===== 金马城共享样式 /assets/site.css ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}
body,h1,h2,h3,h4,h5,p,figure,ul,ol,dl,dd,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
table{border-collapse:collapse;width:100%}

:root{
  --gh-mist:#F3EBDD;
  --gh-paper:#FCF7EE;
  --gh-forest:#16352B;
  --gh-forest-deep:#0F241C;
  --gh-moss:#4E6B4A;
  --gh-stone:#6E6A61;
  --gh-gold:#C9892C;
  --gh-bright:#E8B45A;
  --gh-copper:#7A4A2B;
  --gh-clay:#A65E3F;
  --gh-ink:#141310;
  --gh-rail:15.5rem;
  --gh-shell-w:76rem;
  --gh-pad:clamp(1.1rem,3.4vw,2.75rem);
  --gh-ease:200ms cubic-bezier(.22,.68,.28,1);
  --gh-line:rgba(122,74,43,.28);
  --gh-line-gold:rgba(232,180,90,.26);
  --gh-font-display:"Source Han Serif SC","Noto Serif SC","Songti SC",Georgia,"Times New Roman",serif;
  --gh-font-body:"Source Han Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --gh-font-mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

body{
  min-height:100vh;
  background-color:var(--gh-mist);
  background-image:
    radial-gradient(120% 80% at 88% -10%,rgba(201,137,44,.14),transparent 62%),
    radial-gradient(90% 70% at -10% 110%,rgba(78,107,74,.12),transparent 66%),
    repeating-linear-gradient(0deg,rgba(122,74,43,.028) 0 1px,transparent 1px 5px);
  background-attachment:fixed;
  color:var(--gh-ink);
  font-family:var(--gh-font-body);
  font-size:clamp(1rem,.96rem + .2vw,1.0625rem);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5{
  font-family:var(--gh-font-display);
  font-weight:700;
  line-height:1.18;
  letter-spacing:-.012em;
  color:var(--gh-forest);
  text-wrap:balance;
}
h1{font-size:clamp(2.4rem,5vw,4.6rem)}
h2{font-size:clamp(1.7rem,3vw,2.6rem)}
h3{font-size:clamp(1.15rem,1.6vw,1.4rem);letter-spacing:.004em}
h4{font-size:1rem;letter-spacing:.02em}
p{text-wrap:pretty}

:focus-visible{outline:2px solid var(--gh-bright);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}

/* ===== 跳转链接 ===== */
.gh-skip{
  position:fixed;top:.6rem;left:.6rem;z-index:100;
  padding:.6rem 1rem;border-radius:2px;
  background:var(--gh-bright);color:var(--gh-forest-deep);
  font-family:var(--gh-font-mono);font-size:.78rem;letter-spacing:.08em;
  text-decoration:none;
  transform:translateY(-160%);
  transition:transform var(--gh-ease);
}
.gh-skip:focus-visible,.gh-skip:focus{transform:translateY(0);outline:2px solid var(--gh-forest)}

/* ===== 滚动进度 ===== */
.gh-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:70;
  background:rgba(122,74,43,.2);pointer-events:none;
}
.gh-progress__bar{
  display:block;height:100%;width:100%;
  transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--gh-copper),var(--gh-gold) 45%,var(--gh-bright));
}

/* ===== 页头：移动端为顶部框架条 ===== */
.gh-header{
  position:sticky;top:0;z-index:50;
  background:var(--gh-forest);
  background-image:linear-gradient(180deg,rgba(232,180,90,.07),transparent 60%);
  color:var(--gh-mist);
  border-bottom:1px solid var(--gh-copper);
  transition:box-shadow var(--gh-ease);
}
.gh-header[data-open]{box-shadow:0 24px 44px -26px rgba(20,19,16,.85)}
.gh-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.7rem var(--gh-pad);
}
.gh-brand{display:flex;align-items:center;gap:.65rem;min-width:0;text-decoration:none;color:inherit}
.gh-brand__mark{
  flex:0 0 auto;display:grid;place-items:center;
  width:2.3rem;height:2.3rem;
  border:1px solid var(--gh-gold);
  background:rgba(201,137,44,.14);
  color:var(--gh-bright);
  font-family:var(--gh-font-display);font-size:1.02rem;font-weight:700;
}
.gh-brand__text{display:flex;flex-direction:column;line-height:1.16;min-width:0}
.gh-brand__name{font-family:var(--gh-font-display);font-size:1.02rem;letter-spacing:.06em;color:var(--gh-paper)}
.gh-brand__tag{font-family:var(--gh-font-mono);font-size:.6rem;letter-spacing:.24em;color:rgba(232,180,90,.82)}
.gh-navtoggle{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.45rem .7rem;border-radius:2px;
  border:1px solid rgba(232,180,90,.55);
  background:rgba(232,180,90,.09);
  color:var(--gh-bright);cursor:pointer;
  transition:background-color var(--gh-ease),border-color var(--gh-ease);
}
.gh-navtoggle:hover{background:rgba(232,180,90,.2)}
.gh-navtoggle__bars{display:inline-flex;flex-direction:column;justify-content:space-between;width:1.05rem;height:.72rem}
.gh-navtoggle__bar{display:block;height:2px;width:100%;background:currentColor;border-radius:1px;transition:transform var(--gh-ease),opacity var(--gh-ease)}
.gh-navtoggle__text{font-family:var(--gh-font-mono);font-size:.66rem;letter-spacing:.16em}
.gh-header[data-open] .gh-navtoggle__bar:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.gh-header[data-open] .gh-navtoggle__bar:nth-child(2){opacity:0}
.gh-header[data-open] .gh-navtoggle__bar:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}
.gh-topbar__hint{
  margin:0;padding:0 var(--gh-pad) .7rem;
  font-family:var(--gh-font-mono);font-size:.64rem;letter-spacing:.14em;
  color:rgba(232,180,90,.78);
}
.gh-navwrap{
  max-height:0;visibility:hidden;overflow:hidden;
  border-top:1px solid rgba(232,180,90,.16);
  transition:max-height 240ms ease,visibility 240ms ease;
}
.gh-header[data-open] .gh-navwrap{max-height:38rem;visibility:visible;overflow-y:auto}
.gh-nav{display:grid}
.gh-nav__item{min-width:0}
.gh-nav__link{
  display:grid;grid-template-columns:2.4rem minmax(0,1fr);align-items:center;gap:.5rem;
  padding:.76rem var(--gh-pad);
  border-left:3px solid transparent;
  color:rgba(243,235,221,.76);text-decoration:none;
  transition:background-color var(--gh-ease),color var(--gh-ease),border-color var(--gh-ease),transform var(--gh-ease);
}
.gh-nav__idx{font-family:var(--gh-font-mono);font-size:.68rem;letter-spacing:.12em;color:rgba(232,180,90,.6)}
.gh-nav__label{font-size:.97rem;letter-spacing:.03em}
.gh-nav__link:hover,.gh-nav__link:focus-visible{
  background:rgba(232,180,90,.1);
  color:var(--gh-paper);
  border-left-color:var(--gh-gold);
  transform:translateX(2px);
}
.gh-nav__link[aria-current="page"]{
  color:var(--gh-paper);
  border-left-color:var(--gh-bright);
  background:linear-gradient(90deg,rgba(201,137,44,.26),rgba(201,137,44,0) 78%);
  font-weight:600;
}
.gh-nav__link[aria-current="page"] .gh-nav__idx{color:var(--gh-bright)}
.gh-rail__foot{
  display:grid;gap:.7rem;
  padding:1rem var(--gh-pad) 1.4rem;
  border-top:1px solid rgba(232,180,90,.16);
}
.gh-converge{
  height:8px;
  background:linear-gradient(90deg,var(--gh-copper),var(--gh-gold) 55%,var(--gh-bright));
  clip-path:polygon(0 0,100% 0,72% 100%,0 100%);
}
.gh-rail__cta{justify-content:center;width:100%}
.gh-rail__note{
  margin:0;font-family:var(--gh-font-mono);font-size:.63rem;line-height:1.7;
  letter-spacing:.06em;color:rgba(243,235,221,.55);
}

/* ===== 按钮 ===== */
.gh-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.8rem 1.5rem;border-radius:2px;border:1px solid transparent;
  font-family:var(--gh-font-body);font-weight:700;font-size:.94rem;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;
  transition:transform var(--gh-ease),box-shadow var(--gh-ease),background-color var(--gh-ease),color var(--gh-ease),border-color var(--gh-ease);
}
.gh-btn--gold{
  background:linear-gradient(180deg,#E3A544,var(--gh-gold));
  color:var(--gh-forest-deep);
  border-color:#8C5E1E;
  box-shadow:inset 0 1px 0 #F3CB86,0 8px 20px -12px rgba(122,74,43,.9);
}
.gh-btn--gold:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #F7D79B,0 14px 26px -12px rgba(122,74,43,.95)}
.gh-btn--ghost{
  background:transparent;color:var(--gh-forest);border-color:var(--gh-copper);
}
.gh-btn--ghost:hover{background:rgba(201,137,44,.12);border-color:var(--gh-gold)}

/* ===== 容器与网格 ===== */
.gh-shell{
  width:min(var(--gh-shell-w),100% - 2 * var(--gh-pad));
  margin-inline:auto;
  padding-block:clamp(2rem,5vw,4rem);
}
.gh-shell--tight{padding-block:clamp(1.25rem,3vw,2rem)}
.gh-main{display:block}
.gh-section{padding-block:clamp(2.25rem,5vw,4.5rem)}
.gh-grid{display:grid;gap:clamp(1rem,2.4vw,1.75rem)}
.gh-grid--split{grid-template-columns:minmax(0,1fr)}
.gh-rule{height:1px;border:0;margin:1.5rem 0;background:linear-gradient(90deg,var(--gh-copper),rgba(122,74,43,0) 82%)}

/* ===== 面板与索引元素 ===== */
.gh-panel{
  background:var(--gh-paper);
  border:1px solid var(--gh-line);
  border-radius:3px;
  padding:clamp(1.1rem,2.4vw,2rem);
  box-shadow:inset 0 1px 0 #FFFFFF,0 14px 30px -26px rgba(20,19,16,.85);
  transition:transform var(--gh-ease),box-shadow var(--gh-ease),border-color var(--gh-ease);
}
.gh-panel:hover{
  transform:translateY(-2px);
  border-color:rgba(201,137,44,.5);
  box-shadow:inset 0 1px 0 #FFFFFF,0 22px 40px -26px rgba(20,19,16,.9);
}
.gh-panel--forest{
  background:var(--gh-forest);color:var(--gh-mist);border-color:var(--gh-copper);
}
.gh-panel--forest h2,.gh-panel--forest h3{color:var(--gh-paper)}
.gh-panel--flush{padding:0;overflow:hidden}
.gh-eyebrow{
  display:flex;align-items:center;gap:.6rem;
  margin:0 0 .75rem;
  font-family:var(--gh-font-mono);font-size:.68rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gh-copper);
}
.gh-eyebrow::after{content:"";flex:1 1 auto;height:1px;background:linear-gradient(90deg,var(--gh-line),transparent)}
.gh-index{
  font-family:var(--gh-font-mono);font-size:.7rem;letter-spacing:.16em;
  color:var(--gh-copper);
}
.gh-tag{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.14rem .55rem;border-radius:2px;
  border:1px solid rgba(122,74,43,.4);
  background:rgba(201,137,44,.12);
  color:var(--gh-copper);
  font-family:var(--gh-font-mono);font-size:.66rem;letter-spacing:.12em;
  white-space:nowrap;
}
.gh-tag--clay{background:rgba(166,94,63,.14);border-color:rgba(166,94,63,.5);color:#8C4A2E}
.gh-tag--moss{background:rgba(78,107,74,.14);border-color:rgba(78,107,74,.45);color:#3C5739}

/* ===== 面包屑 ===== */
.gh-breadcrumb{
  font-family:var(--gh-font-mono);font-size:.68rem;letter-spacing:.12em;color:var(--gh-stone);
}
.gh-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}
.gh-breadcrumb li{display:inline-flex;align-items:center;gap:.45rem;min-width:0}
.gh-breadcrumb li + li::before{content:"/";color:var(--gh-copper)}
.gh-breadcrumb a{color:var(--gh-moss);text-decoration:none;border-bottom:1px solid transparent;transition:color var(--gh-ease),border-color var(--gh-ease)}
.gh-breadcrumb a:hover{color:var(--gh-copper);border-bottom-color:var(--gh-copper)}
.gh-breadcrumb [aria-current="page"]{color:var(--gh-forest);border:0}

/* ===== 正文排版 ===== */
.gh-prose{max-width:72ch}
.gh-prose p{margin-bottom:1em}
.gh-prose p:last-child{margin-bottom:0}
.gh-prose ul,.gh-prose ol{display:grid;gap:.5rem;margin-bottom:1em}
.gh-prose ul li{position:relative;padding-left:1.15rem}
.gh-prose ul li::before{
  content:"";position:absolute;left:0;top:.72em;width:.48rem;height:.48rem;
  background:var(--gh-gold);transform:rotate(45deg);
}
.gh-prose ol{counter-reset:gh-ol}
.gh-prose ol li{position:relative;padding-left:1.9rem;counter-increment:gh-ol}
.gh-prose ol li::before{
  content:counter(gh-ol,decimal-leading-zero);
  position:absolute;left:0;top:.1em;
  font-family:var(--gh-font-mono);font-size:.72rem;color:var(--gh-copper);
}
.gh-prose strong{color:var(--gh-forest);font-weight:700}
.gh-prose a{color:var(--gh-copper);text-decoration:none;border-bottom:1px solid rgba(122,74,43,.45)}
.gh-prose a:hover{border-bottom-color:var(--gh-gold);color:var(--gh-gold)}

/* ===== 图片容器基础规则 ===== */
.gh-media{
  position:relative;display:block;overflow:hidden;border-radius:3px;
  border:1px solid rgba(122,74,43,.35);
  background:
    radial-gradient(120% 120% at 15% 0%,rgba(232,180,90,.32),transparent 58%),
    linear-gradient(135deg,var(--gh-forest) 0%,#1E4438 48%,var(--gh-copper) 100%);
}
.gh-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,19,16,0) 42%,rgba(20,19,16,.42));
}
.gh-media img{display:block;width:100%;height:100%;object-fit:cover}
.gh-media--wide{aspect-ratio:16 / 9}
.gh-media--tall{aspect-ratio:3 / 4}
.gh-media--slit{aspect-ratio:21 / 9;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.gh-media--square{aspect-ratio:1 / 1}
.gh-media__caption{
  position:absolute;left:.75rem;bottom:.6rem;z-index:2;
  font-family:var(--gh-font-mono);font-size:.64rem;letter-spacing:.14em;
  color:var(--gh-bright);
}

/* ===== 页脚 ===== */
.gh-footer{
  position:relative;overflow:hidden;
  background:var(--gh-forest);
  color:rgba(243,235,221,.8);
  border-top:1px solid var(--gh-copper);
}
.gh-footer::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,rgba(232,180,90,.055) 0 1px,transparent 1px 96px),
    radial-gradient(90% 70% at 100% 0%,rgba(201,137,44,.18),transparent 62%);
}
.gh-footer__inner{
  position:relative;
  width:min(var(--gh-shell-w),100% - 2 * var(--gh-pad));
  margin-inline:auto;
  padding-block:clamp(2.5rem,5vw,3.75rem) 1.5rem;
}
.gh-footer__mast{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:1.5rem;padding-bottom:2rem;
  border-bottom:1px solid rgba(232,180,90,.22);
}
.gh-footer__id{max-width:44ch}
.gh-footer__brand{
  display:flex;align-items:center;gap:.65rem;
  margin:0 0 .6rem;
  font-family:var(--gh-font-display);font-size:1.35rem;letter-spacing:.04em;
  color:var(--gh-paper);
}
.gh-footer__mark{
  display:grid;place-items:center;width:2rem;height:2rem;
  border:1px solid var(--gh-gold);background:rgba(201,137,44,.16);
  color:var(--gh-bright);font-size:.95rem;
}
.gh-footer__line{margin:0;font-size:.92rem;line-height:1.75;color:rgba(243,235,221,.72)}
.gh-footer__grid{
  display:grid;gap:clamp(1.5rem,3vw,2.5rem);
  grid-template-columns:minmax(0,1fr);
  padding-block:2rem;
}
.gh-footer__col{min-width:0}
.gh-footer__coltitle{
  display:flex;align-items:baseline;gap:.15rem;
  margin:0 0 .9rem;
  font-family:var(--gh-font-mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gh-bright);
}
.gh-footer__idx{color:rgba(232,180,90,.55);margin-right:.45rem;font-size:.66rem}
.gh-footer__list{display:grid;gap:.55rem}
.gh-footer__link{
  display:inline-block;
  color:rgba(243,235,221,.78);text-decoration:none;
  border-bottom:1px solid transparent;padding-bottom:1px;
  transition:color var(--gh-ease),border-color var(--gh-ease),transform var(--gh-ease);
}
.gh-footer__link:hover{color:var(--gh-bright);border-bottom-color:var(--gh-copper);transform:translateX(2px)}
.gh-footer__contact{display:grid;gap:.55rem;font-size:.9rem;min-width:0}
.gh-footer__row{
  display:grid;grid-template-columns:3.6rem minmax(0,1fr);gap:.6rem;
  align-items:start;line-height:1.65;
}
.gh-footer__key{
  font-family:var(--gh-font-mono);font-size:.66rem;letter-spacing:.14em;
  color:rgba(232,180,90,.72);padding-top:.2rem;
}
.gh-footer__val{color:rgba(243,235,221,.84);word-break:break-word}
.gh-footer__legal{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;
  padding-top:1.25rem;
  border-top:1px solid rgba(232,180,90,.18);
}
.gh-footer__legalnote{
  margin:0;
  font-family:var(--gh-font-mono);font-size:.68rem;letter-spacing:.1em;
  color:rgba(243,235,221,.58);
}

/* ===== 显现（页面阶段使用 data-reveal） ===== */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity 240ms ease,transform 240ms ease}
[data-reveal].is-revealed{opacity:1;transform:none}

/* ===== 平板 ===== */
@media (min-width:48rem){
  .gh-footer__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gh-footer__contact{grid-column:1 / -1}
  .gh-nav__link{grid-template-columns:2.8rem minmax(0,1fr)}
}

/* ===== 桌面：框架式导航成为左侧边框 ===== */
@media (min-width:62rem){
  html{scroll-padding-top:1.5rem}
  body{padding-left:var(--gh-rail)}
  .gh-progress{left:var(--gh-rail)}
  .gh-skip{left:calc(var(--gh-rail) + .75rem)}
  .gh-header{
    position:fixed;top:0;left:0;bottom:0;width:var(--gh-rail);
    display:flex;flex-direction:column;
    border-bottom:0;border-right:1px solid var(--gh-copper);
    border-top:3px solid var(--gh-copper);
    overflow:hidden;
  }
  .gh-topbar{
    flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;
    padding:1.4rem 1.15rem .9rem;
  }
  .gh-navtoggle{display:none}
  .gh-topbar__hint{
    padding:.55rem 1.15rem 1rem;
    border-bottom:1px solid rgba(232,180,90,.16);
    font-size:.6rem;line-height:1.8;letter-spacing:.12em;
  }
  .gh-navwrap{
    display:flex;flex-direction:column;flex:1 1 auto;
    max-height:none;visibility:visible;overflow:visible;
    border-top:0;padding-top:.6rem;
    overflow-y:auto;overscroll-behavior:contain;
  }
  .gh-nav{display:grid}
  .gh-nav__link{
    grid-template-columns:2.1rem minmax(0,1fr);
    padding:.72rem 1.1rem;
  }
  .gh-nav__label{font-size:.96rem}
  .gh-rail__foot{
    margin-top:auto;
    padding:1.15rem 1.1rem 1.6rem;
  }
  .gh-footer__grid{grid-template-columns:repeat(3,minmax(0,1fr)) 1.5fr}
  .gh-footer__contact{grid-column:auto}
}

/* ===== 降低动效 ===== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  [data-reveal]{opacity:1 !important;transform:none !important}
  .gh-panel:hover,.gh-nav__link:hover,.gh-footer__link:hover,.gh-btn--gold:hover{transform:none}
}
