@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{color-scheme:light;font-size:16px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", Menlo, monospace;--color-bg: #f8fafb;--color-surface: #ffffff;--color-surface-alt: #f1f5f9;--color-text: #0f172a;--color-text-muted: #475569;--color-text-soft: #94a3b8;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-soft: rgba(37, 99, 235, .07);--color-accent-glow: rgba(37, 99, 235, .12);--color-highlight: #1e40af;--color-callout-bg: linear-gradient(135deg, rgba(37, 99, 235, .04) 0%, rgba(37, 99, 235, .01) 100%);--color-callout-border: rgba(37, 99, 235, .18);--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1.125rem;--space-lg: 1.75rem;--space-xl: 2.5rem;--space-2xl: 3.5rem;--space-3xl: 5rem;--space-4xl: 6rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 999px;--transition-fast: .15s ease;--transition-medium: .25s ease;--max-width: 1200px;--sidebar-width: 300px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 16px rgba(15, 23, 42, .06);--shadow-lg: 0 8px 30px rgba(15, 23, 42, .08);--shadow-card: 0 1px 3px rgba(15, 23, 42, .04), 0 1px 2px rgba(15, 23, 42, .02);--shadow-card-hover: 0 12px 32px rgba(15, 23, 42, .1)}[data-theme=dark]{color-scheme:dark;--color-bg: #0f172a;--color-surface: #1e293b;--color-surface-alt: #283548;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-text-soft: #64748b;--color-border: #334155;--color-border-strong: #475569;--color-accent: #60a5fa;--color-accent-hover: #93c5fd;--color-accent-soft: rgba(96, 165, 250, .1);--color-accent-glow: rgba(96, 165, 250, .16);--color-highlight: #93c5fd;--color-callout-bg: linear-gradient(135deg, rgba(96, 165, 250, .08) 0%, rgba(96, 165, 250, .03) 100%);--color-callout-border: rgba(96, 165, 250, .25);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .45);--shadow-card: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .15);--shadow-card-hover: 0 12px 32px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box}html{background:var(--color-bg);scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:1.1875rem;line-height:1.7;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background var(--transition-medium),color var(--transition-medium)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover,a:focus-visible{color:var(--color-accent-hover)}p{max-width:65ch}.skip-link{position:absolute;left:-999px;top:var(--space-sm);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;z-index:100}.skip-link:focus{left:var(--space-md)}.site-layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;max-width:var(--max-width);margin:0 auto;padding:var(--space-3xl) var(--space-xl);gap:var(--space-3xl)}@media(max-width:960px){.site-layout{grid-template-columns:1fr;padding:var(--space-xl) var(--space-lg);gap:var(--space-2xl)}}.sidebar{position:sticky;top:var(--space-2xl);height:fit-content;display:flex;flex-direction:column;gap:var(--space-lg)}@media(max-width:960px){.sidebar{position:relative;top:0;text-align:center;align-items:center}}.sidebar__photo{width:150px;height:150px;border-radius:50%;object-fit:cover;object-position:center 20%;border:3px solid var(--color-border-strong);box-shadow:0 0 0 5px var(--color-surface-alt);transition:border-color var(--transition-fast)}.sidebar__photo:hover{border-color:var(--color-accent)}.sidebar__name{font-size:1.75rem;font-weight:700;margin:0;letter-spacing:-.025em}.sidebar__title{color:var(--color-text-muted);font-size:1.0625rem;margin:var(--space-2xs) 0 0}.sidebar__tagline{color:var(--color-accent);font-size:1rem;font-weight:500;margin-top:var(--space-xs)}.sidebar__contact{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-sm)}@media(max-width:960px){.sidebar__contact{flex-direction:row;flex-wrap:wrap;justify-content:center}}.sidebar__link{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-text-muted);font-size:1rem;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.sidebar__link:hover{color:var(--color-accent);background:var(--color-accent-soft)}.sidebar__link:focus-visible,.card:focus-visible,.card--clickable:focus-visible,.button:focus-visible,.timeline-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.sidebar__link svg{width:16px;height:16px;flex-shrink:0}.sidebar__nav{display:flex;flex-direction:column;gap:var(--space-2xs);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border)}@media(max-width:960px){.sidebar__nav{display:none}}.sidebar__nav-link{color:var(--color-text-muted);font-size:1.0625rem;font-weight:500;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.sidebar__nav-link:hover,.sidebar__nav-link.active{color:var(--color-accent);background:var(--color-accent-soft)}.sidebar__theme-toggle{margin-top:var(--space-md)}.main-content{display:flex;flex-direction:column;gap:var(--space-3xl);min-width:0}.tech-badges{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-lg)}.tech-badge{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:.9rem;font-weight:500;color:var(--color-text-muted);transition:all var(--transition-fast)}.tech-badge:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.tech-badge svg,.tech-badge img{width:14px;height:14px}.hero-intro{margin-bottom:var(--space-xl)}.hero-intro__greeting{font-size:1.1875rem;color:var(--color-text-muted);margin-bottom:var(--space-xs)}h1.hero-intro__headline,.hero-intro__headline{font-size:clamp(2rem,1.6rem + 1.5vw,2.85rem);font-weight:700;line-height:1.15;letter-spacing:-.03em;margin:0 0 var(--space-lg)}.hero-intro__headline .accent{color:var(--color-accent)}.hero-intro__description{font-size:1.25rem;color:var(--color-text-muted);line-height:1.75;max-width:60ch}.hero-intro__status{font-size:1.0625rem;color:var(--color-text-muted);margin:var(--space-md) 0 0}.hero-intro__status strong{color:var(--color-accent)}.hero-intro__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-lg)}.callout{background:var(--color-callout-bg);border:1px solid var(--color-callout-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);margin:var(--space-lg) 0}.callout__icon{font-size:1.25rem;margin-bottom:var(--space-xs)}.callout__title{font-size:.9rem;font-weight:600;color:var(--color-accent);margin:0 0 var(--space-xs);text-transform:uppercase;letter-spacing:.06em}.callout__content{color:var(--color-text);font-size:1.125rem;line-height:1.7}.callout__content p{margin:0}.callout--highlight{border-left:3px solid var(--color-accent)}.section{scroll-margin-top:var(--space-xl)}.section--split{display:grid;gap:var(--space-xl);align-items:start}.section__lead,.section__body{min-width:0}@media(min-width:960px){.section--split{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:var(--space-2xl)}}.section__header{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-xl);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.section__title{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin:0;display:flex;align-items:center;gap:var(--space-xs)}.section__title:before{content:"#";color:var(--color-accent);font-weight:400;opacity:.6}.section__subtitle{font-size:1rem;color:var(--color-text-soft)}.timeline{position:relative;display:flex;flex-direction:column;gap:var(--space-lg)}.timeline:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--color-accent) 0%,var(--color-border) 100%);border-radius:1px}@media(min-width:640px){.timeline:before{left:120px}}.timeline-item{position:relative;display:grid;gap:var(--space-sm);padding-left:var(--space-xl)}@media(min-width:640px){.timeline-item{grid-template-columns:100px 1fr;gap:var(--space-xl);padding-left:0}}.timeline-item:before{content:"";position:absolute;left:-4px;top:6px;width:10px;height:10px;background:var(--color-accent);border-radius:50%;border:2px solid var(--color-bg);box-shadow:0 0 0 2px var(--color-accent-soft)}@media(min-width:640px){.timeline-item:before{left:116px}}.timeline-item__date{font-size:.95rem;font-weight:600;color:var(--color-text-soft);padding-top:2px}@media(min-width:640px){.timeline-item__date{text-align:right}}.timeline-item__content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card);transition:all var(--transition-fast)}.timeline-item__content:hover{border-color:var(--color-accent);box-shadow:var(--shadow-card-hover)}.timeline-item__title{font-size:1.1875rem;font-weight:600;margin:0 0 var(--space-2xs)}.timeline-item__company{font-size:.9rem;color:var(--color-accent);font-weight:500}.timeline-item__location{font-size:.95rem;color:var(--color-text-soft);margin-top:var(--space-2xs)}.timeline-item__bullets{margin:var(--space-sm) 0 0;padding-left:1.1rem;color:var(--color-text-muted);font-size:1rem;display:flex;flex-direction:column;gap:var(--space-2xs)}.timeline-item__bullets li::marker{color:var(--color-accent)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card);transition:all var(--transition-medium)}.card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card--clickable:hover{border-color:var(--color-accent);transform:translateY(-3px)}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}.card__title{font-size:1.1875rem;font-weight:600;margin:0;color:var(--color-text)}.card__title a{color:inherit}.card__title a:hover{color:var(--color-accent)}.card__meta{font-size:.95rem;color:var(--color-text-soft);margin-top:var(--space-2xs)}.card__description{font-size:1rem;color:var(--color-text-muted);margin:0;line-height:1.65}.card__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:var(--space-sm)}.card__tag{font-size:.85rem;font-weight:500;padding:.2rem .55rem;background:var(--color-accent-soft);border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-accent)}.card__links{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.card__link{font-size:.95rem;font-weight:500;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:var(--space-2xs)}.card__link:hover{color:var(--color-accent)}.grid{display:grid;gap:var(--space-lg)}.grid--2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.grid--3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.button{display:inline-flex;align-items:center;min-height:44px;gap:var(--space-xs);justify-content:center;padding:.6rem 1.25rem;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-weight:600;font-size:1rem;border:1px solid var(--color-accent);cursor:pointer;transition:all var(--transition-fast)}.button:hover,.button:focus-visible{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}.button--ghost{background:transparent;color:var(--color-text);border:1px solid var(--color-border-strong)}.button--ghost:hover,.button--ghost:focus-visible{background:var(--color-surface-alt);border-color:var(--color-accent);color:var(--color-accent)}.button--small{padding:.4rem .85rem;font-size:.95rem}.prose{font-size:1.125rem;color:var(--color-text);line-height:1.75}.prose p{margin:0 0 var(--space-md);color:var(--color-text-muted)}.prose p:last-child{margin-bottom:0}.prose strong{color:var(--color-text);font-weight:600}.prose ul,.prose ol{padding-left:1.25rem;margin:0 0 var(--space-md)}.prose li{margin-bottom:var(--space-2xs);color:var(--color-text-muted)}.prose li::marker{color:var(--color-accent)}.prose h3{font-size:1.35rem;font-weight:600;margin:var(--space-xl) 0 var(--space-sm);color:var(--color-text)}.prose h3:first-child{margin-top:0}.publication-card{display:flex;flex-direction:column;gap:var(--space-sm)}.publication-card__eyebrow{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent)}.publication-card__title{font-size:1.1875rem;font-weight:600;margin:0;line-height:1.4}.publication-card__title a{color:inherit}.publication-card__title a:hover{color:var(--color-accent)}.publication-card__authors{font-size:1rem;color:var(--color-text-soft);margin:0}.publication-card__tldr{font-size:1rem;color:var(--color-text-muted);margin:0;line-height:1.65}.skills-grid{display:grid;gap:var(--space-lg)}@media(min-width:640px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.skill-category{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.skill-category__title{font-size:1.0625rem;font-weight:600;margin:0 0 var(--space-sm);color:var(--color-text)}.skill-category__items{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.skill-item{font-size:.95rem;padding:.3rem .7rem;background:var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-text-muted)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);color:var(--color-text)}.theme-toggle:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.theme-toggle__icon{position:absolute;width:18px;height:18px;transition:opacity var(--transition-fast),transform var(--transition-fast)}.theme-toggle__icon--sun{opacity:1}.theme-toggle__icon--moon,[data-theme=dark] .theme-toggle__icon--sun{opacity:0;transform:scale(.7)}[data-theme=dark] .theme-toggle__icon--moon{opacity:1;transform:scale(1)}.news-strip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg)}.news-strip__label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent);margin-bottom:var(--space-sm)}.news-strip__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}@media(min-width:640px){.news-strip__items{flex-direction:row;gap:var(--space-xl)}}.news-strip__items li{font-size:1rem;color:var(--color-text-muted)}.news-strip__items time{font-weight:600;color:var(--color-text-soft);font-size:.95rem;display:block}.highlights{display:grid;gap:var(--space-lg)}@media(min-width:768px){.highlights{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.highlights{grid-template-columns:repeat(3,1fr)}}.highlight-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-fast)}.highlight-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-card-hover)}.highlight-card__eyebrow{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-soft);margin-bottom:var(--space-xs)}.highlight-card__title{font-size:1.1875rem;font-weight:600;margin:0 0 var(--space-xs)}.highlight-card__body{font-size:1rem;color:var(--color-text-muted);margin:0;line-height:1.65}.site-footer{margin-top:var(--space-3xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border);font-size:1rem;color:var(--color-text-soft)}.site-footer p{margin:var(--space-2xs) 0}.site-footer a{color:var(--color-text-muted)}.site-footer a:hover{color:var(--color-accent)}.visually-hidden,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.text-accent{color:var(--color-accent)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.site-shell{width:min(calc(100% - 2 * var(--space-xl)),var(--max-width));margin:0 auto;padding:0 var(--space-md)}.tag{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--color-accent-soft);border:1px solid var(--color-accent);color:var(--color-accent);font-size:.8rem;font-weight:600;letter-spacing:.02em}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:var(--space-sm) 0}.tag-list li{padding:.2rem .6rem;border-radius:var(--radius-pill);background-color:var(--color-accent-soft);color:var(--color-accent);font-size:.75rem;font-weight:500}.badge{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-pill);font-size:.85rem;border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface)}.badge--link{border-color:var(--color-accent);color:var(--color-accent)}.badge--link:hover{background:var(--color-accent-soft)}.metric-chip{display:inline-flex;align-items:center;font-size:.85rem;font-weight:600;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--color-accent-soft);border:1px solid var(--color-accent);color:var(--color-accent)}
