:root {
  --sidebar: #2C446F;
  --sidebar-text: #d7d5d5;
  --ink: #171717;
  --muted: #535353;
  --line: #c7c2c2;
  --paper: #ffffff;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: #d7d7d7;
  color: var(--ink);
  font-family: "Arial Narrow", "Aptos Narrow", Arial, sans-serif;
  font-size: 13px;
  line-height: 1.38;
}

a { color: inherit; text-underline-offset: 2px; }

.toolbar {
  width: min(940px, calc(100% - 2rem));
  margin: 1.25rem auto .7rem;
}

.toolbar a {
  color: var(--ink);
  font-weight: 700;
  text-decoration: none;
}

.cv-page {
  width: min(940px, calc(100% - 2rem));
  margin: 0 auto 2.5rem;
  background: var(--paper);
  box-shadow: 0 18px 55px rgba(0, 0, 0, .16);
}

.resume-shell {
  display: grid;
  grid-template-columns: 30% 70%;
}

.left-panel {
  padding: 11mm 7mm 9mm;
  background: var(--sidebar);
  color: var(--sidebar-text);
}

.cv-photo {
  display: block;
  width: 42mm;
  height: 42mm;
  margin: 0 auto 7mm;
  border: 1.5mm solid #fff;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 30%;
}

.sidebar-section {
  padding: 5mm 0;
  border-bottom: .35mm solid rgba(255, 255, 255, .75);
}

.sidebar-section:last-child { border-bottom: 0; }

.sidebar-section h2,
.right-panel h2 {
  margin: 0 0 3mm;
  font-family: "Arial Narrow", "Aptos Narrow", Arial, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.sidebar-section h2 { color: #fff; }

address {
  display: grid;
  gap: 2.2mm;
  font-style: normal;
}

.contact-item {
  display: block;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.contact-item::before {
  display: inline-grid;
  width: 1.1rem;
  margin-right: .25rem;
  color: #fff;
  font-weight: 800;
  place-items: center;
}

.email::before { content: "@"; }
.phone::before { content: "☎"; }
.location::before { content: "⌖"; }
.linkedin::before { content: "in"; font-size: .75em; }
.github::before { content: "<>"; font-size: .72em; }
.scholar::before { content: "▣"; }

.skills {
  display: grid;
  gap: 2.1mm;
  margin: 0;
  padding: 0;
  list-style: none;
}

.skills li {
  padding-bottom: 1.4mm;
  font-weight: 600;
}

.right-panel { padding: 11mm 8mm 9mm; }

.cv-header { margin-bottom: 8mm; }

h1 {
  margin: 0;
  font-family: "Arial Narrow", "Aptos Narrow", Arial, sans-serif;
  font-size: 2.65rem;
  font-weight: 300;
  letter-spacing: .055em;
  line-height: 1;
  text-transform: uppercase;
  transform: scaleX(.92);
  transform-origin: left;
}

.native-name {
  margin: 2mm 0 0;
  color: var(--muted);
  font-size: .82rem;
}

.role {
  margin: 1.5mm 0 0;
  font-size: 1.15rem;
  font-weight: 700;
}

.right-panel section + section { margin-top: 7mm; }

.right-panel h2 {
  padding-bottom: 1.5mm;
  border-bottom: .35mm solid var(--line);
  color: var(--ink);
}

p { margin: 1mm 0; }
.profile p { margin: 0; color: var(--muted); }

.timeline { margin-top: 3mm; }

.timeline-item {
  position: relative;
  margin-left: 1mm;
  padding: 0 0 6mm 6mm;
  break-inside: avoid;
}

.timeline-item::before {
  position: absolute;
  top: 1mm;
  bottom: -1mm;
  left: 0;
  width: .35mm;
  background: #b8abab;
  content: "";
}

.timeline-item:last-child::before { bottom: 6mm; }

.timeline-item::after {
  position: absolute;
  top: .4mm;
  left: -1.25mm;
  width: 2.8mm;
  height: 2.8mm;
  border-radius: 50%;
  background: var(--sidebar);
  content: "";
}

.job-heading {
  display: flex;
  gap: 4mm;
  align-items: baseline;
  justify-content: space-between;
}

.job-heading h3 {
  margin: 0;
  font-size: 1.03rem;
  line-height: 1.22;
}

.job-heading .date {
  flex: 0 0 auto;
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
}

.org { margin: 1mm 0; font-weight: 700; }
.job-summary { color: var(--muted); }

ul {
  margin: 2mm 0 0;
  padding-left: 4.5mm;
}

li + li { margin-top: 1.5mm; }

.publications article {
  margin-bottom: 4mm;
  break-inside: avoid;
}

.publications h3 {
  margin: 0;
  font-size: .96rem;
  line-height: 1.25;
}

.publications p { font-size: .82rem; }
.publication-meta {
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
}
.publications a { font-weight: 700; }

.language-list {
  display: grid;
  gap: 2mm;
  margin: 0;
  padding: 0;
  list-style: none;
}

.language-list li {
  padding-bottom: 1.2mm;
  font-weight: 600;
}

.interest-list {
  display: grid;
  gap: 2.5mm;
}

.interest-item {
  display: flex;
  gap: 2.5mm;
  align-items: center;
  color: #fff;
}

.interest-item img {
  flex: 0 0 auto;
  width: 7mm;
  height: 7mm;
  object-fit: contain;
}

.education-timeline p:not(.date):not(.org) { font-size: .86rem; }
.education-meta { color: var(--muted); font-weight: 700; }

@media (max-width: 720px) {
  .toolbar,
  .cv-page { width: 100%; }
  .toolbar { margin: 1rem; }
  .cv-page { margin: 0; }
  .resume-shell { grid-template-columns: 1fr; }
  .left-panel,
  .right-panel { padding: 2rem 1.4rem; }
  .cv-photo { width: 132px; height: 132px; }
  h1 { font-size: 2.2rem; }
  .job-heading { display: block; }
  .job-heading .date { margin-top: .25rem; }
}

@media print {
  @page { size: A4; margin: 1cm; }
  body { background: white; font-size: 11.5px; line-height: 1.36; }
  .left-panel { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .toolbar { display: none; }
  .cv-page { width: 210mm; margin: 0; box-shadow: none; }
  .left-panel { padding: 9mm 6mm 7mm; }
  .right-panel { padding: 10mm 8mm 8mm; }
  .cv-photo { width: 40mm; height: 40mm; margin-bottom: 5mm; border-width: 1.3mm; }
  .sidebar-section { padding: 4mm 0; }
  .sidebar-section h2, .right-panel h2 { margin-bottom: 2.7mm; font-size: 12px; }
  address { gap: 1.7mm; }
  .skills { gap: 1.5mm; }
  .skills li { padding-bottom: 1.1mm; }
  .cv-header { margin-bottom: 7mm; }
  h1 { font-size: 40px; }
  .native-name { margin-top: 1.5mm; font-size: 10px; }
  .role { margin-top: 1.5mm; font-size: 14px; }
  .right-panel section + section { margin-top: 6mm; }
  .right-panel h2 { padding-bottom: 1.3mm; }
  .timeline { margin-top: 2.5mm; }
  .timeline-item { padding: 0 0 4.5mm 5mm; }
  .job-heading h3 { font-size: 13px; }
  .job-heading .date { font-size: 9.5px; }
  .org { margin: .8mm 0; }
  ul { margin-top: 1.5mm; padding-left: 4mm; }
  li + li { margin-top: 1.3mm; }
  .publications article { margin-bottom: 3.5mm; }
  .publications h3 { font-size: 11.5px; }
  .publications p { font-size: 10px; }
  .language-list { gap: 1.2mm; }
  .interest-list { gap: 1.8mm; }
  .interest-item { gap: 1.8mm; font-size: 9.5px; }
  .interest-item img { width: 5.5mm; height: 5.5mm; }
  .education-timeline p:not(.date):not(.org) { font-size: 10px; }
  a { text-decoration: none; }
}
