:root {
  color-scheme: light;
  --ink: #192337;
  --muted: #5c6575;
  --accent: #2149cf;
  --line: #dce1e9;
  --paper: #ffffff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body { margin: 0; border-top: 5px solid var(--accent); background: var(--paper); color: var(--ink); font: 1rem/1.7 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: .25em; }
a:hover { color: var(--accent); }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; border-radius: 2px; }
.resume { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 76px; max-width: 1192px; margin: 0 auto; padding: 78px 44px 30px; }
.intro { align-self: start; position: sticky; top: 48px; }
.eyebrow { margin: 0 0 17px; color: var(--accent); font-size: .8125rem; font-weight: 650; text-transform: uppercase; letter-spacing: .12em; }
h1 { font-size: clamp(2.7rem, 4vw, 3.25rem); letter-spacing: -.065em; line-height: 1.07; font-weight: 700; margin: 0 0 23px; }
h1 span { color: var(--accent); }
.location { color: var(--muted); margin: 0 0 27px; }
.contact { font-style: normal; display: grid; gap: 10px; font-size: .875rem; }
.contact a { display: flex; justify-content: space-between; gap: 8px; text-decoration: none; }
.contact a span { color: var(--muted); }
.download { display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: 4px; padding: 10px 14px; margin-top: 26px; text-decoration: none; font-size: .875rem; font-weight: 600; }
.download:hover { background: #f3f6ff; border-color: var(--accent); }
nav { margin-top: 37px; padding-top: 26px; border-top: 1px solid var(--line); display: grid; gap: 9px; }
nav a { font-size: .875rem; color: var(--muted); text-decoration: none; }
.updated { margin-top: 37px; font-size: .75rem; color: var(--muted); }
main { min-width: 0; }
section { margin-bottom: 49px; }
h2 { display: flex; gap: 15px; align-items: baseline; margin: 0 0 26px; padding-bottom: 14px; border-bottom: 1px solid var(--line); font-size: .875rem; line-height: 1.5; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.section-number { color: var(--accent); font: .75rem ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: 0; }
.entry + .entry { margin-top: 29px; }
.entry-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px 24px; }
h3 { margin: 0; font-size: 1.0625rem; line-height: 1.5; font-weight: 650; letter-spacing: -.015em; }
p { margin: 10px 0 0; }
.date { flex-shrink: 0; margin: 0; font-size: .8125rem; color: var(--muted); white-space: nowrap; }
.organization { margin-top: 3px; font-size: .875rem; color: var(--accent); }
.organization span { color: var(--muted); }
ul { margin: 12px 0 0; padding-left: 18px; }
li { padding-left: 3px; margin-top: 6px; color: #424c5c; }
li::marker { color: #8e99ad; font-size: .75em; }
strong { color: var(--ink); font-weight: 600; }
.skills { margin: 0; }
.skills > div { display: grid; grid-template-columns: 142px minmax(0, 1fr); gap: 16px; margin-top: 18px; }
dt { font-size: .875rem; font-weight: 600; }
dd { margin: 0; color: #424c5c; }
.minor { color: var(--muted); font-size: .875rem; }
footer { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); padding-top: 20px; color: var(--muted); font-size: .8125rem; }
footer a { text-decoration: none; }
.skip-link { position: absolute; top: -100px; left: 15px; background: var(--paper); padding: 12px; z-index: 2; }
.skip-link:focus { top: 12px; }
@media (max-width: 1050px) {
  .resume { gap: 45px; grid-template-columns: 240px minmax(0, 1fr); padding: 55px 30px 28px; }
  .entry-heading { flex-direction: column; gap: 3px; }
  .skills > div { grid-template-columns: 1fr; gap: 3px; }
}
@media (max-width: 720px) {
  .resume { display: block; padding: 38px 24px 24px; }
  .intro { position: static; margin-bottom: 42px; }
  h1 { font-size: 3.25rem; }
  .contact { max-width: 340px; }
  .download { max-width: 340px; }
  nav { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 26px; padding-top: 22px; }
  .updated { margin-top: 18px; }
  h2 { font-size: .8125rem; gap: 12px; }
  section { margin-bottom: 38px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  @page { margin: 16mm; }
  body { border: 0; font-size: 10pt; }
  .resume { display: block; padding: 0; max-width: none; }
  .intro { position: static; margin-bottom: 24px; }
  h1 { font-size: 28pt; margin: 0; }
  h1 br { display: none; }
  h1 br::after { content: " "; }
  .eyebrow { margin-bottom: 6px; }
  .location { margin: 8px 0; }
  .contact { display: flex; flex-wrap: wrap; gap: 8px 20px; }
  .contact a span, .download, nav, .updated, footer, .skip-link { display: none; }
  section { margin-bottom: 24px; }
  h2 { break-after: avoid; margin-bottom: 14px; }
  .entry { break-inside: avoid; }
  .entry-heading { flex-direction: row; }
  .entry + .entry { margin-top: 18px; }
  a { text-decoration: none; }
  .skills > div { grid-template-columns: 125px 1fr; gap: 10px; margin-top: 8px; }
}
