/* ==========================================================================
   RESUME — 暖色调（黎明 / 复苏）
   ========================================================================== */

:root {
  /* 暖色底：不是纯黑，是深棕黑，像天将亮未亮 */
  --bg:      #14100d;
  --bg-alt:  #1a1511;
  --card:    #201a15;
  --card-hi: #271f19;

  /* 暖色线条 */
  --line:    #322720;
  --line-2:  #45372c;

  /* 文字：暖白，不是冷白 */
  --txt:     #f5ece4;
  --txt-2:   #c4ab99;
  --dim:     #8a7466;

  /* 主色：日出金 + 暖橙 */
  --gold:    #f0b45f;
  --gold-2:  #ffd596;
  --ember:   #e8834a;
  --rose:    #d9705f;

  /* 状态色（暖化后） */
  --ok:      #7bc47f;
  --err:     #e8836f;
  --warn:    #f0b45f;

  --r:       12px;
  --r-lg:    18px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--txt);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
               "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  position: relative;
  /* 多层背景：环境光 + 网格 + 噪点 */
  background-image:
    /* 顶部暖光 */
    radial-gradient(1200px 700px at 50% -8%, rgba(240,180,95,0.13), transparent 68%),
    /* 中部偏右的橙色余晖 */
    radial-gradient(900px 600px at 88% 28%, rgba(232,131,74,0.07), transparent 62%),
    /* 左下角的冷光（形成对比） */
    radial-gradient(700px 500px at 8% 62%, rgba(110,130,190,0.045), transparent 65%),
    /* 细网格（极淡） */
    var(--tex-grid),
    /* 噪点（极淡） */
    var(--tex-noise);
  background-size: auto, auto, auto, 80px 80px, 180px 180px;
  background-attachment: fixed;
  background-repeat: no-repeat, no-repeat, no-repeat, repeat, repeat;
  /* 网格和噪点靠这一层压到几乎看不见，只留质感 */
  background-blend-mode: normal, normal, normal, soft-light, soft-light;
}

/* 暗角：放在最低层，只压暗 body 自身背景，不影响上面的星空 */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background: radial-gradient(ellipse 105% 82% at 50% 38%,
    transparent 32%,
    rgba(8,6,5,0.40) 70%,
    rgba(6,4,3,0.72) 100%);
  pointer-events: none;
  z-index: 0;
}

/* 星空：固定覆盖整个视口，滚动时星空保持不动（像真的夜空）
   注意 inset 用负值，避免浏览器边缘出现白边 */
body::after {
  content: '';
  position: fixed;
  inset: -100px;
  background-image: var(--tex-stars);
  background-size: 1600px 1000px;
  background-position: center center;
  background-repeat: repeat;
  /* 压到 0.62：星星够亮，但不干扰正文 */
  opacity: 0.62;
  /* 让星点偏暖白，而不是灰 */
  filter: saturate(1.15) brightness(1.05);
  pointer-events: none;
  z-index: 0;
}

/* 内容区给一点深色底，让文字压在星空上依然清晰 */
.hero .wrap,
.section .wrap {
  position: relative;
}

/* 内容层必须高于背景层 */
.hdr, main, .ftr { position: relative; z-index: 1; }

a { color: inherit; text-decoration: none; }
code {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
  font-size: 0.9em;
  background: var(--line);
  padding: 1px 6px;
  border-radius: 5px;
  color: var(--gold-2);
}

.wrap { max-width: 940px; margin: 0 auto; padding: 0 20px; }

/* ══════ Header ══════ */
.hdr {
  position: sticky; top: 0; z-index: 50;
  background: rgba(20,16,13,0.82);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
}
.hdr-in {
  display: flex; align-items: center; gap: 22px;
  height: 58px;
}
.brand { display: flex; align-items: center; gap: 9px; }
.brand-mark {
  display: grid; place-items: center;
  width: 26px; height: 26px;
  background: linear-gradient(135deg, var(--gold-2), var(--ember));
  color: #2a1c10; border-radius: 7px;
  font-weight: 800; font-size: 14px;
  box-shadow: 0 2px 12px rgba(240,180,95,0.25);
}
.brand-mark.sm { width: 18px; height: 18px; font-size: 10px; border-radius: 5px; box-shadow: none; }
.brand-txt { font-size: 13px; letter-spacing: 0.2em; color: var(--txt); font-weight: 600; }

.nav { display: flex; gap: 22px; }
.nav a { font-size: 13px; color: var(--txt-2); transition: color .18s; }
.nav a:hover { color: var(--gold-2); }

.hdr-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }

/* X / Twitter 图标按钮 */
.x-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  border-radius: var(--r);
  border: 1px solid var(--line-2);
  color: var(--txt-2);
  transition: color .18s, border-color .18s, background .18s;
}
.x-link:hover {
  color: var(--gold-2);
  border-color: var(--gold);
  background: rgba(240,180,95,0.07);
}
.x-link svg { display: block; }

/* ══════ Buttons ══════ */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 6px;
  height: 38px; padding: 0 18px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  background: var(--card);
  color: var(--txt);
  font-size: 14px; font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all .18s;
  white-space: nowrap;
}
.btn:hover { border-color: var(--dim); background: var(--card-hi); }

.btn-primary {
  background: linear-gradient(135deg, var(--gold-2), var(--gold));
  color: #2a1c10; border-color: transparent;
  font-weight: 700;
  box-shadow: 0 3px 18px rgba(240,180,95,0.22);
}
.btn-primary:hover {
  background: linear-gradient(135deg, #ffe6b8, var(--gold-2));
  box-shadow: 0 4px 24px rgba(240,180,95,0.35);
}

.btn-ghost { background: transparent; color: var(--txt-2); }
.btn-ghost:hover { color: var(--gold-2); border-color: var(--gold); background: transparent; }

.btn-sm { height: 32px; padding: 0 14px; font-size: 13px; }
.btn-block { width: 100%; height: 46px; font-size: 15px; margin-top: 14px; }

/* ══════ 像素人手拉手（Hero 两侧空白）══════ */
.crowd {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 14px;
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
}
.crowd-left {
  left: max(16px, calc(50% - 660px));
  top: 7%;
  align-items: flex-start;
}
/* 右侧略低一点，打破完全对称的死板感，但差距控制在 ~40px */
.crowd-right {
  right: max(16px, calc(50% - 660px));
  top: calc(7% + 40px);
  align-items: flex-end;
}

.crowd-row {
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  image-rendering: pixelated;
}

/* 三层不同人数，制造纵深 */
.crowd-row-7 { background-image: var(--tex-people7); width: 252px; height: 48px; }
.crowd-row-5 { background-image: var(--tex-people5); width: 180px; height: 48px; }

/* 远处那层更小更淡 */
.crowd-row-far {
  opacity: 0.4;
  transform: scale(0.7);
  transform-origin: left center;
}
.crowd-right .crowd-row-far {
  transform-origin: right center;
}

/* 窄屏隐藏，避免挤压正文 */
@media (max-width: 1380px) {
  .crowd { display: none; }
}

/* 地平线：日出所在的那条线 */
.hero::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 25%;
  transform: translateX(-50%);
  width: min(1100px, 92vw);
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(240,180,95,0.06) 15%,
    rgba(255,214,150,0.32) 50%,
    rgba(240,180,95,0.06) 85%,
    transparent 100%);
  pointer-events: none;
}

/* 地平线两侧的渐隐光带 */
.hero::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 22%;
  transform: translateX(-50%);
  width: min(900px, 84vw);
  height: 160px;
  background: radial-gradient(ellipse 50% 100% at 50% 100%,
    rgba(240,180,95,0.10) 0%,
    rgba(232,131,74,0.04) 40%,
    transparent 72%);
  pointer-events: none;
}

/* 远处的山脊剪影（极淡，纯粹增加层次） */
.hero {
  --ridge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160' preserveAspectRatio='none'%3E%3Cpath d='M0 160 L0 96 L90 78 L170 104 L260 62 L350 92 L430 58 L520 88 L610 50 L700 82 L790 54 L880 86 L970 64 L1060 90 L1150 70 L1200 84 L1200 160 Z' fill='%23f0b45f' opacity='0.028'/%3E%3C/svg%3E");
}
.hero {
  position: relative;
  padding: clamp(56px, 9vw, 104px) 0 clamp(64px, 9vw, 110px);
  text-align: center;
  overflow: hidden;
}

/* 日出本体：静态，无旋转、无动画。
   旋转的 conic-gradient 会产生摩尔纹和走样（看起来像屏闪），
   所以改成一张固定的放射图，只在载入时淡入一次。 */
.sun {
  position: absolute;
  left: 50%; bottom: 42%;
  transform: translateX(-50%);
  width: 520px; height: 520px;
  pointer-events: none;
  opacity: 0;
  animation: sunFadeIn 1.6s ease-out forwards;
}

/* 核心光：纯径向渐变，静态 */
.sun-core {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 340px; height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(255,214,150,0.26) 0%,
    rgba(240,180,95,0.13) 34%,
    rgba(232,131,74,0.05) 58%,
    transparent 72%);
}

/* 光芒：用 SVG 生成的静态放射图（内联 data-uri），无动画、无 mask、无 filter */
.sun-rays {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='%23f0b45f' fill-opacity='0.05'%3E%3Cpath d='M100 100L97 0h6z'/%3E%3Cpath d='M100 100L188 12l4 5z'/%3E%3Cpath d='M100 100L200 97v6z'/%3E%3Cpath d='M100 100L188 188l-5 4z'/%3E%3Cpath d='M100 100L103 200h-6z'/%3E%3Cpath d='M100 100L12 188l-4-5z'/%3E%3Cpath d='M100 100L0 103v-6z'/%3E%3Cpath d='M100 100L12 12l5-4z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  /* 只在中心区域可见 */
  -webkit-mask-image: radial-gradient(circle, transparent 30%, #000 52%, transparent 74%);
  mask-image: radial-gradient(circle, transparent 30%, #000 52%, transparent 74%);
}

@keyframes sunFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* 顶部环境光：静态，去掉 blur（blur 在滚动时会持续重绘，造成帧率抖动） */
.hero-glow {
  position: absolute;
  top: -160px; left: 50%;
  transform: translateX(-50%);
  width: 1000px; height: 660px;
  background: radial-gradient(ellipse at center,
    rgba(240,180,95,0.13) 0%,
    rgba(232,131,74,0.055) 40%,
    transparent 70%);
  pointer-events: none;
}

.hero .wrap { position: relative; z-index: 1; }

.hero-kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11px; letter-spacing: 0.14em;
  color: var(--gold-2);
  border: 1px solid rgba(240,180,95,0.3);
  background: rgba(240,180,95,0.06);
  padding: 6px 15px; border-radius: 999px;
  margin-bottom: 30px;
  text-transform: uppercase;
}
.day-badge {
  color: var(--ember);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.kicker-sep { color: var(--line-2); }

.hero-title {
  font-size: clamp(56px, 13vw, 112px);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
  margin-bottom: 20px;
  background: linear-gradient(180deg, #fff8ef 10%, var(--gold) 60%, var(--ember) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 6px 40px rgba(240,180,95,0.25));
}

.hero-sub {
  font-size: clamp(17px, 2.6vw, 21px);
  color: var(--txt);
  margin-bottom: 34px;
  letter-spacing: 0.02em;
}

.hero-story {
  max-width: 480px; margin: 0 auto 46px;
  padding: 24px 26px;
  border-left: 2px solid var(--line-2);
  border-radius: 0 var(--r) var(--r) 0;
  background: linear-gradient(90deg, rgba(240,180,95,0.04), transparent);
  text-align: left;
  font-size: 14px; line-height: 1.95;
  color: var(--txt-2);
}
.hero-story p + p { margin-top: 14px; }
.story-turn { color: var(--gold-2); font-size: 15px; }

/* ══════ Stats ══════ */
.stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.3);
}
.stat { background: var(--card); padding: 24px 12px 20px; }
.stat-num {
  font-family: ui-monospace, monospace;
  font-size: clamp(20px, 4vw, 31px);
  font-weight: 600;
  color: var(--gold-2);
  line-height: 1.2;
  margin-bottom: 6px;
}
.stat-lbl { font-size: 11px; color: var(--dim); letter-spacing: 0.05em; }

/* 数字下方的规则提示 */
.stat-hint {
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  font-size: 11.5px;
  color: var(--txt-2);
  letter-spacing: 0.02em;
}
.stat-hint b {
  color: var(--gold);
  font-weight: 700;
  font-family: ui-monospace, monospace;
  font-size: 12.5px;
  padding: 0 1px;
}

/* ══════ Bar ══════ */
.bar-wrap { margin-bottom: 34px; }
.bar {
  position: relative;
  height: 8px; border-radius: 999px;
  background: var(--line);
  overflow: hidden;
}
.bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ember), var(--gold), var(--gold-2));
  border-radius: 999px;
  transition: width .7s cubic-bezier(.4,0,.2,1), background .3s;
  box-shadow: 0 0 16px rgba(240,180,95,0.5);
}
.bar-fill.is-fail { background: linear-gradient(90deg, #8a4a3f, var(--rose)); box-shadow: none; }
.bar-fill.is-done { background: linear-gradient(90deg, #4a7a52, var(--ok)); }
.bar-mark {
  position: absolute; top: -3px; bottom: -3px;
  width: 1px; background: var(--line-2);
}
.bar-legend {
  position: relative;
  height: 18px;
  font-size: 11px;
  color: var(--dim);
  margin-top: 9px;
}
/* 两端刻度 */
.bar-legend-start,
.bar-legend-end {
  position: absolute;
  top: 0;
  line-height: 18px;
}
.bar-legend-start { left: 0; }
.bar-legend-end { right: 0; }

/* 免费分界：精确落在 3000/10000 = 30% 处 */
.legend-free {
  position: absolute;
  top: 0;
  left: 30%;
  transform: translateX(-50%);
  line-height: 18px;
  color: var(--gold);
  white-space: nowrap;
  font-weight: 500;
}
/* 从刻度线连下来的一条细线，强化"分界"的视觉 */
.legend-free::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 100%;
  width: 1px;
  height: 6px;
  background: rgba(240,180,95,0.4);
  transform: translateX(-50%);
}

/* ══════ Agent Card（替代钱包连接）══════ */
.agent-card {
  background: linear-gradient(180deg, var(--card-hi), var(--card));
  border: 1px solid var(--line-2);
  border-radius: var(--r-lg);
  max-width: 620px;
  margin: 0 auto 22px;
  text-align: left;
  overflow: hidden;
  box-shadow: 0 10px 50px rgba(0,0,0,0.35), 0 0 0 1px rgba(240,180,95,0.05);
}

.agent-head {
  display: flex; align-items: center; gap: 9px;
  padding: 15px 22px;
  border-bottom: 1px solid var(--line);
  font-size: 12.5px;
  color: var(--gold-2);
  background: rgba(240,180,95,0.04);
  letter-spacing: 0.02em;
}
.agent-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 10px var(--gold);
  /* 原来是 2.2s 的 opacity+scale 脉冲，在小点上看起来像闪。
     改成极缓慢的透明度呼吸（4s，幅度只有 0.2）。 */
  animation: dotBreathe 4s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes dotBreathe {
  0%, 100% { opacity: 1; }
  50% { opacity: .8; }
}

.agent-body { padding: 22px; }
.agent-p { font-size: 13.5px; color: var(--txt-2); line-height: 1.75; margin-bottom: 16px; }

.prompt {
  background: #120e0b;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 16px 18px;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
  font-size: 12.5px;
  line-height: 1.85;
  color: var(--txt-2);
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 320px;
  overflow-y: auto;
}

.agent-note { font-size: 12px; color: var(--dim); margin-top: 12px; text-align: center; }
.agent-note a { color: var(--gold); border-bottom: 1px solid rgba(240,180,95,0.3); }

.hero-note { font-size: 13px; color: var(--dim); text-align: center; margin-top: 6px; }
.hero-note strong { color: var(--gold-2); }

/* ══════ 时间线 ══════ */
.tl {
  position: relative;
  padding-left: 8px;
  margin-bottom: 40px;
}
.tl-line {
  position: absolute;
  left: 15px; top: 12px; bottom: 40px;
  width: 1px;
  background: linear-gradient(180deg,
    var(--line) 0%,
    var(--line-2) 30%,
    rgba(240,180,95,0.5) 62%,
    rgba(240,180,95,0.1) 100%);
}

.tl-item {
  position: relative;
  padding: 0 0 34px 44px;
}
.tl-item:last-child { padding-bottom: 0; }

.tl-dot {
  position: absolute;
  left: 8px; top: 5px;
  width: 15px; height: 15px;
  border-radius: 50%;
  border: 1px solid var(--line-2);
  background: var(--bg);
}
.tl-dot-dark { background: #241a14; border-color: #3a2a1f; }
.tl-dot-mid { background: #4a3524; border-color: #6b4d33; }
.tl-dot-bright {
  background: var(--gold);
  border-color: var(--gold-2);
  box-shadow: 0 0 0 5px rgba(240,180,95,0.14), 0 0 22px rgba(240,180,95,0.7);
}
.tl-dot-future {
  background: transparent;
  border: 1px dashed var(--line-2);
}

.tl-date {
  font-family: ui-monospace, monospace;
  font-size: 11px;
  color: var(--dim);
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
.tl-item-now .tl-date { color: var(--gold); }

.tl-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--txt);
  margin-bottom: 5px;
}
.tl-item-now .tl-title {
  font-size: 19px;
  color: var(--gold-2);
}
.tl-desc {
  font-size: 13px;
  color: var(--txt-2);
  line-height: 1.7;
}

.tl-quote {
  text-align: center;
  padding: 22px 24px;
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, rgba(240,180,95,0.06), rgba(232,131,74,0.03));
  border: 1px solid rgba(240,180,95,0.14);
}
.tl-quote p {
  font-size: 15px;
  color: var(--gold-2);
  line-height: 1.8;
  letter-spacing: 0.01em;
}

/* ══════ 简历卡片 ══════ */
.resume-doc {
  background: linear-gradient(160deg, #241c16, #1a1410);
  border: 1px solid var(--line-2);
  border-radius: 4px;
  padding: 34px 36px 28px;
  max-width: 620px;
  margin: 0 auto;
  position: relative;
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    inset 0 1px 0 rgba(255,214,150,0.07);
}
/* 纸张纹理 */
.resume-doc::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: 4px;
  background-image: repeating-linear-gradient(
    0deg, transparent, transparent 27px, rgba(240,180,95,0.022) 27px, rgba(240,180,95,0.022) 28px
  );
  pointer-events: none;
}
/* 左侧装订线 */
.resume-doc::after {
  content: '';
  position: absolute;
  left: 18px; top: 26px; bottom: 26px;
  width: 1px;
  background: rgba(240,180,95,0.12);
}

.resume-head { position: relative; }
.resume-name {
  font-size: 27px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gold-2);
  margin-bottom: 6px;
}
.resume-role {
  font-size: 12px;
  color: var(--dim);
  letter-spacing: 0.08em;
}

.resume-divider {
  height: 1px;
  background: linear-gradient(90deg, rgba(240,180,95,0.28), rgba(240,180,95,0.04));
  margin: 22px 0;
}

.resume-rows { display: flex; flex-direction: column; gap: 16px; position: relative; }
.resume-row {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 16px;
  align-items: baseline;
}
.resume-k {
  font-size: 11px;
  color: var(--dim);
  letter-spacing: 0.16em;
  padding-top: 2px;
}
.resume-v {
  font-size: 14px;
  color: var(--txt);
  line-height: 1.65;
}

.resume-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
.resume-stamp {
  font-family: ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--ok);
  border: 1px solid rgba(123,196,127,0.4);
  padding: 4px 11px;
  border-radius: 3px;
  transform: rotate(-3deg);
  background: rgba(123,196,127,0.05);
}
.resume-meta {
  font-size: 11px;
  color: var(--dim);
  letter-spacing: 0.08em;
}

/* ══════ 那晚（人物言论）══════ */
.voices-sub {
  font-size: 14px;
  color: var(--txt-2);
  line-height: 1.85;
  margin: -18px 0 34px;
  text-align: center;
}

.voices {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin-bottom: 32px;
}

.voice {
  background: linear-gradient(160deg, var(--card-hi), var(--card));
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 20px 22px;
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 15px;
  align-items: start;
  transition: border-color .22s, transform .22s;
}
.voice:hover {
  border-color: var(--line-2);
  transform: translateY(-2px);
}

/* 让引用和署名都落在第二列 */
.voice-q { grid-column: 2; }
.voice-meta { grid-column: 2; }
.voice-av { grid-row: 1 / span 2; }

/* 像素化头像：用 canvas 生成 8x8 identicon，不涉及任何真人肖像 */
.voice-av {
  flex-shrink: 0;
  width: 46px; height: 46px;
  border-radius: 4px;
  border: 1px solid var(--line-2);
  background-color: #241a14;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  image-rendering: pixelated;
  -ms-interpolation-mode: nearest-neighbor;
  position: relative;
  overflow: hidden;
}

.voice-q {
  font-size: 14.5px;
  line-height: 1.72;
  color: var(--txt);
  margin-bottom: 12px;
  font-style: normal;
  position: relative;
  padding-left: 2px;
}

/* 非英文原话的译文说明 */
.voice-qnote {
  font-size: 11.5px;
  color: var(--dim);
  line-height: 1.6;
  font-style: italic;
  margin: -6px 0 12px;
}
.voice-qnote:empty { display: none; }

.voice-meta { display: flex; flex-direction: column; gap: 3px; }
.voice-name {
  font-size: 12.5px;
  color: var(--txt-2);
  font-weight: 500;
  white-space: nowrap;
}
.voice-name i {
  font-style: normal;
  color: var(--dim);
  font-size: 11.5px;
  margin-left: 4px;
  font-family: ui-monospace, monospace;
}
.voice-date {
  font-size: 11px;
  color: var(--dim);
  line-height: 1.6;
  text-wrap: balance;
}

/* 那66小时的数据 */
.facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: 26px;
}
.fact {
  background: var(--card);
  padding: 22px 14px;
  text-align: center;
}
.fact-hi { background: rgba(240,180,95,0.07); }
.fact-n {
  font-family: ui-monospace, monospace;
  font-size: clamp(18px, 3.4vw, 26px);
  font-weight: 700;
  color: var(--gold-2);
  line-height: 1.2;
  margin-bottom: 6px;
}
.fact-hi .fact-n { color: var(--ok); }
.fact-l { font-size: 11px; color: var(--dim); letter-spacing: 0.04em; }

/* 声明 */
.voices-note {
  background: var(--bg-alt);
  border: 1px solid var(--line);
  border-left: 2px solid var(--ember);
  border-radius: 0 var(--r) var(--r) 0;
  padding: 18px 22px;
}
.voices-note p {
  font-size: 12.5px;
  color: var(--txt-2);
  line-height: 1.8;
}
.voices-note strong { color: var(--txt); }
.voices-src {
  margin-top: 10px;
  font-size: 11px !important;
  color: var(--dim) !important;
  line-height: 1.7 !important;
}

/* 重要 FAQ 高亮 */
.faq-important {
  background: linear-gradient(90deg, rgba(232,131,74,0.07), var(--card) 60%) !important;
}
.faq-important summary { color: var(--gold-2); }

/* ══════ 点亮墙（嵌入 Hero 底部）══════ */
.wall-block {
  margin-top: 64px;
  padding-top: 52px;
  border-top: 1px solid var(--line);
  text-align: center;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.wall-block-head { margin-bottom: 30px; }

.wall-title {
  font-size: clamp(20px, 3.2vw, 26px);
  font-weight: 600;
  color: var(--txt);
  margin-bottom: 12px;
  letter-spacing: -0.01em;
}

.wall-sub {
  font-size: 13.5px;
  color: var(--txt-2);
  line-height: 1.8;
  margin: 0;
  text-align: center;
}
.wall-sub strong { color: var(--gold-2); }

.wall {
  display: grid;
  grid-template-columns: repeat(20, 1fr);
  gap: 6px;
  margin-bottom: 22px;
  padding: 20px;
  background: var(--bg-alt);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
}

.wall-cell {
  aspect-ratio: 1;
  border-radius: 2px;
  background: #191310;
  border: 1px solid #241b16;
  transition: all .6s cubic-bezier(.4,0,.2,1);
}
/* 点亮：暖光但不刺眼，保留"独立格子"的边界感 */
.wall-cell.lit {
  background: radial-gradient(circle at 50% 50%, rgba(255,214,150,0.95), rgba(232,131,74,0.75));
  border-color: rgba(255,214,150,0.5);
  box-shadow:
    0 0 8px rgba(240,180,95,0.5),
    0 0 18px rgba(232,131,74,0.22),
    inset 0 0 6px rgba(255,255,255,0.18);
}
.wall-cell.fresh {
  animation: cellPop .55s cubic-bezier(.34,1.56,.64,1);
}
@keyframes cellPop {
  0% { transform: scale(.5); opacity: .3; }
  60% { transform: scale(1.25); }
  100% { transform: scale(1); opacity: 1; }
}

.wall-legend {
  display: flex;
  justify-content: center;
  gap: 26px;
  font-size: 12px;
  color: var(--dim);
  margin-bottom: 12px;
}
.wall-legend b { color: var(--txt); font-weight: 600; }
.wall-legend i {
  display: inline-block;
  width: 9px; height: 9px;
  border-radius: 2px;
  margin-right: 7px;
  vertical-align: middle;
}
.dot-lit { background: var(--gold); box-shadow: 0 0 8px rgba(240,180,95,0.6); }
.dot-dim { background: #2a201a; border: 1px solid #3a2d24; }

.wall-note {
  text-align: center;
  font-size: 12px;
  color: var(--dim);
}
.wall-note span {
  font-family: ui-monospace, monospace;
  font-size: 15px;
  color: var(--gold-2);
  font-weight: 600;
  margin-right: 6px;
}

/* ══════ 收尾 ══════ */
.closing { padding: clamp(64px, 10vw, 110px) 0 clamp(52px, 8vw, 80px); border-top: 1px solid var(--line); }
.closing-in {
  text-align: center;
  margin-bottom: 44px;
}
.closing-q {
  font-size: clamp(17px, 2.8vw, 22px);
  color: var(--txt-2);
  margin-bottom: 14px;
}
.closing-a {
  font-size: clamp(26px, 5vw, 40px);
  font-weight: 600;
  color: var(--gold-2);
  letter-spacing: 0.02em;
  line-height: 1.4;
}

/* ══════ Sections ══════ */
.section { padding: clamp(56px, 8vw, 92px) 0; border-top: 1px solid var(--line); }
.section-alt { background: var(--bg-alt); }

.kicker {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 10px;
}
.h2 {
  font-size: clamp(25px, 4vw, 34px);
  font-weight: 600;
  margin-bottom: 34px;
  letter-spacing: -0.01em;
  color: var(--txt);
}

/* Grid cards */
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 22px; }
.grid2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }

.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 24px;
  transition: border-color .2s, transform .2s;
}
.card:hover { border-color: var(--line-2); transform: translateY(-2px); }
.card-n {
  font-family: ui-monospace, monospace;
  font-size: 11px; color: var(--gold);
  margin-bottom: 11px;
  letter-spacing: 0.08em;
}
.card-h { font-size: 15.5px; font-weight: 600; margin-bottom: 9px; color: var(--txt); }
.card-p { font-size: 13px; color: var(--txt-2); line-height: 1.7; }

/* Note box */
.note-box {
  background: linear-gradient(135deg, rgba(240,180,95,0.07), rgba(232,131,74,0.04));
  border: 1px solid rgba(240,180,95,0.2);
  border-radius: var(--r-lg);
  padding: 22px 24px;
  margin-top: 20px;
}
.note-h { font-size: 13px; font-weight: 600; color: var(--gold-2); margin-bottom: 9px; }
.note-p { font-size: 13px; color: var(--txt-2); line-height: 1.75; }

/* Allocation */
.alloc {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: 18px;
}
.alloc-row {
  display: grid;
  grid-template-columns: 112px 78px 1fr;
  gap: 14px;
  align-items: center;
  padding: 16px 24px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.alloc-row:last-child { border-bottom: none; }
.alloc-l { color: var(--txt); font-weight: 500; }
.alloc-v {
  font-family: ui-monospace, monospace;
  color: var(--gold-2); font-size: 13px;
}
.alloc-d { color: var(--dim); font-size: 12px; }

/* Mini cards */
.mini-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 22px;
  text-align: center;
}
.mini-h { font-size: 11px; color: var(--dim); letter-spacing: 0.07em; margin-bottom: 9px; }
.mini-v {
  font-family: ui-monospace, monospace;
  font-size: 23px; font-weight: 600; color: var(--gold-2);
}
.mini-d { font-size: 11px; color: var(--dim); margin-top: 5px; }

/* FAQ */
.faq {
  display: flex; flex-direction: column; gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.faq-item { background: var(--card); }
.faq-item summary {
  padding: 19px 24px;
  font-size: 14px; font-weight: 500;
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
  transition: background .18s;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '+';
  color: var(--gold); font-size: 19px; font-weight: 300;
  transition: transform .22s;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item summary:hover { background: var(--card-hi); }
.faq-a {
  padding: 0 24px 21px;
  font-size: 13px; color: var(--txt-2); line-height: 1.8;
}
.faq-a p + p { margin-top: 11px; }
.faq-a strong { color: var(--txt); }

/* Disclaimer */
.disclaimer {
  font-size: 12.5px; color: var(--dim); line-height: 1.85;
  border-left: 2px solid var(--rose);
  padding-left: 20px;
}
.disclaimer p + p { margin-top: 11px; }
.disclaimer strong { color: var(--err); }

/* ══════ Footer ══════ */
.ftr { border-top: 1px solid var(--line); padding: 28px 0; }
.ftr-in { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.ftr-l { display: flex; align-items: center; gap: 9px; font-size: 12px; color: var(--dim); }
.ftr-r { display: flex; gap: 20px; font-size: 12px; color: var(--dim); }
.ftr-r a { transition: color .18s; }
.ftr-r a:hover { color: var(--gold); }

/* 池子地址：组池前标记为待生效（地址照常显示，只是更暗） */
.ftr-r a.is-pending {
  color: #6b5a48;
  border-bottom: 1px dashed rgba(240,180,95,0.18);
}
.ftr-r a.is-pending:hover { color: var(--gold-2); }

/* ══════ Toast ══════ */
.toast {
  position: fixed;
  bottom: 28px; left: 50%; transform: translateX(-50%);
  max-width: min(90vw, 460px);
  background: var(--card-hi);
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  padding: 14px 22px;
  font-size: 13px;
  color: var(--txt);
  box-shadow: 0 12px 48px rgba(0,0,0,0.6);
  z-index: 999;
  animation: toastIn .22s ease;
}
.toast-ok { border-color: rgba(123,196,127,0.45); }
.toast-err { border-color: rgba(232,131,111,0.45); color: #f0a89a; }
@keyframes toastIn {
  from { opacity: 0; transform: translate(-50%, 12px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

/* ══════ Responsive ══════ */
@media (max-width: 760px) {
  .nav { display: none; }
  .stats { grid-template-columns: 1fr; }
  .stat { padding: 16px 18px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
  .stat-num { font-size: 20px; margin-bottom: 0; }
  .grid3 { grid-template-columns: 1fr; }
  .grid2 { grid-template-columns: 1fr; }
  .alloc-row { grid-template-columns: 1fr auto; }
  .alloc-d { grid-column: 1 / -1; font-size: 11.5px; margin-top: -4px; }
  .hero-story { padding: 20px 22px; font-size: 13px; }
  .agent-body { padding: 18px; }
  .prompt { font-size: 11.5px; padding: 14px; }
  .hdr-in { height: 54px; gap: 12px; }
  .h2 { margin-bottom: 26px; }

  /* 日出缩小 */
  .sun { width: 320px; height: 320px; bottom: 52%; }
  .sun-core { width: 190px; height: 190px; }

  /* 时间线 */
  .tl-item { padding-left: 36px; }
  .tl-line { left: 11px; }
  .tl-dot { left: 4px; }

  /* 简历卡 */
  .resume-doc { padding: 26px 22px 22px; }
  .resume-name { font-size: 22px; }
  .resume-doc::after { left: 12px; }
  .resume-row { grid-template-columns: 46px 1fr; gap: 12px; }
  .resume-v { font-size: 13px; }

  /* 点亮墙：20 列太细，改 10 列 */
  .wall-block { margin-top: 44px; padding-top: 36px; }
  .wall { grid-template-columns: repeat(10, 1fr); gap: 5px; padding: 14px; }
  .wall-legend { gap: 16px; font-size: 11px; }
  .wall-title { font-size: 19px; }
  .wall-sub { font-size: 12.5px; }

  /* 那晚：单列 + 数据 2x2 */
  .voices { grid-template-columns: 1fr; gap: 12px; }
  .voice { padding: 18px; gap: 12px; }
  .voice-av { width: 38px; height: 38px; }
  .voice-q { font-size: 13.5px; }
  .facts { grid-template-columns: repeat(2, 1fr); }
  .fact { padding: 16px 10px; }
  .voices-sub { font-size: 13px; margin-bottom: 26px; }
}

/* ══════ 减少动态效果 ══════
   注意：只把 animation-duration 改小是错的 —— 配合 infinite 会变成
   "每 0.01ms 循环一次"，等于高频闪烁，比原动画更糟。
   正确做法：把 animation 整个关掉，而不是缩短它。 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    animation-duration: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* 日出保持可见（淡入被关掉后需要显式设为可见） */
  .sun { opacity: 1 !important; }

  /* agent-dot 的呼吸灯也关掉，保留一个静态点 */
  .agent-dot { opacity: 1 !important; }
}
