/* =========================================================
   通用样式：悬浮资讯条 / 顶栏 / 页脚
   ========================================================= */

/* —— 悬浮资讯条 ——————————————————————— */
#ticker-bar {
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
  max-width: 360px;
  background: var(--c-ink);
  color: #fff;
  border-radius: 12px;
  box-shadow: var(--shadow-3);
  opacity: 0; transform: translateY(10px);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
#ticker-bar.is-in { opacity: 1; transform: none; }
#ticker-bar[hidden] { display: none; }
.ticker__inner {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.8rem 1rem;
  font-size: var(--fs-sm);
}
.ticker__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--c-primary-3);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--c-primary-3) 60%, transparent);
  animation: pulse 2.4s var(--ease-out) infinite;
  flex: none;
}
.ticker__msg { flex: 1; line-height: 1.4; color: rgba(255,255,255,0.92); }
.ticker__link {
  color: var(--c-primary-3);
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
  flex: none;
}
.ticker__close {
  color: rgba(255,255,255,0.6);
  font-size: 1.1rem;
  width: 22px; height: 22px;
  display: inline-flex; align-items: center; justify-content: center;
  flex: none;
  border-radius: 4px;
  transition: color var(--t-fast);
}
.ticker__close:hover { color: #fff; }
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--c-primary-3) 60%, transparent); }
  70%  { box-shadow: 0 0 0 10px color-mix(in srgb, var(--c-primary-3) 0%, transparent); }
  100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--c-primary-3) 0%, transparent); }
}

@media (max-width: 540px) {
  #ticker-bar { left: 12px; right: 12px; max-width: none; bottom: 12px; }
}

/* —— 占位图 ——————————————————————— */
.placeholder {
  display: flex; align-items: center; justify-content: center;
  background:
    linear-gradient(135deg, var(--c-tint) 0%, color-mix(in srgb, var(--c-tint) 40%, white) 100%);
  color: var(--c-primary-2);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
}

/* —— 移动端全屏导航 ——————————————————————— */
.nav-overlay {
  position: fixed; inset: 0; z-index: 90;
  background: var(--c-bg);
  display: flex; flex-direction: column;
  padding: var(--s-6);
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s var(--ease-out);
}
.nav-overlay.is-open { opacity: 1; pointer-events: auto; }
.nav-overlay__top {
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: var(--s-6);
  border-bottom: 1px solid var(--c-line);
  margin-bottom: var(--s-8);
}
.nav-overlay__close {
  width: 44px; height: 44px; border-radius: 999px;
  border: 1px solid var(--c-line-2);
  display: inline-flex; align-items: center; justify-content: center;
}
.nav-overlay__links {
  display: flex; flex-direction: column; gap: 0;
}
.nav-overlay__links a {
  display: block;
  padding: 1.2rem 0;
  font-size: var(--fs-2xl);
  font-weight: 400;
  border-bottom: 1px solid var(--c-line);
  color: var(--c-ink);
}
.nav-overlay__links a:hover { color: var(--c-primary); }
.nav-overlay__cta {
  margin-top: var(--s-8);
  display: flex; gap: var(--s-3);
}
