/* Digital CV page — structural inspiration from a StackCards-style CV modal
   (bold headline, stat grid, timeline + sidebar), reskinned in Noctanotes'
   cream/burgundy/serif editorial identity. Assumes design-system.css is loaded. */

* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font-sans); background: var(--bg); color: var(--ink); }
a { color: inherit; text-decoration: none; }

.cv-topbar { display: flex; justify-content: space-between; align-items: center; padding: 28px 56px; }
.cv-back { font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.cv-back:hover { color: var(--ink); }
.cv-actions { display: flex; gap: 10px; }
.cv-pill {
  display: inline-flex; align-items: center; font-family: var(--font-sans); font-weight: 600; font-size: 13px;
  border-radius: 999px; padding: 10px 20px; text-decoration: none;
}
.cv-pill-primary { background: var(--ink); color: var(--bg); }
.cv-pill-primary:hover { opacity: .85; }
.cv-pill-ghost { background: none; color: var(--ink); border: var(--border); }
.cv-pill-ghost:hover { border-color: var(--line-strong); }

.cv-wrap { max-width: 1040px; margin: 0 auto; padding: 20px 56px 100px; }

.cv-hero { padding: 20px 0 44px; border-bottom: var(--border); margin-bottom: 44px; }
.cv-hero .kicker { margin-bottom: 20px; }
.cv-hero h1 {
  font-family: var(--font-serif); font-size: 64px; font-weight: 500; letter-spacing: -0.01em;
  line-height: 1.05; margin-bottom: 20px;
}
.cv-hero .tagline { font-size: 17px; color: var(--ink-soft); max-width: 620px; line-height: 1.6; }

.cv-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line);
  border: var(--border); margin-bottom: 56px;
}
.cv-stat { background: var(--panel); padding: 22px 24px; }
.cv-stat .value { font-family: var(--font-serif); font-size: 28px; font-weight: 500; letter-spacing: -0.01em; color: var(--accent); margin-bottom: 8px; }
.cv-stat .label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-soft); font-family: var(--font-mono); }

.cv-grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: 40px; align-items: start; }

.cv-section-label {
  font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink-faint); margin-bottom: 18px;
}

.cv-timeline-item { padding: 24px 0; border-bottom: var(--border); }
.cv-timeline-item:last-child { border-bottom: none; }
.cv-timeline-item .dates { font-family: var(--font-mono); font-size: 11.5px; color: var(--ink-faint); margin-bottom: 8px; letter-spacing: .02em; }
.cv-timeline-item h3 { font-family: var(--font-serif); font-size: 21px; font-weight: 500; margin-bottom: 4px; letter-spacing: -0.01em; }
.cv-timeline-item .org { font-size: 14px; font-weight: 600; color: var(--accent); margin-bottom: 10px; }
.cv-timeline-item p { font-size: 14px; color: var(--ink-soft); line-height: 1.65; max-width: 560px; }

.cv-card { background: var(--panel); border: var(--border); border-radius: var(--radius); padding: 24px; margin-bottom: 20px; }
.cv-card ul { list-style: none; }
.cv-card li {
  font-size: 13.5px; color: var(--ink-soft); line-height: 1.6; padding-left: 18px; position: relative; margin-bottom: 14px;
}
.cv-card li:last-child { margin-bottom: 0; }
.cv-card li::before { content: ""; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.cv-edu-item { margin-bottom: 16px; }
.cv-edu-item:last-child { margin-bottom: 0; }
.cv-edu-item .degree { font-family: var(--font-serif); font-size: 15px; font-weight: 500; margin-bottom: 2px; }
.cv-edu-item .school { font-size: 12.5px; color: var(--ink-soft); }
.cv-skills { display: flex; flex-wrap: wrap; gap: 8px; }

@media (max-width: 820px) {
  .cv-grid { grid-template-columns: 1fr; }
  .cv-stats { grid-template-columns: 1fr 1fr; }
  .cv-hero h1 { font-size: 42px; }
  .cv-wrap { padding: 20px 24px 80px; }
  .cv-topbar { padding: 24px; }
}
