@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/cv-fonts/inter-latin-400-normal.woff2') format('woff2');
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/cv-fonts/inter-latin-600-normal.woff2') format('woff2');
}

.cv-page { background: #fff; }
.cv-page *, .cv-page *::before, .cv-page *::after { box-sizing: border-box; }
.cv-page a:focus-visible, .cv-page button:focus-visible { outline: 2px solid #252525; outline-offset: 5px; }
.cv-skip-link { position: fixed; top: -100px; left: 20px; z-index: 10003; padding: 12px; color: #fff; background: #252525; }
.cv-skip-link:focus { top: 12px; }
.cv-layout { display: grid; grid-template-columns: 190px minmax(0, 760px); gap: 72px; max-width: 1140px; margin: 0 auto; padding: 64px 30px 100px; align-items: start; }
.cv-sidebar { position: sticky; top: 156px; }
.cv-eyebrow { margin: 5px 0 28px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #666; }
.cv-section-nav { display: block; }
.cv-section-nav ul { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin: 0 0 36px; padding: 0; white-space: normal; }
.cv-section-nav a { font-size: 14px; color: #555; text-decoration: none; }
.cv-section-nav a:hover { color: #252525; text-decoration: underline; text-underline-offset: 4px; }
.cv-download { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 13px 17px; font-size: 14px; font-weight: 600; }
.cv-download-note { margin: 10px 0 0; font-size: 12px; color: #666; }
.cv-document { min-width: 0; outline: none; }
.cv-document a { color: inherit; text-underline-offset: 4px; }
.cv-document p { margin: 0 0 16px; font-size: 16px; line-height: 1.7; }
.cv-document strong { font-weight: 600; }
.cv-intro { padding-bottom: 36px; }
.cv-intro h1 { margin: 0 0 12px; font-size: 64px; font-weight: 400; letter-spacing: -.045em; line-height: 1.1; }
.cv-intro p:first-of-type { margin-bottom: 18px; font-size: 24px; line-height: 1.4; }
.cv-intro p:first-of-type strong { font-weight: 400; }
.cv-intro p:last-of-type { margin-bottom: 0; color: #666; font-size: 14px; line-height: 1.8; }
.cv-section { padding: 32px 0 0; margin: 0 0 36px; border-top: 1px dotted #252525; scroll-margin-top: 145px; }
.cv-section h2 { margin: 0 0 24px; font-size: 28px; font-weight: 400; letter-spacing: -.025em; line-height: 1.3; }
.cv-section h3 { margin: 0 0 8px; font-size: 21px; letter-spacing: -.02em; line-height: 1.4; }
.cv-entry + .cv-entry { margin-top: 32px; padding-top: 28px; border-top: 1px solid #eee; }
.cv-entry > h3 + p { color: #666; font-size: 14px; line-height: 1.7; margin-bottom: 18px; }
.cv-entry > h3 + p strong { color: #252525; }
.cv-entry ul { margin: 0; padding-left: 20px; }
.cv-entry li { padding-left: 4px; margin: 0 0 9px; font-size: 15px; line-height: 1.65; }
.cv-entry > :last-child, .cv-section > :last-child { margin-bottom: 0; }
.cv-section:last-child { margin-bottom: 0; }

@media (max-width: 1000px) {
  .cv-layout { gap: 40px; grid-template-columns: 170px minmax(0, 1fr); }
}

@media (max-width: 810px) {
  .cv-layout { display: block; padding: 32px 30px 64px; }
  .cv-sidebar { position: static; display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; margin-bottom: 40px; }
  .cv-eyebrow { margin: 0; flex: 1; }
  .cv-section-nav { display: none; }
  .cv-download-note { width: 100%; margin: -3px 0 0; text-align: right; }
  .cv-intro h1 { font-size: 52px; }
}

@media (max-width: 520px) {
  .cv-layout { padding: 24px 20px 56px; }
  .cv-sidebar { margin-bottom: 32px; }
  .cv-intro h1 { font-size: 44px !important; }
  .cv-intro p:first-of-type { font-size: 21px; }
  .cv-section { padding-top: 26px; scroll-margin-top: 100px; }
  .cv-section h2 { font-size: 25px; }
  .cv-document p { font-size: 15px; }
  .cv-entry > h3 + p { font-size: 13px; }
  .cv-entry li { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(.cv-page) { scroll-behavior: auto; }
  .cv-page a { transition: none; }
}

@page { size: A4; margin: 14mm 16mm 16mm; }

@media print {
  html, .cv-page { background: #fff; color: #252525; margin: 0; padding: 0; }
  .cv-page { font-size: 10pt; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .cv-page > header, .cv-page > footer, .cv-sidebar, .cv-skip-link { display: none !important; }
  .cv-layout { display: block; max-width: none; margin: 0; padding: 0; }
  .cv-intro { padding-bottom: 14pt; }
  .cv-intro h1 { font-size: 30pt !important; letter-spacing: -.04em; margin-bottom: 5pt; }
  .cv-intro p:first-of-type { font-size: 15pt; margin-bottom: 7pt; }
  .cv-intro p:last-of-type { font-size: 9pt; line-height: 1.5; }
  .cv-document p, .cv-document li { font-size: 9.5pt; line-height: 1.45; orphans: 3; widows: 3; }
  .cv-document p { margin-bottom: 8pt; }
  .cv-document a { text-decoration: none; }
  .cv-section { padding-top: 12pt; margin-bottom: 16pt; }
  .cv-section h2 { font-size: 15pt; margin-bottom: 10pt; break-after: avoid; }
  .cv-section h3 { font-size: 12pt; margin-bottom: 3pt; break-after: avoid; }
  .cv-entry { break-inside: avoid; }
  .cv-entry + .cv-entry { margin-top: 13pt; padding-top: 10pt; }
  .cv-entry > h3 + p { font-size: 9pt; margin-bottom: 7pt; line-height: 1.45; break-after: avoid; }
  .cv-entry li { margin-bottom: 4pt; padding-left: 2pt; break-inside: avoid; }
  .cv-entry ul { padding-left: 12pt; }
  .cv-section > p { break-inside: avoid; }
}
