@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Cormorant+Garamond:ital,wght@0,300;0,500;0,700;1,300;1,500&family=Crimson+Pro:ital,wght@0,300;0,400;0,600;1,300;1,400&display=swap');

:root{
  --ink:#1F1611;
  --parch:#E8DCC4;
  --brass:#B08A3E;
  --line:rgba(176,138,62,.34);
  --line-soft:rgba(176,138,62,.18);
  --soft:rgba(232,220,196,.74);
  --display:'Cormorant Garamond','Cinzel','Songti SC','Noto Serif SC',Georgia,serif;
  --body:'Crimson Pro','Songti SC','Noto Serif SC',Georgia,serif;
}

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

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  scroll-padding-bottom:120px;
}

body{
  margin:0;
  padding-bottom:118px;
  overflow-x:hidden;
  background-color:var(--ink);
  background-image:
    radial-gradient(1100px 620px at 88% -14%,rgba(176,138,62,.20),transparent 62%),
    radial-gradient(860px 520px at -12% 34%,rgba(176,138,62,.11),transparent 58%);
  background-attachment:fixed;
  color:var(--parch);
  font-family:var(--body);
  font-size:17px;
  line-height:1.78;
  font-weight:400;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit}
::selection{background:rgba(176,138,62,.45);color:#fff8e7}

.shell{
  max-width:1180px;
  margin:0 auto;
  padding:0 clamp(16px,4vw,40px);
}

/* 角落品牌标记 */
.mark{
  position:fixed;
  z-index:45;
  top:16px;left:16px;
  width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:rgba(31,22,17,.82);
  backdrop-filter:blur(8px);
  color:var(--brass);
  font-family:var(--display);
  font-size:22px;
  line-height:1;
  text-decoration:none;
  letter-spacing:0;
  overflow:hidden;
}
.mark img{width:100%;height:100%;object-fit:cover}
.mark:hover{border-color:var(--parch);color:var(--parch)}

/* 主区 */
.stage{
  display:grid;
  grid-template-columns:236px minmax(0,1fr);
  gap:clamp(20px,3vw,44px);
  padding-top:96px;
}

/* 左栏 */
.toc{
  position:sticky;
  top:88px;
  align-self:start;
  padding:18px 16px;
  border:1px solid var(--line-soft);
  border-radius:28px;
}
.toc__title{
  margin:0 0 12px;
  font-family:var(--display);
  font-size:1.05rem;
  font-weight:500;
  letter-spacing:.32em;
  color:var(--brass);
}
.toc__title>span{display:inline-block}
.toc__list{list-style:none;margin:0;padding:0}
.toc__list li{margin:0}
.toc__list a{
  display:flex;
  gap:10px;
  align-items:baseline;
  padding:9px 6px;
  line-height:1.45;
  font-size:1rem;
  color:var(--soft);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .25s ease,border-color .25s ease,padding-left .25s ease;
}
.toc__list i{
  font-style:normal;
  font-family:var(--display);
  font-size:.9rem;
  letter-spacing:.08em;
  color:var(--brass);
  opacity:.8;
}
.toc__list a:hover{color:var(--parch);border-bottom-color:var(--line);padding-left:10px}

/* 正文栏 */
.leaf{min-width:0}

/* 首屏 */
.hero{
  position:relative;
  min-height:70vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
  padding:34px 0 30px;
}
.badge{
  position:absolute;
  top:6px;right:0;
  margin:0;
  padding:7px 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(176,138,62,.12);
  color:var(--brass);
  font-size:1rem;
  letter-spacing:.22em;
  transform:rotate(-4deg);
  animation:float 7s ease-in-out infinite;
}
.hero__title{
  margin:0;
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(2.4rem,7.6vw,5.2rem);
  line-height:1.06;
  letter-spacing:.015em;
  background:linear-gradient(96deg,var(--parch) 18%,var(--brass) 74%,var(--parch));
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:var(--parch);
  max-width:22ch;
}
.hero__title>span{
  display:inline-block;
  animation:rise .78s cubic-bezier(.2,.75,.25,1) both;
  animation-delay:calc(var(--i) * 42ms);
}
.hero__lead{
  margin:0;
  max-width:44ch;
  font-size:1.06rem;
  line-height:1.8;
  color:var(--soft);
}
.hero__fig{
  margin:22px 0 0;
  border:1px solid var(--line);
  border-radius:28px;
  overflow:hidden;
  background:rgba(232,220,196,.04);
}
.hero__fig img{
  width:100%;
  height:clamp(190px,42vh,360px);
  object-fit:cover;
  transform:scale(1.12) translateY(0);
  will-change:transform;
}

/* 正文卡片：描边、无阴影、大圆角 */
.leaf>article{
  position:relative;
  margin:0 0 26px;
  padding:clamp(20px,3.4vw,40px);
  border:1px solid var(--line);
  border-radius:28px;
  background:rgba(232,220,196,.028);
  scroll-margin-top:26px;
}
.js .leaf>article{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .72s ease,transform .72s cubic-bezier(.2,.72,.28,1);
}
.js .leaf>article.is-in{opacity:1;transform:none}

.leaf h2,.leaf h3{
  font-family:var(--display);
  font-weight:500;
  line-height:1.24;
  letter-spacing:.01em;
  color:var(--parch);
  margin:0 0 .72em;
}
.leaf h2{font-size:clamp(1.5rem,3.2vw,2.15rem)}
.leaf h3{font-size:clamp(1.24rem,2.5vw,1.58rem);color:var(--brass)}
.leaf h2>span,.leaf h3>span{position:relative;display:inline-block}
.leaf h2>span::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-.16em;
  height:1px;
  background:linear-gradient(90deg,var(--brass),rgba(176,138,62,0));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .9s ease .1s;
}
.leaf article.is-in h2>span::after{transform:scaleX(1)}

.leaf article p{margin:0 0 1em}
.leaf article p:last-child{margin-bottom:0}
.leaf article ul,.leaf article ol{margin:0 0 1em;padding-left:1.35em}
.leaf article li{margin:.34em 0}
.leaf article a{
  color:var(--brass);
  text-decoration:none;
  border-bottom:1px solid rgba(176,138,62,.46);
  transition:color .2s ease,border-color .2s ease;
}
.leaf article a:hover{color:var(--parch);border-bottom-color:var(--parch)}
.leaf article strong{color:#fff9ec;font-weight:600}
.leaf article blockquote{
  margin:1.2em 0;
  padding:.55em 0 .55em 1.1em;
  border-left:2px solid var(--brass);
  color:var(--soft);
  font-style:italic;
}
.leaf article table{width:100%;border-collapse:collapse;margin:1em 0;font-size:1rem}
.leaf article th,.leaf article td{border-bottom:1px solid var(--line-soft);padding:.6em .5em;text-align:left}
.leaf article img{border-radius:20px;border:1px solid var(--line-soft)}

/* 页脚：仅 p 与 small */
.foot{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px 24px;
  margin-top:40px;
  padding:34px 0 8px;
  border-top:1px solid var(--line);
}
.foot__cta{
  grid-column:1 / -1;
  margin:0 0 16px;
  font-family:var(--display);
  font-size:clamp(2rem,6vw,3.4rem);
  line-height:1.05;
  letter-spacing:.02em;
  color:var(--brass);
}
.foot__col{margin:0;line-height:1.5;font-size:1rem;color:var(--soft)}
.foot__col a{
  display:block;
  padding:9px 0;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}
.foot__col a:hover{color:var(--parch);border-bottom-color:var(--line)}
.foot small{
  grid-column:1 / -1;
  display:block;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line-soft);
  font-size:1rem;
  color:rgba(232,220,196,.55);
}

/* 底部固定条 */
.dock{
  position:fixed;
  z-index:50;
  left:0;right:0;bottom:0;
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px clamp(12px,3vw,26px);
  background:rgba(31,22,17,.93);
  backdrop-filter:blur(14px);
  border-top:1px solid var(--line);
  padding-bottom:calc(9px + env(safe-area-inset-bottom,0px));
}
.dock__mark{
  flex:0 0 auto;
  width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--brass);
  font-family:var(--display);
  font-size:20px;
  text-decoration:none;
  overflow:hidden;
}
.dock__mark img{width:100%;height:100%;object-fit:cover}
.dock__nav{flex:1 1 auto;min-width:0}
.dock__nav ol{
  display:flex;
  gap:2px;
  list-style:none;
  margin:0;padding:0;
  justify-content:flex-end;
  flex-wrap:nowrap;
}
.dock__nav a{
  display:block;
  padding:11px 11px;
  font-size:1rem;
  line-height:1.2;
  white-space:nowrap;
  text-decoration:none;
  color:var(--soft);
  border-radius:999px;
  transition:color .2s ease,background .2s ease;
}
.dock__nav a:hover{color:var(--ink);background:var(--brass)}
.dock__btn{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:11px 16px;
  font-family:var(--body);
  font-size:1rem;
  line-height:1.2;
  color:var(--parch);
  background:transparent;
  border:1px solid var(--line);
  border-radius:999px;
  cursor:pointer;
  transition:border-color .2s ease,color .2s ease;
}
.dock__btn:hover{border-color:var(--parch)}
.dock__bars{
  width:16px;height:10px;
  border-top:1px solid currentColor;
  border-bottom:1px solid currentColor;
}

/* 全屏遮罩菜单 */
.veil{
  position:fixed;
  inset:0;
  z-index:60;
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:22px clamp(16px,5vw,48px) 32px;
  overflow-y:auto;
  background:rgba(24,17,12,.975);
  animation:veilIn .3s ease both;
}
.veil[hidden]{display:none}
.veil__bar{
  display:flex;
  gap:12px;
  align-items:center;
  padding-top:6px;
  border-bottom:1px solid var(--line);
  padding-bottom:18px;
}
.veil__search{flex:1 1 auto}
.veil__search input{
  width:100%;
  padding:12px 16px;
  font-family:var(--body);
  font-size:1rem;
  color:var(--parch);
  background:rgba(232,220,196,.05);
  border:1px solid var(--line);
  border-radius:999px;
  outline:none;
}
.veil__search input::placeholder{color:rgba(232,220,196,.5)}
.veil__search input:focus{border-color:var(--brass)}
.veil__close{
  flex:0 0 auto;
  padding:12px 20px;
  font-family:var(--body);
  font-size:1rem;
  color:var(--parch);
  background:transparent;
  border:1px solid var(--line);
  border-radius:999px;
  cursor:pointer;
}
.veil__close:hover{border-color:var(--parch)}
.veil__nav ol{list-style:none;margin:0;padding:0}
.veil__nav li.off{display:none}
.veil__nav a{
  display:flex;
  align-items:baseline;
  gap:16px;
  padding:13px 4px;
  font-family:var(--display);
  font-size:clamp(1.4rem,4.4vw,2.1rem);
  line-height:1.3;
  text-decoration:none;
  color:var(--parch);
  border-bottom:1px solid var(--line-soft);
  transition:color .2s ease,padding-left .25s ease;
}
.veil__nav a:hover{color:var(--brass);padding-left:12px}
.veil__nav i{
  font-style:normal;
  font-size:.85rem;
  letter-spacing:.14em;
  color:var(--brass);
}
body.veil-on{overflow:hidden}

@keyframes rise{
  from{opacity:0;transform:translateY(.5em) rotate(2deg)}
  to{opacity:1;transform:none}
}
@keyframes float{
  0%,100%{transform:rotate(-4deg) translateY(0)}
  50%{transform:rotate(-1deg) translateY(-7px)}
}
@keyframes veilIn{from{opacity:0}to{opacity:1}}

/* 桌面偏窄 */
@media (max-width:1040px){
  .dock__nav{display:none}
  .dock__btn{margin-left:auto}
}

@media (max-width:860px){
  .stage{grid-template-columns:1fr;padding-top:88px}
  .toc{position:static;border-radius:24px;padding:14px}
  .toc__list{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px}
  .toc__list a{padding:10px 4px}
  .hero{min-height:auto;padding-top:56px}
  .badge{top:10px}
}

@media (max-width:520px){
  body{font-size:17px;padding-bottom:112px}
  .foot{grid-template-columns:1fr 1fr;gap:6px 18px}
  .foot__cta{grid-column:1 / -1}
  .foot small{grid-column:1 / -1}
  .toc__list{grid-template-columns:1fr}
  .hero__lead{max-width:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .js .leaf>article{opacity:1;transform:none}
  .hero__fig img{transform:none}
}

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