/* ═══════════════════════════════════════════════════
   프로젝트 상세 페이지 — 홈(style.css) 토큰·폰트 재사용
   본문은 [문제/역할/과정/결과] 4칸 구성. 프리로더/GSAP 없음.
   ═══════════════════════════════════════════════════ */

/* ── 상단 내비 ── */
.pj-nav {
  position: relative; z-index: 10;
  display: flex; justify-content: space-between; align-items: center;
  max-width: var(--container); margin: 0 auto;
  padding: 36px 40px 0;
}
.pj-back {
  font-size: 15px; font-weight: 700; color: var(--cream);
  text-decoration: none;
  border: 2px solid var(--cream); border-radius: 6px;
  padding: 10px 20px;
  transition: background 0.2s ease, color 0.2s ease;
}
.pj-back:hover { background: var(--cream); color: var(--bg); }
.pj-nav-links { display: flex; gap: 28px; }
.pj-nav-links a { font-size: 16px; font-weight: 700; color: var(--cream); text-decoration: none; }
.pj-nav-links a:hover { text-decoration: underline; }

/* ── 히어로 ── */
.pj-hero { max-width: var(--container); margin: 0 auto; padding: 88px 40px 0; }
.pj-kicker {
  font-size: 14px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted);
}
.pj-title {
  margin-top: 18px;
  font-family: var(--syne);
  font-size: 44px; font-weight: 700; line-height: 1.08; letter-spacing: -0.01em;
  color: var(--cream);
  max-width: 820px;
}
.pj-lead {
  margin-top: 26px; max-width: 660px;
  font-size: 20px; font-weight: 500; line-height: 1.6;
  color: var(--cream-80);
}
.pj-tags { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; padding: 0; list-style: none; }
.pj-tags span {
  border: 1.5px solid var(--cream-30); border-radius: 999px;
  padding: 7px 15px;
  font-size: 13px; font-weight: 700; color: var(--cream);
}

.pj-figure { max-width: var(--container); margin: 48px auto 0; padding: 0 40px; }
.pj-figure img {
  display: block; width: 100%; height: auto;
  border-radius: 24px;
}

/* ── 본문: 문제 / 역할 / 과정 / 결과 ── */
.pj-facts { margin: 80px auto 0; padding: 0; display: grid; gap: 20px; }
.pj-fact {
  display: grid; grid-template-columns: 128px 1fr; gap: 28px;
  align-items: start;
  padding: 30px 34px;
  background: var(--card); border-radius: 16px;
}
.pj-fact dt {
  font-family: var(--syne);
  font-size: 15px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
  background: linear-gradient(100deg, var(--beam-from), var(--beam-to));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  padding-top: 3px;
}
.pj-fact dd {
  margin: 0;
  font-size: 17px; font-weight: 500; line-height: 1.8; letter-spacing: 0.1px;
  color: var(--cream);
}

/* ── 다음 프로젝트 ── */
.pj-next {
  max-width: var(--container); margin: 112px auto 0;
  padding: 40px 40px 96px;
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  border-top: 1px solid var(--cream-30);
}
.pj-next-label { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.pj-next-link {
  margin-top: 8px; display: inline-block;
  font-family: var(--syne);
  font-size: 30px; font-weight: 700; color: var(--cream);
  text-decoration: none;
}
.pj-next-link:hover { text-decoration: underline; }
.pj-contact-hint { font-size: 15px; font-weight: 600; line-height: 1.6; color: var(--muted); text-align: right; }
.pj-contact-hint a { color: var(--cream); }

/* ── 등장 애니메이션 (리빌 스크립트가 .in 부착) ── */
@media (prefers-reduced-motion: no-preference) {
  .fx { opacity: 0; transform: translateY(22px); transition: opacity 0.7s cubic-bezier(0.2, 0.65, 0.3, 0.9), transform 0.7s cubic-bezier(0.2, 0.65, 0.3, 0.9); }
  .fx.in { opacity: 1; transform: none; }
  .pj-hero .fx:nth-child(2) { transition-delay: 0.07s; }
  .pj-hero .fx:nth-child(3) { transition-delay: 0.14s; }
  .pj-hero .fx:nth-child(4) { transition-delay: 0.21s; }
}

/* ── 반응형 ── */
@media (max-width: 767px) {
  .pj-nav { padding: 24px 20px 0; }
  .pj-hero { padding: 56px 20px 0; }
  .pj-title { font-size: 32px; }
  .pj-lead { font-size: 17px; }
  .pj-figure { padding: 0 20px; margin-top: 32px; }
  .pj-facts { margin-top: 48px; gap: 14px; }
  .pj-fact { grid-template-columns: 1fr; gap: 10px; padding: 22px 20px; }
  .pj-next { flex-direction: column; align-items: flex-start; padding: 32px 20px 64px; }
  .pj-contact-hint { text-align: left; }
}
