.project-page {
  min-height: calc(100vh - 76px);
  padding: clamp(54px, 8vw, 120px) clamp(20px, 8vw, 130px);
}
.project-topline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-bottom: clamp(70px, 11vw, 160px);
  font: 500 .63rem/1 var(--mono);
}
.project-topline a { text-underline-offset: 5px; }
.project-field { color: var(--project-accent); }
.project-title {
  max-width: 1100px;
  margin: 0;
  font: 800 clamp(3rem, 8vw, 8rem)/.95 var(--display);
  letter-spacing: -.07em;
}
.project-lead {
  max-width: 720px;
  margin: 42px 0 90px;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.22rem);
  line-height: 1.9;
}
.project-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.project-meta div, .project-meta-card { padding: 22px 0; }
.project-meta div + div, .project-meta-card + .project-meta-card { padding-left: 24px; border-left: 1px solid var(--line); }
.project-meta span, .project-meta-card span { display: block; margin-bottom: 9px; color: var(--muted); font: 400 .56rem/1 var(--mono); }
.project-meta strong, .project-meta-card strong { font: 600 .85rem/1.3 var(--display); }
.project-meta-card { text-decoration: none; transition: color .2s, background .2s; }
.project-meta-card:hover { color: var(--project-accent); }
.project-sections { margin-top: 90px; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(32px, 5vw, 80px); }
.ai-project .project-sections, .quant-project .project-sections { grid-template-columns: 1fr; gap: clamp(48px, 7vw, 90px); }
.project-section { border-top: 1px solid var(--ink); padding-top: 24px; }
.project-section h2 { margin: 0 0 24px; font-size: clamp(1.6rem, 3vw, 2.5rem); }
.project-section p { margin: 0; color: var(--muted); line-height: 1.85; }
.project-section figure { margin: 32px 0; }
.project-section img, .project-section video { display: block; width: 100%; max-height: 760px; object-fit: contain; background: rgba(18,19,16,.04); }
.project-section figcaption { margin-top: 12px; color: var(--muted); font: 400 .62rem/1.5 var(--mono); }
.project-section pre { position: relative; margin: 28px 0; padding: 42px 20px 20px; overflow-x: auto; background: var(--ink); color: var(--paper); font: 400 .82rem/1.8 var(--mono); }
.project-section pre .code-language { position: absolute; top: 14px; right: 16px; color: var(--project-accent); font-size: .58rem; text-transform: uppercase; }
.project-section p code, .project-section li code { padding: 2px 6px; background: rgba(18,19,16,.08); color: var(--ink); font: 400 .88em/1.5 var(--mono); }
.ai-project { --project-accent: var(--ai); }
.quant-project { --project-accent: var(--quant); }
.life-project { --project-accent: var(--life); }
.life-reflections { max-width: 820px; }
.wechat-follow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 210px);
  align-items: center;
  gap: clamp(28px, 6vw, 80px);
  max-width: 820px;
  margin: 0 0 72px;
  padding: 24px 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.wechat-label { display: block; margin-bottom: 12px; color: var(--life); font: 500 .6rem/1 var(--mono); letter-spacing: .04em; }
.wechat-copy h2 { margin: 0 0 12px; font: 700 clamp(1.7rem, 3vw, 2.5rem)/1 var(--display); letter-spacing: -.05em; }
.wechat-copy p { margin: 0; color: var(--muted); line-height: 1.7; }
.wechat-qr { width: 100%; margin: 0; }
.wechat-qr img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--paper); border: 1px solid var(--line); }
.wechat-qr figcaption { margin-top: 10px; color: var(--muted); font: 400 .56rem/1 var(--mono); text-align: right; }
.life-post-list { display: grid; gap: 0; }
.life-post-link { padding: 18px 0; display: grid; gap: 7px; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.life-post-link > span { color: var(--life); font: 400 .56rem/1 var(--mono); }
.life-post-link h3 { margin: 0; font: 700 1rem/1.35 var(--display); }
.life-post-link p { margin: 0; font-size: .8rem; }
.life-post-link:hover h3 { color: var(--life); }
.life-post-empty { color: var(--muted); }

@media (max-width: 700px) {
  .project-page { min-height: calc(100vh - 64px); padding: 44px 18px 70px; }
  .project-topline { align-items: flex-start; margin-bottom: 80px; }
  .project-title { font-size: clamp(2.8rem, 15vw, 4.8rem); }
  .project-lead { margin: 32px 0 60px; }
  .project-meta { grid-template-columns: 1fr; }
  .project-meta div + div, .project-meta-card + .project-meta-card { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .project-sections { margin-top: 64px; grid-template-columns: 1fr; }
  .wechat-follow { grid-template-columns: 1fr; gap: 28px; margin-bottom: 56px; }
  .wechat-qr { width: min(100%, 220px); }
  .wechat-qr figcaption { text-align: left; }
}
