:root{color-scheme:light;--font-sans: "Geist", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--paper: oklch(97% .004 250);--surface: oklch(99.3% .002 250);--surface-2: oklch(94.8% .005 250);--ink: oklch(22% .02 262);--ink-muted: oklch(46% .018 262);--ink-faint: oklch(60% .014 262);--line: oklch(89% .008 262);--line-strong: oklch(80% .013 262);--accent: oklch(48% .132 256);--accent-strong: oklch(42% .14 256);--accent-ink: oklch(99% .004 256);--accent-soft: oklch(93.5% .03 256);--focus: oklch(54% .14 256);--shadow-hover: 0 16px 38px oklch(40% .03 262 / .08);--radius: 10px;--radius-sm: 6px;--fs-eyebrow: .76rem;--fs-body: 1rem;--fs-lead: 1.125rem;--fs-h3: 1.22rem;--fs-h2: clamp(1.9rem, 1.25rem + 2.1vw, 2.55rem);--fs-h1: clamp(2.7rem, 1.6rem + 4.8vw, 4.9rem);--maxw: 1140px;font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:1.65;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{color-scheme:dark;--paper: oklch(16% .012 262);--surface: oklch(20% .013 262);--surface-2: oklch(24.5% .015 262);--ink: oklch(94% .006 262);--ink-muted: oklch(73% .013 262);--ink-faint: oklch(56% .013 262);--line: oklch(30% .012 262);--line-strong: oklch(41% .016 262);--accent: oklch(75% .12 252);--accent-strong: oklch(83% .12 252);--accent-ink: oklch(18% .02 262);--accent-soft: oklch(30% .045 256);--focus: oklch(77% .12 252);--shadow-hover: 0 16px 38px oklch(0% 0 0 / .4)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px;background:var(--paper)}body{min-width:320px;margin:0;color:var(--ink);background:var(--paper);transition:background .22s ease,color .22s ease}button,a{font:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}dl,dd{margin:0}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px}::selection{color:var(--accent-ink);background:var(--accent)}.skip-link{position:fixed;top:12px;left:12px;z-index:30;padding:10px 14px;color:var(--accent-ink);background:var(--accent);border-radius:var(--radius-sm);font-weight:600;transform:translateY(-160%);transition:transform .18s cubic-bezier(.16,1,.3,1)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--paper) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.nav-shell{display:flex;align-items:center;justify-content:space-between;width:min(100% - 40px,var(--maxw));min-height:70px;margin:0 auto;gap:18px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}.brand-mark span{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.04em}.nav-links{display:flex;align-items:center;gap:2px}.nav-links a{min-height:42px;display:inline-flex;align-items:center;padding:10px 13px;border-radius:var(--radius-sm);color:var(--ink-muted);font-size:.92rem;font-weight:550;transition:color .16s ease,background .16s ease}.nav-links a:hover{color:var(--ink);background:var(--surface-2)}.toggle-cluster{display:inline-flex;align-items:center;gap:8px;margin-left:10px}.language-toggle,.theme-toggle{display:inline-flex;align-items:center;min-height:42px;padding:3px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.language-toggle__item,.theme-toggle__item{display:inline-flex;align-items:center;justify-content:center;min-width:46px;min-height:34px;padding:0 9px;border:0;border-radius:calc(var(--radius-sm) - 2px);color:var(--ink-muted);background:transparent;font-family:var(--font-mono);font-size:.76rem;font-weight:600;cursor:pointer;transition:color .16s ease,background .16s ease}.theme-toggle__item{min-width:38px}.language-toggle__item:hover,.theme-toggle__item:hover{color:var(--ink);background:var(--surface-2)}.language-toggle__item--active,.theme-toggle__item--active{color:var(--accent-ink);background:var(--accent)}.nav-toggle{display:none;align-items:center;justify-content:center;width:46px;height:46px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer}[data-icon]{flex:0 0 auto;width:1.05em;height:1.05em}[data-icon=only]{width:1.15rem;height:1.15rem}.hero-section,.metric-strip,.research-strip,.page-section,.contact-section{width:min(100% - 40px,var(--maxw));margin:0 auto}.hero-section{padding:clamp(56px,8vw,104px) 0 clamp(40px,5vw,64px)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:clamp(36px,5vw,60px);align-items:center}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.hero-copy h1{max-width:14ch;margin:0;font-size:var(--fs-h1);font-weight:700;line-height:1;letter-spacing:-.02em}.hero-role{max-width:36ch;margin:0;color:var(--accent);font-size:1.2rem;font-weight:650}.hero-summary{max-width:60ch;margin:0;color:var(--ink-muted);font-size:var(--fs-lead);line-height:1.7}.focus-row{display:flex;flex-wrap:wrap;gap:8px}.focus-row span{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-muted);font-family:var(--font-mono);font-size:.78rem;font-weight:500}.hero-actions,.contact-actions,.link-cluster{display:flex;flex-wrap:wrap;gap:12px}.portrait-panel{display:grid;gap:14px}.portrait-frame{overflow:hidden;aspect-ratio:1;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface)}.portrait-frame img{width:100%;height:100%;object-fit:cover}.identity-card,.identity-details{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.identity-card{padding:16px 18px}.identity-card p{margin:0;color:var(--ink-muted);font-size:.95rem}.identity-card__label{margin-bottom:6px;color:var(--accent);font-family:var(--font-mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.identity-details{display:grid;overflow:hidden}.identity-details a,.identity-details span{display:flex;align-items:center;min-height:46px;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line);color:var(--ink-muted);font-size:.9rem;overflow-wrap:anywhere;transition:color .16s ease}.identity-details a:hover{color:var(--accent)}.identity-details a:last-child,.identity-details span:last-child{border-bottom:0}.metric-strip{padding:8px 0 clamp(40px,5vw,64px)}.metric-strip__inner{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.metric{display:grid;gap:6px;padding:22px 24px;border-left:1px solid var(--line)}.metric:first-child{border-left:0}.metric__value{font-family:var(--font-mono);font-size:clamp(1.7rem,1.2rem + 1.4vw,2.2rem);font-weight:600;color:var(--ink);letter-spacing:-.01em}.metric__label{color:var(--ink-muted);font-size:.84rem;line-height:1.4}.research-strip{display:grid;grid-template-columns:minmax(200px,.55fr) minmax(0,1.45fr);gap:28px;align-items:start;padding:clamp(30px,4vw,48px) 0 clamp(48px,6vw,86px)}.research-list{display:grid;border-top:1px solid var(--line-strong)}.research-item{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;padding:18px 0;border-bottom:1px solid var(--line)}.research-item span,.section-heading p,.contact-copy p,.entry-eyebrow,.publication-index,.publication-topline{font-family:var(--font-mono)}.research-item span{color:var(--accent);font-size:.82rem;font-weight:600}.research-item p{max-width:68ch;margin:0;color:var(--ink-muted)}.page-section{padding:clamp(56px,7vw,88px) 0;border-top:1px solid var(--line-strong);content-visibility:auto;contain-intrinsic-size:auto 820px}.section-heading{display:grid;grid-template-columns:minmax(150px,.32fr) minmax(0,.9fr);gap:28px;align-items:baseline;margin-bottom:36px}.section-heading--inline{display:block;margin:0}.section-heading p,.contact-copy p{margin:0 0 4px;color:var(--accent);font-size:var(--fs-eyebrow);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.section-heading h2,.contact-copy h2{max-width:22ch;margin:0;font-size:var(--fs-h2);font-weight:680;line-height:1.12;letter-spacing:-.015em}.contact-copy h2{max-width:28ch}.two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,.72fr);gap:20px;align-items:start}.entry-list{display:grid;gap:16px}.entry-list--project{grid-template-columns:minmax(0,1fr)}.entry-list--compact{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.entry-card,.skill-card{transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.entry-card:hover,.skill-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.ui-card__header{display:grid;gap:10px;padding:20px 20px 0}.ui-card__title{margin:0;font-size:var(--fs-h3);font-weight:640;line-height:1.3;letter-spacing:-.01em}.ui-card__description{max-width:62ch;margin:0;color:var(--ink-muted);line-height:1.6}.ui-card__content{display:grid;gap:16px;padding:16px 20px 20px}.entry-meta-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.entry-eyebrow{color:var(--ink-muted);font-size:.76rem;font-weight:500}.ui-badge{display:inline-flex;align-items:center;width:fit-content;min-height:26px;padding:4px 9px;border:1px solid transparent;border-radius:999px;font-family:var(--font-mono);font-size:.72rem;font-weight:600;line-height:1}.ui-badge--default{color:var(--ink);background:var(--surface-2)}.ui-badge--accent{color:var(--accent-ink);background:var(--accent)}.ui-badge--quiet{color:var(--ink-muted);background:var(--surface-2)}.ui-badge--outline{color:var(--ink-muted);background:transparent;border-color:var(--line-strong)}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:600;line-height:1;cursor:pointer;transition:transform .16s cubic-bezier(.16,1,.3,1),background .16s ease,border-color .16s ease,color .16s ease}.ui-button:active{transform:translateY(1px)}.ui-button--sm{min-height:38px;padding:0 12px;font-size:.88rem}.ui-button--md{padding:0 15px;font-size:.95rem}.ui-button--lg{min-height:50px;padding:0 20px;font-size:1rem}.ui-button--primary{color:var(--accent-ink);background:var(--accent)}.ui-button--primary:hover{background:var(--accent-strong)}.ui-button--secondary{color:var(--ink);background:var(--surface-2);border-color:var(--line)}.ui-button--secondary:hover{border-color:var(--line-strong)}.ui-button--outline{color:var(--ink);background:transparent;border-color:var(--line-strong)}.ui-button--outline:hover{border-color:var(--accent);color:var(--accent)}.ui-button--ghost{color:var(--ink-muted);background:transparent;border-color:var(--line)}.ui-button--ghost:hover{color:var(--ink);border-color:var(--line-strong)}.bullet-list{display:grid;gap:9px;padding:0;margin:0;list-style:none}.bullet-list li{position:relative;padding-left:19px;color:var(--ink-muted);line-height:1.6}.bullet-list li:before{position:absolute;top:.62em;left:0;width:6px;height:6px;border:1px solid var(--accent);border-radius:50%;content:""}.publication-stack{display:grid;border-top:1px solid var(--line-strong)}.publication-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}.publication-index{color:var(--ink-faint);font-size:1.3rem;font-weight:600}.publication-body{display:grid;gap:14px}.publication-topline{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--ink-muted);font-size:.76rem;font-weight:500}.publication-body h3{max-width:64ch;margin:0;font-size:1.45rem;font-weight:640;line-height:1.25;letter-spacing:-.012em}.link-cluster a,.skill-pills a,.skill-pills span{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink-muted);background:var(--surface);font-size:.86rem;font-weight:500;transition:border-color .16s ease,color .16s ease,transform .16s ease}.link-cluster a:hover,.skill-pills a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.skill-pills{display:flex;flex-wrap:wrap;gap:8px}.contact-section{display:grid;gap:26px;padding:clamp(52px,6vw,80px) 0 48px;border-top:1px solid var(--line-strong)}.contact-copy{display:grid;gap:8px}.contact-actions{align-items:center}.ui-separator{height:1px;width:100%;background:var(--line)}address{display:flex;gap:10px;align-items:flex-start;margin:0;color:var(--ink-muted);font-style:normal;font-size:.9rem;line-height:1.6}@media(max-width:980px){.hero-grid,.research-strip,.section-heading,.two-column,.entry-list--compact{grid-template-columns:1fr}.metric-strip__inner{grid-template-columns:repeat(2,minmax(0,1fr))}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.metric:nth-child(odd){border-left:0}.section-heading{gap:8px;margin-bottom:28px}.portrait-panel{max-width:520px}}@media(max-width:760px){.nav-shell{width:min(100% - 28px,var(--maxw))}.nav-toggle{display:inline-flex}.nav-links{position:absolute;top:calc(100% + 1px);right:14px;left:14px;display:none;flex-direction:column;align-items:stretch;gap:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-hover)}.nav-links--open{display:flex}.nav-links a{width:100%}.toggle-cluster{width:100%;margin:8px 0 0;justify-content:space-between}.language-toggle,.theme-toggle{flex:1;justify-content:center}.language-toggle__item{flex:1}.hero-section,.metric-strip,.research-strip,.page-section,.contact-section{width:min(100% - 28px,var(--maxw))}.hero-section{padding-top:48px}.metric-strip__inner{grid-template-columns:1fr}.metric{border-left:0;border-top:1px solid var(--line)}.metric:first-child{border-top:0}.metric:nth-child(-n+2){border-bottom:0}.research-item,.publication-row{grid-template-columns:1fr;gap:8px}.skills-grid{grid-template-columns:1fr}.hero-actions,.contact-actions,.hero-actions a,.contact-actions a{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
