:root {
  color-scheme: light dark;
  --page: #f8f9fa;
  --surface: #ffffff;
  --surface-soft: #f1f3f5;
  --text: #212529;
  --muted: #6c757d;
  --heading: #212529;
  --accent: #0a58ca;
  --accent-hover: #084298;
  --border: #6c757d;
  --shadow: 0 12px 32px rgba(33, 37, 41, 0.06);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: var(--page);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: var(--accent); text-decoration: none; text-underline-offset: 0.2em; }
a:hover { color: var(--accent-hover); text-decoration: underline; }
strong { color: var(--heading); font-weight: 650; }
p, h1, h2, h3, ol, dl { margin-top: 0; }
h1, h2, h3 { color: var(--heading); line-height: 1.18; }
h1 { margin-bottom: 0; font-size: clamp(2.75rem, 6.5vw, 4.25rem); font-weight: 690; letter-spacing: -0.05em; }
h2 { margin-bottom: 0; font-size: clamp(1.75rem, 4vw, 2.35rem); font-weight: 670; letter-spacing: -0.035em; }
h3 { margin-bottom: 0; font-size: 1.08rem; font-weight: 680; letter-spacing: -0.015em; }

.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 100; padding: 0.6rem 0.9rem; color: white; background: var(--heading); border-radius: 0.35rem; }
.skip-link:focus { top: 1rem; }

.page-shell { width: min(100% - 48px, 980px); margin: 0 auto; }
.site-header { display: flex; align-items: center; justify-content: space-between; min-height: 76px; border-bottom: 1px solid var(--border); }
.brand { color: var(--heading); font-size: 0.94rem; font-weight: 700; letter-spacing: -0.02em; }
.brand:hover { text-decoration: none; }
.site-nav { display: flex; gap: clamp(1rem, 3vw, 1.8rem); }
.site-nav a { color: var(--muted); font-size: 0.8rem; font-weight: 630; }
.site-nav a:hover { color: var(--accent); }

.hero { padding: clamp(4rem, 9vw, 6rem) 0 clamp(3.25rem, 7vw, 4.5rem); }
.eyebrow, .section-kicker {
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 730;
  letter-spacing: 0.105em;
  text-transform: uppercase;
}
.eyebrow { margin-bottom: 1.2rem; }
.profile-links { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.6rem; }
.profile-links a { display: inline-flex; align-items: center; justify-content: center; width: 2.35rem; height: 2.35rem; color: var(--accent); border: 1px solid var(--border); border-radius: 50%; transition: color 0.18s ease, border-color 0.18s ease, transform 0.18s ease; }
.profile-links a:hover { color: var(--accent-hover); text-decoration: none; border-color: var(--accent); transform: translateY(-1px); }
.profile-links a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.profile-links svg { width: 1.12rem; height: 1.12rem; }
.text-link { font-size: 0.84rem; font-weight: 670; }

.content-section { padding: clamp(2.75rem, 6vw, 4rem) 0; border-top: 1px solid var(--border); scroll-margin-top: 1rem; }
.about, .section-intro { display: grid; grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.35fr); gap: clamp(2rem, 6vw, 4.5rem); align-items: start; }
.section-title .section-kicker, .section-intro .section-kicker { margin-bottom: 0.65rem; }
.section-title h2 { max-width: 330px; font-size: clamp(1.4rem, 2.5vw, 1.8rem); line-height: 1.3; letter-spacing: -0.025em; }
.section-intro { margin-bottom: 2rem; }
.section-intro > p { max-width: 520px; margin: 0; color: var(--muted); }
.section-intro.compact { grid-template-columns: 1fr; }
.section-body p { margin: 0 0 1rem; }
.section-body p:last-child { margin-bottom: 0; }
.prose { max-width: 620px; }

.news-list { margin: 0; border-top: 1px solid var(--border); }
.news-list > div { display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 1.25rem; padding: 0.9rem 0; border-bottom: 1px solid var(--border); }
.news-list dt { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.76rem; font-weight: 680; }
.news-list dd { margin: 0; }

.publications-section > .section-kicker { margin-bottom: 0.65rem; }
.student-callout { display: grid; grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.4fr); gap: clamp(2rem, 6vw, 4.5rem); margin: 1.25rem 0 3.5rem; padding: clamp(1.75rem, 4vw, 2.75rem); background: var(--surface-soft); border: 1px solid var(--border); border-radius: 0.8rem; }
.student-callout p { margin-bottom: 1rem; }
.student-callout .section-kicker { margin-bottom: 0.65rem; }

.site-footer { display: grid; grid-template-columns: 1.35fr 1fr; gap: 2rem; padding: 2.5rem 0 3rem; color: var(--muted); font-size: 0.74rem; border-top: 1px solid var(--border); }
.site-footer p { margin: 0; }
.site-footer p:last-child { text-align: right; }

@media (prefers-color-scheme: dark) {
  :root {
    --page: #10161d;
    --surface: #151e27;
    --surface-soft: #192a36;
    --text: #cad4dd;
    --muted: #94a3b2;
    --heading: #f2f6f9;
    --accent: #77bee6;
    --accent-hover: #9bd2ef;
    --border: #2b3946;
    --shadow: none;
  }
}

@media (max-width: 760px) {
  .page-shell { width: min(100% - 32px, 980px); }
  .site-header { min-height: 68px; }
  .brand { font-size: 0.88rem; }
  .site-nav { gap: 1rem; }
  .hero { padding-top: 3.5rem; }
  .about, .section-intro, .student-callout { grid-template-columns: 1fr; gap: 1.25rem; }
  .news-list > div { grid-template-columns: 92px minmax(0, 1fr); gap: 0.8rem; }
  .site-footer { grid-template-columns: 1fr; gap: 0.8rem; }
  .site-footer p:last-child { text-align: left; }
}

@media (max-width: 420px) {
  h1 { font-size: 2.65rem; }
  .profile-links { gap-right: 1rem; }
}

@media print {
  :root { --page: #fff; --surface: #fff; --surface-soft: #fff; --text: #222; --muted: #555; --heading: #111; --border: #ccc; }
  .site-header { display: none; }
  .page-shell { width: 100%; }
  body { font-size: 11pt; }
}
