/* 光年邮局 · 小网站化：会呼吸的页脚 / 邮局公告 / 迷路页（样式只消费令牌） */

/* ---------- 页脚 ---------- */
.footer { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-8) var(--s-4) var(--s-8); }
.footer__clock { letter-spacing: 0.12em; }
.footer__clock .num { color: var(--starlight); }
.footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-1) var(--s-3); }
.footer__links a { padding: var(--s-1) var(--s-1); }
.footer__tiny { opacity: 0.7; }

/* ---------- 邮局公告 ---------- */
.log-list { list-style: none; max-width: 720px; }
.log-entry {
  border-left: 2px solid var(--hairline);
  padding: var(--s-4) 0 var(--s-6) var(--s-6);
  position: relative;
}
.log-entry::before {
  content: '';
  position: absolute;
  left: -5px;
  top: calc(var(--s-4) + 12px);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--night);
  border: 1px solid var(--starlight);
}
.log-entry__head { display: flex; align-items: baseline; gap: var(--s-4); flex-wrap: wrap; margin-bottom: var(--s-2); }
.log-entry__version {
  font-size: var(--fs-label);
  letter-spacing: 0.2em;
  color: var(--starlight);
  border: 1px solid var(--starlight);
  padding: 0 var(--s-2);
}
.log-entry__date { font-size: var(--fs-label); color: var(--ink-dim); letter-spacing: 0.1em; }
.log-entry__title { font-size: var(--fs-title); font-weight: 600; letter-spacing: 0.08em; }
.log-entry__items { list-style: none; display: flex; flex-direction: column; gap: var(--s-1); }
.log-entry__items li { color: var(--text); font-size: var(--fs-body); line-height: 1.9; }
.log-entry__items li::before { content: '· '; color: var(--starlight); }

/* ---------- 迷路页 ---------- */
.notfound { max-width: 560px; margin: var(--s-16) auto; }
.notfound__code {
  font-size: 88px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--starlight);
  line-height: 1;
  margin-bottom: var(--s-4);
  text-shadow: 0 0 40px rgba(230, 199, 124, 0.35);
}
.notfound__actions { display: flex; justify-content: center; gap: var(--s-4); margin-top: var(--s-8); flex-wrap: wrap; }

/* ---------- E5：让邮局活起来 ---------- */

/* 首页开场编排：逐字亮起 + 元素依次浮现 */
.home-hero__char {
  display: inline-block;
  animation: rise-in 0.5s var(--ease-out) both, char-shimmer 7s ease-in-out infinite;
  animation-delay: calc(0.15s + var(--i) * 0.1s), calc(1.4s + var(--i) * 0.5s);
}
@keyframes rise-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
@keyframes char-shimmer {
  0%, 91%, 100% { text-shadow: 0 0 34px rgba(230, 199, 124, 0.18); }
  95% { text-shadow: 0 0 16px rgba(230, 199, 124, 0.7), 0 0 48px rgba(230, 199, 124, 0.32); }
}
.home-hero__manifesto { animation: rise-in 0.55s var(--ease-out) 0.6s both; }
.home-hero__manifesto--dim { animation-delay: 0.72s; }
.home-hero__cta { animation: rise-in 0.55s var(--ease-out) 0.85s both, cta-breath 3.4s ease-in-out 2s infinite; }
.home-hero__alt { animation: rise-in 0.55s var(--ease-out) 1s both; }
.home-verse { animation: rise-in 0.55s var(--ease-out) 1.15s both; }
@keyframes cta-breath {
  0%, 100% { box-shadow: 0 0 0 rgba(230, 199, 124, 0); }
  50% { box-shadow: 0 0 26px rgba(230, 199, 124, 0.3); }
}

/* 主按钮流光扫过 */
.btn--primary { position: relative; overflow: hidden; }
.btn--primary::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 36%;
  background: linear-gradient(105deg, transparent, rgba(255, 250, 232, 0.55), transparent);
  transform: translateX(-160%) skewX(-18deg);
  pointer-events: none;
}
.btn--primary:hover::after { transition: transform 0.6s var(--ease-out); transform: translateX(400%) skewX(-18deg); }

/* 导航下划线滑入 */
.nav__links a {
  background: linear-gradient(var(--starlight), var(--starlight)) left bottom / 0 1px no-repeat;
  transition: background-size 0.25s var(--ease-out), color 0.15s var(--ease-out);
}
.nav__links a:hover { background-size: 100% 1px; }

/* 实时仪表牌 */
.home-board {
  display: flex;
  width: min(560px, 100%);
  border: 1px solid var(--hairline);
  background: rgba(10, 15, 30, 0.35);
}
.home-board__cell {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--s-3) var(--s-4);
  border-left: 1px solid var(--hairline);
  color: var(--text);
}
.home-board__cell:first-child { border-left: 0; }
a.home-board__cell { transition: background-color var(--t-fast) var(--ease-out); }
a.home-board__cell:hover { background: rgba(230, 199, 124, 0.07); }
.home-board__label { font-size: var(--fs-label); color: var(--ink-dim); letter-spacing: 0.18em; }
.home-board__value { font-size: 21px; color: var(--starlight); font-variant-numeric: tabular-nums; letter-spacing: 0.04em; line-height: 1.4; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  .home-hero__char, .home-hero__manifesto, .home-hero__cta, .home-hero__alt, .home-verse { animation: none !important; }
  .btn--primary::after { display: none; }
}

@media (max-width: 640px) {
  .home-board { width: 100%; }
  .home-board__value { font-size: 16px; }
}

/* ---------- E6：今日星空（观测签 / 天象条 / 观星模式 / 足迹） ---------- */

/* 今日天象条 */
.home-sky {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--s-2) var(--s-6);
  width: min(680px, 100%);
  padding: var(--s-3) var(--s-4);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.home-sky__tag {
  align-self: center;
  font-size: var(--fs-label);
  letter-spacing: 0.28em;
  color: var(--postmark);
  border: 1px solid var(--postmark);
  padding: 1px var(--s-2);
  white-space: nowrap;
}
.home-sky__item { display: flex; flex-direction: column; gap: 0; color: var(--text); }
.home-sky__item strong { font-size: var(--fs-body); font-weight: 600; letter-spacing: 0.06em; }
.home-sky__item em { font-style: normal; font-size: var(--fs-label); color: var(--ink-dim); letter-spacing: 0.06em; }
a.home-sky__item { transition: color var(--t-fast) var(--ease-out); }
a.home-sky__item:hover strong { color: var(--starlight); }
.home-sky__item--news { flex: 1; min-width: 220px; font-size: var(--fs-label); color: var(--text); line-height: 1.8; letter-spacing: 0.04em; align-self: center; }

/* 观测签 */
.home-oracle {
  display: flex;
  align-items: center;
  gap: var(--s-4);
  flex-wrap: wrap;
  width: min(680px, 100%);
}
.home-oracle__btn { letter-spacing: 0.2em; }
.home-oracle__btn.is-shaking { animation: oracle-shake 0.6s ease-in-out; }
@keyframes oracle-shake {
  0%, 100% { transform: rotate(0); }
  20% { transform: rotate(-3deg) translateY(1px); }
  40% { transform: rotate(3deg); }
  60% { transform: rotate(-2deg) translateY(2px); }
  80% { transform: rotate(2deg); }
}
.home-oracle__hint { font-size: var(--fs-label); color: var(--ink-dim); letter-spacing: 0.14em; }
.home-oracle__slip {
  width: 100%;
  margin: 0;
  background: linear-gradient(to right, var(--paper), var(--paper-dim) 210%);
  color: var(--ink);
  border-left: 3px solid var(--postmark);
  padding: var(--s-4) var(--s-6);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
  animation: rise-in 0.5s var(--ease-out) both;
}
.home-oracle__no { font-size: var(--fs-label); letter-spacing: 0.24em; color: var(--postmark); margin-bottom: var(--s-2); }
.home-oracle__text { line-height: 2; letter-spacing: 0.05em; }
.home-oracle__sign {
  margin-top: var(--s-3);
  font-size: var(--fs-label);
  color: rgba(43, 38, 32, 0.62);
  letter-spacing: 0.08em;
  text-align: right;
}

/* 观星模式 */
body.is-cinema #view,
body.is-cinema .nav,
body.is-cinema .footer { opacity: 0; pointer-events: none; transition: opacity var(--t-med) var(--ease-out); }
.cinema-bar {
  position: fixed;
  left: 0;
  right: 0;
  height: 64px;
  background: var(--cinema-black);
  z-index: var(--z-overlay);
  animation: bar-in 0.6s var(--ease-out) both;
}
.cinema-bar--top { top: 0; }
.cinema-bar--bottom { bottom: 0; }
@keyframes bar-in {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}
.cinema-bar--bottom { animation-name: bar-in-bottom; }
@keyframes bar-in-bottom {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
.cinema-quote {
  position: fixed;
  bottom: 84px;
  left: 50%;
  transform: translateX(-50%);
  z-index: calc(var(--z-overlay) + 1);
  width: min(680px, 88vw);
  text-align: center;
  opacity: 1;
  transition: opacity 0.9s var(--ease-out);
}
.cinema-quote.is-fading { opacity: 0; }
.cinema-quote__text { color: var(--text); font-size: var(--fs-body-lg); letter-spacing: 0.1em; line-height: 2; text-shadow: 0 0 24px rgba(0, 0, 0, 0.8); }
.cinema-quote__from { margin-top: var(--s-1); color: var(--ink-dim); font-size: var(--fs-label); letter-spacing: 0.12em; }
.cinema-hint {
  position: fixed;
  top: 76px;
  left: 50%;
  transform: translateX(-50%);
  z-index: calc(var(--z-overlay) + 1);
  color: var(--ink-dim);
  font-size: var(--fs-label);
  letter-spacing: 0.2em;
  transition: opacity var(--t-med) var(--ease-out);
}
.cinema-hint.is-gone { opacity: 0; }

/* 足迹 */
.about-sec--foot { border: 1px dashed var(--hairline-strong); padding: var(--s-4) var(--s-6); }
