:root{--bg:#faf6f0;--surface:#fffdf9;--text:#2a2320;--text-muted:#6b5f58;--accent:#1e3a8a;--accent-hover:#1a2f6b;--border:#e8ddd0;--shadow:0 1px 2px #2a23200a, 0 4px 12px #2a23200f;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100vh}h1,h2,h3{letter-spacing:-.01em;color:var(--text);margin:0;font-family:Fraunces,Source Serif Pro,Georgia,serif;font-weight:500;line-height:1.2}p{margin:0}a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;transition:color .12s}a:hover{color:var(--accent-hover)}#root{min-height:100vh}.page{flex-direction:column;gap:80px;max-width:960px;margin:0 auto;padding:80px 32px 48px;display:flex}@media (width<=720px){.page{gap:56px;padding:48px 20px 32px}}.hero{grid-template-columns:auto 1fr;align-items:center;gap:40px;display:grid}.headshot{object-fit:cover;border:4px solid var(--surface);width:220px;height:220px;box-shadow:var(--shadow);border-radius:50%}.hero-text h1{margin-bottom:8px;font-size:48px}.tagline{color:var(--accent);letter-spacing:.01em;margin-bottom:20px;font-size:18px;font-weight:500}.bio{color:var(--text-muted);max-width:56ch;margin-bottom:24px;font-size:17px}.hero-links{gap:20px;font-weight:500;display:flex}.hero-links a{padding-bottom:2px}@media (width<=720px){.hero{text-align:center;grid-template-columns:1fr;justify-items:center;gap:24px}.headshot{width:160px;height:160px}.hero-text h1{font-size:36px}.hero-links{justify-content:center}.bio{text-align:left}}.block h2{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:12px;font-size:28px}.timeline{flex-direction:column;gap:28px;margin:0;padding:0;list-style:none;display:flex}.role-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.role h3{font-size:19px}.role-company{color:var(--accent);font-weight:500}.role-meta{color:var(--text-muted);white-space:nowrap;font-size:14px}.role-bullets{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.role-bullets li{color:var(--text-muted);padding-left:18px;font-size:15.5px;position:relative}.role-bullets li:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;width:6px;height:6px;position:absolute;top:10px;left:2px}@media (width<=640px){.role-head{flex-direction:column;gap:4px}.role-meta{white-space:normal}}.research-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:24px}.research-card h3{margin-bottom:8px;font-size:20px}.research-card p{color:var(--text-muted);font-size:15.5px}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;display:grid}.skill-group h3{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;font-family:Inter,sans-serif;font-size:15px;font-weight:600}.soft-skills{border-top:1px dashed var(--border);color:var(--text-muted);margin-top:24px;padding-top:20px;font-size:15px}.soft-skills strong{color:var(--text);font-weight:600}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;transition:transform .16s,box-shadow .16s,border-color .16s}.project-card:hover{box-shadow:var(--shadow);border-color:var(--accent);transform:translateY(-2px)}.project-link{color:inherit;height:100%;padding:24px;text-decoration:none;display:block}.project-link:hover{color:inherit}.project-card h3{color:var(--text);margin-bottom:8px;font-size:20px}.project-card p{color:var(--text-muted);margin-bottom:16px;font-size:15px}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tags li{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500}.footer{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;padding-top:24px;font-size:14px}
