/* ============================================================
   摩斯国际 · 信号所 —— 共享样式 /assets/site.css
   母题：等待 — 接收 — 回响
   底色静默，只在交互瞬间点亮一次信号
   ============================================================ */

:root{
  --ink:#0B1620;
  --ink-2:#12222C;
  --paper:#EFE7D9;
  --paper-line:#D6CCBA;
  --text-ink:#25333D;
  --signal:#4FD1C5;
  --wave:#7CE38B;
  --amber:#F0A83C;
  --amber-deep:#B8791F;
  --graphite:#8A9AA6;
  --noise:#E4572E;

  --font-display:'Noto Serif SC','Source Han Serif SC','Songti SC',Georgia,serif;
  --font-label:'Barlow Semi Condensed','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --font-body:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --font-mono:'JetBrains Mono','IBM Plex Mono','SFMono-Regular',Menlo,Consolas,monospace;

  --step:8px;
  --wrap:1240px;
  --line-dark:rgba(239,231,217,.16);
  --line-signal:rgba(79,209,197,.28);
  --ease:160ms ease;
}

/* ------------------------------------------------------------
   01 · 重置与基础
   ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.85;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
main{flex:1 0 auto;display:block}
h1,h2,h3,h4,h5,p,ul,ol,figure,blockquote,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
::selection{background:var(--signal);color:var(--ink)}

/* ------------------------------------------------------------
   02 · 容器与章节骨架
   ------------------------------------------------------------ */
.sk-container{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:clamp(16px,4vw,40px);
}
.sk-section{padding:clamp(48px,7vw,96px) 0}
.sk-section--tight{padding:clamp(28px,4vw,56px) 0}

/* 分屏系统：叙事侧与索引侧宽度在 7:5 与 3:2 之间浮动 */
.sk-split{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(24px,4vw,60px);
  align-items:start;
}
@media (min-width:900px){
  .sk-split{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .sk-split--flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .sk-split--even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}

/* 高密度索引栅格 */
.sk-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap:clamp(16px,2.2vw,32px);
}
.sk-grid--tight{gap:clamp(10px,1.4vw,18px)}

/* ------------------------------------------------------------
   03 · 跳转链接
   ------------------------------------------------------------ */
.sk-skip{
  position:fixed;
  top:0;
  left:16px;
  z-index:200;
  padding:11px 18px;
  background:var(--amber);
  color:var(--ink);
  font-family:var(--font-label);
  font-size:13px;
  letter-spacing:.16em;
  transform:translateY(-160%);
  transition:transform var(--ease);
}
.sk-skip:focus,
.sk-skip:focus-visible{transform:translateY(12px)}

/* ------------------------------------------------------------
   04 · 刊头
   ------------------------------------------------------------ */
.sk-header{
  position:sticky;
  top:0;
  z-index:60;
  background:var(--ink);
  border-bottom:1px solid var(--line-signal);
}
/* 脉冲刻度线：点—划—点，横贯页首 */
.sk-header::before{
  content:"";
  display:block;
  height:2px;
  background-image:repeating-linear-gradient(90deg,var(--signal) 0 4px,transparent 4px 10px);
  opacity:.45;
}
.sk-masthead{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:clamp(16px,3vw,44px);
  min-height:78px;
}

/* 站点署名 */
.sk-sign{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.06em;
  color:var(--paper);
  white-space:nowrap;
  transition:color var(--ease);
}
.sk-sign__mark{display:inline-flex;align-items:center;gap:4px;flex:none}
.sk-sign__mark i{
  display:block;
  height:4px;
  font-style:normal;
  background:var(--signal);
  transition:background-color var(--ease);
}
.sk-sign__mark i:nth-child(1){width:4px}
.sk-sign__mark i:nth-child(2){width:12px}
.sk-sign__mark i:nth-child(3){width:4px}
.sk-sign__text{letter-spacing:.08em}
.sk-sign:hover{color:var(--signal)}
.sk-sign:hover .sk-sign__mark i{background:var(--amber)}
.sk-sign:focus-visible{outline:1px solid var(--signal);outline-offset:4px}

/* 居中栏目 */
.sk-nav{justify-self:center}
.sk-nav__list{
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:clamp(8px,1.8vw,24px);
  flex-wrap:nowrap;
}
.sk-nav__link{
  position:relative;
  display:block;
  padding:28px 2px 26px;
  color:var(--graphite);
  font-family:var(--font-label);
  font-size:13px;
  letter-spacing:.16em;
  white-space:nowrap;
  transition:color var(--ease);
}
.sk-nav__link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:20px;
  height:1px;
  background:var(--signal);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 180ms ease,background-color var(--ease);
}
.sk-nav__link:hover{color:var(--paper)}
.sk-nav__link:hover::after{transform:scaleX(1)}
.sk-nav__link:focus-visible{outline:1px solid var(--signal);outline-offset:4px;color:var(--paper)}
.sk-nav__link[aria-current="page"]{color:var(--signal)}
.sk-nav__link[aria-current="page"]::after{transform:scaleX(1);background:var(--amber)}

/* 右侧工具区 */
.sk-tools{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:12px;
}
.sk-search{
  display:inline-flex;
  align-items:baseline;
  gap:8px;
  padding:8px 12px;
  border:1px solid rgba(79,209,197,.3);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.04em;
  white-space:nowrap;
  transition:border-color var(--ease),background-color var(--ease);
}
.sk-search__label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--signal);
}
.sk-search__label::before{
  content:"";
  display:block;
  width:5px;
  height:5px;
  background:var(--signal);
}
.sk-search__hint{color:var(--graphite);transition:color var(--ease)}
.sk-search:hover{border-color:var(--signal);background:rgba(79,209,197,.08)}
.sk-search:hover .sk-search__hint{color:var(--paper)}
.sk-search:focus-visible{outline:1px solid var(--signal);outline-offset:3px}

/* 移动端栏目按钮 */
.sk-nav-toggle{
  display:none;
  align-items:center;
  gap:9px;
  padding:8px 12px;
  background:transparent;
  color:var(--paper);
  border:1px solid var(--line-dark);
  cursor:pointer;
  font-family:var(--font-label);
  font-size:12px;
  letter-spacing:.18em;
  transition:border-color var(--ease),color var(--ease);
}
.sk-nav-toggle__bars{display:grid;gap:3px;width:14px;flex:none}
.sk-nav-toggle__bars i{display:block;height:1px;background:currentColor;font-style:normal}
.sk-nav-toggle__text{line-height:1}
.sk-nav-toggle:hover{border-color:var(--signal);color:var(--signal)}
.sk-nav-toggle:focus-visible{outline:1px solid var(--signal);outline-offset:3px}
.sk-nav-toggle[aria-expanded="true"]{border-color:var(--amber);color:var(--amber)}

@media (max-width:1080px){
  .sk-search__hint{display:none}
  .sk-nav__list{gap:clamp(6px,1.2vw,16px)}
  .sk-nav__link{font-size:12.5px;letter-spacing:.12em}
}

@media (max-width:899px){
  .sk-masthead{
    grid-template-columns:1fr auto;
    gap:12px;
    min-height:64px;
  }
  .sk-sign{grid-column:1;grid-row:1}
  .sk-tools{grid-column:2;grid-row:1}
  .sk-nav{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:stretch;
    display:none;
    border-top:1px solid var(--line-dark);
    margin-bottom:10px;
  }
  .sk-nav[data-open]{display:block}
  .sk-nav__list{
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:6px 0 12px;
  }
  .sk-nav__link{
    padding:13px 2px;
    font-size:14px;
    letter-spacing:.14em;
    border-bottom:1px solid rgba(239,231,217,.08);
  }
  .sk-nav__link::after{display:none}
  .sk-nav__link:hover{color:var(--signal)}
  .sk-nav__link[aria-current="page"]{padding-left:16px}
  .sk-nav__link[aria-current="page"]::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:6px;
    height:6px;
    margin-top:-3px;
    background:var(--amber);
  }
  .sk-nav-toggle{display:inline-flex}
}

/* ------------------------------------------------------------
   05 · 通用组件：标签 / 按钮 / 信号点 / 分隔线 / 面板
   ------------------------------------------------------------ */
.sk-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-label);
  font-size:12px;
  letter-spacing:.24em;
  color:var(--signal);
  text-transform:uppercase;
}
.sk-eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:currentColor;
  flex:none;
}
.sk-eyebrow--paper{color:var(--amber-deep)}

.sk-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 22px;
  border:1px solid transparent;
  font-family:var(--font-label);
  font-size:13px;
  letter-spacing:.18em;
  white-space:nowrap;
  cursor:pointer;
  transition:background-color var(--ease),color var(--ease),border-color var(--ease);
}
.sk-btn--amber{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.sk-btn--amber:hover{background:var(--amber-deep);border-color:var(--amber-deep);color:var(--paper)}
.sk-btn--signal{background:transparent;border-color:rgba(79,209,197,.45);color:var(--signal)}
.sk-btn--signal:hover{border-color:var(--signal);background:rgba(79,209,197,.1);color:var(--paper)}
.sk-btn--ink{background:var(--text-ink);border-color:var(--text-ink);color:var(--paper)}
.sk-btn--ink:hover{background:var(--ink);border-color:var(--ink)}
.sk-btn--ghost{background:transparent;border-color:var(--paper-line);color:var(--text-ink)}
.sk-btn--ghost:hover{border-color:var(--text-ink);background:var(--text-ink);color:var(--paper)}
.sk-btn--sm{padding:9px 15px;font-size:12px}
.sk-btn:focus-visible{outline:1px solid var(--signal);outline-offset:3px}
.sk-btn--amber:focus-visible{outline-color:var(--amber-deep)}
.sk-btn--ghost:focus-visible{outline-color:var(--text-ink)}

.sk-signal{
  display:inline-block;
  width:7px;
  height:7px;
  background:var(--signal);
  flex:none;
}
.sk-signal--amber{background:var(--amber)}
.sk-signal--wave{background:var(--wave)}
.sk-signal--noise{background:var(--noise)}

/* 点 · 划 · 点 */
.sk-rule{
  display:flex;
  align-items:center;
  gap:8px;
  height:9px;
  margin:18px 0;
}
.sk-rule i{display:block;height:3px;background:var(--signal);opacity:.75}
.sk-rule i:nth-child(1){width:5px}
.sk-rule i:nth-child(2){width:30px}
.sk-rule i:nth-child(3){width:5px}
.sk-rule--paper i{background:var(--amber-deep);opacity:.9}

.sk-panel{
  background:var(--paper);
  color:var(--text-ink);
  border:1px solid var(--paper-line);
  padding:clamp(20px,3vw,36px);
}
.sk-panel p{max-width:38em}
.sk-panel--ink{
  background:var(--ink-2);
  color:var(--paper);
  border-color:var(--line-signal);
}
.sk-panel--flat{background:transparent;border:0;padding:0}

/* 图片容器基础规则：供页面阶段放置占位与实拍 */
.sk-media{
  position:relative;
  overflow:hidden;
  background:var(--ink-2);
  border:1px solid var(--line-dark);
}
.sk-media::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:radial-gradient(rgba(79,209,197,.22) 1px,transparent 1.2px);
  background-size:14px 14px;
  opacity:.7;
}
.sk-media img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
}
.sk-media--wide{aspect-ratio:16/9}
.sk-media--band{aspect-ratio:21/9}
.sk-media--tall{aspect-ratio:3/4}
.sk-media--square{aspect-ratio:1/1}
.sk-media__caption{
  display:block;
  margin-top:10px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.04em;
  color:var(--graphite);
}
.sk-media--paper{border-color:var(--paper-line);background:#e4dbc9}
.sk-media--paper::before{background-image:radial-gradient(rgba(37,51,61,.16) 1px,transparent 1.2px)}
.sk-media--paper .sk-media__caption{color:#6b7a84}

/* ------------------------------------------------------------
   06 · 面包屑
   ------------------------------------------------------------ */
.sk-breadcrumb{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.06em;
  color:var(--graphite);
}
.sk-breadcrumb ol{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.sk-breadcrumb li{display:inline-flex;align-items:center;gap:8px}
.sk-breadcrumb li + li::before{
  content:"/";
  color:rgba(138,154,166,.55);
}
.sk-breadcrumb a{
  color:var(--graphite);
  border-bottom:1px solid transparent;
  transition:color var(--ease),border-color var(--ease);
}
.sk-breadcrumb a:hover{color:var(--signal);border-bottom-color:var(--signal)}
.sk-breadcrumb a:focus-visible{outline:1px solid var(--signal);outline-offset:3px}
.sk-breadcrumb [aria-current="page"]{color:var(--paper)}
.sk-breadcrumb--paper{color:#66757e}
.sk-breadcrumb--paper a{color:#66757e}
.sk-breadcrumb--paper a:hover{color:var(--amber-deep);border-bottom-color:var(--amber-deep)}
.sk-breadcrumb--paper li + li::before{color:rgba(37,51,61,.3)}
.sk-breadcrumb--paper [aria-current="page"]{color:var(--text-ink)}

/* ------------------------------------------------------------
   07 · 章节索引（编辑部目录）
   ------------------------------------------------------------ */
.sk-index{border-top:1px solid var(--line-dark)}
.sk-index__item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:baseline;
  gap:6px 18px;
  padding:14px 0;
  border-bottom:1px solid var(--line-dark);
}
.sk-index__num{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.04em;
  color:var(--graphite);
}
.sk-index__link{
  position:relative;
  display:inline-block;
  padding-left:14px;
  font-family:var(--font-display);
  font-size:17px;
  line-height:1.5;
  color:var(--paper);
  transition:color var(--ease);
}
.sk-index__link::before{
  content:"";
  position:absolute;
  left:0;
  top:.72em;
  width:6px;
  height:1px;
  background:var(--graphite);
  transition:background-color var(--ease),width var(--ease);
}
.sk-index__link:hover{color:var(--signal)}
.sk-index__link:hover::before{background:var(--signal);width:10px}
.sk-index__link:focus-visible{outline:1px solid var(--signal);outline-offset:3px}
.sk-index__link[aria-current="true"]{color:var(--signal)}
.sk-index__link[aria-current="true"]::before{background:var(--amber);width:10px}
.sk-index--paper{border-top-color:var(--paper-line)}
.sk-index--paper .sk-index__item{border-bottom-color:var(--paper-line)}
.sk-index--paper .sk-index__link{color:var(--text-ink)}
.sk-index--paper .sk-index__link:hover{color:var(--amber-deep)}
.sk-index--paper .sk-index__link::before{background:#a9b3ba}
.sk-index--paper .sk-index__link[aria-current="true"]{color:var(--amber-deep)}
.sk-index--paper .sk-index__link[aria-current="true"]::before{background:var(--amber-deep)}
.sk-index--paper .sk-index__num{color:#6b7a84}

/* ------------------------------------------------------------
   08 · 滚动进度尺（由 JS 注入）
   ------------------------------------------------------------ */
.sk-progress{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:2px;
  background:var(--amber);
  transform:scaleX(0);
  transform-origin:0 50%;
  z-index:120;
  pointer-events:none;
}

/* ------------------------------------------------------------
   09 · 页脚
   ------------------------------------------------------------ */
.sk-footer{
  background:var(--ink);
  border-top:1px solid var(--line-signal);
  color:var(--paper);
  margin-top:clamp(32px,5vw,72px);
}
.sk-footer__top{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(30px,4vw,56px);
  padding-top:clamp(40px,6vw,72px);
  padding-bottom:clamp(28px,4vw,48px);
}
@media (min-width:820px){
  .sk-footer__top{grid-template-columns:minmax(240px,1fr) minmax(0,1.6fr)}
}
.sk-footer__brand{min-width:0}
.sk-footer__wordmark{
  font-family:var(--font-display);
  font-size:clamp(24px,3vw,30px);
  line-height:1.2;
  letter-spacing:.02em;
  color:var(--paper);
}
.sk-footer__sub{
  margin-top:10px;
  font-family:var(--font-label);
  font-size:13px;
  letter-spacing:.16em;
  color:var(--signal);
}
.sk-footer__rule{
  display:block;
  width:64px;
  height:2px;
  margin:16px 0 14px;
  background:var(--signal);
}
.sk-footer__note{
  max-width:32em;
  font-size:13px;
  line-height:1.75;
  color:var(--graphite);
}
.sk-footer__nav{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:clamp(24px,3vw,40px);
}
.sk-footer__col{min-width:0}
.sk-footer__heading{
  margin-bottom:14px;
  font-family:var(--font-label);
  font-size:12px;
  font-weight:400;
  letter-spacing:.2em;
  color:var(--signal);
}
.sk-footer__list li + li{margin-top:9px}
.sk-footer__list a{
  font-size:14px;
  color:rgba(239,231,217,.82);
  border-bottom:1px solid transparent;
  transition:color var(--ease),border-color var(--ease);
}
.sk-footer__list a:hover{color:var(--signal);border-bottom-color:var(--signal)}
.sk-footer__list a:focus-visible{outline:1px solid var(--signal);outline-offset:3px}

.sk-footer__contact{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));
  gap:14px clamp(20px,3vw,40px);
  padding:clamp(20px,3vw,28px) 0;
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
}
.sk-footer__contact-line{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.03em;
  color:var(--paper);
}
.sk-footer__key{
  flex:none;
  font-family:var(--font-label);
  font-size:11.5px;
  letter-spacing:.2em;
  color:var(--graphite);
}
.sk-footer__value{color:var(--paper);word-break:break-word}

.sk-footer__legal{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 28px;
  padding:20px 0 clamp(24px,4vw,40px);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.03em;
  color:var(--graphite);
}
.sk-footer__copy{color:var(--graphite)}
.sk-footer__icp{color:var(--paper)}
.sk-footer__icp::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:9px;
  background:var(--wave);
  vertical-align:middle;
}

/* ------------------------------------------------------------
   10 · 动效偏好与打印
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

@media print{
  .sk-skip,.sk-progress,.sk-header,.sk-nav-toggle{display:none !important}
  body{background:#fff;color:#000}
}
