@font-face {
  font-family: "Inter";
  src: url("./inter-latin.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Fraunces";
  src: url("./fraunces-latin.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: light;
  --paper: #fffdf8;
  --ink: #211d17;
  --dim: #5f574b;
  --muted: #766d60;
  --line: #d7cfc0;
  --accent: #8d5e34;
  --screen: #16130f;
  --focus: #b0713d;
}

* { box-sizing: border-box; }

html { background: var(--screen); }

body {
  margin: 0;
  padding: 28px 16px 48px;
  background: var(--screen);
  color: var(--ink);
  font-family: "Inter", Arial, sans-serif;
  font-size: 9.45pt;
  line-height: 1.38;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; }
.utility-bar { max-width:210mm; margin:0 auto 20px; color:#eee6d7; }
.language-block,.language-switch { display:flex; align-items:center; gap:12px; }
.language-block { justify-content:flex-end; }
.language-label { font-size:12px; }
.language-chip { min-width:40px; min-height:36px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #594a3b; text-decoration:none; }
.language-chip[aria-current="page"] { background:#eee6d7; color:#211d17; }
[hidden] { display:none !important; }
.consent-panel { position:fixed; z-index:100; bottom:20px; right:20px; width:min(400px,calc(100% - 40px)); padding:24px; background:#211d17; color:#eee6d7; border:1px solid #c48a57; font-size:14px; line-height:1.7; }
.consent-panel h2 { font-size:24px; line-height:1.3; margin-top:0; }
.consent-panel .privacy-actions { display:flex; gap:12px; margin-top:16px; }
.consent-panel button { flex:1; padding:10px; border:1px solid #c48a57; color:inherit; background:transparent; font:inherit; cursor:pointer; }
@media print { .consent-panel { display:none !important; } }

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 3px;
}

.resume-toolbar {
  width: min(210mm, calc(100% - 24px));
  margin: 0 auto 16px;
  padding: 8px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
  border: 1px solid #42382e;
  border-radius: 10px;
  background: #211d17;
  color: #eee6d7;
  font-size: 12px;
}

.resume-toolbar a,
.resume-toolbar button {
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid #594a3b;
  border-radius: 7px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-decoration: none;
}

.resume-toolbar a:first-child { margin-right: auto; }
.resume-toolbar .primary { border-color: #c48a57; background: #c48a57; color: #1d160f; font-weight: 700; }

.resume-sheet {
  width: 210mm;
  min-height: 297mm;
  margin: 0 auto;
  padding: 12.5mm 14mm 10mm;
  background: var(--paper);
  box-shadow: 0 18px 60px rgba(0, 0, 0, .32);
}

.resume-header {
  padding-bottom: 4.5mm;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10mm;
  border-bottom: 1.6px solid var(--ink);
}

.kicker {
  margin: 0 0 1.5mm;
  color: var(--accent);
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

h1 {
  margin: 0;
  font-family: "Fraunces", Georgia, serif;
  font-size: 26pt;
  font-weight: 550;
  letter-spacing: -.025em;
  line-height: 1;
}

h1 span { color: var(--accent); }

.headline {
  margin: 2mm 0 0;
  color: var(--dim);
  font-size: 10.25pt;
}

.contact-lines {
  display: grid;
  align-content: end;
  justify-items: end;
  gap: 1.1mm;
  color: var(--dim);
  font-size: 8.1pt;
  font-style: normal;
  line-height: 1.25;
}

.contact-lines a { text-decoration-color: var(--line); text-underline-offset: 2px; }

.resume-section {
  padding-top: 4mm;
}

.resume-section h2 {
  margin: 0 0 2.2mm;
  padding-bottom: 1.2mm;
  border-bottom: 1px solid var(--line);
  color: var(--accent);
  font-size: 8.2pt;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.summary-section p { margin: 0; }
.summary-section .role-line { margin-top: 2mm; padding: 2mm 2.5mm; background: #f4eee4; color: var(--dim); font-size: 8.5pt; }

.resume-entry + .resume-entry { margin-top: 3mm; }

.entry-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8mm;
}

.entry-head h3 {
  margin: 0;
  font-size: 10.1pt;
  font-weight: 750;
  line-height: 1.25;
}

.entry-head span {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 7.8pt;
  font-weight: 650;
  white-space: nowrap;
}

.entry-meta {
  margin: .7mm 0 1.2mm !important;
  color: var(--muted) !important;
  font-size: 7.8pt;
}

.resume-entry p { margin: 1mm 0 0; color: var(--dim); }

.resume-entry ul {
  margin: 1mm 0 0;
  padding-left: 4.6mm;
  color: var(--dim);
}

.resume-entry li { margin: .45mm 0; padding-left: .6mm; }
.education-entry p { margin-top: .8mm; }

.skills-section dl { margin: 0; display: grid; gap: 1.15mm; }
.skills-section dl > div { display: grid; grid-template-columns: 24mm minmax(0, 1fr); gap: 3mm; }
.skills-section dt { color: var(--ink); font-weight: 750; }
.skills-section dd { margin: 0; color: var(--dim); }

.resume-footer {
  margin-top: 4mm;
  padding-top: 2mm;
  display: flex;
  justify-content: space-between;
  gap: 6mm;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 7.3pt;
}

@media (max-width: 820px) {
  body { padding: 0; background: var(--paper); font-size:15px; line-height:1.7; }
  .utility-bar { padding:16px 20px; color:var(--ink); margin-bottom:0; }
  .language-chip[aria-current="page"] { background:var(--ink); color:var(--paper); }
  .resume-toolbar { width: 100%; margin: 0; border: 0; border-radius: 0; }
  .resume-sheet { width: 100%; min-height: 0; padding: 24px 20px; box-shadow: none; }
  .resume-header { grid-template-columns: 1fr; gap: 16px; }
  .contact-lines { justify-items: start; }
  .entry-head { align-items: flex-start; flex-direction: column; gap: 2px; }
  .skills-section dl > div { grid-template-columns: 1fr; gap: 1px; }
}

@page { size: A4; margin: 0; }

/* A phone reads a CV as an article; these sizes never affect the A4 print view. */
@media screen and (max-width:760px) {
  .resume-toolbar { padding:12px 16px; gap:8px; }
  .resume-toolbar a,.resume-toolbar button { min-height:48px; display:flex; align-items:center; padding:12px; font-size:14px; }
  .resume-toolbar a:first-child { flex-basis:100%; }
  .utility-bar { padding:8px 20px; }
  .language-block { justify-content:space-between; flex-wrap:wrap; gap:8px; }
  .language-switch { gap:4px; }
  .language-label { font-size:14px; }
  .language-chip { min-width:44px; min-height:44px; font-size:16px; }
  .resume-sheet { padding:24px 20px; }
  .resume-sheet :is(a,p,h1,h2,h3,dd) { overflow-wrap:anywhere; }
  .resume-header { padding-bottom:24px; }
  h1 { font-size:34px; line-height:1.15; }
  .kicker { font-size:14px; }
  .headline { font-size:17px; line-height:1.6; }
  .contact-lines { font-size:14px; line-height:1.65; gap:8px; }
  .contact-lines a { display:inline-flex; align-items:center; min-height:44px; }
  .resume-section { padding-top:28px; }
  .resume-section h2 { font-size:14px; line-height:1.5; margin-bottom:16px; padding-bottom:8px; letter-spacing:.06em; }
  .resume-entry + .resume-entry { margin-top:24px; }
  .entry-head h3 { font-size:19px; line-height:1.5; }
  .entry-head span,.entry-meta,.summary-section .role-line { font-size:14px; line-height:1.7; white-space:normal; }
  .entry-meta { margin-block:8px !important; }
  .summary-section .role-line { padding:12px; margin-top:16px; }
  .resume-entry p,.resume-entry li,.skills-section dd { font-size:16px; line-height:1.75; }
  .resume-entry li { margin-top:8px; }
  .skills-section dl { gap:16px; }
  .skills-section dt { font-size:15px; }
  .resume-footer { flex-direction:column; gap:8px; margin-top:28px; font-size:14px; }
}

@media print {
  html,
  body { width: 210mm; height: 297mm; background: var(--paper); }
  body { padding: 0; font-size: 9.45pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .no-print { display: none !important; }
  .resume-sheet { width: 210mm; min-height: 297mm; margin: 0; box-shadow: none; }
  a { color: inherit; text-decoration: none; }
  .resume-entry,
  .resume-section { break-inside: avoid; }
}

/* 2026-09-23: credentials first; readable contribution-led CV, no role inflation. */
.resume-header { grid-template-columns:minmax(0,1fr); gap:10px; }
.resume-header h1 { font-size:27pt; line-height:1.15; font-weight:650; }
.contact-lines { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:5px 18px; font-size:9pt; line-height:1.5; }
.resume-section h2 { font-size:9.5pt; letter-spacing:.07em; }
.resume-education .entry-head h3 { font-size:12pt; font-weight:750; }
.entry-head span { font-size:9pt; }
.entry-head h3 a { text-decoration:none; }
.entry-head h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
.resume-entry .entry-role { font-size:9.3pt; color:var(--accent); margin-top:2px; }
.resume-profile { margin:14px 0 0; font-size:10pt; line-height:1.5; }
.clinical-foundation { color:var(--dim); }
.resume-footer { font-size:8.5pt; }
@media screen and (min-width:821px) {
  .resume-sheet { font-size:10pt; line-height:1.5; }
  .resume-toolbar { font-size:14px; }
  .resume-toolbar a,.resume-toolbar button { min-height:44px; }
  .language-label { font-size:14px; }
  .language-chip { min-height:44px; min-width:44px; font-size:16px; }
}
@media screen and (max-width:820px) {
  .resume-header h1 { font-size:32px; }
  .resume-profile,.clinical-foundation { font-size:16px; line-height:1.75; }
  .resume-education .entry-head h3 { font-size:21px; line-height:1.5; }
  .resume-section h2 { font-size:16px; }
  .contact-lines { font-size:14px; }
  .entry-head span,.resume-entry .entry-role { font-size:14px; line-height:1.7; }
  .resume-footer { font-size:14px; }
}
@media print {
  .resume-sheet { padding:12mm 14mm; }
  .resume-header { padding-bottom:3mm; }
  .resume-header h1 { font-size:25pt; }
  .resume-section { padding-top:3mm; }
  .resume-section h2 { margin-bottom:1.5mm; }
  .resume-entry + .resume-entry { margin-top:2mm; }
  .resume-profile { font-size:9.45pt; line-height:1.4; margin-top:3mm; }
  .resume-section { break-inside:auto; }
  .resume-section h2 { break-after:avoid; }
  .resume-footer { margin-top:3mm; }
}

/* Desktop reading view, not an A4 page squeezed to screen size.
   Phone styles and every print rule above remain unchanged. */
@media screen and (min-width:761px) {
  body,.resume-sheet { font-size:18px; line-height:1.75; }
  .resume-sheet { width:min(960px,100%); min-height:0; }
  .resume-toolbar,.utility-bar { max-width:960px; width:100%; }
  .resume-toolbar,.resume-toolbar :is(a,button),.language-chip { font-size:18px; }
  .resume-toolbar :is(a,button),.language-chip { min-height:44px; }
  .resume-profile,.headline,.summary-section .role-line { font-size:18px; line-height:1.75; }
  .kicker,.contact-lines,.entry-head span,.entry-meta,
  .resume-entry .entry-role,.resume-footer,.language-label { font-size:16px; line-height:1.65; }
  .resume-section h2 { font-size:18px; line-height:1.5; }
  .entry-head h3 { font-size:20px; line-height:1.5; }
  .resume-education .entry-head h3 { font-size:22px; }
  .entry-head { flex-wrap:wrap; gap:4px 20px; }
  .entry-head span { white-space:normal; }
  .contact-lines { overflow-wrap:anywhere; }
  .resume-section { padding-top:24px; }
  .resume-entry + .resume-entry { margin-top:20px; }
}
