/* The responsive CV styles are embedded in index.html. */
:root {
      --navy: #12304a; --blue: #245b78; --teal: #2d7b78; --ink: #243447;
      --muted: #607080; --line: #dce5eb; --paper: #fff; --canvas: #f1f5f8; --soft: #eaf2f5;
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { margin: 0; background: var(--canvas); color: var(--ink); font: 16px/1.7 "Segoe UI", Roboto, Arial, sans-serif; }
    a { color: #17658a; text-decoration: none; overflow-wrap: anywhere; }
    a:hover { text-decoration: underline; }
    .page { max-width: 1040px; margin: 34px auto; padding: 0 22px 42px; }
    .hero { background: linear-gradient(125deg, var(--navy), #1e526b); color: white; border-radius: 18px; padding: 34px 38px; box-shadow: 0 14px 35px rgba(18,48,74,.16); }
    .hero h1 { margin: 0 0 18px; color: white; font-size: clamp(1.8rem, 4vw, 2.6rem); letter-spacing: .045em; line-height: 1.15; }
    .hero-content { display: flex; align-items: center; gap: 28px; }
    .profile-photo { width: 158px; height: 158px; object-fit: cover; flex: 0 0 auto; border-radius: 14px; border: 4px solid rgba(255,255,255,.75); box-shadow: 0 8px 22px rgba(0,0,0,.18); }
    .hero-details { min-width: 0; }
    .affiliation { font-size: 1.02rem; color: #e5f0f5; margin-bottom: 12px; }
    .contact { color: #f5f8fa; font-size: .94rem; overflow-wrap: anywhere; }
    .hero a { color: #aee5e0; font-weight: 600; }
    section { background: var(--paper); margin-top: 20px; padding: 26px 30px; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 4px 14px rgba(31,58,78,.035); break-inside: avoid; }
    h2 { margin: 0 0 18px; padding-bottom: 9px; border-bottom: 2px solid var(--soft); color: var(--navy); font-size: 1.28rem; letter-spacing: .015em; }
    h2::before { content: ""; display: inline-block; width: 5px; height: 1.05em; margin-right: 10px; background: var(--teal); border-radius: 4px; vertical-align: -2px; }
    h3 { margin: 14px 0 10px; color: var(--teal); font-size: 1rem; }
    p { margin: 0; }
    .entry { padding: 0 0 17px; margin: 0 0 17px; border-bottom: 1px solid #edf1f4; }
    .entry:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
    .entry-head { display: flex; justify-content: space-between; gap: 16px; font-weight: 700; color: #203c53; }
    .location, .date { color: var(--muted); font-size: .92rem; font-weight: 500; text-align: right; }
    .institution { font-weight: 600; margin: 4px 0; }
    .label { color: var(--teal); font-weight: 700; }
    .publication { margin: 0 0 13px 1.2rem; padding-left: 4px; }
    .publication:last-child { margin-bottom: 0; }
    .skills { display: grid; grid-template-columns: minmax(170px, .8fr) 2fr; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
    .skill-label, .skills > div:nth-child(2n) { padding: 10px 13px; border-bottom: 1px solid var(--line); }
    .skill-label { background: #f2f7f8; color: var(--navy); font-weight: 700; }
    .skills > div:nth-last-child(-n+2) { border-bottom: 0; }
    section ul { padding-left: 22px; margin: 8px 0 0; }
    li { padding-left: 2px; }
    .footer { text-align: center; color: var(--muted); font-size: .85rem; padding: 22px 0 0; }
    @media (max-width: 640px) {
      .page { margin: 14px auto; padding: 0 12px 28px; }
      .hero { padding: 24px 20px; border-radius: 14px; }
      .hero-content { flex-direction: column; align-items: flex-start; gap: 18px; }
      .profile-photo { width: 132px; height: 132px; }
      section { padding: 21px 18px; margin-top: 14px; }
      .entry-head { flex-direction: column; gap: 0; }
      .location, .date { text-align: left; }
      .skills { grid-template-columns: 1fr; }
      .skill-label { padding-bottom: 3px; border-bottom: 0; }
      .skills > div:nth-child(2n) { padding-top: 2px; }
      .skills > div:nth-last-child(2) { border-bottom: 0; }
    }
    @media print {
      @page { size: A4; margin: 13mm; }
      body { background: white; font-size: 10pt; color: #202a33; }
      .page { max-width: none; margin: 0; padding: 0; }
      .hero { background: #12304a !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; box-shadow: none; border-radius: 8px; padding: 22px 25px; }
      .profile-photo { width: 112px; height: 112px; }
      section { box-shadow: none; margin-top: 12px; padding: 17px 20px; border-radius: 8px; }
      a { color: inherit; } .footer { display: none; }
    }