:root{--paper:#f6f5f0;--ink:#24352c;--muted:#627068;--line:#d9dfd2;--accent:#466c48;--body:#506157;--detail:#b67932;--surface:#eeeee5;--dots:#777d7845;--selection:#d6e6d9;color-scheme:light}:root[data-theme=dark]{--paper:#14201d;--ink:#edf2e5;--muted:#a5b5ab;--line:#35453d;--accent:#b9d896;--body:#c0cbbf;--detail:#d7ab6b;--surface:#24352d;--dots:#b9d89626;--selection:#415a41;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-manrope),Arial,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--selection);color:var(--ink)}a{color:inherit;text-decoration:none;text-underline-offset:5px}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:2px}strong{font-weight:700;color:var(--ink)}.intro-copy a,strong{text-decoration:none}.page{width:min(calc(100% - 96px),1040px);margin:auto;padding-top:80px}.profile{position:relative;margin-bottom:60px}.intro-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px}h1{font-size:clamp(44px,5vw,66px);line-height:1.08;letter-spacing:-.065em;font-weight:550;margin:0 0 16px}.intro-role{font-size:20px;font-weight:500;letter-spacing:-.025em;margin:0}.location{color:var(--muted);font-size:13px;margin:0}.intro-copy{max-width:660px;color:var(--body);font-size:18px;line-height:1.85;margin:30px 0 0}.contact-sentence a,.intro-copy a{text-decoration:underline;-webkit-text-decoration-color:var(--detail);text-decoration-color:var(--detail);-webkit-text-decoration-style:solid;text-decoration-style:solid;text-decoration-thickness:1px;color:var(--ink)}.contact-sentence a:hover,.intro-copy a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.contact-sentence{margin:20px 0 0;font-size:14px;line-height:1.85;color:var(--muted)}.section-nav{margin-top:36px}.nav-links{display:flex;flex-wrap:wrap;gap:12px 36px}.nav-links a{display:flex;align-items:center;gap:10px;padding:11px 0;font-size:13px;color:var(--muted)}.nav-line{width:18px;height:1px;background:var(--line);transition:background .2s}.nav-links a[aria-current]{color:var(--accent);font-weight:700}.nav-links a:hover .nav-line,.nav-links a[aria-current] .nav-line{background:var(--accent)}.reading-track{height:2px;background:var(--line);margin-top:12px}.reading-track span{display:block;height:100%;background:var(--accent);transform-origin:left}.content-section+.content-section{margin-top:48px}.section-heading{padding-bottom:20px;border-bottom:1px solid var(--line)}.section-heading h2{font-size:28px;line-height:1.3;font-weight:600;letter-spacing:-.04em;margin:0}.resume-row{display:grid;grid-template-columns:160px minmax(0,1fr);grid-gap:30px;gap:30px;padding:30px 0}.entry-meta{font-size:12px;line-height:1.8;color:var(--muted);padding-top:3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.entry-meta p{margin:0}.entry-meta .meta-detail{margin-top:3px}h3{font-size:18px;line-height:1.6;font-weight:700;letter-spacing:-.025em;margin:0}.organization{font-weight:500}.heading-separator{color:var(--muted);padding:0 3px}.experience-row+.experience-row{border-top:1px solid var(--line)}.current-label{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:11px;margin-top:6px}.current-label:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}.description{font-size:15px;line-height:1.9;color:var(--body);margin:12px 0 0;max-width:76ch}.education-detail{margin-top:8px}.technologies{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:16px 0 0;gap:5px 0}.technologies li{display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:1.7;color:var(--muted)}.technologies li:not(:last-child):after{content:"/";color:var(--muted);margin:0 8px;font-weight:400}.project-copy h3{font-size:22px;line-height:1.4;letter-spacing:-.035em}.project-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.project-row{padding:30px 32px 12px 0;display:flex;flex-direction:column;align-items:flex-start}.project-row:nth-child(2n){border-left:1px solid var(--line);padding:30px 0 12px 32px}.project-row:nth-child(n+3){border-top:1px solid var(--line);margin-top:18px}.project-category{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 12px}.project-row h3{font-size:22px}.project-links{display:flex;gap:22px;font-size:12px;font-weight:600;margin-top:auto;padding-top:20px}.project-links a{padding:8px 0;color:var(--accent)}.project-links a:hover{text-decoration:underline}footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px;padding:24px 0 100px;margin-top:60px;border-top:1px solid var(--line)}footer a:hover{text-decoration:underline}.skip-link:not(:focus),.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:12px;left:12px;z-index:20;padding:12px;background:var(--paper)}@media (max-width:760px){.page{width:calc(100% - 48px);padding-top:48px}.intro-heading{display:block}.location{margin-top:10px}.intro-copy{font-size:16px}.resume-row{grid-template-columns:1fr;gap:12px}.entry-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px}.current-label,.entry-meta .meta-detail{margin-top:0}.profile{margin-bottom:44px}.content-section+.content-section{margin-top:32px}.section-heading h2{font-size:25px}}@media (max-width:540px){.page{width:calc(100% - 40px);padding-top:36px}.nav-links{justify-content:space-between;gap:8px}.nav-links a{font-size:12px;gap:7px}.nav-line{width:12px}.project-grid{grid-template-columns:1fr}.project-row,.project-row:nth-child(2n){padding:25px 0;border-left:0;margin-top:0}.project-row+.project-row{border-top:1px solid var(--line)}.description{font-size:14px}.resume-row{padding:25px 0}footer{margin-top:32px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important}}body{background-image:radial-gradient(var(--dots) .85px,transparent .85px);background-size:20px 20px}body.dot-grid-ready{background-image:none}.dot-background{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.page{z-index:1}.intro,.page{position:relative}.flight-doodle{position:absolute;right:14px;top:100px;width:170px;color:var(--accent);transform:rotate(-7deg);pointer-events:none}.flight-doodle svg{display:block;width:100%;overflow:visible;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.flight-trail{stroke-dasharray:4 6;opacity:.65}.paper-plane{fill:var(--surface)}.doodle-spark{stroke:var(--detail)}.flight-doodle span{display:block;text-align:center;font-family:Bradley Hand,Segoe Print,cursive;font-size:20px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading:after{content:"✳";color:var(--detail);font-size:24px;font-weight:400}#experience .section-heading:after{content:"↗"}#projects .section-heading:after{content:"✧";font-size:30px}.project-row h3,.research-project h3{transition:color .2s}.project-row:focus-within h3,.project-row:hover h3,.research-project:focus-within h3,.research-project:hover h3{color:var(--accent)}.project-links a span[aria-hidden]{display:inline-block;transition:transform .2s}.project-links a:hover span[aria-hidden]{transform:translate(2px,-2px)}.theme-toggle{position:fixed;z-index:30;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:0 4px 18px #00000012;transition:transform .2s,border-color .2s}.theme-toggle:hover{transform:rotate(-10deg);border-color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.theme-toggle svg{width:24px;height:24px}.sun-icon{display:none}[data-theme=dark] .sun-icon{display:block}[data-theme=dark] .moon-icon{display:none}.theme-tooltip{position:absolute;right:64px;white-space:nowrap;font-family:var(--font-manrope),Arial,sans-serif;font-size:12px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;opacity:0;visibility:hidden;pointer-events:none}.theme-toggle:focus-visible .theme-tooltip,.theme-toggle:hover .theme-tooltip{opacity:1;visibility:visible}@media (max-width:1000px){.flight-doodle{width:125px;right:0;top:115px}.intro-copy{max-width:calc(100% - 155px)}}@media (max-width:760px){.flight-doodle{width:105px;top:0;right:0}.flight-doodle span{font-size:16px}.intro-copy{max-width:100%}.intro-heading{padding-right:110px}.theme-toggle{right:18px;bottom:max(18px,env(safe-area-inset-bottom));width:48px;height:48px}}@media (max-width:400px){.flight-doodle{width:80px;top:8px}.intro-heading{padding-right:80px}}.typed-word{white-space:nowrap}.typed-character{animation:type-in 1ms step-end both;animation-delay:var(--type-delay)}@keyframes type-in{0%{visibility:hidden}to{visibility:visible}}.contact-sentence a{text-decoration:none}.contact-sentence a .typed-character{text-decoration:underline;-webkit-text-decoration-color:var(--detail);text-decoration-color:var(--detail);text-underline-offset:5px}.intro a:focus-visible .typed-character{animation:none!important;visibility:visible!important}@media (prefers-reduced-motion:reduce){.typed-character{animation:none!important;visibility:visible!important}}.resume-link{margin:14px 0 0;font-size:14px}.resume-link a{display:inline-flex;align-items:center;gap:9px;padding:6px 0;color:var(--accent);font-weight:600}.resume-link a:hover{text-decoration:underline}.resume-format{font-size:10px;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:2px 5px}.coursework{max-width:none;font-size:15px}.coursework>strong{display:block;margin-bottom:3px}.about-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:44px;gap:44px;align-items:center;padding-top:30px}.about-copy{min-width:0}.about-copy .description:first-child{margin-top:0}.about-photo{margin:0}.about-photo img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--line)}@media (min-width:761px) and (max-width:1000px){.about-layout{grid-template-columns:minmax(0,1fr) 240px;gap:28px}}@media (max-width:760px){.about-layout{grid-template-columns:minmax(0,1fr);gap:26px}.about-photo{width:min(100%,280px);justify-self:center}}.about-copy .description{max-width:none;margin-top:20px}@media (max-width:540px){.nav-links{gap:6px 12px}.nav-line{width:8px}}.research-project{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:32px;gap:32px;align-items:center;padding:30px 0}.research-project .description{max-width:90ch}.research-figure{margin:0}.research-figure img{display:block;width:100%;height:auto}[data-theme=dark] .research-figure img{filter:drop-shadow(0 0 1px #ffffff90)}@media (max-width:760px){.research-project{grid-template-columns:minmax(0,1fr);gap:24px}.research-figure{width:min(100%,400px)}}@media (max-width:540px){.research-project{padding:25px 0}}html{scroll-padding-top:100px}.profile{margin-bottom:0}.section-nav{position:-webkit-sticky;position:sticky;top:0;z-index:20;padding-top:12px;margin-bottom:44px;background:var(--paper)}.reading-track{margin-top:8px}.copy-email-wrap{display:inline}.copy-email{display:inline-flex;align-items:center;gap:6px;min-height:32px;margin-left:8px;padding:4px 8px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--muted);font:inherit;font-size:11px;cursor:pointer;vertical-align:middle}.copy-email:hover{color:var(--accent);border-color:var(--accent)}.copy-email:focus-visible,.tensor-control:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.copy-error{display:block;font-size:12px;color:var(--ink);-webkit-user-select:text;-moz-user-select:text;user-select:text}.tensor-diagram{color:var(--accent);width:100%}.tensor-control{display:block;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:inherit;padding:8px 12px 14px;cursor:pointer;font:inherit}.tensor-control:hover{border-color:var(--accent)}.tensor-control svg{display:block;width:100%;height:auto;overflow:visible}.tensor-control text{fill:var(--muted);font-family:inherit;font-size:12px}.tensor-action{display:flex;justify-content:space-between;align-items:center;font-size:12px}.tensor-diagram figcaption{margin-top:10px;color:var(--muted);font-size:11px;line-height:1.7;min-height:60px}.tensor-note{display:block;opacity:.85}.tensor-cores,.tensor-whole{transition:opacity .3s,transform .3s;transform-origin:center}.tensor-cores{opacity:0;transform:scale(.85)}.tensor-core{transition:transform .4s}.tensor-core-first{transform:translateX(60px)}.tensor-core-last{transform:translateX(-60px)}.tensor-diagram[data-expanded=true] .tensor-whole{opacity:0;transform:scale(.8)}.tensor-diagram[data-expanded=true] .tensor-cores{opacity:1;transform:scale(1)}.tensor-diagram[data-expanded=true] .tensor-core{transform:translateX(0)}@media (max-width:540px){.section-nav{margin-bottom:32px}.nav-links{gap:4px 8px}.nav-links a{gap:5px;font-size:11px}.tensor-diagram{max-width:400px}}.zipline-entry{position:relative}.zipline-flight{position:absolute;inset:-18px -6px -18px;pointer-events:none;z-index:2;overflow:hidden}.zipline-aircraft{position:absolute;top:0;left:0;width:76px;will-change:transform}.zipline-aircraft svg{display:block;width:100%;height:auto;transform:scaleX(var(--flight-direction,1))}.zipline-flight[data-flying=true] .zipline-delivery{animation:zipline-sway 1.8s ease-in-out infinite;transform-origin:118px 80px}.zipline-flight[data-flying=true] .zipline-rotor{animation:zipline-rotor-spin .12s linear infinite;transform-box:fill-box;transform-origin:center}@keyframes zipline-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes zipline-rotor-spin{50%{transform:scaleX(.3);opacity:.5}}@media (max-width:540px){.zipline-aircraft{width:60px}}@media (prefers-reduced-motion:reduce){.zipline-flight{display:none}}.language-strip{display:flex;align-items:center;gap:32px;margin-top:32px;padding:20px 0 10px;border-top:1px solid var(--line)}.language-strip h3{color:var(--muted);font-size:13px;font-weight:500;letter-spacing:0}.language-logos{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;list-style:none;padding:0;margin:0}.language-logo{position:relative;display:grid;place-items:center;width:48px;height:48px;color:var(--accent);border-radius:6px}.language-mark{display:block;width:30px;height:30px;background-color:currentColor;mask:var(--language-icon) center /contain no-repeat;-webkit-mask:var(--language-icon) center /contain no-repeat}.language-logo:focus-visible,.language-logo:hover{background:var(--surface)}.language-logo:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.language-tooltip{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:5px 9px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);font-size:11px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:3;transition:opacity .15s}.language-logo:focus-visible .language-tooltip,.language-logo:hover .language-tooltip{visibility:visible;opacity:1}@media (max-width:760px){.language-strip{align-items:flex-start;flex-direction:column;gap:12px}.language-logos{gap:12px 16px}}@media (max-width:400px){.language-logos{gap:8px 12px}}.skills-strips .language-strip{align-items:flex-start}.skills-strips .language-strip h3{flex:0 0 122px;padding-top:13px}.skills-strips .language-logos{flex:1 1;min-width:0}.skills-strips .language-strip+.language-strip{margin-top:18px}@media (max-width:760px){.skills-strips .language-strip h3{flex-basis:auto;padding-top:0}}.skills-strips .language-strip:last-child .language-logos{gap:8px 14px}.skills-strips .language-strip:last-child .language-logo{width:40px;height:40px}.skills-strips .language-strip:last-child .language-mark{width:24px;height:24px}.skills-strips .language-strip:last-child h3{padding-top:9px}@media (max-width:760px){.skills-strips .language-strip:last-child h3{padding-top:0}}.company-link{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-decoration-thickness:1px;text-underline-offset:4px}.company-link:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.company-link-arrow{display:inline-block;font-size:.75em;color:var(--muted);text-decoration:none}@font-face{font-family:manrope;src:url(/_next/static/media/5d7fa19dd58d4d1a-s.p.ttf) format("truetype");font-display:swap;font-weight:200 800}@font-face{font-family:manrope Fallback;src:local("Arial");ascent-override:106.45%;descent-override:29.96%;line-gap-override:0.00%;size-adjust:100.14%}.__className_0f4e5b{font-family:manrope,manrope Fallback}.__variable_0f4e5b{--font-manrope:"manrope","manrope Fallback"}