:root {
  color-scheme: light;
  --ink: #1b1b1b;
  --muted: #595959;
  --link: #245a92;
  --paper: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { background: #f2f2f2; font-size: 16px; }
body { margin: 0; color: var(--ink); background: transparent; line-height: 1.45; }
.resume { width: min(100% - 2rem, 52rem); margin: 2rem auto; padding: 3rem 3.25rem 4rem; background: var(--paper); box-shadow: 0 1px 8px rgb(0 0 0 / 10%); }
.masthead { text-align: center; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { margin-bottom: .45rem; font-size: clamp(2.1rem, 7vw, 3.25rem); font-weight: 400; line-height: 1.06; letter-spacing: -.035em; }
.contact { display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem 0; margin: 0; color: var(--muted); font-family: Arial, Helvetica, sans-serif; font-size: .86rem; font-style: normal; }
.contact > *:not(:last-child)::after { content: "·"; margin: 0 .55rem; color: #8a8a8a; }
a { color: var(--link); text-decoration-thickness: .06em; text-underline-offset: .14em; }
a:hover, a:focus-visible { color: #123f70; }
.summary { margin: 2.1rem 0 1.8rem; }
.summary p, section > p { margin-bottom: .75rem; }
section { margin-top: 1.85rem; }
h2 { margin-bottom: 1rem; padding-bottom: .3rem; border-bottom: 1px solid var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: .92rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.entry + .entry { margin-top: 1.45rem; }
.entry-header, .compact-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: baseline; }
.entry-header { margin-bottom: .35rem; }
.entry-header h3, .compact-entry h3 { margin-bottom: 0; font-size: 1.06rem; line-height: 1.28; }
.entry-header p, .compact-entry .date { margin: 0; color: var(--muted); font-family: Arial, Helvetica, sans-serif; font-size: .78rem; white-space: nowrap; }
.role + .role { margin-top: .9rem; }
h4 { margin-bottom: .28rem; font-size: .98rem; font-weight: 400; font-style: italic; }
ul { margin: .25rem 0 0; padding-left: 1.2rem; }
li { margin: .2rem 0; padding-left: .14rem; }
.compact-entry { margin-bottom: .95rem; }
.compact-entry p { margin: .13rem 0 0; }
.single-line { margin-bottom: .65rem; }
strong { font-weight: 700; }

@media (max-width: 640px) {
  html { background: var(--paper); }
  .resume { width: 100%; margin: 0; padding: 2rem 1.25rem 3rem; box-shadow: none; }
  .contact { flex-direction: column; align-items: center; gap: .18rem; }
  .contact > *:not(:last-child)::after { content: ""; margin: 0; }
  .entry-header, .compact-entry { grid-template-columns: 1fr; gap: .15rem; }
  .entry-header p, .compact-entry .date { white-space: normal; }
}

@media print {
  @page { size: A4; margin: 15mm; }
  html, body { background: #fff; font-size: 10pt; }
  .resume { width: auto; margin: 0; padding: 0; box-shadow: none; }
  a { color: inherit; text-decoration: none; }
  h2, .entry-header, .role h4, .compact-entry { break-after: avoid; }
  li, .entry, .role { break-inside: avoid; }
}
