/* ============================================================
   灵异事件档案馆 · 共享样式 (复古像素风)
   所有页面共用这一个文件 —— 改一处，全站变 (DRY 原则)
   ============================================================ */

/* ---------- 1. 主题色变量 ---------- */
:root {
  --color-bg: #0d1f18;
  --color-bg-2: #12291f;
  --color-panel: #1a3a2a;
  --color-panel-2: #204a35;
  --color-primary: #f5d547;   /* 亮黄 */
  --color-accent: #b3392e;    /* 砖红 */
  --color-text: #d8e8dd;
  --color-text-dim: #9ab5a5;
  --color-line: #2f5c44;
  --shadow-pixel: 4px 4px 0 #06120d;
  --font-pixel: "Courier New", "PingFang SC", "Microsoft YaHei", monospace;
  --font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* 白天模式：把变量换一套值，全站自动跟着变 */
html[data-theme="light"] {
  --color-bg: #e8e2cf;
  --color-bg-2: #ded6bd;
  --color-panel: #f4efdd;
  --color-panel-2: #e6dfc6;
  --color-primary: #8a6d00;
  --color-accent: #a02f24;
  --color-text: #24352c;
  --color-text-dim: #55665c;
  --color-line: #b8ae8e;
  --shadow-pixel: 4px 4px 0 #b8ae8e;
}

/* ---------- 2. 基础重置 ---------- */
* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-body);
  color: var(--color-text);
  background:
    repeating-linear-gradient(0deg, rgba(0,0,0,.18) 0 2px, transparent 2px 4px),
    radial-gradient(circle at 20% 0%, var(--color-bg-2), var(--color-bg) 70%);
  background-attachment: fixed;
  line-height: 1.7;
  transition: background .4s ease, color .4s ease;
}

img { max-width: 100%; display: block; }

a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------- 3. 顶部导航 ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  background: var(--color-panel);
  border-bottom: 4px solid var(--color-line);
  box-shadow: var(--shadow-pixel);
}

.logo {
  font-family: var(--font-pixel);
  font-weight: bold;
  font-size: 18px;
  letter-spacing: 1px;
  color: var(--color-primary);
  text-shadow: 2px 2px 0 var(--color-accent);
  margin-right: auto;
}

.site-nav { display: flex; flex-wrap: wrap; gap: 8px; }

.nav-link {
  font-family: var(--font-pixel);
  font-size: 13px;
  padding: 6px 12px;
  color: var(--color-text);
  background: var(--color-panel-2);
  border: 2px solid var(--color-line);
  box-shadow: 3px 3px 0 #06120d;
  transition: transform .12s ease, background .2s ease;
}
.nav-link:hover {
  background: var(--color-primary);
  color: #12291f;
  text-decoration: none;
  transform: translate(-2px, -2px);
}
.nav-link:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 #06120d; }

/* ---------- 4. 页面容器 ---------- */
.wrap { max-width: 1000px; margin: 0 auto; padding: 24px 18px 60px; }

.page-title {
  font-family: var(--font-pixel);
  font-size: clamp(22px, 5vw, 38px);
  margin: 10px 0 6px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent), var(--color-primary));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: flicker 4s infinite;
}

.subtitle { color: var(--color-text-dim); margin-top: 0; font-size: 14px; }

/* ---------- 5. 像素按钮 ---------- */
.btn {
  display: inline-block;
  font-family: var(--font-pixel);
  font-size: 14px;
  padding: 10px 18px;
  cursor: pointer;
  color: #12291f;
  background: var(--color-primary);
  border: 3px solid #06120d;
  box-shadow: 4px 4px 0 #06120d;
  transition: transform .12s ease, box-shadow .12s ease;
}
.btn:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 #06120d; text-decoration: none; }
.btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 #06120d; }
.btn.danger { background: var(--color-accent); color: #fff; }
.btn.ghost { background: transparent; color: var(--color-primary); border-color: var(--color-primary); }

/* ---------- 6. 搜索框 ---------- */
.search-bar { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }

.search-input {
  flex: 1 1 220px;
  font-family: var(--font-pixel);
  font-size: 15px;
  padding: 12px 14px;
  color: var(--color-text);
  background: var(--color-panel);
  border: 3px solid var(--color-line);
  outline: none;
}
.search-input:focus { border-color: var(--color-primary); }
.search-input::placeholder { color: var(--color-text-dim); }

/* 搜索时的诡异文字闪烁 */
.glitch {
  animation: glitch .35s steps(2) infinite;
  color: var(--color-accent) !important;
}
@keyframes glitch {
  0%   { transform: translate(0, 0); text-shadow: 2px 0 var(--color-primary); }
  25%  { transform: translate(-2px, 1px); text-shadow: -2px 0 var(--color-accent); }
  50%  { transform: translate(2px, -1px); text-shadow: 2px 0 var(--color-primary); }
  75%  { transform: translate(-1px, -2px); text-shadow: -2px 0 var(--color-accent); }
  100% { transform: translate(0, 0); text-shadow: none; }
}

/* ---------- 7. 卡片网格 ---------- */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.card {
  display: flex;
  flex-direction: column;
  padding: 16px;
  background: var(--color-panel);
  border: 3px solid var(--color-line);
  box-shadow: var(--shadow-pixel);
  transition: transform .15s ease, border-color .2s ease;
}
.card:hover { transform: translateY(-4px) rotate(-.4deg); border-color: var(--color-primary); }

.card h3 {
  font-family: var(--font-pixel);
  font-size: 16px;
  margin: 0 0 8px;
  color: var(--color-primary);
}

.card .meta { font-size: 12px; color: var(--color-text-dim); margin-bottom: 8px; }
.card .excerpt { font-size: 13px; color: var(--color-text); flex: 1; }

/* ---------- 8. 恐怖星级 + 标签 ---------- */
.stars { font-size: 14px; letter-spacing: 2px; color: var(--color-accent); }

.tag {
  display: inline-block;
  font-size: 11px;
  font-family: var(--font-pixel);
  padding: 2px 8px;
  margin: 3px 4px 0 0;
  color: var(--color-text);
  background: var(--color-panel-2);
  border: 1px solid var(--color-line);
}

/* ---------- 9. 表单 ---------- */
.form-row { margin-bottom: 16px; }
.form-row label { display: block; font-family: var(--font-pixel); font-size: 13px; margin-bottom: 6px; color: var(--color-primary); }

.form-row input,
.form-row select,
.form-row textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 14px;
  padding: 10px 12px;
  color: var(--color-text);
  background: var(--color-panel);
  border: 3px solid var(--color-line);
  outline: none;
}
.form-row textarea { min-height: 120px; resize: vertical; }
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus { border-color: var(--color-primary); }

/* ---------- 10. 提示条 (代替 alert) ---------- */
.toast {
  position: fixed;
  left: 50%;
  bottom: 26px;
  transform: translate(-50%, 120%);
  z-index: 200;
  font-family: var(--font-pixel);
  font-size: 14px;
  padding: 12px 20px;
  color: #12291f;
  background: var(--color-primary);
  border: 3px solid #06120d;
  box-shadow: var(--shadow-pixel);
  transition: transform .35s ease;
}
.toast.show { transform: translate(-50%, 0); }
.toast.error { background: var(--color-accent); color: #fff; }

/* ---------- 11. 详情 / 分享卡 ---------- */
.detail-panel {
  padding: 22px;
  background: var(--color-panel);
  border: 3px solid var(--color-line);
  box-shadow: var(--shadow-pixel);
}
.detail-panel .story { white-space: pre-wrap; font-size: 15px; }

.share-card {
  max-width: 420px;
  margin: 20px auto;
  padding: 26px 22px;
  text-align: center;
  background: linear-gradient(160deg, #1a3a2a, #0d1f18);
  border: 4px solid var(--color-primary);
  box-shadow: 8px 8px 0 #06120d;
}
.share-card .sc-title {
  font-family: var(--font-pixel);
  font-size: 22px;
  color: var(--color-primary);
  text-shadow: 3px 3px 0 var(--color-accent);
  margin: 10px 0;
}
.share-card .sc-foot { font-size: 12px; color: #9ab5a5; margin-top: 14px; }

/* ---------- 12. 页脚 ---------- */
.site-footer {
  text-align: center;
  font-size: 12px;
  color: var(--color-text-dim);
  padding: 24px 18px 40px;
  border-top: 3px dashed var(--color-line);
  margin-top: 40px;
}

/* ---------- 13. 动画 ---------- */
@keyframes flicker {
  0%, 92%, 100% { opacity: 1; }
  93% { opacity: .55; }
  95% { opacity: 1; }
  96% { opacity: .4; }
  97% { opacity: 1; }
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-3px); }
  75% { transform: translateX(3px); }
}
.shake { animation: shake .3s ease; }

/* ---------- 14. 移动端 ---------- */
@media (max-width: 600px) {
  .site-header { padding: 10px 12px; }
  .logo { font-size: 15px; }
  .nav-link { font-size: 12px; padding: 5px 9px; }
  .wrap { padding: 16px 12px 50px; }
  .card-grid { grid-template-columns: 1fr; }
}
