*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f9f9f9;--color-text: #111111;--color-text-muted: #666666;--color-accent: #2952e3;--color-border: #e8e8e8;--max-width: 760px}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}header{border-bottom:1px solid var(--color-border);padding:20px 0}.nav{display:flex;justify-content:space-between;align-items:center}.nav-name{font-weight:600;font-size:1rem;color:var(--color-text);text-decoration:none}.nav-name:hover{text-decoration:none}.nav-links{display:flex;gap:24px}.nav-links a{color:var(--color-text-muted);font-size:.9rem;text-decoration:none}.nav-links a:hover{color:var(--color-text);text-decoration:none}main{min-height:calc(100vh - 140px)}footer{border-top:1px solid var(--color-border);padding:24px 0;margin-top:80px}.footer-inner{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;color:var(--color-text-muted);flex-wrap:wrap;gap:12px}.footer-links{display:flex;gap:20px}.footer-links a{color:var(--color-text-muted);text-decoration:none}.footer-links a:hover{color:var(--color-text)}.hero{padding:72px 0 56px}.hero h1{font-size:2.25rem;font-weight:700;margin-bottom:20px;letter-spacing:-.02em;color:var(--color-accent)}.hero p{font-size:1.05rem;color:var(--color-text-muted);line-height:1.8}.hero-links{margin-top:28px;display:flex;gap:20px}.hero-links a{font-size:.9rem;color:var(--color-text-muted);text-decoration:none;border-bottom:1px solid var(--color-border);padding-bottom:2px;transition:color .15s,border-color .15s}.hero-links a:hover{color:var(--color-text);border-color:var(--color-text);text-decoration:none}.section{padding:48px 0;border-top:1px solid var(--color-border)}.section-title{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:28px}.projects-grid{display:grid;gap:16px}.project-card{border:1px solid var(--color-border);border-radius:8px;padding:24px;transition:border-color .15s}.project-card:hover{border-color:#b0b0b0}.project-card-header{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}.project-card-title{font-size:.975rem;font-weight:600;color:var(--color-text)}.publication-badge{font-size:.7rem;font-weight:500;background:#eef2ff;color:#4338ca;padding:2px 8px;border-radius:20px}.project-card-desc{font-size:.9rem;color:var(--color-text-muted);line-height:1.65;margin-bottom:16px}.project-card-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.project-card-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:.72rem;color:var(--color-text-muted);background:#f5f5f5;padding:3px 10px;border-radius:20px}.project-card-link{font-size:.85rem;color:var(--color-accent);text-decoration:none;white-space:nowrap}.project-card-link:hover{text-decoration:underline}.experience-list{display:grid;gap:0}.experience-item{border-bottom:1px solid var(--color-border);border-left:3px solid var(--color-accent);padding:20px 0 20px 16px}.experience-item:last-child{border-bottom:none}.experience-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap}.experience-company{font-weight:600;font-size:.975rem;color:var(--color-text)}.experience-role{font-size:.85rem;color:var(--color-text-muted);white-space:nowrap}.experience-desc{font-size:.9rem;color:var(--color-text-muted);line-height:1.65}.publication-item{font-size:.9rem;line-height:1.7;color:var(--color-text-muted)}.publication-item a{color:var(--color-text);font-weight:500}.publication-item .pub-venue{font-style:italic}.writing-page{padding:72px 0}.writing-page h1{font-size:1.75rem;font-weight:700;margin-bottom:20px;letter-spacing:-.02em}.writing-empty{font-size:1rem;color:var(--color-text-muted);margin-top:8px}@media (max-width: 600px){.hero h1{font-size:1.5rem}.footer-inner{flex-direction:column;align-items:flex-start}}
