* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

/* ---- 换页进度条：路由 fetch 未命中缓存时提示"正在取页"，避免点击后毫无反馈 ---- */
html[data-pb-busy]::before {
  content: '';
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
  background-size: 40% 100%;
  background-repeat: no-repeat;
  animation: pb-busy .9s ease-in-out infinite;
}
@keyframes pb-busy {
  from { background-position: -40% 0; }
  to { background-position: 140% 0; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-pb-busy]::before { animation: none; background: var(--color-primary); }
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-text);
  background-color: var(--color-bg);
  background-image: repeating-linear-gradient(0deg, transparent, transparent 41px, rgba(180, 120, 130, .12) 42px);
  transition: background-color .25s, color .25s;
}
[data-theme='dark'] body {
  background-image: repeating-linear-gradient(0deg, transparent, transparent 41px, rgba(255, 255, 255, .07) 42px);
}
a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; text-decoration-style: wavy; text-decoration-color: var(--color-tape); }
img { max-width: 100%; }
h1, h2, h3, h4 { line-height: 1.35; }

.site-nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(253, 246, 244, .85);
  backdrop-filter: blur(8px);
  border-bottom: 1px dashed var(--color-border);
}
[data-theme='dark'] .site-nav { background: rgba(32, 26, 43, .85); }
.nav-inner {
  max-width: 1080px; margin: 0 auto; padding: 12px 20px;
  display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
}
.brand { font-weight: 700; font-size: 17px; color: var(--color-primary); }
.brand-sub { font-weight: 400; font-size: 12px; color: var(--color-text-soft); }
.nav-links { display: flex; gap: 16px; align-items: center; }
.nav-links a { color: var(--color-text); font-size: 14.5px; }
.nav-links a:hover { color: var(--color-primary); text-decoration: none; }
/* 深色模式暂时下线，切换按钮与样式一并移除；暗色令牌仍保留在 tokens.css */

.container { max-width: 1140px; margin: 0 auto; padding: 26px 20px 60px; }
.site-footer {
  border-top: 1px dashed var(--color-border);
  text-align: center; padding: 18px; font-size: 13px; color: var(--color-text-soft);
}
.rss-link { display: inline-flex; align-items: center; vertical-align: -3px; color: var(--color-text-soft); margin-left: 4px; }
.rss-link:hover { color: var(--color-primary); }
.rss-link .icon-rss { width: 14px; height: 14px; }

/* ---- 跨文档 View Transitions：点击卡片 → 文章从卡片位置展开 ---- */
@view-transition { navigation: auto; }

/* 卡片与文章页正文的配对命名由模板内联注入（哈希自 post.path） */
::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {
  animation-duration: .3s;
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {
    animation: none !important;
  }
}
