.cv-page { padding: 0 clamp(24px, 5vw, 86px) 70px; }
.cv-header { border-bottom: 1px solid var(--ink); padding: 84px 0 58px; }
.cv-header h1 { font-size: clamp(42px, 5.35vw, 79px); font-weight: 500; line-height: 1.03; letter-spacing: -.05em; margin: 0; }
.cv-section { display: grid; grid-template-columns: 23% minmax(0, 1fr); border-bottom: 1px solid var(--rule); padding: 52px 0 68px; }
.cv-section h2 { font-size: clamp(21px, 2vw, 30px); font-weight: 500; line-height: 1.18; letter-spacing: -.03em; margin: 0; max-width: 250px; padding-right: 30px; }
.entry-list { max-width: 850px; }
.cv-entry { display: grid; grid-template-columns: minmax(90px, 16%) minmax(0, 1fr); gap: clamp(20px, 4vw, 54px); padding: 0 0 34px; }
.cv-entry:last-child { padding-bottom: 0; }
.cv-entry time { color: var(--muted); font-size: 11px; letter-spacing: .035em; line-height: 1.5; padding-top: 4px; }
.cv-entry h3, .language-list h3 { color: rgba(22,22,22,.84); font-size: 16px; font-weight: 600; letter-spacing: -.015em; line-height: 1.4; margin: 0 0 5px; }
.cv-entry h3 a { border-bottom: 1px solid var(--rule); }
.cv-entry h3 a:hover { border-color: var(--accent); }
.institution { color: rgba(22,22,22,.72); font-size: 13px; line-height: 1.55; margin: 0; }
.description { color: var(--muted); font-size: 13px; line-height: 1.65; margin: 10px 0 0; max-width: 680px; }
.compact-list .cv-entry { padding-bottom: 25px; }
.language-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; max-width: 850px; }
.language-list article { border-top: 1px solid var(--ink); padding-top: 17px; }
.language-list p { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 0; }
@media (max-width: 850px) { .cv-section { grid-template-columns: 26% minmax(0, 1fr); } }
@media (max-width: 700px) {
  .site-header nav { gap: 10px; font-size: 9px; }
  .cv-page { padding-bottom: 40px; }
  .cv-header { padding: 54px 0 42px; }
  .cv-section { display: block; padding: 39px 0 51px; }
  .cv-section h2 { font-size: 25px; margin-bottom: 43px; max-width: none; padding: 0; }
  .cv-entry { display: block; padding-bottom: 34px; }
  .cv-entry time { display: block; margin-bottom: 10px; padding: 0; }
  .cv-entry h3 { font-size: 16px; }
  .language-list { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 450px) { .site-header nav { gap: 7px; } }
