.navbar{z-index:50;height:120px;position:fixed;top:0;left:0;right:0}.nav-glass{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:0 0;width:100%;height:100%;position:relative}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.nav-glass{-webkit-backdrop-filter:blur(16px)}}@media (prefers-reduced-transparency:reduce){.nav-glass{background:color-mix(in srgb, var(--bg) 92%, transparent)}}.navbar-content{max-width:var(--content-max);padding:0 var(--content-pad);justify-content:space-between;align-items:center;margin:0 auto;display:flex;position:absolute;inset:0}.nav-left{flex:1;align-items:center;gap:2rem;display:flex}.nav-logo{width:auto;height:56px}.social-links{align-items:center;gap:1.5rem;display:flex}.social-icon{object-fit:contain;transform-origin:50%;width:32px;height:32px;transition:all .3s cubic-bezier(.37,1.14,.26,1.24)}.social-icon:hover{transform:translateY(-4px)scale(1.25)}@media (width<=768px){.navbar{height:72px}.navbar-content{padding-right:5rem}.nav-logo{height:40px}}.terminal{text-align:left;width:38ch;max-width:100%;margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:clamp(1.6rem,2.3vw,2.1rem);line-height:1.8}.terminal-line{white-space:nowrap;display:block}.terminal-out{min-height:1.8em;color:var(--fg)}.terminal-user{color:var(--accent);font-weight:600}.terminal-punct{color:var(--muted)}.terminal-cursor{background:var(--fg);vertical-align:-.2em;width:.55em;height:1.1em;margin-left:1px;animation:1.05s step-end infinite terminal-blink;display:inline-block}@keyframes terminal-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.terminal-cursor{animation:none}}@media (width<=768px){.terminal{font-size:1.05rem}}.career-map{--t-python:#855a8a;--t-ml:#7a934e;--t-gpu:#b55839;--t-imaging:#3f8f80;--t-teaching:#bfa03f;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;width:100%;max-width:var(--content-max);padding:0 var(--content-pad);color:var(--fg);font-family:var(--mono);margin:0 auto}@media (prefers-color-scheme:dark){.career-map{--t-python:#855a8a;--t-ml:#7a934e;--t-gpu:#b55839;--t-imaging:#3f8f80;--t-teaching:#bfa03f}}:root[data-theme=light] .career-map,:root[data-theme=dark] .career-map{--t-python:#855a8a;--t-ml:#7a934e;--t-gpu:#b55839;--t-imaging:#3f8f80;--t-teaching:#bfa03f}.career-map [data-thread=python]{--tc:var(--t-python)}.career-map [data-thread=ml]{--tc:var(--t-ml)}.career-map [data-thread=gpu]{--tc:var(--t-gpu)}.career-map [data-thread=imaging]{--tc:var(--t-imaging)}.career-map [data-thread=teaching]{--tc:var(--t-teaching)}.cm-title{font-family:var(--mono);letter-spacing:-.01em;margin:0 0 .6rem;font-size:clamp(1.5rem,4vw,2.1rem);font-weight:600;line-height:1.15}.cm-sub{color:var(--muted);max-width:86ch;margin:0 0 1.4rem;font-size:1rem;line-height:1.6}.cm-sub em{color:var(--fg);border-bottom:1px dotted var(--border);font-style:normal}.cm-metrics{flex-wrap:wrap;gap:.5rem 2.4rem;margin:0 0 1.6rem;padding:0;list-style:none;display:flex}.cm-metric{align-items:baseline;gap:.5rem;font-size:.82rem;display:flex}.cm-metric-k{color:var(--muted);white-space:nowrap}.cm-metric-v{color:var(--fg);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:600}.cm-filter{flex-wrap:wrap;align-items:center;gap:.5rem .7rem;margin-bottom:1rem;display:flex}.cm-chips{flex-wrap:wrap;gap:.4rem;display:flex}.cm-chip{font-family:var(--mono);color:var(--fg);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.78rem;transition:border-color .16s,background-color .16s,box-shadow .16s;display:inline-flex}.cm-chip:hover{border-color:var(--tc,var(--muted))}.cm-chip.is-on{border-color:var(--tc);box-shadow:inset 0 0 0 1px var(--tc);background:color-mix(in srgb, var(--tc) 10%, var(--surface))}.cm-chip--clear{color:var(--muted)}.cm-chip--clear:disabled{opacity:.4;cursor:default}.cm-swatch{background:var(--tc);width:11px;height:11px;box-shadow:0 0 0 1px color-mix(in srgb, var(--tc) 40%, transparent);border-radius:3px;flex:none}.cm-plot-scroll{padding-bottom:.4rem;position:relative;overflow:auto hidden}.cm-scrollhint{color:var(--muted);background:linear-gradient(90deg, transparent, var(--bg) 40%);pointer-events:none;z-index:2;padding:.2rem .2rem .2rem 1.4rem;font-size:.7rem;display:none;position:absolute;top:0;right:0}.cm-plot{width:100%;min-width:680px;aspect-ratio:var(--vb-w) / var(--vb-h);position:relative}.cm-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cm-band{fill:var(--fg);opacity:0}.cm-band[data-era=hpc]{opacity:0}.cm-grid{stroke:var(--border);stroke-width:1px;stroke-dasharray:2 5;opacity:.7}.cm-year{fill:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:15px}.cm-spine{stroke:var(--fg);stroke-width:2px;opacity:.55}.cm-arc{fill:none;stroke:var(--tc);stroke-width:2.5px;stroke-linecap:round;opacity:.85;transition:opacity .22s,stroke-width .22s}.cm-arc.is-emph{opacity:1;stroke-width:4px}.cm-arc.is-dim{opacity:.13}.cm-arc.is-hide{opacity:.04}.cm-nodes{position:absolute;inset:0}.cm-node{cursor:pointer;width:132px;font-family:var(--mono);color:var(--fg);background:0 0;border:0;flex-direction:column;align-items:center;gap:0;margin:0;padding:0;transition:opacity .2s;display:flex;position:absolute;transform:translate(-50%)}.cm-dot{background:var(--bg);border:2.5px solid var(--accent);box-sizing:border-box;border-radius:50%;flex:none;width:14px;height:14px;transition:transform .16s,background-color .16s,border-color .16s,box-shadow .16s;transform:translateY(-50%)}.cm-node.type-role .cm-dot{width:16px;height:16px}.cm-node.type-foundation .cm-dot{background:var(--accent)}.cm-node.type-pub .cm-dot{border-style:double;border-width:4px}.cm-node.type-project .cm-dot{border-color:var(--muted);width:12px;height:12px}.cm-leader{background:var(--border);flex:1;width:1px;margin-top:-6px;transition:background-color .16s}.cm-node-label{text-align:center;flex-direction:column;align-items:center;gap:1px;padding-top:4px;display:flex}.cm-node-short{white-space:nowrap;font-size:.78rem;font-weight:600;line-height:1.15}.cm-node-metric{color:var(--muted);white-space:nowrap;font-size:.66rem;line-height:1.1}.cm-node.is-dim{opacity:.32}.cm-node.is-emph .cm-dot,.cm-node.is-active .cm-dot{border-color:var(--fg);box-shadow:0 0 0 4px var(--surface-hover)}.cm-node.is-active .cm-dot{background:var(--accent);border-color:var(--accent)}.cm-node:hover .cm-dot{transform:translateY(-50%)scale(1.18)}.cm-node:hover .cm-node-short{color:var(--accent-2)}.cm-node.is-active .cm-leader,.cm-node.is-emph .cm-leader{background:var(--muted)}.cm-node:focus-visible{outline:none}.cm-node:focus-visible .cm-dot{outline:2px solid var(--focus-ring);outline-offset:3px}.cm-card{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--surface);border-radius:8px;min-height:6.2rem;margin-top:1.2rem;padding:.9rem 1.1rem}.cm-card-tag{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.72rem;display:inline-flex}.cm-card-tag--muted{color:var(--muted)}.cm-card-title{margin:0 0 .15rem;font-size:1rem;font-weight:600}.cm-card-org{color:var(--muted);margin:0 0 .5rem;font-size:.8rem}.cm-card-body{color:var(--fg);max-width:78ch;margin:0;font-size:.9rem;line-height:1.55}.cm-card-body strong{color:var(--accent);font-weight:600}.cm-card-threads{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.7rem 0 0;display:flex}.cm-card-threads-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.cm-mini-tag{color:var(--fg);align-items:center;gap:.35rem;font-size:.74rem;display:inline-flex}@media (width<=760px){.career-map{padding:0 1.1rem}.cm-scrollhint{display:block}.cm-card{min-height:7.5rem}.cm-plot{min-width:1120px}}@media (prefers-reduced-motion:reduce){.cm-arc,.cm-node,.cm-dot,.cm-chip,.cm-leader{transition:none}.cm-node:hover .cm-dot{transform:translateY(-50%)}}@media (forced-colors:active),print{.cm-arc{stroke-width:2px;opacity:1!important}.cm-arc[data-thread=python]{stroke-dasharray:none}.cm-arc[data-thread=ml]{stroke-dasharray:9 6}.cm-arc[data-thread=gpu]{stroke-dasharray:2 5}.cm-arc[data-thread=imaging]{stroke-dasharray:12 5 2 5}.cm-arc[data-thread=teaching]{stroke-dasharray:16 6}}.content{background-color:var(--bg);flex-direction:column;display:flex}.main-content{flex-direction:column;flex:1;display:flex}.text-section{background-color:var(--bg);border-bottom:1px solid var(--border);box-sizing:border-box;flex-direction:column;justify-content:center;min-height:100vh;display:flex}.text-container{max-width:var(--content-max);width:100%;padding:0 var(--content-pad);text-align:left;margin:0 auto}.content-section{background-color:var(--surface);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:clamp(3rem,6vh,5rem) 0;display:flex}.whoami-panel{grid-template-columns:minmax(0,1fr);min-height:52vh;display:grid}.whoami-bio{grid-area:1/1;place-self:start;min-width:0}.whoami-face{object-fit:contain;grid-area:1/1;place-self:end;width:auto;height:clamp(220px,26vw,320px)}@media (width<=900px){.text-section{justify-content:flex-start;min-height:100dvh;padding:clamp(6rem,15vh,8rem) 0 clamp(2.5rem,9vh,4.5rem)}.content-section{min-height:100dvh}.whoami-panel{flex-direction:column;align-items:flex-start;gap:clamp(5rem,25vh,14rem);min-height:0;display:flex}.whoami-bio,.whoami-face{grid-area:auto;place-self:auto}.whoami-face{align-self:center;width:clamp(200px,55vw,300px);height:auto}}.theme-toggle{z-index:100;border:1px solid var(--border);background:var(--surface);width:2.5rem;height:2.5rem;color:var(--fg);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;transition:border-color .2s,background-color .2s;display:inline-flex;position:fixed;top:1rem;right:1rem}.theme-toggle:hover{border-color:var(--accent)}@media (width<=768px){.theme-toggle{width:1.75rem;height:1.75rem;font-size:1rem}}.site-footer{border-top:1px solid var(--border);background:var(--bg);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.footer-inner{max-width:var(--content-max);padding:2.2rem var(--content-pad);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.6rem 2.5rem;margin:0 auto;display:flex}.footer-id{flex-direction:column;gap:.2rem;display:flex}.footer-name{color:var(--fg);letter-spacing:-.01em;font-size:.9rem;font-weight:600}.footer-role{color:var(--muted);font-size:.78rem}.footer-copy{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:.6rem;font-size:.75rem}.footer-nav{flex-direction:column;align-items:flex-end;gap:1rem;display:flex}.footer-social{align-items:center;gap:1.1rem;display:flex}.footer-icon{object-fit:contain;width:26px;height:26px;transition:transform .2s cubic-bezier(.37,1.14,.26,1.24)}.footer-social a:hover .footer-icon{transform:translateY(-3px)scale(1.15)}.footer-icon--dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .footer-icon--light{display:none}:root:not([data-theme=light]) .footer-icon--dark{display:inline-block}}:root[data-theme=light] .footer-icon--light{display:inline-block}:root[data-theme=light] .footer-icon--dark,:root[data-theme=dark] .footer-icon--light{display:none}:root[data-theme=dark] .footer-icon--dark{display:inline-block}.footer-linkrow{flex-wrap:wrap;justify-content:flex-end;gap:.4rem 1.3rem;display:flex}.footer-linkrow a{color:var(--muted);font-size:.8rem;text-decoration:none;transition:color .16s}.footer-linkrow a:hover{color:var(--accent-2)}@media (width<=600px){.footer-inner{gap:1.4rem;padding:1.8rem 1.1rem}.footer-nav{align-items:flex-start}.footer-linkrow{justify-content:flex-start}}.app{flex-direction:column;min-height:100vh;display:flex}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f5f5f1;--surface:#fff;--fg:#111;--muted:#555;--border:#e5e5e5;--accent:#8a3f5c;--focus-ring:#8a3f5c;--accent-2:#2f7a67;--surface-hover:#0000000d;--fs-name:2.5rem;--fs-body:1.5rem;--fs-nav:1.2rem;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-6:3rem;--space-8:4rem;--content-max:1600px;--content-pad:clamp(1.5rem, 5vw, 5rem)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#141414;--surface:#1e1e1e;--fg:#e8e8e8;--muted:#a0a0a0;--border:#2a2a2a;--accent:#b0b06a;--focus-ring:#b0b06a;--accent-2:#8fcbb8;--surface-hover:#ffffff0f}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f5f1;--surface:#fff;--fg:#111;--muted:#555;--border:#e5e5e5;--accent:#8a3f5c;--focus-ring:#8a3f5c;--accent-2:#2f7a67;--surface-hover:#0000000d}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141414;--surface:#1e1e1e;--fg:#e8e8e8;--muted:#a0a0a0;--border:#2a2a2a;--accent:#b0b06a;--focus-ring:#b0b06a;--accent-2:#8fcbb8;--surface-hover:#ffffff0f}body{background:var(--bg);color:var(--fg);transition:background-color .2s,color .2s}a{color:var(--accent)}a:hover{color:var(--accent-2)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:2px}:focus:not(:focus-visible){outline:none}.visually-hidden{clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.external-icon{vertical-align:baseline;margin-inline-start:.25em}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}html,body,#root{width:100%;height:100%}.flourish-credit{display:none}
