/* 十博10服务 · 共享样式 /assets/site.css */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:1.5rem}
body,h1,h2,h3,h4,p,ul,ol,figure,figcaption,blockquote,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input{font:inherit}
[hidden]{display:none !important}

:root{
  --ink-blue:#0F1E2E;
  --ink-blue-deep:#0A1622;
  --paper:#F4EBDD;
  --paper-deep:#EADFCC;
  --cream:#FFF9F0;
  --signal:#E86A33;
  --signal-deep:#B04A1E;
  --amber:#F2A65A;
  --slate:#7A8B8F;
  --mist:#A9BCC8;
  --rule:#3A4652;
  --shadow:#D8C9B8;
  --ink:#161B1F;
  --body-ink:#20272C;
  --muted-ink:#4A5558;

  --font-sans:"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Courier New",monospace;

  --wrap:1200px;
  --gutter:clamp(1.1rem,4vw,3.5rem);
  --step-0:clamp(1rem,0.95rem + 0.25vw,1.125rem);
  --step-1:clamp(1.15rem,1.05rem + 0.5vw,1.4rem);
  --step-2:clamp(1.45rem,1.25rem + 1vw,2rem);
  --step-3:clamp(1.9rem,1.5rem + 2vw,2.75rem);
  --step-4:clamp(2.6rem,1.9rem + 3.6vw,4.5rem);
}

body{
  background:var(--ink-blue);
  color:var(--cream);
  font-family:var(--font-sans);
  font-size:var(--step-0);
  line-height:1.75;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-weight:800;line-height:1.16;letter-spacing:-.015em}

:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.site-header :focus-visible,.site-footer :focus-visible{outline-color:var(--amber)}

.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{width:min(var(--wrap),calc(100% - var(--gutter) * 2));margin-inline:auto}
.content-wrap{width:min(1040px,calc(100% - var(--gutter) * 2));margin-inline:auto}

/* 跳转链接 */
.skip-link{
  position:fixed;top:.6rem;left:.6rem;z-index:999;
  transform:translateY(-180%);
  background:var(--signal);color:#fff;
  padding:.7rem 1.15rem;font-weight:700;font-size:.9rem;
  transition:transform .18s ease;
}
.skip-link:focus,.skip-link:focus-visible{transform:translateY(0);outline:2px solid var(--cream);outline-offset:2px}

/* 页头 */
.site-header{background:var(--ink-blue);color:var(--cream);border-bottom:1px solid var(--rule);position:relative;z-index:60}
.masthead__utility{background:var(--ink-blue-deep);border-bottom:1px solid rgba(169,188,200,.2)}
.masthead__utility-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:36px;padding-block:.3rem}
.masthead__tagline{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.22em;color:var(--slate);text-transform:uppercase}
.utility-nav{display:flex;flex-wrap:wrap;align-items:center}
.utility-nav__item+ .utility-nav__item{border-left:1px solid var(--rule)}
.utility-nav__link{display:inline-block;padding:.3rem .85rem;font-size:.79rem;letter-spacing:.05em;color:var(--mist);border-bottom:1px solid transparent;transition:color .18s ease,border-color .18s ease}
.utility-nav__link:hover{color:var(--amber);border-bottom-color:var(--amber)}

.masthead{padding-block:clamp(1rem,2.4vw,1.9rem)}
.masthead__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}
.masthead__meta{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;color:var(--slate)}
.masthead__brand{display:grid;justify-items:center;gap:.45rem;text-align:center}
.masthead__name{font-size:clamp(1.6rem,1.1rem + 2.2vw,2.6rem);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--cream);transition:color .18s ease}
.masthead__sub{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.26em;color:var(--slate)}
.masthead__brand:hover .masthead__name{color:var(--amber)}
.masthead__aside{display:flex;align-items:center;justify-content:flex-end;gap:.7rem}
.masthead__stamp{font-size:.74rem;letter-spacing:.1em;color:var(--signal);border:1px solid var(--signal);padding:.18rem .45rem;line-height:1.4}

.nav-toggle{display:none;align-items:center;gap:.55rem;padding:.5rem .7rem;border:1px solid var(--rule);background:rgba(255,249,240,.04);color:var(--cream);transition:border-color .18s ease}
.nav-toggle:hover{border-color:var(--signal)}
.nav-toggle__bars{display:grid;gap:4px;width:18px}
.nav-toggle__bars span{display:block;height:2px;background:var(--cream);transition:transform .18s ease,opacity .18s ease}
.nav-toggle__label{font-size:.76rem;letter-spacing:.16em;color:var(--mist)}
.site-header[data-open] .nav-toggle__bars span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.site-header[data-open] .nav-toggle__bars span:nth-child(2){opacity:0}
.site-header[data-open] .nav-toggle__bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.site-header[data-open] .nav-toggle{border-color:var(--signal)}

.site-nav{border-top:1px solid rgba(169,188,200,.2)}
.site-nav__list{display:flex;flex-wrap:wrap;justify-content:center}
.site-nav__item{position:relative}
.site-nav__link{position:relative;display:block;padding:.95rem clamp(.7rem,2vw,1.5rem);font-size:.95rem;font-weight:600;letter-spacing:.04em;color:var(--mist);transition:color .18s ease}
.site-nav__link::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:3px;background:var(--signal);transition:left .2s ease,right .2s ease}
.site-nav__link:hover{color:var(--cream)}
.site-nav__link:hover::after{left:clamp(.7rem,2vw,1.5rem);right:clamp(.7rem,2vw,1.5rem)}
.site-nav__link[aria-current="page"]{color:var(--cream)}
.site-nav__link[aria-current="page"]::after{left:0;right:0;height:4px}

.page-progress{position:fixed;left:0;right:0;bottom:0;height:3px;background:rgba(58,70,82,.4);z-index:200;pointer-events:none}
.page-progress__fill{display:block;height:100%;width:0;background:var(--signal);transition:width .1s linear}

/* 页脚 */
.site-footer{background:var(--ink-blue);color:var(--cream)}
.footer__rule{height:6px;background:linear-gradient(90deg,var(--signal) 0 20%,var(--amber) 20% 30%,var(--slate) 30% 42%,rgba(169,188,200,.22) 42% 100%)}
.footer__top{display:grid;grid-template-columns:1.35fr .75fr 1.15fr;gap:clamp(1.6rem,4vw,4rem);padding-block:clamp(2.2rem,5vw,4rem)}
.footer__brand{align-content:start}
.footer__name{font-size:clamp(1.35rem,1.1rem + 1vw,1.8rem);font-weight:800;letter-spacing:-.015em}
.footer__tagline{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.24em;color:var(--slate);margin-top:.55rem}
.footer__para{color:var(--mist);font-size:.94rem;line-height:1.8;max-width:34ch;margin-top:1.1rem}
.footer__cta{margin-top:1.5rem}
.footer__col{align-content:start;min-width:0}
.footer__col--contact{min-width:0}
.footer__head{font-size:.76rem;font-weight:700;letter-spacing:.2em;color:var(--slate);text-transform:uppercase;padding-bottom:.7rem;border-bottom:1px solid var(--rule);margin-bottom:1rem}
.footer__list{display:grid}
.footer__list-item{border-left:2px solid var(--rule);padding-left:1rem;transition:border-color .2s ease,padding-left .2s ease}
.footer__list-item:hover{border-left-color:var(--signal);padding-left:1.3rem}
.footer__link{display:inline-block;padding-block:.42rem;font-size:.95rem;color:var(--cream)}
.footer__link:hover{color:var(--amber)}
.footer__contact{display:grid;gap:.85rem}
.footer__contact-item{display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:.6rem;padding-top:.75rem;border-top:1px dashed rgba(58,70,82,.95);font-size:.92rem;line-height:1.72}
.footer__contact-item:first-child{border-top:0;padding-top:0}
.footer__key{font-size:.7rem;letter-spacing:.14em;color:var(--slate);padding-top:.24rem}
.footer__value{color:var(--cream);overflow-wrap:anywhere}
.footer__note{font-size:.79rem;line-height:1.72;color:var(--slate);margin-top:1rem}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1.4rem;padding-block:1.2rem;border-top:1px solid var(--rule);font-size:.79rem;color:var(--slate)}
.footer__copy{letter-spacing:.02em}
.footer__legal{display:flex;flex-wrap:wrap}
.footer__legal-item+.footer__legal-item{border-left:1px solid var(--rule)}
.footer__link--legal{padding:.2rem .8rem;font-size:.79rem;color:var(--mist)}
.footer__link--legal:hover{color:var(--amber)}
.footer__icp{font-size:.77rem;letter-spacing:.06em;color:var(--slate)}

/* 阅读面与通用排版 */
.site-main{background:var(--paper);color:var(--body-ink);padding-bottom:clamp(2.5rem,6vw,5rem)}
.site-main:focus-visible{outline:2px solid var(--signal);outline-offset:-4px}
.prose{font-size:var(--step-0);line-height:1.82;color:var(--body-ink);max-width:72ch}
.prose p+p{margin-top:1.1em}
.prose h2{font-size:var(--step-2);margin:2.2em 0 .7em;color:var(--ink)}
.prose h3{font-size:var(--step-1);margin:1.8em 0 .6em;color:var(--ink)}
.prose ul,.prose ol{margin:1em 0;padding-left:1.2em;list-style:disc}
.prose a{color:var(--signal-deep);border-bottom:1px solid rgba(232,106,51,.45)}
.prose a:hover{color:var(--signal);border-bottom-color:var(--signal)}
.prose strong{color:var(--ink)}

.section{padding-block:clamp(2rem,5vw,4rem);border-top:1px solid var(--shadow)}
.section__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.6rem 1.4rem;margin-bottom:1.6rem}
.eyebrow{font-family:var(--font-mono);font-size:.74rem;font-weight:700;letter-spacing:.2em;color:var(--signal);text-transform:uppercase}

/* 面包屑 */
.breadcrumb{padding-block:1rem;border-bottom:1px solid var(--shadow)}
.breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.78rem;color:var(--muted-ink)}
.breadcrumb__item{display:inline-flex;align-items:center;gap:.45rem}
.breadcrumb__link{color:var(--muted-ink);border-bottom:1px solid transparent}
.breadcrumb__link:hover{color:var(--signal);border-bottom-color:var(--signal)}
.breadcrumb__sep{color:var(--slate)}

/* 按钮 */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.45rem;font-size:.92rem;font-weight:700;letter-spacing:.04em;border:1px solid transparent;background:transparent;color:var(--cream);transition:background .18s ease,color .18s ease,border-color .18s ease}
.btn::after{content:"\2192";font-family:var(--font-mono);line-height:1;transition:transform .18s ease}
.btn:hover::after{transform:translateX(4px)}
.btn--primary{background:var(--signal);color:#fff}
.btn--primary:hover{background:var(--amber);color:var(--ink-blue)}
.btn--ghost{border-color:var(--mist);color:var(--cream)}
.btn--ghost:hover{border-color:var(--signal);color:var(--amber)}
.btn--quiet{border-color:var(--shadow);background:var(--cream);color:var(--ink)}
.btn--quiet:hover{border-color:var(--signal);background:var(--paper-deep);color:var(--signal-deep)}

/* 网格 */
.grid{display:grid;gap:clamp(1.2rem,3vw,2.5rem)}
.grid--split{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.grid--thirds{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid--index{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}

/* 面板 */
.panel{border:1px solid var(--shadow);background:var(--cream);padding:clamp(1.2rem,3vw,2.2rem)}
.panel--paper{background:var(--paper-deep);border-color:var(--shadow)}
.panel--ink{background:var(--ink-blue);border-color:var(--ink-blue);color:var(--cream)}
.panel--ink h2,.panel--ink h3{color:var(--cream)}

/* 索引行 */
.index-list{border-top:1px solid var(--shadow)}
.index-list__item{display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto;gap:1rem;align-items:baseline;padding:.85rem .3rem;border-bottom:1px solid var(--shadow)}
.index-list__num{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;color:var(--slate)}

/* 标签 */
.tag{display:inline-block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;padding:.18rem .48rem;border:1px solid var(--slate);color:var(--muted-ink)}
.tag--version{border-color:var(--signal);color:var(--signal-deep)}
.tag--amber{border-color:var(--amber);background:var(--amber);color:var(--ink-blue)}

/* 图片容器 */
.media-frame{display:block;margin:0;border:1px solid var(--shadow);background:var(--paper-deep)}
.media-frame__img{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:linear-gradient(135deg,var(--shadow),var(--paper-deep) 55%,var(--paper))}
.media-frame__img img{width:100%;height:100%;object-fit:cover}
.media-frame--wide .media-frame__img{aspect-ratio:16/9}
.media-frame--tall .media-frame__img{aspect-ratio:3/4}
.media-frame--cut .media-frame__img{clip-path:polygon(0 0,100% 0,100% calc(100% - 2.5rem),calc(100% - 2.5rem) 100%,0 100%)}
.media-frame__caption{padding:.6rem .8rem;border-top:1px solid var(--shadow);background:var(--cream);font-family:var(--font-mono);font-size:.74rem;line-height:1.6;color:var(--muted-ink)}

/* 粘性目录 */
.section-nav{position:sticky;top:1.2rem;border-left:2px solid var(--shadow);padding-left:0;align-self:start}
.section-nav__title{font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.2em;color:var(--slate);padding-left:1rem;margin-bottom:.7rem;text-transform:uppercase}
.section-nav__list{display:grid;gap:.05rem}
.section-nav__link{display:block;padding:.36rem 0 .36rem 1rem;margin-left:-2px;border-left:2px solid transparent;font-size:.88rem;color:var(--muted-ink);transition:color .16s ease,border-color .16s ease,background .16s ease}
.section-nav__link:hover{color:var(--signal-deep);border-left-color:var(--amber)}
.section-nav__link[aria-current="true"]{color:var(--ink);font-weight:700;border-left-color:var(--signal);background:rgba(232,106,51,.08)}

/* 过滤 */
.filter{display:grid;gap:.55rem;margin-bottom:1.5rem}
.filter__label{font-family:var(--font-mono);font-size:.73rem;letter-spacing:.16em;color:var(--muted-ink)}
.filter__input{width:100%;padding:.72rem .9rem;color:var(--ink);background:var(--cream);border:1px solid var(--shadow);border-left:3px solid var(--slate);transition:border-color .18s ease}
.filter__input:hover{border-left-color:var(--slate)}
.filter__input:focus{border-left-color:var(--signal);outline:2px solid var(--signal);outline-offset:2px}
.filter__empty{padding:.9rem 0;font-size:.9rem;color:var(--muted-ink)}

/* 响应式 */
@media (max-width:1023px){
  .footer__top{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1 / -1}
  .grid--index{grid-template-columns:1fr}
  .section-nav{position:static;border-left:0;padding-left:0}
  .section-nav__link{margin-left:0;border-left:0;border-bottom:1px solid var(--shadow);padding-left:.2rem}
  .section-nav__link[aria-current="true"]{background:transparent;border-left:0;border-bottom-color:var(--signal)}
}

@media (max-width:899px){
  .masthead__inner{grid-template-columns:1fr auto;gap:.6rem}
  .masthead__meta{display:none}
  .masthead__brand{justify-items:start;text-align:left}
  .masthead__sub{letter-spacing:.18em;font-size:.66rem}
  .nav-toggle{display:inline-flex}
  .site-nav{display:none;background:var(--ink-blue-deep);border-top:1px solid var(--rule)}
  .site-header[data-open] .site-nav{display:block}
  .site-nav__list{display:block;padding-block:.4rem .7rem}
  .site-nav__item{border-top:1px solid rgba(58,70,82,.7)}
  .site-nav__item:first-child{border-top:0}
  .site-nav__link{padding:.82rem 0 .82rem 1rem;border-left:3px solid transparent;color:var(--cream);font-size:.96rem}
  .site-nav__link::after{display:none}
  .site-nav__link:hover{border-left-color:rgba(242,166,90,.6)}
  .site-nav__link[aria-current="page"]{border-left:3px solid var(--signal);background:rgba(232,106,51,.1)}
  .grid--split,.grid--thirds{grid-template-columns:1fr}
}

@media (max-width:640px){
  .masthead__utility-inner{justify-content:center}
  .masthead__tagline{display:none}
  .utility-nav__item+.utility-nav__item{border-left:0}
  .utility-nav__link{padding:.26rem .55rem;font-size:.75rem}
  .footer__top{grid-template-columns:1fr}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:.7rem}
  .footer__legal-item+.footer__legal-item{border-left:0}
  .footer__link--legal{padding:.18rem .8rem .18rem 0}
  .index-list__item{grid-template-columns:2.6rem minmax(0,1fr);row-gap:.2rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .page-progress__fill{transition:none}
}
