:root{
  --ky-ink:#14120F;
  --ky-canvas:#F7F5F0;
  --ky-leaf:#14503C;
  --ky-leaf-deep:#0A2B20;
  --ky-leaf-tint:#EAF0EC;
  --ky-gold:#D9A441;
  --ky-gold-soft:#F4E4C1;
  --ky-steel:#66757D;
  --ky-line:#E6ECEC;
  --ky-clay:#C4613A;
  --ky-white:#FFFFFF;
  --ky-w:1180px;
  --ky-gutter:clamp(16px,4vw,40px);
  --ky-radius-pill:999px;
  --ky-radius-lg:28px;
  --ky-radius-md:16px;
  --ky-shadow:0 18px 44px -30px rgba(10,43,32,.55);
  --ky-fs-12:.75rem;
  --ky-fs-14:.875rem;
  --ky-fs-16:1rem;
  --ky-fs-18:1.125rem;
  --ky-fs-24:clamp(1.25rem,1.08rem + .7vw,1.5rem);
  --ky-fs-32:clamp(1.5rem,1.2rem + 1.4vw,2rem);
  --ky-fs-48:clamp(1.95rem,1.55rem + 2vw,3rem);
  --ky-fs-68:clamp(2.35rem,1.65rem + 3.4vw,4.25rem);
  --ky-serif:"Source Han Serif SC","Noto Serif SC","Songti SC","SimSun",serif;
  --ky-hei:"Source Han Sans SC","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --ky-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:120px}
body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,blockquote,dl,dd,section,header,footer,nav{margin:0}
ul,ol{padding:0;list-style:none}
button,input{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
summary{list-style:none}
summary::-webkit-details-marker{display:none}

body{
  background:var(--ky-canvas);
  color:var(--ky-ink);
  font-family:var(--ky-hei);
  font-size:var(--ky-fs-16);
  line-height:1.75;
  padding-top:clamp(88px,9vw,108px);
  overflow-x:hidden;
}

h1,h2,h3,h4{font-family:var(--ky-serif);font-weight:900;line-height:1.2;letter-spacing:.01em}
h4{font-size:var(--ky-fs-18);line-height:1.35}

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

.ky-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ==== 布局 ==== */
.ky-container{width:min(100% - var(--ky-gutter) * 2,var(--ky-w));margin-inline:auto}
.ky-grid{display:grid;gap:clamp(18px,3vw,40px);grid-template-columns:repeat(12,minmax(0,1fr))}
.ky-split{display:grid;gap:clamp(20px,3.4vw,44px);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}
.ky-split--reverse{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.ky-band{padding-block:clamp(44px,7.5vw,100px)}
.ky-band--canvas{background:var(--ky-canvas)}
.ky-band--tint{background:var(--ky-leaf-tint)}
.ky-band--soft{background:var(--ky-gold-soft)}
.ky-band--leaf{background:var(--ky-leaf);color:var(--ky-white)}
.ky-band--deep{background:var(--ky-leaf-deep);color:var(--ky-white)}
.ky-band--leaf .ky-note,.ky-band--leaf .ky-quiet,.ky-band--deep .ky-note,.ky-band--deep .ky-quiet{color:rgba(255,255,255,.76)}
.ky-band--leaf .ky-prose,.ky-band--deep .ky-prose{color:rgba(255,255,255,.86)}
.ky-rule{height:1px;border:0;background:var(--ky-line)}
.ky-band--deep .ky-rule,.ky-band--leaf .ky-rule{background:rgba(255,255,255,.16)}

/* ==== 文字 ==== */
.ky-eyebrow{font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.2em;text-transform:uppercase;color:var(--ky-leaf)}
.ky-band--leaf .ky-eyebrow,.ky-band--deep .ky-eyebrow{color:var(--ky-gold)}
.ky-num{font-family:var(--ky-mono);font-size:var(--ky-fs-14);letter-spacing:.08em;color:var(--ky-gold);font-variant-numeric:tabular-nums}
.ky-prose{max-width:34em;line-height:1.75;font-size:var(--ky-fs-16)}
.ky-prose + .ky-prose{margin-top:1.1em}
.ky-note{font-size:var(--ky-fs-14);line-height:1.7;color:var(--ky-steel);max-width:38em}
.ky-quiet{font-size:var(--ky-fs-12);line-height:1.6;color:var(--ky-steel)}
.ky-section__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 20px;margin-bottom:clamp(20px,3vw,36px)}
.ky-section__title{font-size:var(--ky-fs-32);max-width:22em}

/* ==== 按钮 ==== */
.ky-btn{
  display:inline-flex;align-items:center;gap:.55em;
  padding:.72em 1.4em;border:1px solid transparent;border-radius:var(--ky-radius-pill);
  font-family:var(--ky-hei);font-weight:700;font-size:var(--ky-fs-14);letter-spacing:.02em;
  cursor:pointer;transition:background .22s ease-out,color .22s ease-out,border-color .22s ease-out,transform .22s ease-out;
}
.ky-btn:hover{transform:translateY(-1px)}
.ky-btn:active{transform:translateY(0)}
.ky-btn--primary{background:var(--ky-leaf);color:var(--ky-white)}
.ky-btn--primary:hover{background:var(--ky-leaf-deep)}
.ky-btn--gold{background:var(--ky-gold);color:var(--ky-leaf-deep)}
.ky-btn--gold:hover{background:#c8912f}
.ky-btn--ghost{background:transparent;border-color:var(--ky-leaf);color:var(--ky-leaf)}
.ky-btn--ghost:hover{background:var(--ky-gold-soft);border-color:var(--ky-gold)}
.ky-btn--quiet{background:transparent;border-color:var(--ky-line);color:var(--ky-steel)}
.ky-btn--quiet:hover{border-color:var(--ky-steel);color:var(--ky-ink)}
.ky-band--leaf .ky-btn--ghost,.ky-band--deep .ky-btn--ghost{border-color:rgba(255,255,255,.6);color:var(--ky-white)}
.ky-band--leaf .ky-btn--ghost:hover,.ky-band--deep .ky-btn--ghost:hover{background:rgba(255,255,255,.14);border-color:var(--ky-gold)}

/* ==== 标签与状态 ==== */
.ky-tag{display:inline-flex;align-items:center;gap:.4em;padding:.3em .78em;border-radius:var(--ky-radius-pill);
  background:var(--ky-gold-soft);color:#6A4A12;font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.06em}
.ky-tag--leaf{background:rgba(20,80,60,.1);color:var(--ky-leaf)}
.ky-tag--alert{background:rgba(196,97,58,.14);color:var(--ky-clay)}
.ky-status{display:inline-flex;align-items:center;gap:.5em;font-size:var(--ky-fs-14);line-height:1.5}
.ky-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ky-leaf);flex:0 0 auto}
.ky-status--gold::before{background:var(--ky-gold)}
.ky-status--alert::before{background:var(--ky-clay)}
.ky-band--leaf .ky-status,.ky-band--deep .ky-status{color:rgba(255,255,255,.84)}

/* ==== 面包屑 ==== */
.ky-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.55em;
  font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.06em;color:var(--ky-steel)}
.ky-crumb a:hover{color:var(--ky-leaf)}
.ky-crumb__sep{opacity:.5}

/* ==== 图像容器 ==== */
.ky-figure{position:relative;margin:0;overflow:hidden;border-radius:var(--ky-radius-lg);background:var(--ky-leaf-tint)}
.ky-figure__img,.ky-figure img{display:block;width:100%;height:100%;object-fit:cover}
.ky-figure--wide{aspect-ratio:16/9}
.ky-figure--band{aspect-ratio:21/9}
.ky-figure--tall{aspect-ratio:4/5}
.ky-figure--square{aspect-ratio:1/1}
.ky-figure--organic{border-radius:48% 14px 42px 14px / 42px 42px 14px 42px}
.ky-figure--empty{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;
  background:repeating-linear-gradient(135deg,rgba(20,80,60,.09) 0 10px,rgba(20,80,60,.03) 10px 20px);
  color:var(--ky-steel);font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.08em;text-align:center;padding:16px}
.ky-figure__cap{margin-top:.7em;font-family:var(--ky-mono);font-size:var(--ky-fs-12);line-height:1.6;color:var(--ky-steel)}

/* ==== 跳过链接 ==== */
.ky-skip{position:fixed;top:10px;left:10px;z-index:200;padding:.62em 1.1em;border-radius:var(--ky-radius-pill);
  background:var(--ky-leaf);color:var(--ky-white);font-size:var(--ky-fs-14);font-weight:700;
  transform:translateY(-180%);transition:transform .2s ease-out}
.ky-skip:focus{transform:translateY(0)}

/* ==== 头部 ==== */
.ky-header{position:fixed;inset:0 0 auto;z-index:100;padding:14px 0 0;pointer-events:none}
.ky-header__inner{
  position:relative;pointer-events:auto;
  width:min(100% - 32px,var(--ky-w));margin-inline:auto;
  display:flex;align-items:center;gap:clamp(10px,1.8vw,24px);
  padding:10px clamp(12px,1.6vw,20px);
  border-radius:var(--ky-radius-pill);
  background:rgba(247,245,240,.93);
  border:1px solid rgba(20,80,60,.22);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  box-shadow:0 14px 34px -30px rgba(10,43,32,.75);
  transition:padding .28s ease-out,background .28s ease-out,box-shadow .28s ease-out;
}
.ky-header[data-scrolled="true"] .ky-header__inner{padding:6px clamp(12px,1.6vw,20px);background:rgba(247,245,240,.98);box-shadow:0 12px 26px -26px rgba(10,43,32,.85)}

.ky-brand{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0}
.ky-brand__mark{position:relative;width:28px;height:28px;flex:0 0 auto;border-radius:10px 16px 10px 16px;background:var(--ky-leaf);overflow:hidden}
.ky-brand__mark::before{content:"";position:absolute;left:6px;right:6px;top:13px;height:2px;background:var(--ky-gold);transform:rotate(-24deg)}
.ky-brand__mark::after{content:"";position:absolute;left:13px;bottom:5px;width:2px;height:9px;background:var(--ky-gold)}
.ky-brand__mark--invert{background:var(--ky-gold)}
.ky-brand__mark--invert::before,.ky-brand__mark--invert::after{background:var(--ky-leaf-deep)}
.ky-brand__stack{display:flex;flex-direction:column;min-width:0;line-height:1.1}
.ky-brand__name{font-weight:700;font-size:var(--ky-fs-16);letter-spacing:.06em;color:var(--ky-ink)}
.ky-brand__line{font-size:11px;letter-spacing:.1em;color:var(--ky-steel);max-height:16px;overflow:hidden;
  white-space:nowrap;transition:max-height .26s ease-out,opacity .26s ease-out}
.ky-header[data-scrolled="true"] .ky-brand__line{max-height:0;opacity:0}

.ky-burger{display:none;align-items:center;gap:8px;padding:.52em .85em;border:1px solid rgba(20,80,60,.26);
  border-radius:var(--ky-radius-pill);background:var(--ky-white);color:var(--ky-leaf);
  font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.06em;cursor:pointer}
.ky-burger__bars{position:relative;width:16px;height:2px;border-radius:2px;background:currentColor;transition:background .2s ease-out}
.ky-burger__bars::before,.ky-burger__bars::after{content:"";position:absolute;left:0;width:16px;height:2px;border-radius:2px;background:currentColor;transition:transform .24s ease-out}
.ky-burger__bars::before{top:-5px}
.ky-burger__bars::after{top:5px}
.ky-burger[aria-expanded="true"] .ky-burger__bars{background:transparent}
.ky-burger[aria-expanded="true"] .ky-burger__bars::before{transform:translateY(5px) rotate(45deg)}
.ky-burger[aria-expanded="true"] .ky-burger__bars::after{transform:translateY(-5px) rotate(-45deg)}

.ky-nav{flex:1 1 auto;min-width:0}
.ky-nav__list{display:flex;align-items:center;justify-content:center;gap:clamp(0px,.5vw,8px)}
.ky-nav__link{display:inline-block;padding:.42em .74em;border-radius:var(--ky-radius-pill);
  font-size:var(--ky-fs-14);font-weight:500;color:var(--ky-ink);
  transition:background .2s ease-out,color .2s ease-out,box-shadow .2s ease-out}
.ky-nav__link:hover{background:rgba(20,80,60,.08);color:var(--ky-leaf)}
.ky-nav__link[aria-current="page"],.ky-nav__link[data-current="true"]{
  color:var(--ky-leaf);font-weight:700;background:rgba(244,228,193,.8);box-shadow:inset 0 -2px 0 var(--ky-gold)}
.ky-nav__aside{display:none}

.ky-tools{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.ky-tool{position:relative;font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.06em}
.ky-tool__summary,button.ky-tool{display:inline-flex;align-items:center;gap:6px;padding:.5em .85em;
  border:1px solid var(--ky-line);border-radius:var(--ky-radius-pill);background:var(--ky-white);color:var(--ky-leaf);
  cursor:pointer;transition:border-color .2s ease-out,background .2s ease-out,color .2s ease-out}
.ky-tool__summary:hover,button.ky-tool:hover{border-color:var(--ky-leaf);background:var(--ky-gold-soft)}
.ky-tool__icon{position:relative;width:11px;height:11px;border:2px solid currentColor;border-radius:50%;flex:0 0 auto}
.ky-tool__icon::after{content:"";position:absolute;right:-4px;bottom:-3px;width:6px;height:2px;background:currentColor;transform:rotate(45deg)}
.ky-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:6;min-width:236px;
  display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:18px;
  background:var(--ky-white);border:1px solid var(--ky-line);box-shadow:var(--ky-shadow);text-align:left}
.ky-menu__link{font-family:var(--ky-hei);font-size:var(--ky-fs-14);color:var(--ky-ink);
  padding:.42em .6em;border-radius:10px;transition:background .2s ease-out,color .2s ease-out}
.ky-menu__link:hover{background:var(--ky-gold-soft);color:var(--ky-leaf)}
.ky-menu__note{font-family:var(--ky-hei);font-size:var(--ky-fs-12);line-height:1.65;color:var(--ky-steel);padding:.2em .6em}

.ky-tick{flex:0 0 auto;padding-left:12px;border-left:1px solid var(--ky-line);
  font-family:var(--ky-mono);font-size:11px;letter-spacing:.08em;color:var(--ky-leaf);white-space:nowrap}

.ky-progress{pointer-events:none;width:min(100% - 32px,var(--ky-w));height:2px;margin:8px auto 0;
  border-radius:2px;background:rgba(20,80,60,.14);overflow:hidden}
.ky-progress span{display:block;height:100%;width:100%;background:var(--ky-gold);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .16s linear}

.ky-search{pointer-events:auto;width:min(100% - 32px,var(--ky-w));margin:10px auto 0;padding:18px;
  border-radius:24px;background:var(--ky-white);border:1px solid rgba(20,80,60,.18);box-shadow:var(--ky-shadow)}
.ky-search[hidden]{display:none}
.ky-search__row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.ky-search__label{font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.1em;color:var(--ky-leaf)}
.ky-search__input{flex:1 1 220px;min-width:0;padding:.5em .2em;border:0;border-bottom:2px solid var(--ky-line);
  background:transparent;font-size:var(--ky-fs-16);color:var(--ky-ink);transition:border-color .2s ease-out}
.ky-search__input:focus{outline:0;border-bottom-color:var(--ky-gold)}
.ky-search__close{padding:.45em .95em;border:1px solid var(--ky-line);border-radius:var(--ky-radius-pill);
  background:transparent;font-family:var(--ky-mono);font-size:var(--ky-fs-12);color:var(--ky-steel);cursor:pointer}
.ky-search__close:hover{border-color:var(--ky-leaf);color:var(--ky-leaf)}
.ky-search__results{margin-top:14px;display:grid;gap:4px;max-height:min(50vh,320px);overflow:auto}
.ky-search__hit{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:.6em .75em;border-radius:12px;font-size:var(--ky-fs-14);color:var(--ky-ink);
  transition:background .2s ease-out,color .2s ease-out}
.ky-search__hit:hover{background:var(--ky-gold-soft);color:var(--ky-leaf)}
.ky-search__route{font-family:var(--ky-mono);font-size:var(--ky-fs-12);color:var(--ky-steel);white-space:nowrap}
.ky-search__empty{padding:.7em .3em;font-size:var(--ky-fs-14);color:var(--ky-steel)}
.ky-search__hint{margin-top:12px;font-size:var(--ky-fs-12);color:var(--ky-steel)}

/* ==== 页脚 ==== */
.ky-footer{position:relative;margin-top:clamp(40px,6vw,88px);padding-top:clamp(40px,6vw,72px);
  background:var(--ky-leaf-deep);color:rgba(255,255,255,.82);overflow:hidden}
.ky-footer__route{position:absolute;top:0;left:0;right:0;height:3px;opacity:.55;
  background:repeating-linear-gradient(90deg,var(--ky-gold) 0 26px,transparent 26px 52px)}
.ky-footer__inner{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);
  gap:clamp(24px,4vw,56px);padding-bottom:clamp(28px,4vw,48px)}
.ky-footer__brand{display:flex;flex-direction:column;gap:14px;max-width:34ch}
.ky-footer__logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;
  font-size:var(--ky-fs-18);letter-spacing:.06em;color:var(--ky-white)}
.ky-footer__lead{font-size:var(--ky-fs-14);line-height:1.8;color:rgba(255,255,255,.74)}
.ky-footer__meta{font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.06em;color:var(--ky-gold)}
.ky-footer__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.6vw,32px)}
.ky-footer__col-title{display:flex;align-items:baseline;gap:9px;margin-bottom:12px;
  font-family:var(--ky-hei);font-size:var(--ky-fs-14);letter-spacing:.04em;color:var(--ky-white)}
.ky-footer__idx{font-family:var(--ky-mono);font-size:11px;color:var(--ky-gold)}
.ky-footer__list{display:grid;gap:9px}
.ky-footer__text,.ky-footer__link{font-size:var(--ky-fs-14);line-height:1.75;color:rgba(255,255,255,.74)}
.ky-footer__link{transition:color .2s ease-out}
.ky-footer__link:hover{color:var(--ky-gold)}
.ky-footer__base{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;
  padding-block:18px;border-top:1px solid rgba(255,255,255,.16);
  font-family:var(--ky-mono);font-size:var(--ky-fs-12);letter-spacing:.04em;color:rgba(255,255,255,.6)}
.ky-footer__legal{display:flex;flex-wrap:wrap;gap:18px}
.ky-footer__legal .ky-footer__link{font-family:var(--ky-mono);font-size:var(--ky-fs-12)}

/* ==== 平板 ==== */
@media (max-width:1024px){
  .ky-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ky-tick{display:none}
}

/* ==== 移动端 ==== */
@media (max-width:900px){
  body{padding-top:clamp(80px,14vw,96px)}
  .ky-header{padding-top:10px}
  .ky-header__inner{gap:10px;padding:8px 10px 8px 12px;border-radius:22px}
  .ky-header[data-scrolled="true"] .ky-header__inner{padding:8px 10px 8px 12px}
  .ky-brand__line{display:none}
  .ky-burger{display:inline-flex;margin-left:auto}
  .ky-tool--menu{display:none}
  .ky-tool__label{display:none}
  .ky-tool__summary,button.ky-tool{padding:.55em .7em}
  .ky-nav{position:absolute;left:0;right:0;top:calc(100% + 8px);display:none;
    padding:14px;border-radius:22px;background:rgba(247,245,240,.99);
    border:1px solid rgba(20,80,60,.18);box-shadow:var(--ky-shadow)}
  .ky-nav[data-open="true"]{display:block}
  .ky-nav__list{flex-direction:column;align-items:stretch;gap:2px}
  .ky-nav__link{display:block;padding:.72em .8em;border-radius:14px;font-size:var(--ky-fs-16)}
  .ky-nav__aside{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--ky-line)}
  .ky-nav__aside-title{width:100%;font-family:var(--ky-mono);font-size:11px;letter-spacing:.12em;color:var(--ky-steel)}
  .ky-nav__aside a{padding:.4em .85em;border-radius:var(--ky-radius-pill);background:rgba(20,80,60,.08);
    color:var(--ky-leaf);font-size:var(--ky-fs-14)}
  .ky-search{padding:16px;border-radius:20px}
  .ky-footer__inner{grid-template-columns:1fr}
  .ky-footer__cols{grid-template-columns:1fr 1fr}
  .ky-split,.ky-split--reverse{grid-template-columns:1fr}
}
@media (max-width:560px){
  .ky-footer__cols{grid-template-columns:1fr}
  .ky-footer__base{flex-direction:column;align-items:flex-start}
  .ky-section__title{font-size:var(--ky-fs-24)}
}

/* ==== 动效降级 ==== */
@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}
  .ky-progress span{transition:none}
  .ky-btn:hover{transform:none}
}
