:root{font-synthesis:none;text-rendering:optimizeLegibility}.nav{position:sticky;top:0;z-index:100;height:var(--nav-h);background:#09090b00;border-bottom:1px solid transparent;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);overflow:visible}.nav--scrolled{border-bottom-color:var(--border);background:#09090bd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.nav__inner{display:flex;align-items:center;justify-content:space-between;height:100%}.nav__brand{font-size:var(--text-sm);font-weight:600;color:var(--text);letter-spacing:-.01em;transition:color var(--dur-fast) var(--ease)}.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{display:flex;align-items:center;gap:.15rem}.nav__link{position:relative;display:block;padding:.4rem .75rem;font-size:var(--text-sm);color:var(--text-muted);border-radius:var(--r-sm);transition:color var(--dur-fast) var(--ease)}.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:"";position:absolute;left:.75rem;right:.75rem;bottom:.1rem;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}.nav__link--active{color:var(--text)}.nav__link--active:after{transform:scaleX(1)}.nav__contact-link{display:block;padding:.4rem .85rem;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)}.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{display:none;flex-direction:column;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;background:none;border:none;border-radius:var(--r-sm);color:var(--text-subtle);cursor:pointer;transition:color var(--dur-fast) var(--ease)}.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{display:block;width:18px;height:1.5px;background:currentColor;border-radius:1px;transition:transform .18s var(--ease),opacity var(--dur-fast) var(--ease)}.nav__burger-bar+.nav__burger-bar{margin-top:4px}.nav__burger--open .nav__burger-bar:nth-child(1){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{position:absolute;top:100%;left:0;right:0;z-index:100;background:#09090be0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(245,158,11,.28);padding:.5rem var(--page-x) 1.5rem;opacity:0;transform:translateY(-6px);pointer-events:none;visibility:hidden;transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s}.nav__drawer--open{opacity:1;transform:translateY(0);pointer-events:auto;visibility:visible}.nav__drawer-links{display:flex;flex-direction:column;gap:.15rem}.nav__drawer--open .nav__drawer-links li{animation:drawer-link-in .3s var(--ease) both;animation-delay:var(--drawer-delay, 0ms)}@keyframes drawer-link-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.nav__drawer-link{position:relative;display:block;padding:.85rem .5rem;font-size:var(--text-sm);color:var(--text);border-radius:var(--r-sm);transition:color var(--dur-fast) var(--ease)}.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:"";position:absolute;left:.5rem;right:.5rem;bottom:.45rem;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}.nav__drawer-link--active{color:var(--accent)}.nav__drawer-link--active:after{transform:scaleX(1)}.nav__drawer-links li:last-child{margin-top:.25rem;padding-top:.75rem;border-top:1px solid var(--border)}.nav__drawer-contact{display:block;padding:.65rem .85rem;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)}.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{position:fixed;inset:0;top:var(--nav-h);z-index:99;background:transparent;cursor:default}@media(max-width:600px){.nav__desktop{display:none}.nav__burger{display:flex}}@media(prefers-reduced-motion:reduce){.nav__link:after{transition:none;transform:scaleX(1);opacity:0}.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{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:var(--nav-h) var(--page-x) 4rem;text-align:left;overflow:hidden;opacity:var(--hero-fade, 1)}@media(min-width:900px){.hero{min-height:70dvh}}.hero__inner{display:flex;flex-direction:column;align-items:flex-start;gap:1.25rem;max-width:min(46rem,50vw);animation:hero-in .9s var(--ease) both}@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>*:nth-child(1){animation-delay:.05s}.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 ease}@media(prefers-reduced-motion:reduce){.hero__name,.hero__currently,.hero__tagline,.hero__socials{transition:none}}.hero__name{font-size:clamp(3rem,8vw,5.5rem);font-weight:700;letter-spacing:-.04em;line-height:1;margin:0}.hero__currently{font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:500;color:var(--text-muted);letter-spacing:-.012em;line-height:1.25;margin:0}@media(max-width:899px){.hero__currently{text-shadow:0 0 4px rgba(9,9,11,.9),0 0 12px rgba(9,9,11,.7)}}.hero__company{font-weight:700;white-space:nowrap;color:#0095ff}.hero__tagline{font-size:clamp(.9rem,1.6vw,1.0625rem);color:var(--text-muted);line-height:1.55;max-width:46ch;margin:0}.hero__socials{display:inline-flex;align-items:center;gap:.85rem;margin:.75rem 0 0;padding:0;list-style:none}.hero__social{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--r-sm);color:var(--text-subtle);transition:color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.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(max-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{position:fixed;inset:0;pointer-events:none;display:block}.shader-frame{z-index:-3;width:100%;height:100%;border:0;background:transparent}.shader-ambient{z-index:-2;mix-blend-mode:screen;background:radial-gradient(ellipse 110vw 82vh at 79% 47%,#f59e0b2e,#f582321a,#ba5c240a,#0000 72%),radial-gradient(ellipse 130vw 96vh at 67% 43%,#5492ff0f,#285cc609 30%,#0000 72%)}.shader-overlay{z-index:-1;background:radial-gradient(ellipse 120vw 110vh at -6% 4%,rgba(6,7,10,.97) 0%,rgba(7,8,12,.93) 26%,rgba(8,9,14,.72) 52%,rgba(8,9,14,.28) 74%,transparent 100%),linear-gradient(90deg,#0405087a,#04050833 28%,#04050800 62%)}@media(max-width:899px){.shader-ambient{background:radial-gradient(ellipse 128vw 56vh at 50% 27%,#f59e0b2e,#f582321a 28%,#b45a1e09,#0000 88%),radial-gradient(ellipse 120vw 62vh at 50% 21%,#5492ff0d,#285cc606 34%,#0000 76%),radial-gradient(ellipse 110vw 70vh at 50% 72%,#b45a1e0f,#8c461908 48%,#0000 85%)}.shader-overlay{background:linear-gradient(180deg,#04050800 0% 38%,#05060a6b 58%,#06070ac7,#07080bf0)}}.work{padding-block:clamp(4rem,10vh,7rem)}.work__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,4rem);margin-top:clamp(2rem,5vh,3.5rem)}@media(max-width:720px){.work__grid{grid-template-columns:1fr;gap:clamp(2.5rem,6vh,3.5rem)}}.work__group{display:flex;flex-direction:column;gap:1.25rem}.work__group-head{display:flex;flex-direction:column;gap:.35rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.work__group-name{font-size:clamp(1.25rem,2vw,1.5rem);font-weight:600;letter-spacing:-.02em;color:var(--text);margin:0;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{display:flex;flex-direction:column;gap:1.1rem}.work__item{display:flex;flex-direction:column;gap:.3rem}.work__item-name{font-size:var(--text-base);font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.3}.work__item-blurb{font-size:var(--text-sm, .9375rem);color:var(--text-muted);line-height:1.5;max-width:40ch}.work__more{display:inline-flex;align-items:center;gap:.45rem;margin-top:clamp(2rem,4vh,3rem);padding:.5rem 0;font-family:var(--font-mono);font-size:var(--text-sm, .9375rem);font-weight:500;color:var(--text);border-bottom:1px solid var(--border-hover);transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);width:fit-content}.work__more:hover{color:var(--accent);border-color:var(--accent)}.work__more>span{display:inline-block;transition:transform var(--dur) var(--ease)}.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{display:flex;flex-direction:column}.exp-role{display:grid;grid-template-columns:11rem 1fr;gap:2.5rem;padding:1.75rem 0;border-top:1px solid var(--border)}.exp-role:last-child{border-bottom:1px solid var(--border)}.exp-role__left{display:flex;flex-direction:column;gap:.35rem;padding-top:.25rem}.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);font-weight:600;color:var(--text);letter-spacing:-.01em}.exp-role__right{display:flex;flex-direction:column;gap:.85rem}.exp-role__title{font-size:var(--text-lg);font-weight:500;color:var(--text-muted);line-height:1.3;margin:0}.exp-role__highlights{display:flex;flex-direction:column;gap:.55rem;margin:0;padding:0}.exp-role__highlights>li{font-size:var(--text-base);color:var(--text-muted);line-height:1.65;padding-left:1.25rem;position:relative}.exp-role__highlights>li:before{content:"";position:absolute;left:0;top:.6em;width:.4rem;height:1px;background:var(--text-subtle)}.exp-education{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-subtle);line-height:1.6}@media(max-width:768px){.exp-role{grid-template-columns:1fr;gap:.6rem}.exp-role__left{flex-direction:row;align-items:baseline;gap:.85rem;flex-wrap:wrap;padding-top:0}}.projects-page{position:relative;background:#09090bf0;min-height:100dvh;padding-block:calc(var(--nav-h) + clamp(2rem,5vh,3rem)) clamp(4rem,10vh,7rem)}.projects-page__head{display:flex;flex-direction:column;gap:.75rem;margin-bottom:clamp(3rem,7vh,5rem);max-width:60rem}.projects-page__back{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);width:fit-content;margin-bottom:.5rem;transition:color var(--dur-fast) var(--ease)}.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{font-size:clamp(2.5rem,6vw,4rem);font-weight:700;letter-spacing:-.035em;line-height:1;margin:0}.projects-page__sub{font-size:clamp(1rem,1.6vw,1.125rem);color:var(--text-muted);line-height:1.55;margin:0;max-width:50ch}.projects-page__group{margin-top:clamp(3rem,7vh,5rem)}.projects-page__group-head{display:flex;flex-direction:column;gap:.35rem;padding-bottom:1rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.projects-page__group-name{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:600;letter-spacing:-.02em;margin:0}.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{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr));gap:1.5rem}.proj{display:flex;flex-direction:column;gap:.85rem;padding:1.5rem;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)}.proj:hover{border-color:var(--border-hover);transform:translateY(-2px)}.proj__head{display:flex;align-items:center;gap:.85rem}.proj__icon{width:2.5rem;height:2.5rem;border-radius:var(--r-sm);flex-shrink:0;background:#ffffff0a}.proj__icon--img{object-fit:cover;padding:.35rem}.proj__icon--letter{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--text);border:1px solid var(--border)}.proj__head-text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.proj__name{font-size:1.125rem;font-weight:600;letter-spacing:-.012em;margin:0;line-height:1.2}.proj__blurb{font-size:var(--text-sm, .9375rem);color:var(--text-muted);line-height:1.55;margin:0}.proj__tech{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle);letter-spacing:.02em;margin:0}.proj__links{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.4rem}.proj__link{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);border-bottom:1px solid transparent;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.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{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:clamp(3rem,8vh,5rem)}.footer__cta{font-size:var(--text-base);padding:.7rem 1.4rem}.footer__copy{font-size:var(--text-xs);color:var(--text-subtle);line-height:1.5;margin:0;padding-top:1.5rem;border-top:1px solid var(--border)}: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: rgba(245, 158, 11, .08);--accent-border: rgba(245, 158, 11, .32);--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);line-height:1.65;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.work,.experience,.footer{position:relative;background:#09090bcc}.work:before{content:"";position:absolute;left:0;right:0;top:-6rem;height:6rem;background:linear-gradient(to bottom,#09090b00,#09090bd1);pointer-events:none}img,svg{display:block;max-width:100%}button,a{cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4{line-height:1.2;font-weight:600}::selection{background:#f59e0b47;color:var(--text)}::-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);margin-inline:auto;padding-inline:var(--page-x)}.skip-link{position:absolute;left:-9999px;top:1rem;z-index:9999;padding:.5rem 1rem;background:var(--accent);color:#fff;border-radius:var(--r);font-size:var(--text-sm);font-weight:500}.skip-link:focus{left:1rem}.section-head{display:flex;flex-direction:column;gap:.6rem;margin-bottom:clamp(2rem,5vh,3.25rem);padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.section-head__row{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.section-head__index{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--text-subtle);letter-spacing:.08em;font-variant-numeric:tabular-nums}.section-head__title{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;letter-spacing:-.025em;line-height:1.05;color:var(--text);margin:0}.section-head__sub{font-size:var(--text-base);color:var(--text-muted);line-height:1.55;max-width:60ch;margin:0}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:var(--text-xs);font-weight:500;border-radius:9999px;border:1px solid;white-space:nowrap;line-height:1.4}.badge:before{content:"";display:block;width:.38rem;height:.38rem;border-radius:50%;background:currentColor}.badge--live{color:var(--success);border-color:#22c55e4d;background:#22c55e0f}.badge--launching{color:var(--warning);border-color:#f59e0b4d;background:#f59e0b0f}.badge--lab{color:var(--text-subtle);border-color:var(--border);background:transparent}.chip{display:inline-block;padding:.2rem .5rem;font-size:var(--text-xs);font-weight:500;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-muted);white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-family:var(--font);font-size:var(--text-sm);font-weight:500;border-radius:var(--r);border:1px solid transparent;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);text-decoration:none;white-space:nowrap}.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{background:transparent;color:var(--text-muted);border-color:var(--border)}.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;transform:translateY(14px);transition:opacity .65s var(--spring),transform .65s var(--spring)}[data-reveal][data-revealed=true]{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}}.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}.gradient-text{background:linear-gradient(135deg,#fff 30%,#fff9);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
