:root {
  color-scheme: light;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #202020;
  background: #fff;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
.identity { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.25rem; }
.identity h1 { margin: 0; }
.portrait { width: 5.5rem; height: 5.5rem; object-fit: cover; border-radius: 50%; flex-shrink: 0; }
body { margin: 0; font-size: 1rem; line-height: 1.65; }
.resume { width: min(100% - 3rem, 45rem); margin: 0 auto; padding: 6rem 0; }
.intro { padding-bottom: 3.5rem; }
.eyebrow, h2 { font-size: .875rem; font-weight: 400; color: #616161; }
.eyebrow { margin: 0 0 1.1rem; }
h1 { margin: 0 0 1rem; font-size: clamp(2rem, 5vw, 2.75rem); line-height: 1.15; letter-spacing: -.045em; font-weight: 500; }
h2 { margin: 0 0 1.75rem; }
h3 { margin: 0; font-size: 1rem; line-height: 1.5; font-weight: 500; }
p { margin: 0 0 1rem; }
a { color: inherit; text-decoration-color: #aaa; text-underline-offset: .25em; text-decoration-thickness: 1px; }
a:hover { text-decoration-color: currentColor; }
a:focus-visible { outline: 2px solid #202020; outline-offset: 5px; border-radius: 1px; }
section { border-top: 1px solid #e6e6e6; padding: 2rem 0 .5rem; }
.entry { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1.5rem; margin-bottom: 2rem; break-inside: avoid; }
.period { font-size: .875rem; color: #616161; padding-top: .12rem; }
.organization { color: #616161; margin: .2rem 0 .7rem; }
.entry p:last-child { margin-bottom: 0; }

@media (max-width: 36rem) {
  .resume { padding: 3rem 0; }
  .intro { padding-bottom: 2.5rem; }
  .entry { grid-template-columns: 1fr; gap: .35rem; }
  .period { margin: 0; }
}

@media print {
  @page { margin: 18mm; }
  body { font-size: 10pt; }
  .resume { width: 100%; padding: 0; }
  .intro { padding-bottom: 1.5rem; }
  section { padding-top: 1rem; }
  .entry { margin-bottom: 1rem; }
  h1 { font-size: 25pt; }
  h2, .period { font-size: 9pt; }
  h3 { font-size: 10pt; }
  a { text-decoration: none; }
}
.eyebrow { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.role { color: #616161; margin-bottom: 1.5rem; }
.summary { max-width: 38rem; }
nav { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1.5rem; font-size: .875rem; }
.note { color: #616161; font-size: .875rem; }
section > p:last-child { margin-bottom: 1.5rem; }
summary { cursor: pointer; padding: .5rem 0 1.5rem; font-size: .875rem; }
summary .note { margin-left: .6rem; }
summary:focus-visible { outline: 2px solid #202020; outline-offset: 4px; }
.previous { padding-top: 1rem; }
@media print {
  details > .previous { display: block !important; }
  details::details-content { content-visibility: visible; display: block; }
  summary { list-style: none; }
  .note { font-size: 9pt; }
}
.resume { width: min(100% - 3rem, 42rem); padding-top: 4.5rem; }
h1 { font-size: clamp(1.8rem, 4vw, 2.25rem); letter-spacing: -.035em; }
.eyebrow, h2, .period, nav, summary { font-family: ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace; }
.eyebrow { font-size: .8125rem; }
@media (max-width: 36rem) { .resume { padding-top: 2.5rem; } }
@media print { .resume { padding-top: 0; } }
.languages { display: flex; justify-content: flex-end; gap: .5rem; margin-bottom: 2rem; }
.languages button { display: inline-flex; gap: .4rem; align-items: center; border: 1px solid transparent; border-radius: 3px; background: none; color: #616161; padding: .4rem .5rem; min-height: 2.75rem; cursor: pointer; font: .8125rem ui-monospace, Consolas, monospace; }
.languages button[aria-pressed="true"] { border-color: #ccc; color: #202020; }
.languages button:hover { background: #f4f4f4; }
.story { width: min(100% - 3rem, 42rem); margin: 0 auto; padding: 4rem 0; }
.story .intro { padding-bottom: 4rem; }
.story .identity { margin-bottom: 1.5rem; }
.story h1 { font-size: clamp(2rem, 5vw, 3rem); }
.story .lead { font-size: clamp(1.15rem, 2.5vw, 1.35rem); line-height: 1.6; max-width: 38rem; }
.story section { max-width: 38rem; padding: 2.5rem 0 1rem; }
.story section h2 { color: #616161; font-size: .875rem; }
.story footer { padding-top: 2rem; }
@media (max-width: 36rem) { .story { padding: 2.5rem 0; } .story .intro { padding-bottom: 2.5rem; } }
.languages button:focus-visible { outline: 2px solid #202020; outline-offset: 3px; }
.languages button span:first-child { font-size: 1.25rem; }
@media print { .languages { display: none; } }
@media screen and (prefers-color-scheme: dark) {
  :root { color-scheme: dark; color: #e4e4e7; background: #151517; }
  .eyebrow, h2, .period, .organization, .role, .note { color: #a1a1aa; }
  section { border-color: #303034; }
  a { text-decoration-color: #71717a; }
  a:hover { text-decoration-color: currentColor; }
  a:focus-visible, summary:focus-visible, .languages button:focus-visible { outline-color: #e4e4e7; }
  .languages button { color: #a1a1aa; }
  .languages button[aria-pressed="true"] { border-color: #62626c; color: #f4f4f5; }
  .languages button:hover { background: #27272a; }
}
