:root{color-scheme:light;--paper:#f7f6f1;--ink:#202c2b;--muted:#586661;--line:#d9ddd4;--accent:#1b6255;--wash:#ebeee5}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 Georgia,"Times New Roman",serif}a{color:inherit}a:hover{color:var(--accent)}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:2px}.shell{width:min(1060px,calc(100% - 72px));margin:auto}.skip{position:absolute;top:12px;left:16px;transform:translateY(-200%);padding:8px 12px;background:var(--ink);color:var(--paper);z-index:3}.skip:focus{transform:none}.site-header{padding:38px 0 28px;display:flex;justify-content:space-between;align-items:flex-start;gap:32px;border-bottom:1px solid var(--line);font:14px/1.5 system-ui,sans-serif}.wordmark{text-decoration:none;font-weight:600;letter-spacing:.035em;white-space:nowrap}nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 25px}nav a{text-decoration:none}nav a[aria-current=page]{color:var(--accent);text-decoration:underline;text-underline-offset:7px}.hero{padding:100px 0 72px;max-width:850px}.eyebrow{font:12px/1.5 system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:0 0 20px}h1{font-weight:400;font-size:clamp(48px,8vw,88px);line-height:1.04;letter-spacing:-.055em;margin:0 0 29px}.intro{font-size:clamp(22px,3.2vw,31px);line-height:1.45;max-width:680px;margin:0 0 24px}.note{color:var(--muted);max-width:580px;margin:0}.section-heading{font:12px/1.5 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:0 0 18px}.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin:0 0 70px}.section-link{display:grid;grid-template-columns:35px 1fr 24px;gap:12px;padding:27px 0 30px;border-top:1px solid var(--line);text-decoration:none;align-items:start}.number{font:12px/1.5 system-ui,sans-serif;color:var(--muted);padding-top:6px}.section-link h2{font-size:27px;line-height:1.25;font-weight:400;letter-spacing:-.025em;margin:0 0 10px}.section-link p{font:14px/1.65 system-ui,sans-serif;color:var(--muted);margin:0;max-width:330px}.arrow{font:23px/1.3 system-ui,sans-serif;color:var(--accent)}.section-link:hover h2{text-decoration:underline;text-underline-offset:5px}.page-body{max-width:650px;border-top:1px solid var(--line);padding:28px 0 75px}.page-body h2{font-weight:400;font-size:24px;margin:0 0 12px}.back-link{display:inline-block;margin-top:32px;color:var(--accent);font:14px/1.5 system-ui,sans-serif;text-underline-offset:5px}.site-footer{padding:25px 0 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font:12px/1.6 system-ui,sans-serif;color:var(--muted)}.site-footer a{text-underline-offset:4px}.status{display:inline-flex;gap:7px;align-items:center}.status-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}
@media(max-width:700px){.shell{width:calc(100% - 40px)}.site-header{padding:24px 0;display:block}nav{justify-content:flex-start;gap:12px 21px;margin-top:22px}.hero{padding:62px 0 48px}.section-grid{grid-template-columns:1fr;margin-bottom:48px}.section-link{padding:25px 0}.site-footer{flex-wrap:wrap}.page-body{padding-bottom:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.home-connections{display:flex;align-items:center;gap:20px 28px;flex-wrap:wrap;margin-top:34px}.home-email{font:14px/1.5 system-ui,sans-serif;color:var(--accent);text-underline-offset:5px}.profile-links{display:flex;flex-wrap:wrap;gap:10px}.profile-badge{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;font:13px/1.5 system-ui,sans-serif;text-decoration:none;white-space:nowrap}.profile-badge:hover{background:var(--wash);border-color:var(--accent)}.badge-dot{width:6px;height:6px;border-radius:50%;background:#59635e}.profile-badge--orcid .badge-dot{background:#5d7c25}.profile-badge--github .badge-dot{background:#24292f}.profile-badge--linkedin .badge-dot{background:#0a66c2}.badge-arrow{color:var(--muted)}.email-link{display:inline-block;font-size:clamp(22px,4.5vw,34px);line-height:1.3;color:var(--accent);text-decoration:none;overflow-wrap:anywhere;margin:2px 0 25px}.email-link:hover{text-decoration:underline;text-underline-offset:6px}.contact-list{margin:30px 0 12px;font:14px/1.6 system-ui,sans-serif}.contact-row{display:grid;grid-template-columns:95px minmax(0,1fr);gap:16px;padding:17px 0;border-top:1px solid var(--line)}.contact-row dt{color:var(--muted)}.contact-row dd{margin:0;overflow-wrap:anywhere}.contact-row a{text-decoration:none;color:var(--accent)}.contact-row a:hover{text-decoration:underline;text-underline-offset:4px}.prose:empty{display:none}.prose{overflow-wrap:anywhere}.prose h2{font-size:30px;line-height:1.25;margin:35px 0 15px}.prose h3{font-size:23px;line-height:1.35;font-weight:400}.prose a{color:var(--accent);text-underline-offset:4px}.prose img{max-width:100%;height:auto}.prose pre{overflow:auto;background:var(--wash);padding:18px;font:13px/1.6 ui-monospace,monospace}.prose code{font-size:.85em}.prose blockquote{margin:25px 0;padding-left:22px;border-left:2px solid var(--line);color:var(--muted)}.prose table{border-collapse:collapse;display:block;overflow:auto;max-width:100%;font-size:15px}.prose th,.prose td{padding:10px 14px;border:1px solid var(--line)}main:focus{outline:none}@media(max-width:700px){.home-connections{gap:18px}.contact-row{grid-template-columns:1fr;gap:5px}.site-footer{align-items:flex-start}.site-footer a{overflow-wrap:anywhere}}
