/* ============================================================
   银河总站 · Site Kit 共享样式  /assets/site.css
   ============================================================ */

/* ---------- 1. 设计令牌 ---------- */
:root{
  --ink:#0B1220;
  --ink-deep:#05070C;
  --indigo:#1B1B3A;
  --teal-deep:#0F2E2E;
  --silver:#E8ECF4;
  --mist:#A7B0C0;
  --signal:#4FE3D0;
  --gold:#E7B75F;
  --wine:#7A2E43;
  --sand:#F5F1E8;

  --rail-w:292px;
  --header-h:66px;
  --shell-max:1320px;

  --font-sans:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",Georgia,serif;
  --font-mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --r-sm:10px;
  --r-md:18px;
  --r-lg:26px;

  --hair:rgba(232,236,244,.12);
  --hair-strong:rgba(232,236,244,.22);

  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-block-start:26px;
}

body{
  margin:0;
  background-color:var(--ink);
  background-image:
    linear-gradient(rgba(232,236,244,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(232,236,244,.026) 1px, transparent 1px);
  background-size:72px 72px;
  background-attachment:fixed;
  color:var(--silver);
  font-family:var(--font-serif);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

img,svg,video{ display:block; max-width:100%; height:auto; }

button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

a{ color:inherit; text-decoration:none; }

ul,ol{ margin:0; padding:0; list-style:none; }

h1,h2,h3,h4,h5,h6{
  margin:0;
  font-family:var(--font-sans);
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.12;
  color:var(--silver);
  text-wrap:balance;
}
h1{ font-size:clamp(2rem,1.1rem + 3.6vw,4rem); }
h2{ font-size:clamp(1.5rem,1.1rem + 1.7vw,2.5rem); }
h3{ font-size:clamp(1.1rem,.98rem + .6vw,1.5rem); line-height:1.28; }

p{ margin:0 0 1.2em; }
p:last-child{ margin-bottom:0; }

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

::selection{ background:rgba(79,227,208,.28); color:var(--silver); }

/* ---------- 3. 通用工具 ---------- */
.mono{
  font-family:var(--font-mono);
  font-weight:500;
  letter-spacing:.04em;
}

.mono-label{
  margin:0 0 12px;
  font-family:var(--font-mono);
  font-size:10.5px;
  font-weight:500;
  letter-spacing:.2em;
  color:rgba(167,176,192,.74);
}

.container{
  width:100%;
  max-width:var(--shell-max);
  margin-inline:auto;
  padding-inline:20px;
}
@media (min-width:760px){ .container{ padding-inline:40px; } }
@media (min-width:1440px){ .container{ padding-inline:56px; } }

/* ---------- 4. 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 22px;
  border:1px solid transparent;
  border-radius:999px;
  font-family:var(--font-sans);
  font-size:14px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.3;
  text-align:center;
  transition:background-color .24s var(--ease),color .24s var(--ease),border-color .24s var(--ease),transform .24s var(--ease);
}
.btn--signal{ background:var(--signal); color:#06201D; }
.btn--signal:hover{ background:#7BEFDF; transform:translateY(-1px); }
.btn--gold{ background:var(--gold); color:#241a06; }
.btn--gold:hover{ background:#F2C97F; transform:translateY(-1px); }
.btn--ghost{
  background:rgba(232,236,244,.03);
  border-color:var(--hair-strong);
  color:var(--silver);
}
.btn--ghost:hover{ border-color:var(--signal); color:var(--signal); }

/* ---------- 5. 跳转链 ---------- */
.skip-link{
  position:fixed;
  top:12px;
  left:12px;
  z-index:400;
  padding:10px 18px;
  border-radius:999px;
  background:var(--signal);
  color:#06201D;
  font-family:var(--font-sans);
  font-size:14px;
  font-weight:700;
  letter-spacing:.04em;
  transform:translateY(-220%);
  transition:transform .2s var(--ease);
}
.skip-link:focus,
.skip-link:focus-visible{ transform:translateY(0); }

/* ---------- 6. 头部：桌面端纵向坐标轨道 ---------- */
.site-header{
  position:fixed;
  inset-block:0;
  inset-inline-start:0;
  z-index:60;
  display:flex;
  flex-direction:column;
  width:var(--rail-w);
  background:linear-gradient(188deg,#0A1020 0%,#080D18 46%,var(--ink-deep) 100%);
  border-inline-end:1px solid var(--hair);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(232,236,244,.18) transparent;
}

/* 纵向坐标轴 */
.site-header::before{
  content:"";
  position:absolute;
  inset-block:0;
  inset-inline-start:26px;
  width:1px;
  background:linear-gradient(180deg,
    rgba(79,227,208,0) 0%,
    rgba(79,227,208,.42) 16%,
    rgba(167,176,192,.2) 66%,
    rgba(167,176,192,0) 100%);
  pointer-events:none;
}

/* 等距刻度 */
.site-header::after{
  content:"";
  position:absolute;
  inset-block:0;
  inset-inline-start:26px;
  width:9px;
  background-image:repeating-linear-gradient(to bottom,
    rgba(232,236,244,.16) 0 1px,
    transparent 1px 34px);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 14%,#000 78%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 14%,#000 78%,transparent);
  pointer-events:none;
}

.site-header__inner{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:28px;
  padding:34px 24px 28px 46px;
}

/* 品牌 */
.brand{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.brand__mark{
  position:relative;
  flex:none;
  width:14px;
  height:14px;
  margin-top:9px;
  border:1px solid var(--signal);
  border-radius:50%;
  box-shadow:0 0 0 4px rgba(79,227,208,.1);
}
.brand__mark::after{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:50%;
  background:var(--signal);
}
.brand__text{ display:block; }
.brand__name{
  display:block;
  font-family:var(--font-sans);
  font-size:22px;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.2;
  color:var(--silver);
}
.brand__tag{
  display:block;
  margin-top:7px;
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.18em;
  line-height:1.6;
  color:var(--mist);
}

/* 移动导航按钮（桌面端隐藏） */
.nav-toggle{ display:none; }

/* 导航 */
.rail-nav{
  display:flex;
  flex-direction:column;
}
.rail-nav__label{
  margin:0 0 14px;
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.22em;
  color:rgba(167,176,192,.66);
}
.rail-nav__list{ display:flex; flex-direction:column; }
.rail-nav__item + .rail-nav__item{ border-block-start:1px solid rgba(232,236,244,.06); }

.rail-nav__link{
  position:relative;
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:11px 0 11px 19px;
  font-family:var(--font-sans);
  font-size:16px;
  font-weight:500;
  letter-spacing:.01em;
  color:var(--mist);
  transition:color .24s var(--ease);
}
.rail-nav__link::before{
  content:"";
  position:absolute;
  inset-inline-start:0;
  top:50%;
  width:6px;
  height:6px;
  margin-top:-3px;
  border-radius:50%;
  background:rgba(167,176,192,.32);
  transition:background-color .24s var(--ease),box-shadow .24s var(--ease);
}
.rail-nav__link:hover,
.rail-nav__link:focus-visible{ color:var(--silver); }
.rail-nav__link:hover::before{ background:var(--signal); }

.rail-nav__code{
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:500;
  letter-spacing:.08em;
  color:rgba(167,176,192,.5);
  transition:color .24s var(--ease);
}
.rail-nav__link:hover .rail-nav__code{ color:rgba(79,227,208,.8); }

/* 当前栏目 */
.rail-nav__link[aria-current="page"]{ color:var(--silver); font-weight:700; }
.rail-nav__link[aria-current="page"] .rail-nav__code{ color:var(--signal); }
.rail-nav__link[aria-current="page"]::before{
  background:var(--signal);
  animation:anchor-pulse 2s ease-in-out infinite;
}

@keyframes anchor-pulse{
  0%,100%{ box-shadow:0 0 0 4px rgba(79,227,208,.16); }
  50%{ box-shadow:0 0 0 9px rgba(79,227,208,.03); }
}

.rail-nav__cta{
  margin-top:24px;
  width:100%;
}
.rail-nav__meta{
  margin:18px 0 0;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.06em;
  line-height:1.9;
  color:rgba(167,176,192,.6);
}

/* 阅读进度 */
.progress{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:2px;
  z-index:120;
  background:rgba(232,236,244,.07);
  pointer-events:none;
}
.progress i{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,var(--signal),var(--gold));
}

@media (min-width:1024px){
  .progress{ left:var(--rail-w); }
}

/* ---------- 7. 头部：平板 / 移动端顶栏 ---------- */
@media (max-width:1023px){
  html{ scroll-padding-block-start:calc(var(--header-h) + 18px); }

  body{ padding-block-start:var(--header-h); }

  .site-header{
    inset-block:auto 0;
    inset-inline:0;
    top:0;
    bottom:auto;
    width:auto;
    height:var(--header-h);
    flex-direction:row;
    align-items:center;
    padding-inline:16px;
    background:#070B14;
    border-inline-end:0;
    border-block-end:1px solid var(--hair);
    overflow:visible;
  }
  .site-header::before,
  .site-header::after{ display:none; }

  .site-header__inner{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:100%;
    flex:none;
    padding:0;
  }

  .brand{ align-items:center; }
  .brand__mark{ margin-top:0; }
  .brand__name{ font-size:18px; }
  .brand__tag{ display:none; }

  .nav-toggle{
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:9px 15px 9px 13px;
    border:1px solid var(--hair-strong);
    border-radius:999px;
    background:rgba(232,236,244,.04);
    color:var(--silver);
    font-family:var(--font-sans);
    font-size:13px;
    font-weight:700;
    letter-spacing:.06em;
  }
  .nav-toggle__bars{
    display:inline-flex;
    flex-direction:column;
    gap:4px;
    width:16px;
  }
  .nav-toggle__bars span{
    display:block;
    height:1.5px;
    border-radius:2px;
    background:var(--signal);
    transition:transform .2s var(--ease);
  }
  .site-header[data-open] .nav-toggle__bars span:first-child{ transform:translateY(2.75px) rotate(45deg); }
  .site-header[data-open] .nav-toggle__bars span:last-child{ transform:translateY(-2.75px) rotate(-45deg); }

  .rail-nav{
    position:fixed;
    inset-inline:0;
    top:var(--header-h);
    bottom:auto;
    display:none;
    max-height:calc(100dvh - var(--header-h));
    overflow-y:auto;
    padding:20px 20px 30px;
    background:linear-gradient(180deg,#090E1A 0%,#070B14 60%,var(--ink-deep) 100%);
    border-block-end:1px solid var(--hair);
    box-shadow:0 26px 50px -30px rgba(5,7,12,.95);
  }
  .site-header[data-open] .rail-nav{ display:flex; }

  .rail-nav__link{ padding-block:13px; font-size:16.5px; }
  .rail-nav__cta{ margin-top:26px; }
}

/* ---------- 8. 页脚 ---------- */
.site-footer{
  position:relative;
  margin-top:96px;
  background:linear-gradient(180deg,var(--teal-deep) 0%,#0A1A1A 40%,var(--ink-deep) 100%);
  border-block-start:1px solid rgba(79,227,208,.16);
  font-family:var(--font-sans);
  overflow:hidden;
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(90deg,rgba(232,236,244,.055) 1px,transparent 1px),
    linear-gradient(rgba(232,236,244,.055) 1px,transparent 1px);
  background-size:96px 96px;
  opacity:.55;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 68%);
  mask-image:linear-gradient(180deg,#000 0%,transparent 68%);
  pointer-events:none;
}

.footer__grid{
  position:relative;
  max-width:var(--shell-max);
  margin-inline:auto;
  padding:56px 20px 36px;
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
}

/* 更新记录面板 */
.footer__panel--update{
  position:relative;
  padding:26px 22px 24px;
  border:1px solid rgba(231,183,95,.28);
  border-radius:var(--r-md) var(--r-lg) var(--r-md) 4px;
  background:rgba(11,18,32,.6);
}
.footer__panel--update::before{
  content:"";
  position:absolute;
  top:-5px;
  inset-inline-start:22px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 5px rgba(231,183,95,.14);
}
.footer__panel--update .mono-label{ color:var(--gold); }
.footer__panel-title{
  margin:0 0 10px;
  font-size:20px;
  font-weight:800;
  letter-spacing:-.01em;
  color:var(--silver);
}
.footer__panel-title .mono{ color:var(--gold); font-size:15px; }
.footer__panel-text{
  margin:0 0 20px;
  font-family:var(--font-serif);
  font-size:15px;
  line-height:1.8;
  color:rgba(232,236,244,.78);
}
.footer__panel-link{ width:100%; }

/* 页脚站点索引 */
.footer__nav{ min-width:0; }
.footer__index-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
}
.footer__index a{
  display:flex;
  align-items:baseline;
  gap:10px;
  padding:10px 0;
  border-block-end:1px solid rgba(232,236,244,.09);
  font-size:15px;
  color:var(--mist);
  transition:color .2s var(--ease);
}
.footer__index a:hover,
.footer__index a:focus-visible{ color:var(--signal); }
.footer__code{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.08em;
  color:rgba(167,176,192,.48);
}

/* 页脚联系 */
.footer__contact{ min-width:0; }
.footer__contact-item{
  padding:9px 0;
  border-block-end:1px solid rgba(232,236,244,.09);
}
.footer__contact-label{
  display:block;
  margin-bottom:3px;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.18em;
  color:rgba(167,176,192,.62);
}
.footer__contact-value{
  display:block;
  font-size:14.5px;
  line-height:1.7;
  color:var(--silver);
  word-break:break-word;
}

/* 页脚底层 */
.footer__base{
  position:relative;
  max-width:var(--shell-max);
  margin-inline:auto;
  padding:18px 20px 32px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 24px;
  border-block-start:1px solid rgba(232,236,244,.1);
}
.footer__icp{
  margin:0;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.04em;
  color:rgba(167,176,192,.72);
}
.footer__legal{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.04em;
}
.footer__legal a{
  color:rgba(167,176,192,.72);
  border-block-end:1px solid transparent;
  transition:color .2s var(--ease),border-color .2s var(--ease);
}
.footer__legal a:hover,
.footer__legal a:focus-visible{
  color:var(--silver);
  border-block-end-color:var(--signal);
}

@media (min-width:760px){
  .footer__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); padding:64px 40px 44px; gap:40px; }
  .footer__panel--update{ grid-column:1 / -1; }
  .footer__base{ padding:20px 40px 36px; }
}
@media (min-width:1080px){
  .footer__grid{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(0,1fr);
    padding:72px 40px 48px;
  }
  .footer__panel--update{ grid-column:auto; }
  .footer__panel-link{ width:auto; }
}
@media (max-width:419px){
  .footer__index-list{ grid-template-columns:1fr; }
}

/* ---------- 9. 页面阶段基础组件 ---------- */
.surface{
  padding:24px;
  border:1px solid var(--hair);
  border-radius:var(--r-md);
  background:linear-gradient(158deg,rgba(27,27,58,.72) 0%,rgba(11,18,32,.92) 100%);
}

.section-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:28px;
}
.section-head__num{
  flex:none;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.12em;
  color:var(--signal);
}
.section-head__title{
  margin:0;
  font-size:clamp(1.35rem,1.05rem + 1.2vw,2rem);
}
.section-head__rule{
  flex:1;
  height:1px;
  background:linear-gradient(90deg,var(--hair-strong),transparent);
}

.breadcrumb{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.06em;
  color:var(--mist);
}
.breadcrumb ol{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.breadcrumb li{
  display:flex;
  align-items:center;
  gap:8px;
}
.breadcrumb li:not(:last-child)::after{
  content:"/";
  color:rgba(167,176,192,.42);
}
.breadcrumb a{
  color:var(--mist);
  border-block-end:1px solid transparent;
  transition:color .2s var(--ease),border-color .2s var(--ease);
}
.breadcrumb a:hover,
.breadcrumb a:focus-visible{ color:var(--signal); border-block-end-color:currentColor; }
.breadcrumb [aria-current="page"]{ color:var(--silver); }

.media{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:16 / 9;
  border:1px solid var(--hair);
  border-radius:var(--r-md);
  background:
    radial-gradient(90% 90% at 18% 8%,#182444 0%,transparent 58%),
    radial-gradient(70% 70% at 82% 92%,rgba(79,227,208,.14) 0%,transparent 62%),
    linear-gradient(160deg,#0C1526 0%,#080D18 60%,var(--ink-deep) 100%);
}
.media > img,
.media > picture > img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.media--wide{ aspect-ratio:21 / 9; }
.media--tall{ aspect-ratio:4 / 5; }
.media--square{ aspect-ratio:1 / 1; }

/* ---------- 10. 显现动效 ---------- */
.reveal{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .32s var(--ease),transform .32s var(--ease);
}
.reveal.is-visible{
  opacity:1;
  transform:none;
}

/* ---------- 11. 响应式补充 ---------- */
@media (max-width:1023px){
  body{ background-attachment:scroll; }
  .site-footer{ margin-top:72px; }
}

@media (max-width:600px){
  body{ font-size:16px; }
  .surface{ padding:20px; }
}

/* ---------- 12. 减弱动效 ---------- */
@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;
  }
  .reveal{ opacity:1; transform:none; }
  .rail-nav__link[aria-current="page"]::before{ animation:none; box-shadow:0 0 0 4px rgba(79,227,208,.18); }
  .btn:hover{ transform:none; }
}
