/* CV: the same paper, ink, and red accent, with a quieter reading rhythm. */
.cv-page { max-width:1280px; }
.cv-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:32px 48px; padding:64px 0 32px; border-bottom:1px solid var(--ink); }
.cv-heading > .eyebrow { color:var(--accent); margin-bottom:16px; }
.cv-heading h1 { font-size:clamp(40px,5.5vw,72px); line-height:1.05; letter-spacing:-.045em; }
.cv-headline { margin-top:20px; font-size:1.125rem; color:var(--muted); line-height:1.6; text-wrap:pretty; }
.cv-download { align-self:start; margin-top:36px; white-space:nowrap; }
.cv-download-format { font:0.75rem/1.5 var(--mono); letter-spacing:.035em; }
.cv-contact { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:12px 28px; list-style:none; padding:0; margin:0; font-size:.875rem; color:var(--muted); }
.cv-contact a { display:inline-block; padding-block:8px; text-decoration-color:var(--rule); overflow-wrap:anywhere; }
.cv-contact li:first-child { align-self:center; }
.cv-contact a:hover { color:var(--accent); }
.nav a[aria-current=page] { color:var(--accent); text-decoration:underline; text-decoration-thickness:2px; }
.cv-layout { display:grid; grid-template-columns:184px minmax(0,1fr); gap:64px; padding-block:48px 80px; }
.cv-index { position:sticky; top:32px; align-self:start; }
.cv-index > .eyebrow { color:var(--muted); margin-bottom:20px; }
.cv-index ol { list-style:none; padding:0; margin:0; }
.cv-index a { display:grid; grid-template-columns:24px 1fr; gap:8px; padding:10px 0; min-height:44px; font-size:.8125rem; line-height:1.5; text-decoration:none; }
.cv-index a span { color:var(--accent); font:0.6875rem/1.8 var(--mono); }
.cv-index a:hover { color:var(--accent); }
.cv-content { min-width:0; }
.cv-content .paper-section { margin:0; padding:40px 0; border-top:1px solid var(--rule); }
.cv-content .paper-section:first-child { border-top:0; padding-top:0; }
.cv-content .paper-section:last-child { padding-bottom:0; }
.cv-content .paper-section-heading { display:flex; align-items:baseline; gap:16px; margin-bottom:24px; }
.cv-content .paper-section-heading .number { color:var(--accent); font:0.75rem/1.5 var(--mono); }
.cv-content h2 { font-size:1.5rem; line-height:1.3; letter-spacing:-.025em; }
.cv-content h3 { font-size:1.125rem; line-height:1.5; letter-spacing:-.01em; margin:32px 0 12px; }
.cv-content .paper-section-heading + h3 { margin-top:0; }
.cv-content h3 a { text-decoration:none; }
.cv-content h3 a::after { content:' ↗'; color:var(--accent); white-space:nowrap; }
.cv-content h3 a:hover { color:var(--accent); text-decoration:underline; }
.cv-content .paper-section > p,
.cv-content .paper-section > ul { font-size:1rem; line-height:1.75; text-align:left; margin:12px 0; overflow-wrap:anywhere; }
.cv-content .paper-section > :last-child { margin-bottom:0; }
.cv-content .paper-section > ul { padding-left:20px; }
.cv-content li { padding-left:4px; margin-block:8px; }
.cv-content li::marker { color:var(--accent); }
.cv-content .paper-section > .cv-meta { color:var(--accent); font:0.75rem/1.7 var(--mono); letter-spacing:.01em; }
.cv-content .paper-section > .cv-topics,
.cv-content .paper-section > .cv-publication-note { color:var(--muted); font-size:.9375rem; line-height:1.7; }
.cv-content #profile > p { font-size:1.125rem; line-height:1.8; }
.cv-content #publications h3:not(:first-of-type) { padding-top:28px; border-top:1px solid var(--rule); }
.cv-content #skills h3 { font-size:.9375rem; }

@media(max-width:900px) {
  .cv-header { padding-top:40px; gap:24px; }
  .cv-layout { grid-template-columns:1fr; gap:40px; padding-top:32px; }
  .cv-index { position:static; border-bottom:1px solid var(--rule); padding-bottom:24px; }
  .cv-index ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
  .cv-index > .eyebrow { margin-bottom:12px; }
}
@media(max-width:600px) {
  .cv-header { grid-template-columns:1fr; padding-top:32px; }
  .cv-download { justify-self:start; margin-top:0; }
  .cv-contact { gap:4px 20px; }
  .cv-contact li { max-width:100%; }
  .cv-headline { font-size:1rem; }
  .cv-content h2 { font-size:1.375rem; }
  .cv-content .paper-section-heading { gap:12px; }
}
@media print {
  @page { margin:16mm; }
  body.cv { background:white; color:black; border:0; font-size:10pt; }
  .cv .header,.cv .skip-link,.cv-index,.cv-download,.cv .footer { display:none; }
  .cv-page { max-width:none; padding:0; }
  .cv-header { padding:0 0 16px; gap:12px; }
  .cv-heading h1 { font-size:28pt; }
  .cv-headline { max-width:none; margin-top:8px; font-size:11pt; }
  .cv-contact { gap:4px 20px; font-size:9pt; }
  .cv-layout { display:block; padding:20px 0 0; }
  .cv-content .paper-section { padding:20px 0; }
  .cv-content .paper-section-heading { margin-bottom:12px; break-after:avoid; }
  .cv-content h2 { font-size:14pt; }
  .cv-content h3 { font-size:11pt; margin:20px 0 8px; break-after:avoid; }
  .cv-content .paper-section > p,.cv-content .paper-section > ul,.cv-content #profile > p { font-size:10pt; line-height:1.5; }
  .cv-content h3 a::after { content:none; }
  .cv-content a { color:inherit; }
  .cv-content li { break-inside:avoid; }
  .cv-content p { orphans:3; widows:3; }
}
