/* The Celestial Archive — case-study (record) pages
   Extends the homepage design system. */
:root {
  --ink: #060a16;
  --ink-2: #091023;
  --ink-3: #0c1530;
  --blue-800: #101c3d;
  --gold: #e6cf94;
  --text: #e9ecf5;
  --text-muted: #aeb9d8;
  --text-faint: #8fa3d9;
  --star: #dfe6ff;
  --serif: 'Marcellus', serif;
  --ui: 'Space Grotesk', sans-serif;
  --pixel: 'Silkscreen', monospace;
  --maxw: 1100px;
  --pad-x: 64px;
  --hair-blue: rgba(143,163,217,0.14);
  --hair-gold: rgba(230,207,148,0.25);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--text);
  font-family: var(--ui);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
a:hover { opacity: 0.7; }
img { max-width: 100%; display: block; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad-x); }
.prose { max-width: 760px; }

/* ---- nav ---- */
.cs-nav {
  position: sticky; top: 0; z-index: 50;
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 48px;
  background: rgba(6,10,22,0.72);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--hair-blue);
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-dot { width: 10px; height: 10px; background: var(--gold); }
.brand-name { font-family: var(--pixel); font-size: 11px; letter-spacing: 0.18em; color: var(--gold); }
.back { font-family: var(--pixel); font-size: 10px; letter-spacing: 0.14em; color: var(--gold); }

/* ---- hero ---- */
.cs-hero {
  position: relative; overflow: hidden;
  background: radial-gradient(120% 90% at 78% 0%, #1b2c55 0%, #0d1834 40%, #060a16 80%);
  border-bottom: 1px solid var(--hair-blue);
  padding: 110px 0 72px;
}
.cs-hero .star { position: absolute; border-radius: 50%; background: var(--text-faint); opacity: 0.5; }
.eyebrow { font-family: var(--pixel); font-size: 10px; letter-spacing: 0.2em; color: var(--gold); }
.cs-hero .eyebrow { margin-bottom: 22px; }
.cs-hero h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(42px, 7vw, 76px); line-height: 1.02; margin: 0; letter-spacing: 0.01em; }
.cs-hero .tagline { font-size: 20px; line-height: 1.55; color: var(--text-muted); margin: 22px 0 0; max-width: 640px; }
.cs-meta { display: flex; gap: 48px; margin-top: 44px; flex-wrap: wrap; }
.cs-meta .k { font-family: var(--pixel); font-size: 9px; letter-spacing: 0.16em; color: var(--text-faint); display: block; margin-bottom: 8px; }
.cs-meta .v { font-size: 15px; color: var(--text); }

/* ---- content blocks ---- */
.block { padding: 66px 0; border-top: 1px solid rgba(143,163,217,0.1); }
.block:first-of-type { border-top: 0; }
.block h2 { font-family: var(--serif); font-weight: 400; font-size: 34px; margin: 0 0 22px; }
.block .eyebrow { margin-bottom: 18px; }
.body { font-size: 16px; line-height: 1.75; color: var(--text-muted); margin: 0 0 18px; max-width: 760px; }
.body.faint { color: var(--text-faint); }
.lead { font-family: var(--serif); font-size: 26px; line-height: 1.4; color: var(--text); max-width: 820px; margin: 0 0 8px; }

/* numbered goals */
.goals { list-style: none; padding: 0; margin: 8px 0 0; max-width: 780px; display: grid; gap: 0; }
.goals li { display: flex; gap: 18px; padding: 16px 0; border-top: 1px solid var(--hair-blue); font-size: 16px; color: var(--text-muted); }
.goals li:first-child { border-top: 0; }
.goals .n { font-family: var(--pixel); font-size: 10px; letter-spacing: 0.14em; color: var(--gold); padding-top: 3px; white-space: nowrap; }

/* impact records */
.impact { display: grid; gap: 0; margin-top: 8px; }
.impact .row { padding: 22px 0; border-top: 1px solid var(--hair-blue); }
.impact .row:first-child { border-top: 0; }
.impact h3 { font-family: var(--serif); font-weight: 400; font-size: 21px; margin: 0 0 6px; color: var(--text); }
.impact p { font-size: 15px; line-height: 1.65; color: var(--text-muted); margin: 0; max-width: 800px; }

/* figures */
figure { margin: 34px 0; border: 1px solid var(--hair-gold); background: linear-gradient(180deg, #0c1530 0%, #091023 100%); }
figure img { width: 100%; }
figcaption { padding: 12px 16px; border-top: 1px solid var(--hair-blue); font-family: var(--pixel); font-size: 9px; letter-spacing: 0.16em; color: var(--gold); }

/* phone-screen row (Volta) */
.screens { display: flex; gap: 20px; flex-wrap: wrap; margin: 34px 0; }
.screens figure { flex: 1 1 220px; max-width: 280px; margin: 0; }

/* poster gallery (JJK) */
.poster-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 34px 0; }
.poster { border: 1px solid var(--hair-gold); background: #000; transition: border-color 0.2s ease; }
.poster:hover { border-color: rgba(230,207,148,0.7); opacity: 1; }
.poster img { width: 100%; }
.poster .cap { padding: 10px 14px; border-top: 1px solid var(--hair-blue); display: flex; justify-content: space-between; align-items: center; }
.poster .cap b { font-family: var(--serif); font-weight: 400; font-size: 16px; color: var(--text); }
.poster .cap span { font-family: var(--pixel); font-size: 9px; letter-spacing: 0.12em; color: var(--text-faint); }

/* footer / record nav */
.cs-foot { border-top: 1px solid rgba(230,207,148,0.2); background: radial-gradient(80% 100% at 50% 120%, #101c3d 0%, #060a16 70%); padding: 80px 0 90px; text-align: center; }
.cs-foot .eyebrow { margin-bottom: 18px; }
.cs-foot h2 { font-family: var(--serif); font-weight: 400; font-size: 40px; margin: 0 0 26px; }
.btn { display: inline-block; font-family: var(--pixel); font-size: 11px; letter-spacing: 0.16em; padding: 16px 34px; border: 1px solid var(--gold); color: var(--gold); }
.record-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 60px; flex-wrap: wrap; }
.record-nav a { font-family: var(--pixel); font-size: 10px; letter-spacing: 0.14em; color: var(--text-faint); }
.record-nav a:hover { color: var(--gold); }

@media (max-width: 1023px) {
  .poster-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  :root { --pad-x: 24px; }
  .cs-nav { padding: 16px 24px; }
  .cs-hero { padding: 90px 0 56px; }
  .block { padding: 48px 0; }
  .cs-meta { gap: 28px; }
  .poster-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .screens figure { max-width: none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
