/* ============================================================
   立博服务 · 共享样式 /assets/site.css
   骨架：目录页 — 章节页 — 索引页，双层导航 + 纸张叠层 + 经幡五色标签
   ============================================================ */

:root{
  --teal-900:#0E3A4F;
  --teal-700:#14556E;
  --teal-300:#A8CBD6;
  --paper:#F5F1E8;
  --parchment:#EFE6D6;
  --brass:#C08A2E;
  --flag-red:#B3382C;
  --flag-green:#2F6B4F;
  --flag-yellow:#E0B23C;
  --ink:#1B2430;
  --ink-soft:#55636E;
  --line:#D7CBB4;

  --wrap:1180px;
  --measure:33em;
  --shadow-1:0 1px 0 rgba(27,36,48,.05), 0 14px 32px -20px rgba(14,58,79,.5);
  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;
  --font-sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Noto Sans SC",monospace;
}

*,*::before,*::after{box-sizing:border-box;}
[hidden]{display:none !important;}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background-color:var(--paper);
  background-image:
    linear-gradient(180deg, rgba(168,203,214,.28) 0px, rgba(245,241,232,0) 460px),
    radial-gradient(rgba(27,36,48,.05) 1px, transparent 1px);
  background-size:100% 100%, 4px 4px;
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:clamp(16px,1.05vw,17px);
  font-weight:400;
  line-height:1.85;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{font-family:var(--font-serif);font-weight:700;line-height:1.3;letter-spacing:.04em;margin:0 0 .6em;}
p{margin:0 0 1.1em;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--teal-700);text-decoration:none;}
a:hover{color:var(--brass);}
ul,ol{margin:0 0 1.1em;padding-left:1.3em;}
button{font:inherit;}

:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px;}

#main-content{display:block;scroll-margin-top:7rem;}

/* ---------- 布局骨架 ---------- */
.kit-wrap{width:min(100% - 2.5rem, var(--wrap));margin-inline:auto;}
.kit-prose{max-width:var(--measure);}
.kit-prose p{font-size:1rem;line-height:1.9;}
.kit-grid{display:grid;gap:1.5rem;}
.kit-grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.kit-grid--3{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));}
.kit-rule{height:1px;background:var(--line);border:0;margin:2.25rem 0;}

.kit-section{padding:3.25rem 0;}
.kit-section__head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;}
.kit-section__index{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.24em;color:var(--brass);}
.kit-section__title{font-size:clamp(1.5rem,3vw,2.1rem);margin:0;}

/* ---------- 纵向引导线 / 纵向小注释 ---------- */
.kit-thread{width:3px;background:var(--brass);}
.kit-thread--flag{
  background:linear-gradient(180deg,
    var(--teal-700) 0 20%,
    var(--paper) 20% 40%,
    var(--flag-red) 40% 60%,
    var(--flag-green) 60% 80%,
    var(--flag-yellow) 80% 100%);
}
.kit-vnote{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  font-size:12px;
  letter-spacing:.18em;
  line-height:1.6;
  color:var(--ink-soft);
}

/* ---------- 跳转链接 ---------- */
.skip-link{
  position:absolute;left:1rem;top:-5rem;z-index:300;
  background:var(--brass);color:var(--ink);
  padding:.6rem 1rem;font-size:.9rem;letter-spacing:.08em;
  border-radius:2px;transition:top .2s ease-out;
}
.skip-link:focus{top:1rem;color:var(--ink);}

/* ---------- 阅读进度 ---------- */
.kit-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:200;
  background:linear-gradient(90deg,var(--brass),var(--flag-yellow));
  transform:scaleX(0);transform-origin:0 50%;
  pointer-events:none;
}

/* ---------- 页头：双层信息导航 ---------- */
.site-header{position:relative;z-index:60;background:var(--paper);}

.kit-band{
  background:linear-gradient(118deg,var(--teal-900) 0%,var(--teal-900) 45%,var(--teal-700) 100%);
  color:var(--paper);
  position:relative;
}
.kit-band::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;opacity:.9;
  background:linear-gradient(90deg,
    var(--teal-700) 0 20%,
    var(--paper) 20% 40%,
    var(--flag-red) 40% 60%,
    var(--flag-green) 60% 80%,
    var(--flag-yellow) 80% 100%);
}
.kit-band__inner{
  width:min(100% - 2.5rem, var(--wrap));margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 0 1rem;
}
.kit-brand{display:flex;align-items:center;gap:.85rem;color:var(--paper);text-decoration:none;}
.kit-brand:hover{color:var(--paper);}
.kit-brand__mark{
  flex:0 0 auto;display:grid;place-items:center;
  width:2.7rem;height:2.7rem;
  border:1px solid var(--brass);
  background:rgba(192,138,46,.12);
  color:var(--brass);font-family:var(--font-serif);font-weight:700;
  font-size:.84rem;letter-spacing:.1em;line-height:1.15;text-align:center;
}
.kit-brand__text{display:block;}
.kit-brand__name{
  display:block;font-family:var(--font-serif);font-weight:700;
  font-size:1.15rem;letter-spacing:.16em;line-height:1.3;
}
.kit-brand__domain{
  display:block;font-family:var(--font-mono);font-size:.7rem;
  letter-spacing:.06em;color:var(--teal-300);line-height:1.6;
}
.kit-band__meta{display:flex;align-items:center;gap:.75rem;}

.kit-back{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.35rem .7rem;
  border:1px solid rgba(168,203,214,.45);
  background:rgba(245,241,232,.05);
  color:var(--teal-300);text-decoration:none;
  font-size:.78rem;letter-spacing:.08em;
}
.kit-back:hover{color:var(--paper);border-color:var(--brass);}
.kit-back__text{white-space:nowrap;}
.kit-back__label{font-family:var(--font-mono);font-size:.74rem;color:var(--brass);letter-spacing:.06em;}

.kit-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  padding:.55rem 1.05rem;
  border:1px solid var(--brass);border-radius:2px;
  background:transparent;color:var(--brass);
  font-family:inherit;font-size:.85rem;letter-spacing:.1em;
  text-decoration:none;cursor:pointer;
  transition:background-color .2s ease-out,color .2s ease-out,border-color .2s ease-out;
}
.kit-btn:hover{background:var(--brass);color:var(--teal-900);}
.kit-btn--solid{background:var(--brass);color:var(--teal-900);}
.kit-btn--solid:hover{background:#D69F3E;border-color:#D69F3E;color:var(--teal-900);}
.kit-btn--paper{border-color:var(--line);color:var(--ink);}
.kit-btn--paper:hover{background:var(--parchment);color:var(--ink);border-color:var(--brass);}
.kit-band__cta{flex:0 0 auto;}

/* ---------- 标签卷轴导航 ---------- */
.kit-navband{background:var(--parchment);border-bottom:1px solid var(--line);}
.kit-navband__inner{
  position:relative;
  width:min(100% - 2.5rem, var(--wrap));margin-inline:auto;
  display:flex;align-items:center;gap:1rem;
  padding:.5rem 0;
}
.kit-navband__hint{
  margin-left:auto;flex:0 0 auto;
  font-size:.7rem;letter-spacing:.28em;color:var(--ink-soft);white-space:nowrap;
}
.kit-nav{flex:1 1 auto;min-width:0;}
.kit-nav__list{
  display:flex;align-items:center;gap:.4rem;
  margin:0;padding:.2rem 0;list-style:none;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent;
  cursor:grab;
}
.kit-nav__list.is-dragging{cursor:grabbing;scroll-snap-type:none;}
.kit-nav__list::-webkit-scrollbar{height:6px;}
.kit-nav__list::-webkit-scrollbar-track{background:transparent;}
.kit-nav__list::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px;}
.kit-nav__item{flex:0 0 auto;scroll-snap-align:start;}

.kit-nav__link{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.48rem .95rem .48rem .8rem;
  border:1px solid var(--line);
  border-radius:2px;
  background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(255,255,255,.15));
  color:var(--teal-900);
  font-size:.92rem;letter-spacing:.08em;white-space:nowrap;
  text-decoration:none;
  transition:border-color .2s ease-out,background-color .2s ease-out,color .2s ease-out;
}
.kit-nav__link::before{
  content:"";width:6px;height:6px;flex:0 0 auto;
  background:var(--line);transform:rotate(45deg);
  transition:background-color .2s ease-out;
}
.kit-nav__link:hover{border-color:var(--teal-300);color:var(--teal-700);}
.kit-nav__link[aria-current="page"]{
  border-color:var(--brass);
  background:var(--paper);
  color:var(--teal-900);
  box-shadow:inset 0 0 0 1px rgba(192,138,46,.28);
}
.kit-nav__link[aria-current="page"]::before{background:var(--brass);}

.kit-navtoggle{
  display:none;
  align-items:center;gap:.6rem;
  padding:.45rem .85rem;
  border:1px solid var(--brass);border-radius:2px;
  background:transparent;color:var(--teal-900);
  font-family:inherit;font-size:.85rem;letter-spacing:.12em;cursor:pointer;
}
.kit-navtoggle::before{
  content:"";width:14px;height:2px;background:var(--brass);
  box-shadow:0 5px 0 var(--brass), 0 -5px 0 var(--brass);
}
.kit-navtoggle[aria-expanded="true"]{background:var(--brass);color:var(--teal-900);}
.kit-navtoggle[aria-expanded="true"]::before{background:var(--teal-900);box-shadow:0 5px 0 var(--teal-900), 0 -5px 0 var(--teal-900);}

/* ---------- 返回顶部 ---------- */
.kit-top{
  position:fixed;right:1.25rem;bottom:1.25rem;z-index:150;
  padding:.6rem .95rem;
  border:1px solid var(--brass);border-radius:2px;
  background:var(--paper);color:var(--teal-900);
  font-family:inherit;font-size:.76rem;letter-spacing:.16em;
  cursor:pointer;box-shadow:var(--shadow-1);
  transition:background-color .2s ease-out,color .2s ease-out;
}
.kit-top:hover{background:var(--brass);color:var(--teal-900);}

/* ---------- 页脚 ---------- */
.site-footer{
  margin-top:4.5rem;
  background:var(--teal-900);
  color:var(--paper);
  border-top:3px solid var(--brass);
}
.kit-foot__inner{
  display:grid;grid-template-columns:minmax(190px,1fr) 2.2fr;gap:2.5rem;
  padding:2.75rem 0 2.25rem;
}
.kit-foot__brand{display:block;}
.kit-foot__brandname{
  font-family:var(--font-serif);font-weight:700;font-size:1.3rem;
  letter-spacing:.18em;margin:0 0 .45rem;color:var(--paper);
}
.kit-foot__brandline{margin:0 0 1rem;font-size:.84rem;letter-spacing:.06em;color:var(--teal-300);}
.kit-foot__addr{margin:0;font-size:.84rem;line-height:1.75;color:var(--teal-300);}

.kit-foot__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.75rem;}
.kit-foot__col{min-width:0;}
.kit-foot__title{
  margin:0 0 .8rem;
  font-family:var(--font-sans);font-size:.76rem;font-weight:500;
  letter-spacing:.26em;color:var(--brass);
}
.kit-foot__title::after{
  content:"";display:block;width:26px;height:2px;margin-top:.5rem;
  background:linear-gradient(90deg,var(--flag-red),var(--flag-green),var(--flag-yellow));
}
.kit-foot__list{margin:0;padding:0;list-style:none;display:grid;gap:.3rem;}
.kit-foot__link{
  color:var(--paper);font-size:.9rem;
  border-bottom:1px solid transparent;
  transition:border-color .2s ease-out,color .2s ease-out;
}
.kit-foot__link:hover{color:#fff;border-bottom-color:var(--brass);}
.kit-foot__list--plain li{
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em;
  color:var(--paper);word-break:break-all;line-height:1.75;
}
.kit-foot__hint{margin:.85rem 0 0;font-size:.77rem;line-height:1.7;color:var(--teal-300);}

.kit-foot__legal{border-top:1px solid rgba(168,203,214,.28);background:rgba(0,0,0,.16);}
.kit-foot__legalinner{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;
  padding:1rem 0 1.4rem;
}
.kit-foot__legallines{min-width:0;}
.kit-foot__icp{margin:0;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em;color:var(--teal-300);}
.kit-foot__copy{margin:.25rem 0 0;font-size:.76rem;color:var(--teal-300);}
.kit-foot__vnote{
  margin:0;flex:0 0 auto;
  writing-mode:vertical-rl;
  font-size:12px;letter-spacing:.18em;line-height:1.5;
  color:rgba(168,203,214,.8);
  height:7.5rem;
  transform:rotate(8deg);transform-origin:right top;
}

/* ---------- 通用组件 ---------- */
.kit-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.kit-num{
  display:block;font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  font-size:clamp(2rem,5vw,3.3rem);line-height:1;
  color:var(--brass);letter-spacing:-.01em;
}

.kit-tag{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.18rem .6rem .18rem .5rem;
  border:1px solid var(--line);
  border-left-width:4px;border-left-style:solid;border-left-color:var(--line);
  border-radius:1px;
  background:var(--paper);color:var(--ink);
  font-size:.76rem;letter-spacing:.08em;line-height:1.7;
}
.kit-tag--brass{border-left-color:var(--brass);}
.kit-tag--red{border-left-color:var(--flag-red);}
.kit-tag--green{border-left-color:var(--flag-green);}
.kit-tag--yellow{border-left-color:var(--flag-yellow);}
.kit-tag--teal{border-left-color:var(--teal-700);}

.kit-card{
  position:relative;z-index:0;
  background:var(--paper);
  border:1px solid var(--line);
  padding:1.5rem 1.5rem 1.35rem;
  transition:transform .24s ease-out,border-color .24s ease-out;
}
.kit-card::after{
  content:"";position:absolute;z-index:-1;
  inset:10px -9px -9px 10px;
  border:1px solid var(--line);
  background:var(--parchment);
}
.kit-card:hover{transform:translateY(-2px);border-color:var(--teal-300);}
.kit-card__title{font-size:1.15rem;margin:0 0 .5rem;letter-spacing:.05em;}
.kit-card__body{margin:0 0 .9rem;font-size:.94rem;line-height:1.85;color:var(--ink-soft);}
.kit-card__meta{
  margin:0;display:flex;flex-wrap:wrap;gap:.5rem .9rem;
  font-family:var(--font-mono);font-size:.76rem;color:var(--ink-soft);
}

/* 图片容器基础规则（页面阶段放 <img>） */
.kit-media{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,var(--teal-300),var(--parchment));
  border:1px solid var(--line);
  aspect-ratio:4 / 3;
}
.kit-media img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.92) contrast(1.03) sepia(.06);
}
.kit-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;
  background-image:radial-gradient(rgba(27,36,48,.35) 1px, transparent 1px);
  background-size:3px 3px;
}
.kit-media--wide{aspect-ratio:16 / 9;}
.kit-media--tall{aspect-ratio:3 / 4;}
.kit-media--square{aspect-ratio:1 / 1;}
.kit-media--thumb{aspect-ratio:1 / 1;max-width:132px;}
.kit-media__caption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  margin:0;padding:.5rem .7rem;
  background:linear-gradient(0deg,rgba(14,58,79,.82),rgba(14,58,79,0));
  color:var(--paper);font-size:.76rem;letter-spacing:.06em;line-height:1.6;
}

/* 面包屑 */
.kit-breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;
  margin:0;padding:1.25rem 0 0;list-style:none;
  font-size:.78rem;color:var(--ink-soft);
}
.kit-breadcrumb a{color:var(--ink-soft);border-bottom:1px solid var(--line);}
.kit-breadcrumb a:hover{color:var(--teal-700);border-bottom-color:var(--brass);}
.kit-breadcrumb__sep{color:var(--line);}
.kit-breadcrumb [aria-current="page"]{color:var(--ink);}

/* 可展开条目 */
.kit-fold{border-top:1px solid var(--line);}
.kit-fold:last-of-type{border-bottom:1px solid var(--line);}
.kit-fold__head{
  display:flex;align-items:baseline;gap:1rem;width:100%;
  padding:1rem .25rem;
  background:none;border:0;color:var(--ink);
  font-family:inherit;font-size:1rem;letter-spacing:.04em;
  text-align:left;cursor:pointer;
  transition:color .2s ease-out;
}
.kit-fold__head:hover{color:var(--teal-700);}
.kit-fold__title{font-family:var(--font-serif);font-weight:700;}
.kit-fold__marker{
  margin-left:auto;flex:0 0 auto;
  font-family:var(--font-mono);color:var(--brass);font-size:.9rem;
}
.kit-fold__panel{padding:0 .25rem 1.35rem;color:var(--ink-soft);font-size:.95rem;line-height:1.85;}
.kit-fold[data-open]{background:linear-gradient(180deg,rgba(239,230,214,.7),rgba(239,230,214,0));}

/* ---------- 显现动画 ---------- */
html.js .kit-reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease-out,transform .55s ease-out;}
html.js .kit-reveal.is-in{opacity:1;transform:none;}

/* ---------- 平板 ---------- */
@media (max-width:1023px){
  .kit-foot__inner{grid-template-columns:1fr;gap:2rem;}
  .kit-foot__cols{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ---------- 移动端 ---------- */
@media (max-width:899px){
  .kit-band__inner{flex-wrap:wrap;gap:.7rem;padding:.8rem 0 .95rem;}
  .kit-band__cta{display:none;}
  .kit-brand__domain{font-size:.66rem;}
  .kit-navtoggle{display:inline-flex;}
  .kit-navband__hint{display:none;}
  .kit-nav{
    position:absolute;top:calc(100% + .5rem);left:0;right:0;z-index:90;
    display:none;
    padding:.55rem;
    background:var(--paper);
    border:1px solid var(--line);
    box-shadow:var(--shadow-1);
  }
  .kit-nav[data-open]{display:block;}
  .kit-nav__list{flex-direction:column;align-items:stretch;gap:.3rem;overflow:visible;scroll-snap-type:none;cursor:auto;}
  .kit-nav__link{width:100%;justify-content:flex-start;padding:.7rem .8rem;background:var(--paper);}
  .kit-nav__item{width:100%;}
  .kit-section{padding:2.5rem 0;}
  .kit-foot__cols{grid-template-columns:1fr;gap:1.5rem;}
  .kit-foot__legalinner{flex-direction:column;gap:.6rem;}
  .kit-foot__vnote{display:none;}
  .kit-top{right:.9rem;bottom:.9rem;}
}

@media (min-width:900px){
  .site-header{position:sticky;top:0;}
  .kit-nav__list{scroll-snap-type:x proximity;}
}

@media (max-width:520px){
  .kit-brand__mark{width:2.35rem;height:2.35rem;font-size:.76rem;}
  .kit-brand__name{font-size:1.02rem;}
  .kit-back__text{font-size:.74rem;}
}

/* ---------- 降低动效 ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;}
  html.js .kit-reveal{opacity:1;transform:none;}
  .kit-card:hover{transform:none;}
}
