:root {
  color-scheme: light;
  --paper: #f8f9fa;
  --surround: var(--paper);
  --bar: #212529;
  --ink: #282723;
  --muted: #5e5b54;
  --faint: #77736b;
  --line: #d9d6ce;
  --link: #0000ee;
  --nav-hover-link: #ffff11;
  --canvas-width: 1200px;
  --body-font: Arial, Helvetica, sans-serif;
  --sans: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: auto;
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

body {
  margin: 0;
  background-color: var(--surround);
  color: var(--ink);
  font-family: var(--body-font);
  font-size: 17px;
  line-height: 1.7;
}

a { color: var(--link); text-underline-offset: 3px; }
a:hover { color: var(--ink); }
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: 3px;
}
.nav-link:focus-visible { outline-color: #f2f6f2; }
#main { scroll-margin-top: 5rem; }
#main:focus-visible { outline: 3px solid var(--link); outline-offset: -3px; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 10;
  top: 12px;
  left: 12px;
  padding: 8px 12px;
  transform: translateY(-160%);
  background: var(--paper);
  color: var(--ink);
  outline: 1px solid var(--ink);
}
.skip-link:focus { transform: translateY(0); }

.topbar {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 16px 0;
  background: var(--bar);
}
.site-nav {
  display: flex;
  width: min(var(--canvas-width), calc(100% - 40px));
  align-items: center;
  gap: 28px;
  margin: 0 auto;
  padding: 0 44px;
}
.nav-link {
  position: relative;
  display: block;
  width: fit-content;
  padding: 2px 10px;
  border: 1px solid transparent;
  background: transparent;
  color: #f2f6f2;
  font-family: var(--sans);
  font-size: 17px;
  text-decoration: underline;
}
.nav-link:not(.is-active):hover { color: var(--nav-hover-link); }
.nav-link.is-active {
  border-color: var(--paper);
  border-radius: 0;
  color: #f2f6f2;
  text-decoration: none;
}
html.initial-research-garden .nav-link[href="#about"] { border-color: transparent; }
html.initial-research-garden .nav-link[href="#research-garden"] {
  border-color: var(--paper);
  text-decoration: none;
}
.nav-link.is-active:focus-visible { outline-color: var(--link); }
.content {
  width: min(var(--canvas-width), calc(100% - 48px));
  margin: 0 auto;
  padding: 44px;
  background: var(--paper);
}

.page-footer {
  width: min(var(--canvas-width), calc(100% - 48px));
  margin: 6px auto 24px;
  padding: 0 44px;
  color: var(--ink);
  font-size: 12px;
  text-align: center;
}
.page-footer p { margin: 0; }

.page-section {
  padding: 0 0 40px;
}

.page-section[hidden] { display: none; }
html.initial-research-garden #about { display: none; }
html.initial-research-garden #research-garden { display: block; }

.eyebrow {
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 14px;
  font-style: italic;
}
.eyebrow-line { display: none; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--body-font); }

h1 {
  margin: 0 0 15px;
  font-size: 24px;
  font-weight: normal;
  letter-spacing: -0.045em;
  line-height: 1.08;
}

h1 em, h2 em { font-weight: 400; }

.intro {
  max-width: 540px;
  margin-bottom: 0;
  color: #44413b;
  font-size: 19px;
  line-height: 1.65;
}

.about-rule { height: 1px; margin: 38px 0 22px; background: var(--line); }
.profile-meta { color: var(--muted); font-size: 16px; line-height: 1.35; }
.profile-meta p { margin: 0 0 2px; }
.profile-meta .role { color: var(--ink); font-size: 18px; }
.location .flag { margin-left: 4px; }
.email-address { color: inherit; }
.profile-meta a { color: var(--link); }
.about-copy {
  color: #35332e;
  font-size: 17px;
  line-height: 1.75;
}
.about-copy p { margin: 0 0 20px; }
.cv-section { margin-top: 42px; }
.cv-details { margin-top: 30px; }
.cv-details summary {
  width: fit-content;
  color: var(--link);
  cursor: pointer;
  font-size: 16px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cv-details[open] summary { margin-bottom: 18px; }
.cv-section > h2 {
  margin-bottom: 16px;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--line);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: 0.035em;
}
.cv-entry { margin: 0 0 24px; color: #35332e; font-size: 17px; line-height: 1.6; }
.cv-entry-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.cv-entry h3 { margin: 0; font-size: 17px; font-weight: 700; }
.cv-date { color: var(--muted); font-size: 17px; }
.cv-institution { margin: 2px 0 6px; font-style: italic; }
.cv-detail { margin: 0; }
.cv-entry ul { margin: 8px 0 0; padding-left: 20px; }
.cv-entry li { padding-left: 2px; }
.publication p { margin: 0 0 3px; }
.publication .cv-paper-title { font-style: italic; }
.cv-line-entry {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr) 92px;
  align-items: baseline;
  gap: 12px;
  padding: 9px 0;
  font-size: 17px;
}
.cv-line-entry strong { font-weight: 700; }

.text-link {
  display: inline-block;
  margin-top: 24px;
  font-size: 15px;
}
.text-link span { margin-left: 3px; }

.section-heading { margin-bottom: 32px; }
h2 {
  margin: 0;
  font-size: clamp(34px, 3.5vw, 42px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.2;
}
.section-deck { max-width: 570px; margin: 15px 0 0; color: var(--muted); font-size: 15px; }

.garden-soon { margin: 0; color: #35332e; font-size: 17px; }

.garden-list, .post-list { border-top: 1px solid var(--line); }
.garden-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 22px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.garden-item h3, .post-item h3 { margin: 0 0 4px; font-size: 18px; font-weight: 400; }
.garden-item p, .post-item p { margin: 0; color: var(--muted); font-size: 14px; }
.item-state { color: var(--muted); font-size: 13px; font-style: italic; }

.post-item {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  align-items: baseline;
  gap: 22px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.post-item time { color: var(--muted); font-size: 13px; }
.post-item h3 a { color: var(--link); }
.post-arrow { display: none; }

.note-grid { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--line); }
.note-card { padding: 17px 0; border-bottom: 1px solid var(--line); }
.note-card p { max-width: 620px; margin: 0; font-size: 17px; line-height: 1.55; }

.site-footer { margin-top: 34px; color: var(--muted); font-size: 13px; }

@media (max-width: 850px) {
  .content, .page-footer { width: min(var(--canvas-width), calc(100% - 40px)); }
}

@media (max-width: 640px) {
  .topbar { padding: 12px 0; }
  .site-nav {
    gap: clamp(4px, 2vw, 10px);
    overflow: visible;
    white-space: nowrap;
    padding: 0 22px;
  }
  .nav-link { padding: 6px 8px; font-size: 16px; }
  .content { width: calc(100% - 40px); padding: 28px 22px; }
  .page-footer { width: calc(100% - 40px); padding: 0 22px; }
  .page-section { padding: 0 0 36px; }
  h1 { font-size: 23px; }
  .profile-meta { font-size: 15px; }
  .about-copy { font-size: 17px; }
  .garden-soon { font-size: 17px; }
  .cv-section { margin-top: 34px; }
  .cv-section > h2 { font-size: 17px; }
  .cv-entry-heading { align-items: flex-start; gap: 8px; }
  .cv-entry h3 { font-size: 17px; }
  .cv-line-entry { grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; }
  .cv-line-entry strong { grid-column: 1; }
  .cv-line-entry span:nth-child(2) { grid-column: 1; }
  .cv-line-entry .cv-date { grid-column: 2; grid-row: 1 / span 2; }
  .about-rule { margin: 28px 0 18px; }
  h2 { font-size: 35px; }
  .garden-item { grid-template-columns: 1fr; gap: 3px; }
  .item-state { font-size: 12px; }
  .post-item { grid-template-columns: 1fr; gap: 2px; }
  .post-item time { font-size: 12px; }
  .section-deck { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
