@font-face {
  font-family: "Work Sans";
  src: url("/assets/work-sans.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Work Sans";
  src: url("/assets/work-sans-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}

* { box-sizing: border-box; }
:root {
  color-scheme: light;
  --background: #fff;
  --text: #242424;
  --muted: #6b6b6b;
  --link: #454545;
  --accent: #006ac2;
  --border: #e4e4e4;
  --hover: #f4f4f4;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --background: #171717;
  --text: #e7e7e7;
  --muted: #a3a3a3;
  --link: #c7c7c7;
  --accent: #8dc8ff;
  --border: #3d3d3d;
  --hover: #252525;
}
/* Respect the device theme even when JavaScript is disabled. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --background: #171717;
    --text: #e7e7e7;
    --muted: #a3a3a3;
    --link: #c7c7c7;
    --accent: #8dc8ff;
    --border: #3d3d3d;
    --hover: #252525;
  }
}
html { background: var(--background); }
body { margin: 0; color: var(--text); font: 400 15px/1.75 "Work Sans", sans-serif; -webkit-font-smoothing: antialiased; }
main { width: min(600px, calc(100% - 48px)); margin: clamp(32px, 7vw, 80px) auto 80px; overflow-wrap: break-word; }
.header-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.portrait { display: block; width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
h1 { margin: 16px 0 0; font-size: 16px; font-weight: 500; line-height: 1.5; }
.email { display: inline-block; color: var(--muted); text-decoration: none; }
nav { display: flex; align-items: center; gap: 8px; margin: 20px 0 28px; }
nav a { display: inline-flex; align-items: center; min-height: 44px; }
a { color: var(--link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--accent); }
:is(a, button):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 3px; }
.theme-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 88px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 24px; background: transparent; color: var(--muted); font: inherit; font-size: 13px; cursor: pointer; }
.theme-toggle:hover { background: var(--hover); color: var(--text); }
.theme-toggle[hidden], .sun-icon { display: none; }
:root[data-theme="dark"] .sun-icon { display: block; }
:root[data-theme="dark"] .moon-icon { display: none; }
p, ul { margin: 0; }
.intro { margin-bottom: 28px; }
h2 { margin: 0 0 16px; font-size: 15px; font-weight: 500; line-height: 1.75; }
ul { padding-left: 18px; }
li { padding-left: 2px; }
li + li { margin-top: 8px; }
li::marker { color: var(--muted); font-size: 10px; }
.experiments { margin-top: 24px; }
.experiments > a { text-decoration: none; }
section + section { margin-top: 32px; }
.work-history li + li { margin-top: 20px; }
@media (max-width: 480px) {
  .portrait { width: 64px; height: 64px; }
  main { margin-bottom: 48px; }
}
