@font-face{font-family:Instrument Sans;src:url(./instrument-sans-latin-wght-normal-BbzFLZTg.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Plex Mono;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Michroma;src:url(./michroma-latin-400-normal-4gS0VCia.woff2)format("woff2");font-weight:400;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#05070a;--ink:#e8edf4;--muted:#95a2b4;--soft:#bac8d9;--line:#87b1dd2b;--cyan:#85cfff;--edge:clamp(22px,4.4vw,88px);--head-h:clamp(68px,9svh,90px);--display:"Michroma","Eurostile","Instrument Sans",sans-serif;--sans:"Instrument Sans","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--mono:"Plex Mono",ui-monospace,monospace;font-family:var(--sans);color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);margin:0}button,a{color:inherit;font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:0 0;border:0;padding:0}a{text-decoration:none}a:focus-visible,button:focus-visible{outline:1px solid var(--cyan);outline-offset:5px}h1,h2,h3,p{margin:0}img,canvas,svg{display:block}button>*,a>*{pointer-events:none}::selection{background:var(--cyan);color:#04070a}[hidden]{display:none!important}i[data-icon]{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}i[data-icon] svg{fill:currentColor;width:1em;height:1em}.skip-link{left:var(--edge);z-index:12;background:var(--ink);color:var(--bg);padding:14px;position:fixed;top:-80px}.skip-link:focus{top:12px}.site-head{z-index:8;height:var(--head-h);padding:0 var(--edge);pointer-events:none;background:linear-gradient(#05070ae8,#0000);grid-template-columns:1fr auto;align-items:center;display:grid;position:fixed;inset:0 0 auto}.site-head>*{pointer-events:auto}.brand{width:max-content;font:13px/1 var(--display);letter-spacing:.32em;align-items:center;gap:12px;display:inline-flex}.brand-mark{width:26px;height:21px;color:var(--cyan)}.head-end{justify-self:end;align-items:center;display:flex}.contact-link{letter-spacing:.1em;background:#080c1280;border:1px solid #bedcf552;align-items:center;gap:12px;padding:9px 14px;font-size:12px;display:inline-flex}.contact-link i{color:var(--cyan);font-size:14px}.contact-link:hover{border-color:var(--cyan)}.sequence{isolation:isolate;position:relative}.stage{isolation:isolate;z-index:0;background:var(--bg);--hero-alpha:1;--hero-lift:0px;--figure-alpha:1;--field-alpha:0;height:100svh;position:sticky;top:0;overflow:clip}.atmos{opacity:calc(.24 + var(--figure-alpha)*.76);background:radial-gradient(36% 60% at 50% 40%,#101b26,#05070a 85%);position:absolute;inset:0}.figure-wrap{--portrait-growth:clamp(0px,calc(100vw - 680px),20svh);z-index:1;left:0;right:0;top:calc(9svh - var(--portrait-growth)/4);height:min(132vw,calc(84svh + var(--portrait-growth)));aspect-ratio:864/1080;transform-origin:50% 35%;will-change:transform,opacity;opacity:var(--figure-alpha);touch-action:pan-y;-webkit-mask-composite:source-in;margin-inline:auto;position:absolute;-webkit-mask-image:linear-gradient(#0000,#000 3% 64%,#0000 92%),linear-gradient(90deg,#0000,#000 15% 85%,#0000);mask-image:linear-gradient(#0000,#000 3% 64%,#0000 92%),linear-gradient(90deg,#0000,#000 15% 85%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.android-shell,.android-reveal{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.android-turntable{opacity:0}[data-figure-ready=true] .android-turntable{opacity:1}.android-fallback{opacity:0;transition:opacity .25s}.native-portrait{z-index:1;pointer-events:none}.orb-hit{z-index:4;touch-action:pan-y;cursor:grab;pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.orb-hit.is-dragging{cursor:grabbing}.tech-selector{z-index:5;right:var(--edge);width:170px;height:min(52svh,470px);opacity:var(--tech-alpha,0);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tech-selector:not([inert]){pointer-events:auto}.tech-scroll{overscroll-behavior:contain;scrollbar-width:none;height:100%;padding-block:calc(min(52svh,470px)/2 - 23px);position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 16% 84%,#0000);mask-image:linear-gradient(#0000,#000 16% 84%,#0000)}.tech-scroll::-webkit-scrollbar{display:none}.tech-option{text-align:right;flex-shrink:0;justify-content:flex-end;align-items:center;gap:15px;width:100%;height:46px;padding:0 2px 0 0;display:flex;position:relative}.tech-name{font:10px/1.3 var(--mono);letter-spacing:.08em;white-space:nowrap;opacity:0;color:var(--soft);transition:opacity .25s,transform .3s;transform:translate(7px)}.tech-selector:hover .tech-name{opacity:.45;transform:translate(0)}.tech-tick{background:#9da5ae55;flex-shrink:0;width:23px;height:1px;transition:width .35s,background .25s,box-shadow .35s}.tech-option:hover .tech-name,.tech-option:focus-visible .tech-name{opacity:.8;transform:translate(0)}.tech-option[aria-pressed=true] .tech-name{opacity:1;color:#9ce5f1;transform:translate(0)}.tech-option[aria-pressed=true] .tech-tick{background:#80e3f1;width:44px;box-shadow:0 0 12px #49cede70}.tech-option:focus-visible{outline-offset:-3px;outline-color:#80e3f188}.tech-option:active{transform:translateY(1px)}.no-webgl .tech-selector,.no-webgl .orb-hit{display:none}@media (hover:none){.tech-name{opacity:.55;transform:none}}.flow-canvas{z-index:2;pointer-events:none;width:100%;height:100%;opacity:var(--field-alpha);position:absolute;inset:0}.stage:after{content:"";z-index:3;pointer-events:none;background:radial-gradient(90% 85% at 50% 45%,#0000 55%,#02030570);position:absolute;inset:0}.orb-fallback{left:var(--orb-x,33.5%);top:var(--orb-y,52.5%);width:var(--orb-size,50vw);aspect-ratio:1;opacity:var(--field-alpha);background:radial-gradient(circle at 38% 30%,#1d68b34d,#0000 62%);border:1px solid #3d88d766;border-radius:50%;display:none;position:absolute;transform:translate(-50%,-50%);box-shadow:inset -20px -15px 55px #071222,0 0 80px #1769c22b}.no-webgl .orb-fallback{display:block}.no-webgl .flow-canvas{display:none}.stage.no-webgl~.dive-distance{height:0}.stage.no-webgl~.experience{height:150svh}.hero-overlay{z-index:4;opacity:var(--hero-alpha);pointer-events:none;position:absolute;inset:0}.hero-overlay a,.hero-overlay button{pointer-events:auto}.hero-copy{left:var(--edge);width:min(30vw,470px);transform:translateY(var(--hero-lift));position:absolute;top:36%}h1{font-family:var(--display);margin:clamp(18px,3vh,30px) 0 22px;font-weight:400;line-height:1}.h1-line{letter-spacing:.07em;align-items:flex-end;font-size:clamp(38px,4.3vw,80px);display:flex}.h1-mid{font:11px var(--mono);letter-spacing:.6em;color:var(--muted);align-items:center;gap:14px;margin:.9em 0 .8em;display:flex}.h1-mid:before,.h1-mid:after{content:"";background:linear-gradient(90deg,#0000,#a0c8eb73);width:34px;height:1px}.h1-mid:after{background:linear-gradient(90deg,#a0c8eb73,#0000);flex:1;max-width:120px}.h1-outline{color:#0000;-webkit-text-stroke:1px #dcecffde;text-shadow:0 0 22px #7fe3ff29}.flow-cta{letter-spacing:.1em;align-items:center;gap:18px;margin-top:16px;padding:14px 0;font-size:12px;transition:color .2s;display:inline-flex}.flow-cta i{color:var(--cyan);font-size:15px}.flow-cta:hover{color:var(--cyan)}.flow-cta[aria-busy=true] i{animation:1s ease-in-out infinite alternate explore-loading}@keyframes explore-loading{to{opacity:.3;transform:translate(2px,2px)}}.foreground{z-index:3;position:relative}.dive-distance{pointer-events:none;height:196svh}.legacy-anchor{position:absolute;top:0}.experience{pointer-events:none;height:190svh}.experience-pin{height:100svh;padding:0 var(--edge);pointer-events:none;opacity:var(--experience-alpha,0);grid-template-columns:56% 44%;display:grid;position:sticky;top:0}.kicker{font:10px/1.5 var(--mono);letter-spacing:.22em;color:var(--muted);text-transform:uppercase}.experience-copy{pointer-events:none;grid-column:2;align-self:center;max-width:470px;margin-left:clamp(30px,3.5vw,76px);padding:28px 0 24px}.experience-copy>*{pointer-events:auto}.experience-copy h2{letter-spacing:-.04em;margin:13px 0 38px;font-size:clamp(32px,3.5vw,54px);font-weight:450;line-height:1.15}.career{border-left:1px solid var(--line);margin:0 0 0 1px;padding:0;list-style:none}.career li{padding:0 0 34px 25px;position:relative}.career li:last-child{padding-bottom:0}.career li:before{content:"";background:#3b506c;border-radius:50%;width:5px;height:5px;position:absolute;top:4px;left:-3px}.career .current:before{background:var(--cyan);box-shadow:0 0 12px #65bfff88}.career .current h3{color:#f0f5fc}.career-date{font:10px/1.4 var(--mono);letter-spacing:.075em;color:var(--muted);flex-wrap:wrap;gap:.65em;margin-bottom:10px;display:flex}.career h3{letter-spacing:-.025em;max-width:380px;font-size:clamp(19px,1.65vw,25px);font-weight:500;line-height:1.3}.career p{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.5}.career .education{margin-top:3px}.career .education h3{font-size:20px}.career .education p{font-size:13px}.colophon{pointer-events:none;height:160svh}.contact-pin{height:100svh;padding:0 var(--edge);isolation:isolate;position:sticky;top:0}.contact-block{top:22svh;left:var(--edge);right:var(--edge);text-align:center;opacity:var(--contact-alpha,1);transform:translateY(calc((1 - var(--contact-alpha,1))*22px));flex-direction:column;align-items:center;display:flex;position:absolute}.contact-block h2{max-width:100%;font-weight:400}.contact-block .kicker{color:#a4b4c6;text-transform:none;letter-spacing:.18em}.mail-link{max-width:100%;font:400 clamp(34px,4.9vw,94px)/1.25 var(--display);letter-spacing:-.05em;pointer-events:auto;align-items:center;gap:.35em;margin:20px 0 22px;transition:color .3s;display:inline-flex}.mail-link span{text-wrap:balance;min-width:0}.mail-link i{color:#8ae4db;font-size:.52em;transition:transform .3s}.mail-link:hover{color:#b0f1eb}.mail-link:hover i{transform:translate(4px,-4px)}.contact-destination{font:10px/1.6 var(--mono);letter-spacing:.13em;color:#96a8b5}.footer-edge{left:var(--edge);right:var(--edge);border-top:1px solid var(--line);font:10px var(--mono);letter-spacing:.06em;color:var(--muted);opacity:var(--contact-alpha,1);justify-content:space-between;align-items:center;padding-top:17px;display:flex;position:absolute;bottom:24px}.footer-edge a{pointer-events:auto;align-items:center;gap:8px;display:inline-flex}.footer-edge a:hover{color:var(--cyan)}@media (width<=1100px){.experience-copy{margin-left:25px}.career li{padding-left:19px}}@media (width>=761px) and (width<=1100px){.tech-selector{width:140px;right:22px}.tech-option{gap:8px}.tech-name{letter-spacing:.02em;font-size:9px}.tech-option[aria-pressed=true] .tech-tick{width:28px}}@media (width<=760px){.tech-selector{width:128px;height:24svh;top:39svh;right:18px;transform:translateY(-50%)}.tech-scroll{padding-block:calc(12svh - 20px)}.tech-option{gap:7px;height:40px}.tech-name{letter-spacing:.02em;font-size:9px}.tech-tick{width:17px}.tech-option[aria-pressed=true] .tech-tick{width:25px}.tech-selector .tech-name,.tech-selector:hover .tech-name{opacity:0}.tech-selector .tech-option[aria-pressed=true] .tech-name{opacity:1}:root{--edge:22px;--head-h:68px}.brand{gap:8px;font-size:11px}.brand span{display:none}.contact-link{background:0 0;border:0;padding:10px 0}.contact-link span{display:none}.contact-link i{font-size:18px}.hero-copy{width:auto;top:auto;bottom:9%;right:var(--edge)}h1{margin:12px 0}.h1-line{font-size:clamp(28px,9vw,44px)}.h1-mid{margin:.6em 0 .5em;font-size:9px}.flow-cta{margin-top:12px;font-size:11px}.kicker{letter-spacing:.17em;font-size:9px}.experience{height:190svh}.experience-pin{height:100svh;padding:0 var(--edge);display:block}.experience-copy{max-width:none;margin:0;padding:55svh 0 24px}.experience-copy>.kicker{display:none}.experience-copy h2{letter-spacing:-.03em;margin:0 0 22px;font-size:28px}.career li{padding:0 0 20px 17px}.career-date{margin-bottom:5px;font-size:9px}.career h3{max-width:none;font-size:17px}.career p{margin-top:4px;font-size:12px}.career .education h3{font-size:16px}.career .education p{font-size:12px}.career .education{margin-top:0}.contact-block{top:24svh}.mail-link{gap:.28em;margin:18px 0;font-size:clamp(23px,6.6vw,46px)}.contact-destination{font-size:9px}.footer-edge{font-size:9px;bottom:20px}}@media (height<=720px) and (width>=761px){.experience-copy h2{margin-bottom:24px;font-size:32px}.career li{padding-bottom:22px}.career h3{font-size:20px}.career p{font-size:12px}.hero-copy{top:28%}.h1-line{font-size:min(4.3vw,10svh)}}@media (height<=740px) and (width<=760px){.experience-pin{height:114svh}.experience-copy{padding-top:54svh}.experience-copy h2{margin-bottom:16px;font-size:24px}.career li{padding-bottom:15px}.career h3{font-size:16px}.career-date{font-size:8px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important;animation:none!important}.dive-distance{height:0}.experience{height:150svh}}.dive-distance{height:420svh}.experience-pin{grid-template-columns:43% 57%}.experience-copy{grid-column:1;max-width:430px;margin:0}.experience-copy h2{margin:12px 0 20px;font-size:clamp(44px,4.8vw,72px)}.profile-intro{color:var(--soft);max-width:350px;margin-bottom:32px;font-size:16px;line-height:1.6}.career-heading{font:10px/1.5 var(--mono);letter-spacing:.18em;color:var(--muted);margin:0 0 22px}.career li{padding-bottom:26px}.career h3{font-size:21px}.career p{font-size:13px}@media (width<=1100px) and (width>=761px){.experience-copy{max-width:320px}.profile-intro{font-size:14px}.career h3{font-size:18px}}@media (width<=760px){.experience-pin{height:auto;min-height:100svh;display:block}.experience-copy{max-width:none;padding-top:56svh;padding-bottom:30px}.experience-copy h2{margin:0 0 10px;font-size:34px}.profile-intro{max-width:320px;margin-bottom:22px;font-size:13px;line-height:1.5}.career-heading{margin-bottom:16px;font-size:9px}.career li{padding-bottom:17px}.career h3{font-size:17px}.career p{font-size:12px}}@media (prefers-reduced-motion:reduce){.dive-distance{height:0}}
