:root{--bg:#080808;--fg:#e8e8e8;--accent:#00e676;--accent-dim:#00e6761f;--muted:#777;--line:#ffffff14;--font-main:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "Cascadia Code", "Source Code Pro", Consolas, "Liberation Mono", Menlo, monospace;--radius:.75rem;--content-max:54rem;--gutter:clamp(1rem, 4.5vw, 1.5rem);--section-gap:clamp(1.75rem, 4vw, 2.5rem);--header-min-h:3.25rem;--sticky-offset:0px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-min-h) + var(--gutter) + var(--sticky-offset));-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}::selection{background:var(--accent-dim);color:var(--fg)}body{min-height:100dvh;background-color:var(--bg);min-height:-webkit-fill-available;color:var(--fg);font-family:var(--font-main);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:100%;line-height:1.5;overflow-x:hidden}#root{width:100%;min-width:0;min-height:100dvh}.site-header{z-index:20;width:100%;padding-top:max(.5rem, env(safe-area-inset-top,0px));padding-left:max(var(--gutter), env(safe-area-inset-left,0px));padding-right:max(var(--gutter), env(safe-area-inset-right,0px));background:linear-gradient(180deg, var(--bg) 0%, #080808e0 78%, transparent 100%);border-bottom:1px solid #ffffff8c;margin:0;position:sticky;top:0}@supports ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.site-header{-webkit-backdrop-filter:blur(12px)saturate(1.2)}}@media (prefers-reduced-transparency:reduce){.site-header{-webkit-backdrop-filter:none}}.site-header__inner{max-width:var(--content-max);width:100%;margin-left:auto;margin-right:auto;padding-bottom:.5rem}.nav{min-height:var(--header-min-h);justify-content:space-between;align-items:center;gap:clamp(.5rem,2vw,1rem);min-width:0;display:flex}.nav .logo{letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:clamp(1.1rem,2.8vw,1.35rem);font-weight:600;line-height:1.2;overflow:hidden}.toggle-btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation;color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:999px;flex-shrink:0;align-items:center;gap:.5em;max-width:100%;padding:.5em .9em;font-size:clamp(.65rem,1.8vw,.75rem);line-height:1.2;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.toggle-btn:hover{border-color:var(--fg);color:var(--fg)}.toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.toggle-btn.active{border-color:var(--accent);color:var(--accent);background:#00ff880d}.toggle-btn__led{box-sizing:content-box;background:0 0;border:1px solid;border-radius:50%;flex-shrink:0;width:.32em;min-width:4px;height:.32em;min-height:4px;display:block}.toggle-btn.active .toggle-btn__led{background:currentColor;border-color:currentColor;animation:1.1s ease-in-out infinite sensor-led-blink;box-shadow:0 0 0 .5px #00ff8859}@media (prefers-reduced-motion:reduce){.toggle-btn.active .toggle-btn__led{opacity:1;box-shadow:none;animation:none}}@keyframes sensor-led-blink{0%,to{opacity:1}50%{opacity:.2}}@media (width<=24rem){.toggle-btn{letter-spacing:.04em;padding:.45em .6em}}.sensor-toast{color:#ffb4a0;border-radius:var(--radius);word-wrap:break-word;overflow-wrap:break-word;background:#501e1466;border:1px solid #ff78504d;justify-content:space-between;align-items:flex-start;gap:.75rem;min-width:0;margin-top:.4rem;padding:.65rem .75rem;font-size:clamp(.8rem,2.2vw,.9rem);line-height:1.45;display:flex}.sensor-toast p{flex:1;min-width:0;margin:0}.toast-dismiss{-webkit-tap-highlight-color:transparent;touch-action:manipulation;color:var(--fg);font-size:.75rem;font-family:var(--font-mono);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:.4rem;flex-shrink:0;padding:.3em .55em;transition:border-color .2s,background .2s}.toast-dismiss:hover,.toast-dismiss:focus-visible{border-color:var(--fg);background:#ffffff0f}.layout{max-width:var(--content-max);width:100%;padding-left:max(var(--gutter), env(safe-area-inset-left,0px));padding-right:max(var(--gutter), env(safe-area-inset-right,0px));padding-bottom:max(2.5rem, env(safe-area-inset-bottom,0px));z-index:1;margin-left:auto;margin-right:auto;padding-top:clamp(1.5rem,4.5vw,2.75rem);position:relative}.hero{margin-bottom:var(--section-gap)}.hero .title{letter-spacing:-.035em;text-wrap:balance;margin:0 0 1rem;font-size:clamp(2.15rem,6.5vw,3.6rem);font-weight:300;line-height:1.04}.summary{color:#a8a8a8;max-width:100%;margin:0 0 1.25rem;font-size:clamp(.95rem,2.2vw,1.05rem);line-height:1.65}.meta{font-style:normal;font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.4rem .5rem;max-width:100%;margin:0;font-size:clamp(.72rem,2vw,.8rem);display:flex}.meta-sep{color:#444;-webkit-user-select:none;user-select:none;flex-shrink:0}.meta-avail{color:#888;flex:12rem;min-width:min(100%,12rem)}.meta a{color:#ccc;border-bottom:1px solid var(--line);word-break:break-word;text-decoration:none;transition:border-color .2s,color .2s}.meta a:hover{border-color:var(--accent);color:var(--accent)}.meta a:focus-visible{color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.content-section{margin-bottom:var(--section-gap)}.section-heading{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem;font-size:.7rem;font-weight:500}.comp-block{margin-bottom:1.1rem}.comp-block:last-child{margin-bottom:0}.comp-label{color:var(--fg);margin:0 0 .3rem;font-size:clamp(.78rem,2vw,.85rem)}.comp-text{color:#9a9a9a;margin:0;font-size:clamp(.9rem,2vw,.95rem);line-height:1.65}.skill-lines{margin:0;padding:0;list-style:none}.skill-lines li{color:#aaa;margin-bottom:.6rem;font-size:clamp(.9rem,2vw,.95rem);line-height:1.55}.skill-key{color:var(--fg);margin-right:.1rem}.timeline{flex-direction:column;gap:clamp(1.75rem,3vw,2.5rem);display:flex}.job-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,10rem) minmax(0,1fr);gap:clamp(.75rem,2vw,1.25rem);padding-top:1.4rem;transition:opacity .3s;display:grid}.job-row:first-child{border-top:none;padding-top:0}.job-row:hover .highlights li{color:#ccc}.job-period{font-family:var(--font-mono);color:var(--muted);font-size:clamp(.75rem,2vw,.8rem);line-height:1.45}.job-row .details .role{margin:0 0 .2rem;font-size:clamp(1.05rem,2.4vw,1.2rem);font-weight:400}.job-row .details .company{color:var(--muted);margin:0 0 .9rem;font-size:clamp(.85rem,2vw,.9rem);font-weight:400}.highlights{color:#999;margin:0;padding:0 0 0 1.1rem;font-size:clamp(.88rem,2vw,.95rem);line-height:1.6}.highlights li{margin-bottom:.45rem}.project-list{flex-direction:column;gap:1.75rem;display:flex}.project-card{border-top:1px solid var(--line);padding-top:1.1rem}.project-card:first-child{border-top:none;padding-top:0}.project-card__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;margin-bottom:.65rem;display:flex}.project-year{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);flex-shrink:0;font-size:clamp(.7rem,1.8vw,.75rem)}.project-name{font-family:var(--font-mono);letter-spacing:.05em;min-width:0;color:var(--fg);margin:0;font-size:clamp(.75rem,2vw,.8rem)}.project-name a{color:inherit;border-bottom:1px solid var(--line);text-decoration:none;transition:border-color .2s,color .2s}.project-name a:hover{border-color:var(--accent);color:var(--accent)}.project-name a:focus-visible{color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.project-points{color:#999;margin:0;padding:0 0 0 1.1rem;font-size:clamp(.88rem,2vw,.95rem);line-height:1.6}.project-points a.point-link{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-underline-offset:.2em;transition:color .2s,text-decoration-color .2s}.project-points a.point-link:hover,.project-points a.point-link:focus-visible{text-decoration-color:currentColor}.project-points a.point-link--linkedin{color:#4da3ff}.project-points a.point-link--linkedin:hover,.project-points a.point-link--linkedin:focus-visible{color:#6eb5ff}.project-points a.point-link--linkedin:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid}.project-points a.point-link--deepmind{color:#4285f4}.project-points a.point-link--deepmind:hover,.project-points a.point-link--deepmind:focus-visible{color:#5f9ef7}.project-points a.point-link--deepmind:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid}.education-list{margin:0;padding:0;list-style:none}.education-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,9.5rem) minmax(0,1fr);gap:.75rem 1rem;margin:0;padding:1.1rem 0 0;display:grid}.education-row:first-child{border-top:none;padding-top:0}.edu-period{font-family:var(--font-mono);color:var(--muted);font-size:clamp(.75rem,2vw,.8rem)}.edu-qual{margin-bottom:.2rem;font-size:clamp(.95rem,2vw,1rem)}.edu-school{color:var(--muted);font-size:clamp(.85rem,2vw,.9rem)}.cert-list{color:#999;margin:0;padding:0 0 0 1.1rem;font-size:clamp(.88rem,2vw,.95rem);line-height:1.6}.lang-line{color:#999;margin:0;font-size:clamp(.85rem,2vw,.9rem);line-height:1.55}@media (width<=40rem){.job-row,.education-row{grid-template-columns:1fr}.education-row{padding-top:1.25rem}}@media (prefers-reduced-motion:reduce){.job-row,.toggle-btn,.toast-dismiss,.meta a{transition:none}}.webgl-stack{z-index:-1;width:100%;min-width:100%;max-width:none;height:100%;min-height:100dvh;pointer-events:none;min-height:-webkit-fill-available;position:fixed;inset:0}.webgl-dots-fallback{z-index:0;background-color:var(--bg);opacity:1;background-image:radial-gradient(circle,#3a3a3a .55px,#0000 .6px);background-position:0 0;background-repeat:repeat;background-size:4px 4px;width:100%;min-width:100%;height:100%;min-height:100%;transition:opacity .35s;position:absolute;inset:0}.webgl-stack:has(.webgl-root--ready) .webgl-dots-fallback{opacity:0;pointer-events:none}.webgl-root{z-index:1;width:100%;height:100%;min-height:100dvh;opacity:0;background:0 0;min-height:-webkit-fill-available;transition:opacity .4s;position:absolute;inset:0}.webgl-root--ready{opacity:1}.webgl-root canvas{display:block;width:100%!important;height:100%!important}@media (prefers-reduced-motion:reduce){.webgl-dots-fallback,.webgl-root{transition:none}}
