:root{
  --c-void:#141B3D;
  --c-plateau:#252A5C;
  --c-night:#3F3A7A;
  --c-mist:#8FA6C9;
  --c-snow:#F4F1EA;
  --c-ink:#1C2340;
  --c-gold:#E8B04B;
  --c-ember:#D97A3A;
  --c-teal:#3E9C9B;
  --c-red:#C94F5A;
  --c-green:#6E9E5A;
  --c-line:rgba(143,166,201,.26);
  --c-line-soft:rgba(143,166,201,.16);
  --shell-max:1180px;
  --gutter:clamp(1rem,4vw,2.75rem);
  --radius-lg:26px;
  --radius-md:16px;
  --radius-pill:999px;
  --font-sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background-color:var(--c-void);
  color:var(--c-snow);
  font-family:var(--font-sans);
  font-size:1rem;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video,canvas{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
p,h1,h2,h3,h4,h5,h6,figure,blockquote,dl,dd{margin:0}
dd{margin-inline-start:0}
:where(h1,h2,h3,h4,h5,h6){font-weight:900;line-height:1.16;letter-spacing:.06em}
a{color:inherit;text-decoration:none}
::selection{background:var(--c-gold);color:var(--c-ink)}
:focus-visible{outline:3px solid var(--c-gold);outline-offset:3px;border-radius:6px}

/* ---------- 容器与网格 ---------- */
.shell{
  width:100%;
  max-width:var(--shell-max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.grid{display:grid;gap:clamp(1rem,2.4vw,1.75rem)}
.grid--two{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.grid--three{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.grid--stand{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
@media (max-width:900px){
  .grid--stand{grid-template-columns:minmax(0,1fr)}
}

/* ---------- 跳到正文 ---------- */
.skip-link{
  position:fixed;
  top:-120px;
  left:50%;
  transform:translateX(-50%);
  z-index:400;
  padding:.7rem 1.3rem;
  border-radius:0 0 var(--radius-md) var(--radius-md);
  background:var(--c-gold);
  color:var(--c-ink);
  font-weight:700;
  letter-spacing:.08em;
  transition:top .22s var(--ease);
}
.skip-link:focus{top:0}

/* ---------- 头部 ---------- */
.site-header{
  position:relative;
  isolation:isolate;
  color:var(--c-snow);
  background:
    repeating-linear-gradient(90deg,rgba(244,241,234,.028) 0 1px,transparent 1px 7px),
    radial-gradient(120% 120% at 50% 128%,rgba(232,176,75,.22),transparent 62%),
    linear-gradient(180deg,#0F1531 0%,var(--c-void) 44%,var(--c-plateau) 100%);
}
.site-header::after{
  content:"";
  display:block;
  height:3px;
  background:linear-gradient(90deg,var(--c-teal) 0%,var(--c-gold) 32%,var(--c-red) 58%,var(--c-night) 80%,var(--c-teal) 100%);
  opacity:.85;
}
.header-rail{
  background:rgba(15,21,49,.55);
  border-bottom:1px solid var(--c-line-soft);
}
.header-rail__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.35rem 1.5rem;
  padding-block:.5rem;
  font-size:.75rem;
  letter-spacing:.04em;
  color:var(--c-mist);
}
.header-rail__note{margin:0}
.header-rail__tagline{
  margin:0;
  color:var(--c-gold);
  letter-spacing:.16em;
}

.masthead{
  display:grid;
  justify-items:center;
  gap:.4rem;
  text-align:center;
  padding-block:clamp(1.1rem,3vw,2.1rem) clamp(.85rem,2vw,1.4rem);
}
.masthead__kicker{
  margin:0;
  font-size:.74rem;
  letter-spacing:.36em;
  color:var(--c-mist);
}
.masthead__brand{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  color:var(--c-snow);
}
.masthead__pennant{
  display:inline-flex;
  align-items:flex-start;
  gap:4px;
  height:clamp(1.5rem,3vw,2.2rem);
}
.masthead__pennant i{
  display:block;
  width:clamp(4px,.7vw,7px);
  border-radius:var(--radius-pill);
}
.masthead__pennant i:nth-child(1){height:64%;background:var(--c-teal)}
.masthead__pennant i:nth-child(2){height:92%;background:var(--c-snow)}
.masthead__pennant i:nth-child(3){height:100%;background:var(--c-gold)}
.masthead__pennant i:nth-child(4){height:76%;background:var(--c-red)}
.masthead__pennant i:nth-child(5){height:52%;background:var(--c-green)}
.masthead__name{
  font-size:clamp(2rem,6.4vw,3.9rem);
  font-weight:900;
  line-height:1.05;
  letter-spacing:.16em;
  text-shadow:0 12px 34px rgba(232,176,75,.22);
}
.masthead__sub{
  margin:0;
  font-size:.8rem;
  letter-spacing:.24em;
  color:var(--c-mist);
}

.header-nav-band{
  background:rgba(15,21,49,.72);
  border-top:1px solid var(--c-line-soft);
}
.header-nav-band__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.7rem 1rem;
  padding-block:.75rem;
}
.nav-toggle{
  order:0;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.48rem .9rem;
  border-radius:var(--radius-pill);
  border:1px solid rgba(143,166,201,.42);
  background:rgba(63,58,122,.6);
  color:var(--c-snow);
  font-size:.85rem;
  cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);
}
.nav-toggle:hover{border-color:var(--c-gold);color:var(--c-gold)}
.nav-toggle[aria-expanded="true"]{
  background:var(--c-gold);
  border-color:var(--c-gold);
  color:var(--c-ink);
}
.nav-toggle__label{letter-spacing:.14em;font-weight:700}
.nav-toggle__bars{
  width:16px;
  height:12px;
  background-image:linear-gradient(var(--c-gold) 0 2px,transparent 2px 5px,var(--c-gold) 5px 7px,transparent 7px 10px,var(--c-gold) 10px 12px);
  background-repeat:no-repeat;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{
  background-image:linear-gradient(var(--c-ink) 0 2px,transparent 2px 5px,var(--c-ink) 5px 7px,transparent 7px 10px,var(--c-ink) 10px 12px);
}
.header-nav-band__cta{
  order:1;
  margin-inline-start:auto;
  padding:.5rem 1rem;
  font-size:.82rem;
}

.nav{
  order:2;
  flex-basis:100%;
  display:none;
  margin-top:.6rem;
  padding-top:.75rem;
  border-top:1px dashed rgba(143,166,201,.3);
}
.nav[data-open]{display:block;animation:nav-drop .24s var(--ease) both}
@keyframes nav-drop{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:none}
}
.nav__list{
  display:flex;
  flex-wrap:nowrap;
  gap:.35rem;
  margin:0;
  padding:0 0 .3rem;
  list-style:none;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
}
.nav__list li{flex:0 0 auto;scroll-snap-align:start}
.nav__link{
  display:block;
  padding:.46rem .9rem;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  color:var(--c-snow);
  font-size:.9rem;
  font-weight:500;
  letter-spacing:.05em;
  white-space:nowrap;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);
}
.nav__link:hover{
  background:rgba(63,58,122,.85);
  border-color:rgba(143,166,201,.36);
  color:var(--c-gold);
}
.nav__link[aria-current="page"]{
  background:var(--c-gold);
  border-color:var(--c-gold);
  color:var(--c-ink);
  font-weight:700;
}

@media (min-width:861px){
  .header-nav-band__inner{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:1rem;
    padding-block:.7rem;
  }
  .nav-toggle{display:none}
  .nav{
    grid-column:2;
    order:0;
    flex-basis:auto;
    display:block;
    margin:0;
    padding:0;
    border-top:0;
    justify-self:center;
  }
  .nav__list{overflow:visible;flex-wrap:wrap;justify-content:center;padding-bottom:0}
  .header-nav-band__cta{grid-column:3;order:0;justify-self:end;margin-inline-start:0}
}

/* ---------- 滚动进度尺 ---------- */
.scroll-ruler{
  position:fixed;
  inset-block-start:0;
  inset-inline:0;
  height:3px;
  z-index:300;
  background:rgba(143,166,201,.16);
  pointer-events:none;
}
.scroll-ruler__bar{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,var(--c-teal),var(--c-gold) 55%,var(--c-ember));
}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.72rem 1.4rem;
  border:1px solid transparent;
  border-radius:var(--radius-pill);
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.07em;
  line-height:1.2;
  cursor:pointer;
  transition:transform .22s var(--ease),background .22s var(--ease),color .22s var(--ease),border-color .22s var(--ease),box-shadow .22s var(--ease);
}
.btn--gold{
  background:linear-gradient(135deg,var(--c-gold),#F2C46B);
  color:#20180A;
  box-shadow:0 14px 30px -18px rgba(232,176,75,.95);
}
.btn--gold:hover{transform:translateY(-1px);box-shadow:0 18px 34px -18px rgba(232,176,75,1)}
.btn--ghost{
  background:rgba(63,58,122,.52);
  border-color:rgba(143,166,201,.45);
  color:var(--c-snow);
}
.btn--ghost:hover{
  background:var(--c-night);
  border-color:var(--c-gold);
  color:var(--c-gold);
}

/* ---------- 标签 ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.24rem .7rem;
  border:1px solid currentColor;
  border-radius:var(--radius-pill);
  background:rgba(244,241,234,.04);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  line-height:1.5;
}
.tag--gold{color:var(--c-gold)}
.tag--teal{color:var(--c-teal)}
.tag--red{color:var(--c-red)}
.tag--green{color:var(--c-green)}
.tag--ember{color:var(--c-ember)}

/* ---------- 面包屑 ---------- */
.breadcrumb{font-size:.78rem;letter-spacing:.08em;color:var(--c-mist)}
.breadcrumb__list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.15rem;
  margin:0;
  padding:0;
  list-style:none;
}
.breadcrumb__list li+li::before{content:"／";margin-inline-end:.4rem;color:rgba(143,166,201,.55)}
.breadcrumb__link{color:inherit;transition:color .2s var(--ease)}
.breadcrumb__link:hover{color:var(--c-gold)}
.breadcrumb__list [aria-current="page"]{color:var(--c-snow)}

/* ---------- 正文与章节 ---------- */
.prose{max-width:70ch;font-size:1.0625rem;line-height:1.85}
.prose>*+*{margin-top:1.05em}
.prose h2,.prose h3{margin-top:1.8em;letter-spacing:.06em}
.prose ul,.prose ol{padding-inline-start:1.25em;margin-block:0}
.prose li+li{margin-top:.4em}
.prose strong{color:var(--c-gold);font-weight:700}

.chapter{
  display:flex;
  align-items:flex-start;
  gap:clamp(.75rem,2vw,1.45rem);
}
.chapter__num{
  flex:0 0 auto;
  font-size:clamp(2.6rem,7vw,4.8rem);
  font-weight:900;
  line-height:.86;
  letter-spacing:-.01em;
  color:var(--c-gold);
  font-variant-numeric:tabular-nums;
}
.chapter__body{display:grid;gap:.4rem;min-width:0}
.chapter__title{margin:0;font-size:clamp(1.12rem,2.4vw,1.6rem);letter-spacing:.06em}
.chapter__desc{margin:0;color:var(--c-mist);line-height:1.8}

/* ---------- 图片容器 ---------- */
.media{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  aspect-ratio:16/10;
  border:1px solid var(--c-line);
  border-radius:var(--radius-lg);
  background:linear-gradient(155deg,var(--c-plateau) 0%,var(--c-void) 58%,var(--c-night) 100%);
}
.media img,.media video,.media svg{width:100%;height:100%;object-fit:cover;display:block}
.media--wide{aspect-ratio:21/9}
.media--tall{aspect-ratio:3/4}
.media--square{aspect-ratio:1/1}
.media--placeholder::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(72% 92% at 22% 112%,rgba(232,176,75,.34),transparent 62%),
    radial-gradient(58% 78% at 86% -8%,rgba(62,156,155,.3),transparent 60%);
  pointer-events:none;
}
.media__caption{
  position:absolute;
  inset-inline:0;
  inset-block-end:0;
  padding:.85rem 1.1rem;
  font-size:.76rem;
  letter-spacing:.06em;
  color:var(--c-snow);
  background:linear-gradient(0deg,rgba(10,14,34,.9),rgba(10,14,34,0));
}

/* ---------- 页脚 ---------- */
.site-footer{
  position:relative;
  margin-top:clamp(2.5rem,6vw,5rem);
  padding-block:clamp(2.4rem,5vw,3.6rem) 1.4rem;
  color:var(--c-snow);
  background:
    repeating-linear-gradient(90deg,rgba(244,241,234,.022) 0 1px,transparent 1px 8px),
    radial-gradient(100% 90% at 12% 0%,rgba(63,58,122,.8),transparent 66%),
    linear-gradient(180deg,var(--c-void) 0%,#101635 100%);
  border-top:1px solid var(--c-line);
}
.footer-pennants{
  position:absolute;
  inset-block-start:0;
  inset-inline:0;
  display:block;
  height:4px;
  background:linear-gradient(90deg,var(--c-teal) 0 20%,var(--c-snow) 20% 40%,var(--c-gold) 40% 60%,var(--c-red) 60% 80%,var(--c-green) 80% 100%);
  opacity:.9;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr .9fr;
  gap:clamp(1.75rem,4vw,3rem);
  align-items:start;
}
.footer-brand__name{
  font-size:clamp(1.35rem,3vw,1.7rem);
  font-weight:900;
  letter-spacing:.18em;
  color:var(--c-snow);
}
.footer-brand__line{
  margin-top:.45rem;
  font-size:.92rem;
  color:var(--c-mist);
  letter-spacing:.04em;
}
.footer-contact{
  display:grid;
  gap:.5rem;
  margin-top:1.3rem;
  font-size:.88rem;
}
.footer-contact__row{display:flex;align-items:baseline;gap:.8rem}
.footer-contact__term{
  flex:0 0 auto;
  min-width:2.6em;
  font-size:.74rem;
  letter-spacing:.16em;
  color:var(--c-gold);
}
.footer-contact__val{margin:0;color:var(--c-snow);word-break:break-word}
.footer-contact__note{
  max-width:36ch;
  margin-top:1rem;
  padding-inline-start:.85rem;
  border-inline-start:2px solid var(--c-gold);
  font-size:.78rem;
  line-height:1.75;
  color:var(--c-mist);
}
.footer-col{display:block}
.footer-col__title{
  margin:0 0 .9rem;
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.3em;
  color:var(--c-gold);
}
.footer-col__list{
  display:grid;
  gap:.55rem;
  margin:0;
  padding:0;
  list-style:none;
}
.footer-col__link{
  display:inline-block;
  padding-block:.12rem;
  border-bottom:1px solid transparent;
  font-size:.92rem;
  color:rgba(244,241,234,.86);
  transition:color .2s var(--ease),border-color .2s var(--ease);
}
.footer-col__link:hover{color:var(--c-gold);border-bottom-color:var(--c-gold)}
.footer-col--util .footer-col__title{color:var(--c-teal)}
.footer-col--util .footer-col__link:hover{color:var(--c-teal);border-bottom-color:var(--c-teal)}
.footer-base{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.9rem 1.5rem;
  margin-top:clamp(1.8rem,4vw,2.8rem);
  padding-top:1.2rem;
  border-top:1px solid rgba(143,166,201,.22);
  font-size:.76rem;
  letter-spacing:.06em;
  color:var(--c-mist);
}
.footer-base__legal{margin:0}
.footer-base__copy{margin:0}
.to-top{
  padding:.42rem 1rem;
  border:1px solid rgba(143,166,201,.42);
  border-radius:var(--radius-pill);
  background:rgba(63,58,122,.5);
  color:var(--c-snow);
  font-size:.76rem;
  letter-spacing:.1em;
  cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);
}
.to-top:hover{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-ink)}

@media (max-width:900px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand{grid-column:1 / -1}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:minmax(0,1fr)}
  .footer-base{justify-content:flex-start}
}

/* ---------- 滚动显现 ---------- */
html.js [data-reveal]{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .48s var(--ease),transform .48s var(--ease);
}
html.js [data-reveal][data-revealed]{
  opacity:1;
  transform: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;
  }
  html.js [data-reveal]{opacity:1;transform:none}
}
