@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{color-scheme:light;--color-bg:#fafafa;--color-text:#1d1d1f;--color-text-secondary:#68686e;--color-accent:#315f7a;--color-accent-hover:#234b63;--color-border:#e5e5e7;--color-card:#fff;--color-glass:rgba(255,255,255,.76);--color-glass-border:rgba(255,255,255,.25);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-hover:0 14px 30px rgba(0,0,0,.1);--transition-fast:.15s ease-out;--transition-base:.2s ease-out;--container:1152px;--reading:65ch;--font-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace}html.dark{color-scheme:dark;--color-bg:#0a0a0a;--color-text:#f5f5f7;--color-text-secondary:#a1a1a6;--color-accent:#79b3d5;--color-accent-hover:#a6d0e7;--color-border:#2a2a2e;--color-card:#141416;--color-glass:rgba(10,10,10,.78);--color-glass-border:rgba(255,255,255,.08);--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow-hover:0 14px 30px rgba(0,0,0,.45)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px;background:var(--color-bg)}body{min-height:100vh;margin:0;background:var(--color-bg);color:var(--color-text);font:400 1rem/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;transition:background-color .3s,color .3s}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-base),box-shadow var(--transition-base)}a:hover{color:var(--color-accent-hover);text-decoration:underline;text-underline-offset:3px}img,video{max-width:100%;height:auto}button,input{font:inherit}button{color:inherit}h1,h2,h3,h4,h5,h6{margin-top:0;color:var(--color-text);font-family:var(--font-sans);line-height:1.25}p{margin-top:0}code{padding:.15em .4em;border-radius:var(--radius-sm);background:var(--color-border);font:400 1rem var(--font-mono)}::selection{background:var(--color-accent);color:#fff}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}.skip-link{position:fixed;left:1rem;top:1rem;z-index:200;padding:.65rem 1rem;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;transform:translateY(-180%)}.skip-link:focus{transform:none}.reveal{opacity:1;transform:none}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--color-glass-border);background:var(--color-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.nav-shell{width:100%;max-width:var(--container);min-height:64px;margin:auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--color-text);font-size:1.125rem;font-weight:600;text-decoration:none}.brand:hover{color:var(--color-accent);text-decoration:none}.brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:1rem;font-weight:700}.header-actions{display:flex;align-items:center;gap:6px}.main-nav{display:flex;align-items:center;gap:2px}.main-nav a{position:relative;padding:7px 10px;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:1rem;font-weight:500;text-decoration:none}.main-nav a:hover{background:color-mix(in srgb,var(--color-border) 55%,transparent);color:var(--color-text)}.main-nav a.active{background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent)}.main-nav a.active:after{content:"";position:absolute;left:50%;bottom:-2px;width:20px;height:2px;border-radius:1px;background:var(--color-accent);transform:translate(-50%)}.theme-toggle,.menu-button{display:grid;place-items:center;min-width:40px;min-height:40px;padding:8px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer}.theme-toggle:hover,.menu-button:hover{background:color-mix(in srgb,var(--color-border) 55%,transparent);color:var(--color-text)}.theme-toggle svg{width:20px;height:20px}.theme-toggle .sun{display:none}.dark .theme-toggle .sun{display:block}.dark .theme-toggle .moon{display:none}.menu-button{display:none;width:auto;font-size:1rem}main{width:100%;max-width:var(--container);min-height:60vh;margin:0 auto;padding:48px 32px}.eyebrow,.story-meta,.project-kicker,.output-kind,.detail-label{color:var(--color-text-secondary);font-size:1rem;font-weight:500;letter-spacing:.01em}.eyebrow{margin-bottom:8px;text-transform:none}.arrow-link{display:inline-flex;align-items:center;gap:6px;font-size:1rem;font-weight:500}.arrow-link:hover{text-decoration:underline}.page-header,.page-intro{position:relative;max-width:820px;margin-bottom:48px;padding-bottom:20px}.page-header:after,.page-intro:after{content:"";position:absolute;left:0;bottom:0;width:60px;height:3px;border-radius:2px;background:linear-gradient(to right,var(--color-accent),transparent)}.page-intro{padding-top:4px}.page-intro h1{margin:0;font-size:clamp(2.3rem,5vw,3.25rem);font-weight:700;letter-spacing:-.035em}.page-intro .lede{max-width:720px;margin:14px 0 0;color:var(--color-text-secondary);font-size:1.125rem;line-height:1.7}.profile-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:center;gap:clamp(40px,7vw,88px);min-height:620px;padding:28px 0 64px}.profile-home-copy{min-width:0;max-width:720px}.profile-greeting{margin:0 0 12px;color:var(--color-accent);font-size:1.05rem;font-weight:600}.profile-home h1{margin:0;font-size:clamp(3rem,7vw,5.25rem);font-weight:700;letter-spacing:-.055em;line-height:.98}.profile-introduction{max-width:68ch;margin-top:38px}.profile-introduction p{margin:0 0 17px;color:var(--color-text-secondary);font-size:1.0625rem;line-height:1.76}.profile-introduction p:last-child{margin-bottom:0}.profile-introduction a{font-weight:500}.footer-links{display:flex;flex-wrap:wrap;gap:8px 16px}.profile-portrait{margin:0}.profile-portrait img{display:block;width:100%;aspect-ratio:1;border-radius:18px;object-fit:cover;box-shadow:0 16px 46px color-mix(in srgb,var(--color-text) 14%,transparent)}.about-sections{max-width:980px}.about-sections>section{display:grid;grid-template-columns:190px minmax(0,1fr);gap:44px;padding:34px 0;border-top:1px solid var(--color-border)}.about-sections>section:first-child{border-top:0;padding-top:0}.about-sections h2{margin:0;font-size:1.35rem}.about-sections section>div{max-width:720px}.about-sections p:first-child{margin-top:0}.about-sections p:last-child{margin-bottom:0}.home-section-heading{margin:0}.home-section-heading h2{margin:0;font-size:1.6rem;letter-spacing:-.02em}.research-narrative{display:grid;grid-template-columns:180px minmax(0,1fr);gap:44px;margin-bottom:20px;padding:28px 0 44px}.research-narrative-copy{max-width:760px}.research-narrative-copy p{color:var(--color-text-secondary)}.research-narrative-copy p:last-child{margin-bottom:0}.research-lead{color:var(--color-text)!important;font-size:1.125rem}.theme-section,.selected-projects-section{padding:40px 0}.theme-section>.home-section-heading,.selected-projects-section>.home-section-heading{max-width:740px;margin-bottom:24px}.theme-section h2,.selected-projects-section h2,.research-record-note h2{margin:0 0 8px;font-size:1.75rem;letter-spacing:-.025em}.home-section-heading>p:not(.eyebrow){color:var(--color-text-secondary)}.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.theme-grid article{padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card)}.theme-grid article>span{color:var(--color-accent);font:500 1rem var(--font-mono)}.theme-grid h3{margin:12px 0 8px;font-size:1.125rem}.theme-grid p{margin:0;color:var(--color-text-secondary)}.narrative-project-list{display:grid;gap:16px}.narrative-project-list>article{display:grid;grid-template-columns:185px minmax(0,1fr);gap:20px 30px;padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card);box-shadow:var(--shadow-sm)}.project-kicker{grid-row:1 / span 5;display:flex;flex-direction:column;gap:6px}.narrative-project-list h3{margin:0;font-size:1.3rem}.narrative-project-list h3 a{color:var(--color-text)}.narrative-project-list h3 a:hover{color:var(--color-accent);text-decoration:none}.narrative-project-list p{margin:0;color:var(--color-text-secondary)}.project-tldr strong{color:var(--color-text)}.research-record-note{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:24px;padding:36px 0;border-top:1px solid var(--color-border)}.research-record-note p{color:var(--color-text-secondary)}blockquote{margin:20px 0;padding:18px 22px;border-left:3px solid var(--color-accent);border-radius:0 var(--radius-md) var(--radius-md) 0;background:color-mix(in srgb,var(--color-card) 88%,var(--color-accent));color:var(--color-text-secondary)}.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;color:var(--color-text-secondary);font-size:1rem}.project-hero{max-width:980px;padding:12px 0 42px;border-bottom:1px solid var(--color-border)}.topic-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.topic-list span,.status{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent);font-size:1rem;font-weight:500}.project-hero h1{max-width:900px;margin:0;font-size:clamp(2.25rem,5vw,3.25rem);letter-spacing:-.035em}.project-hero .lede{max-width:760px;margin:14px 0 0;color:var(--color-text-secondary);font-size:1.125rem}.project-metadata{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:28px 0 0}.project-metadata dt{color:var(--color-text-secondary);font-size:1rem;font-weight:500}.project-metadata dd{margin:5px 0 0}.project-article-grid{display:grid;grid-template-columns:190px minmax(0,720px);gap:56px;padding:46px 0 70px}.project-index{position:sticky;top:88px;align-self:start;display:grid;gap:8px}.project-index a{color:var(--color-text-secondary)}.project-index a:hover{color:var(--color-accent)}.project-prose section{scroll-margin-top:90px;margin-bottom:44px}.project-prose h2{margin-bottom:12px;font-size:1.65rem}.project-prose h3{font-size:1.15rem}.project-prose p,.project-prose li{color:var(--color-text-secondary)}.project-components,.output-list{display:grid;gap:14px}.project-components article,.scholarly-output{padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card)}.project-support-list article{display:grid;grid-template-columns:140px minmax(0,1fr);gap:20px;padding:18px 0;border-bottom:1px solid var(--color-border)}.parent-navigation{padding:28px 0;border-top:1px solid var(--color-border)}.content-section{display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px;padding:42px 0}.content-section+.content-section{border-top:1px solid var(--color-border)}.section-heading{align-self:start}.section-heading h2{font-size:1.55rem}.prose{max-width:var(--reading);font-size:1.0625rem;line-height:1.75}.card-grid{display:grid;gap:16px}.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{display:block;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card);color:inherit}.card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-accent) 35%,var(--color-border));box-shadow:var(--shadow-hover);text-decoration:none}.web-cv-intro{position:relative;margin-bottom:18px;padding-bottom:20px}.web-cv-intro:after{content:"";position:absolute;left:0;bottom:0;width:60px;height:3px;border-radius:2px;background:linear-gradient(to right,var(--color-accent),transparent)}.web-cv-intro h1{margin:0;font-size:clamp(2.3rem,5vw,3.25rem);letter-spacing:-.035em}.web-cv{max-width:1040px}.web-cv>section{padding:36px 0;border-bottom:1px solid var(--color-border)}.web-cv>section:last-child{border-bottom:0}.web-cv>section>h2{margin-bottom:22px;color:var(--color-accent);font-size:1.45rem}.cv-entry-list,.citation-list{display:grid;gap:22px}.cv-entry{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px}.cv-entry h3,.cv-entry h4{margin:0 0 5px;font-size:1.0625rem}.cv-entry p{margin:2px 0}.cv-period,.cv-secondary,.cv-detail{color:var(--color-text-secondary);font-size:1rem}.cv-period{font-family:var(--font-mono)}.cv-project{margin-top:14px}.cv-entry ul{margin:8px 0 0;padding-left:20px}.cv-entry li{margin-bottom:6px}.citation,.academic-citation,.conference-presentation-citation{color:var(--color-text)}.citation-list>*{padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card)}.compact-record-list{display:grid}.compact-record-list>p{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;margin:0;padding:10px 0}.compact-record-list>p>span:first-child{color:var(--color-text-secondary);font-family:var(--font-mono)}.compact-record-content{display:grid}.compact-record-content small{color:var(--color-text-secondary);font-size:1rem}.personal-site sup{font-size:1rem}.academic-citation,.cv-citation,.citation-text{min-width:0;overflow-wrap:anywhere;word-break:normal}.site-footer{width:calc(100% - 64px);max-width:var(--container);margin:44px auto 0;padding:30px 0 38px;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:1rem}.site-footer-compact{display:flex;align-items:center;justify-content:space-between;gap:20px}.site-footer-profile{align-items:baseline}.site-footer p{margin:0}.site-footer .footer-links{justify-content:flex-end}.site-footer .footer-links a{padding:6px 8px;border-radius:var(--radius-sm);color:var(--color-text-secondary)}.site-footer .footer-links a:hover{background:color-mix(in srgb,var(--color-border) 55%,transparent);color:var(--color-accent);text-decoration:none}@media(max-width:900px){main{padding-top:38px}.profile-home{grid-template-columns:minmax(0,1fr) 280px;gap:40px;min-height:auto}.theme-grid{grid-template-columns:1fr}.research-narrative{grid-template-columns:150px minmax(0,1fr);gap:30px}.project-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.project-article-grid{grid-template-columns:1fr;gap:28px}.project-index{position:static;grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md)}.card-grid.three{grid-template-columns:1fr 1fr}}@media(max-width:720px){.nav-shell{min-height:60px;padding:0 20px}.brand>span:last-child{display:none}.header-actions{margin-left:auto}.menu-button{display:grid}.main-nav{display:none;position:absolute;left:16px;right:16px;top:66px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card);box-shadow:var(--shadow-hover)}.main-nav.open{display:grid;gap:2px}.main-nav a{padding:10px 12px}.main-nav a.active:after{display:none}main{padding:34px 20px}.profile-home{grid-template-columns:1fr;padding-top:8px}.profile-home-copy{order:2}.profile-portrait{order:1;max-width:280px}.profile-home h1{font-size:3rem}.about-sections>section,.research-narrative,.research-record-note{grid-template-columns:1fr;gap:20px}.narrative-project-list>article,.cv-entry,.compact-record-list>p{grid-template-columns:1fr;gap:8px}.project-kicker{grid-row:auto}.project-metadata{grid-template-columns:1fr}.content-section{grid-template-columns:1fr;gap:18px}.card-grid.two,.card-grid.three{grid-template-columns:1fr}.site-footer{width:calc(100% - 40px)}.site-footer-compact{align-items:flex-start;flex-direction:column}.site-footer .footer-links{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
