:root{font-synthesis:none;text-rendering:optimizelegibility}.nav{z-index:100;height:var(--nav-h);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);background:#09090b00;border-bottom:1px solid #0000;position:sticky;top:0;overflow:visible}.nav--scrolled{border-bottom-color:var(--border);-webkit-backdrop-filter:blur(12px);background:#09090bd9}.nav__inner{justify-content:space-between;align-items:center;height:100%;display:flex}.nav__brand{font-size:var(--text-sm);color:var(--text);letter-spacing:-.01em;transition:color var(--dur-fast) var(--ease);font-weight:600}.nav__brand:hover{color:var(--text-muted)}.nav__brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.nav__links{align-items:center;gap:.15rem;display:flex}.nav__link{font-size:var(--text-sm);color:var(--text-muted);border-radius:var(--r-sm);transition:color var(--dur-fast) var(--ease);padding:.4rem .75rem;display:block;position:relative}.nav__link:hover{color:var(--text)}.nav__link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r-sm)}.nav__link:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform var(--dur) var(--ease);position:absolute;bottom:.1rem;left:.75rem;right:.75rem;transform:scaleX(0)}.nav__link--active{color:var(--text)}.nav__link--active:after{transform:scaleX(1)}.nav__contact-link{font-size:var(--text-sm);color:var(--text);border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);padding:.4rem .85rem;display:block}.nav__contact-link:hover,.nav__contact-link--active{border-color:var(--accent);color:var(--accent)}.nav__contact-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.nav__burger{border-radius:var(--r-sm);width:2.25rem;height:2.25rem;color:var(--text-subtle);cursor:pointer;transition:color var(--dur-fast) var(--ease);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;padding:0;display:none}.nav__burger:hover{color:var(--accent)}.nav__burger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.nav__burger-bar{width:18px;height:1.5px;transition:transform .18s var(--ease), opacity var(--dur-fast) var(--ease);background:currentColor;border-radius:1px;display:block}.nav__burger-bar+.nav__burger-bar{margin-top:4px}.nav__burger--open .nav__burger-bar:first-child{transform:translateY(5.5px)rotate(45deg)}.nav__burger--open .nav__burger-bar:nth-child(2){opacity:0;transform:scaleX(0)}.nav__burger--open .nav__burger-bar:nth-child(3){transform:translateY(-5.5px)rotate(-45deg)}.nav__drawer{z-index:100;-webkit-backdrop-filter:blur(12px);padding:.5rem var(--page-x) 1.5rem;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;background:#09090be0;border-bottom:1px solid #f59e0b47;position:absolute;top:100%;left:0;right:0;transform:translateY(-6px)}.nav__drawer--open{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.nav__drawer-links{flex-direction:column;gap:.15rem;display:flex}.nav__drawer--open .nav__drawer-links li{animation:drawer-link-in .3s var(--ease) both;animation-delay:var(--drawer-delay,0s)}@keyframes drawer-link-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.nav__drawer-link{font-size:var(--text-sm);color:var(--text);border-radius:var(--r-sm);transition:color var(--dur-fast) var(--ease);padding:.85rem .5rem;display:block;position:relative}.nav__drawer-link:hover{color:var(--accent)}.nav__drawer-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r-sm)}.nav__drawer-link:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform var(--dur) var(--ease);position:absolute;bottom:.45rem;left:.5rem;right:.5rem;transform:scaleX(0)}.nav__drawer-link--active{color:var(--accent)}.nav__drawer-link--active:after{transform:scaleX(1)}.nav__drawer-links li:last-child{border-top:1px solid var(--border);margin-top:.25rem;padding-top:.75rem}.nav__drawer-contact{font-size:var(--text-sm);color:var(--text);border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);text-align:center;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);padding:.65rem .85rem;display:block}.nav__drawer-contact:hover,.nav__drawer-contact--active{border-color:var(--accent);color:var(--accent)}.nav__drawer-contact:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.nav__backdrop{inset:0;top:var(--nav-h);z-index:99;cursor:default;background:0 0;position:fixed}@media (width<=600px){.nav__desktop{display:none}.nav__burger{display:flex}}@media (prefers-reduced-motion:reduce){.nav__link:after{opacity:0;transition:none;transform:scaleX(1)}.nav__link--active:after{opacity:1}.nav__burger-bar{transition:none}.nav__drawer{transition:opacity .01ms,visibility .01ms}.nav__drawer--open .nav__drawer-links li{animation:none}}.hero{min-height:100dvh;padding:var(--nav-h) var(--page-x) 4rem;text-align:left;opacity:var(--hero-fade,1);flex-direction:column;justify-content:center;align-items:flex-start;display:flex;position:relative;overflow:hidden}@media (width>=900px){.hero{min-height:70dvh}}.hero__inner{max-width:min(46rem,50vw);animation:hero-in .9s var(--ease) both;flex-direction:column;align-items:flex-start;gap:1.25rem;display:flex}@keyframes hero-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hero__inner>*{animation:hero-in .9s var(--ease) both}.hero__inner>:first-child{animation-delay:50ms}.hero__inner>:nth-child(2){animation-delay:.15s}.hero__inner>:nth-child(3){animation-delay:.25s}.hero__inner>:nth-child(4){animation-delay:.35s}.hero__inner>:nth-child(5){animation-delay:.45s}.hero__name,.hero__currently,.hero__tagline,.hero__socials{transition:translate .1s}@media (prefers-reduced-motion:reduce){.hero__name,.hero__currently,.hero__tagline,.hero__socials{transition:none}}.hero__name{letter-spacing:-.04em;margin:0;font-size:clamp(3rem,8vw,5.5rem);font-weight:700;line-height:1}.hero__currently{color:var(--text-muted);letter-spacing:-.012em;margin:0;font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:500;line-height:1.25}@media (width<=899px){.hero__currently{text-shadow:0 0 4px #09090be6,0 0 12px #09090bb3}}.hero__company{white-space:nowrap;color:#0095ff;font-weight:700}.hero__tagline{color:var(--text-muted);max-width:46ch;margin:0;font-size:clamp(.9rem,1.6vw,1.0625rem);line-height:1.55}.hero__socials{align-items:center;gap:.85rem;margin:.75rem 0 0;padding:0;list-style:none;display:inline-flex}.hero__social{border-radius:var(--r-sm);width:2.25rem;height:2.25rem;color:var(--text-subtle);transition:color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);justify-content:center;align-items:center;display:inline-flex}.hero__social:hover{color:var(--accent);transform:translateY(-1px)}.hero__social:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hero__social-icon{display:block}@media (width<=899px){.hero{justify-content:flex-end;padding-top:0;padding-bottom:5rem}.hero__inner{max-width:100%}}@media (prefers-reduced-motion:reduce){.hero__inner,.hero__inner>*{animation:none}}.shader-frame,.shader-ambient,.shader-overlay{pointer-events:none;display:block;position:fixed;inset:0}.shader-frame{z-index:-3;background:0 0;border:0;width:100%;height:100%}.shader-ambient{z-index:-2;mix-blend-mode:screen;background:radial-gradient(110vw 82vh at 79% 47%,#f59e0b2e 0%,#f582321a 24%,#ba5c240a 48%,#0000 72%),radial-gradient(130vw 96vh at 67% 43%,#5492ff0f 0%,#285cc609 30%,#0000 72%)}.shader-overlay{z-index:-1;background:radial-gradient(120vw 110vh at -6% 4%,#06070af7 0%,#07080ced 26%,#08090eb8 52%,#08090e47 74%,#0000 100%),linear-gradient(90deg,#0405087a 0%,#04050833 28%,#04050800 62%)}@media (width<=899px){.shader-ambient{background:radial-gradient(128vw 56vh at 50% 27%,#f59e0b2e 0%,#f582321a 28%,#b45a1e09 58%,#0000 88%),radial-gradient(120vw 62vh at 50% 21%,#5492ff0d 0%,#285cc606 34%,#0000 76%),radial-gradient(110vw 70vh at 50% 72%,#b45a1e0f 0%,#8c461908 48%,#0000 85%)}.shader-overlay{background:linear-gradient(#04050800 0% 38%,#05060a6b 58%,#06070ac7 79%,#07080bf0 100%)}}.work{padding-block:clamp(4rem,10vh,7rem)}.work__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,4rem);margin-top:clamp(2rem,5vh,3.5rem);display:grid}@media (width<=720px){.work__grid{grid-template-columns:1fr;gap:clamp(2.5rem,6vh,3.5rem)}}.work__group{flex-direction:column;gap:1.25rem;display:flex}.work__group-head{border-bottom:1px solid var(--border);flex-direction:column;gap:.35rem;padding-bottom:.75rem;display:flex}.work__group-name{letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(1.25rem,2vw,1.5rem);font-weight:600;line-height:1.2}.work__group-tech{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle);letter-spacing:.04em;margin:0}.work__items{flex-direction:column;gap:1.1rem;display:flex}.work__item{flex-direction:column;gap:.3rem;display:flex}.work__item-name{font-size:var(--text-base);color:var(--text);letter-spacing:-.01em;font-weight:600;line-height:1.3}.work__item-blurb{font-size:var(--text-sm,.9375rem);color:var(--text-muted);max-width:40ch;line-height:1.5}.work__more{font-family:var(--font-mono);font-size:var(--text-sm,.9375rem);color:var(--text);border-bottom:1px solid var(--border-hover);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);align-items:center;gap:.45rem;width:fit-content;margin-top:clamp(2rem,4vh,3rem);padding:.5rem 0;font-weight:500;display:inline-flex}.work__more:hover{color:var(--accent);border-color:var(--accent)}.work__more>span{transition:transform var(--dur) var(--ease);display:inline-block}.work__more:hover>span{transform:translate(4px)}.work__more:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r-sm)}@media (prefers-reduced-motion:reduce){.work__more:hover>span{transform:none}}.experience{padding-block:clamp(4rem,10vh,7rem)}.exp-list{flex-direction:column;display:flex}.exp-role{border-top:1px solid var(--border);grid-template-columns:11rem 1fr;gap:2.5rem;padding:1.75rem 0;display:grid}.exp-role:last-child{border-bottom:1px solid var(--border)}.exp-role__left{flex-direction:column;gap:.35rem;padding-top:.25rem;display:flex}.exp-role__dates{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle);font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1.5}.exp-role__company{font-size:var(--text-base);color:var(--text);letter-spacing:-.01em;font-weight:600}.exp-role__right{flex-direction:column;gap:.85rem;display:flex}.exp-role__title{font-size:var(--text-lg);color:var(--text-muted);margin:0;font-weight:500;line-height:1.3}.exp-role__highlights{flex-direction:column;gap:.55rem;margin:0;padding:0;display:flex}.exp-role__highlights>li{font-size:var(--text-base);color:var(--text-muted);padding-left:1.25rem;line-height:1.65;position:relative}.exp-role__highlights>li:before{content:"";background:var(--text-subtle);width:.4rem;height:1px;position:absolute;top:.6em;left:0}.exp-education{border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-subtle);margin-top:2.5rem;padding-top:1.5rem;line-height:1.6}@media (width<=768px){.exp-role{grid-template-columns:1fr;gap:.6rem}.exp-role__left{flex-flow:wrap;align-items:baseline;gap:.85rem;padding-top:0}}.projects-page{min-height:100dvh;padding-block:calc(var(--nav-h) + clamp(2rem, 5vh, 3rem)) clamp(4rem, 10vh, 7rem);background:#09090bf0;position:relative}.projects-page__head{flex-direction:column;gap:.75rem;max-width:60rem;margin-bottom:clamp(3rem,7vh,5rem);display:flex}.projects-page__back{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);width:fit-content;transition:color var(--dur-fast) var(--ease);align-items:center;gap:.45rem;margin-bottom:.5rem;display:inline-flex}.projects-page__back:hover{color:var(--text)}.projects-page__back:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r-sm)}.projects-page__title{letter-spacing:-.035em;margin:0;font-size:clamp(2.5rem,6vw,4rem);font-weight:700;line-height:1}.projects-page__sub{color:var(--text-muted);max-width:50ch;margin:0;font-size:clamp(1rem,1.6vw,1.125rem);line-height:1.55}.projects-page__group{margin-top:clamp(3rem,7vh,5rem)}.projects-page__group-head{border-bottom:1px solid var(--border);flex-direction:column;gap:.35rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.projects-page__group-name{letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,2.5vw,2rem);font-weight:600}.projects-page__group-tech{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle);letter-spacing:.04em;margin:0}.projects-page__cards{grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr));gap:1.5rem;display:grid}.proj{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:border-color var(--dur-fast) var(--ease), transform var(--dur) var(--ease);flex-direction:column;gap:.85rem;padding:1.5rem;display:flex}.proj:hover{border-color:var(--border-hover);transform:translateY(-2px)}.proj__head{align-items:center;gap:.85rem;display:flex}.proj__icon{border-radius:var(--r-sm);background:#ffffff0a;flex-shrink:0;width:2.5rem;height:2.5rem}.proj__icon--img{object-fit:cover;padding:.35rem}.proj__icon--letter{font-family:var(--font-mono);color:var(--text);border:1px solid var(--border);justify-content:center;align-items:center;font-size:1.1rem;font-weight:600;display:inline-flex}.proj__head-text{flex-direction:column;gap:.25rem;min-width:0;display:flex}.proj__name{letter-spacing:-.012em;margin:0;font-size:1.125rem;font-weight:600;line-height:1.2}.proj__blurb{font-size:var(--text-sm,.9375rem);color:var(--text-muted);margin:0;line-height:1.55}.proj__tech{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle);letter-spacing:.02em;margin:0}.proj__links{flex-wrap:wrap;gap:.4rem 1rem;margin-top:.4rem;display:flex}.proj__link{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border-bottom:1px solid #0000;align-items:center;gap:.3rem;display:inline-flex}.proj__link:hover{border-color:var(--accent)}.proj__link--secondary{color:var(--text-muted)}.proj__link--secondary:hover{color:var(--text);border-color:var(--border-hover)}.proj__link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}@media (prefers-reduced-motion:reduce){.proj:hover{transform:none}}.footer{padding-block:clamp(4rem,10vh,7rem) clamp(2rem,5vh,3rem)}.footer__cta-row{flex-wrap:wrap;gap:.75rem;margin-bottom:clamp(3rem,8vh,5rem);display:flex}.footer__cta{font-size:var(--text-base);padding:.7rem 1.4rem}.footer__copy{font-size:var(--text-xs);color:var(--text-subtle);border-top:1px solid var(--border);margin:0;padding-top:1.5rem;line-height:1.5}:root{--bg:#09090b;--surface:#18181b;--surface-elevated:#1c1c20;--border:#27272a;--border-hover:#3f3f46;--text:#fafafa;--text-muted:#a1a1aa;--text-subtle:#808089;--accent:#f59e0b;--accent-hover:#fbbf24;--accent-bg:#f59e0b14;--accent-border:#f59e0b52;--success:#22c55e;--warning:#f59e0b;--hero-fade:1;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SF Mono", "JetBrains Mono", "Fira Code", "Cascadia Code", ui-monospace, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.3125rem;--text-2xl:1.5625rem;--text-3xl:1.9375rem;--text-4xl:2.5rem;--text-5xl:3.25rem;--max-w:1080px;--page-x:clamp(1.25rem, 5vw, 2.5rem);--nav-h:3.5rem;--r-sm:.25rem;--r:.5rem;--r-lg:.75rem;--ease:cubic-bezier(.4, 0, .2, 1);--spring:linear(0, .009, .035 2.1%, .141 4.4%, .281 6.7%, .723 12.9%, .938 16.7%, 1.017, 1.077, 1.067, 1.033, 1.002 30.4%, .994 40.2%, 1);--dur-fast:.12s;--dur:.18s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--text-base);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65}.work,.experience,.footer{background:#09090bcc;position:relative}.work:before{content:"";pointer-events:none;background:linear-gradient(#09090b00 0%,#09090bd1 100%);height:6rem;position:absolute;top:-6rem;left:0;right:0}img,svg{max-width:100%;display:block}button,a{cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4{font-weight:600;line-height:1.2}::selection{color:var(--text);background:#f59e0b47}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}*{scrollbar-width:thin;scrollbar-color:var(--border) var(--bg)}.container{width:100%;max-width:var(--max-w);padding-inline:var(--page-x);margin-inline:auto}.skip-link{z-index:9999;background:var(--accent);color:#fff;border-radius:var(--r);font-size:var(--text-sm);padding:.5rem 1rem;font-weight:500;position:absolute;top:1rem;left:-9999px}.skip-link:focus{left:1rem}.section-head{border-bottom:1px solid var(--border);flex-direction:column;gap:.6rem;margin-bottom:clamp(2rem,5vh,3.25rem);padding-bottom:1.25rem;display:flex}.section-head__row{flex-wrap:wrap;align-items:baseline;gap:1rem;display:flex}.section-head__index{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle);letter-spacing:.08em;font-variant-numeric:tabular-nums;font-weight:500}.section-head__title{letter-spacing:-.025em;color:var(--text);margin:0;font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;line-height:1.05}.section-head__sub{font-size:var(--text-base);color:var(--text-muted);max-width:60ch;margin:0;line-height:1.55}.badge{font-size:var(--text-xs);white-space:nowrap;border:1px solid;border-radius:9999px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-weight:500;line-height:1.4;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:.38rem;height:.38rem;display:block}.badge--live{color:var(--success);background:#22c55e0f;border-color:#22c55e4d}.badge--launching{color:var(--warning);background:#f59e0b0f;border-color:#f59e0b4d}.badge--lab{color:var(--text-subtle);border-color:var(--border);background:0 0}.chip{font-size:var(--text-xs);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-muted);white-space:nowrap;padding:.2rem .5rem;font-weight:500;display:inline-block}.btn{font-family:var(--font);font-size:var(--text-sm);border-radius:var(--r);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--secondary{color:var(--text-muted);border-color:var(--border);background:0 0}.btn--secondary:hover{border-color:var(--border-hover);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[data-reveal]{opacity:0;transition:opacity .65s var(--spring), transform .65s var(--spring);transform:translateY(14px)}[data-reveal][data-revealed=true]{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gradient-text{background:linear-gradient(135deg,#fff 30%,#fff9 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}
