:root{color-scheme:dark;--bg-2: #0b0d12;--text: #f7f8fa;--muted: #c2c7d0;--accent: #0A66C2;--font-main: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: Georgia, "Times New Roman", Times, serif;--radius-md: 22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0;padding:64px 32px 100px;background:#000;color:var(--text);font-family:var(--font-main);font-weight:300;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit}img,iframe{max-width:100%;display:block}a{color:inherit;text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent)}a:focus-visible,.tab:focus-visible{outline:2px solid rgba(10,102,194,.55);outline-offset:4px}hr{border:none;height:0;background:none;margin:28px 0}.container{position:relative;z-index:1;width:min(1200px,94vw);margin:0 auto;padding:clamp(72px,10vw,160px) clamp(32px,8vw,96px);background:transparent;box-shadow:none;animation:rise-in .7s ease both}body:not(.home) .container{font-family:var(--font-serif)}body:not(.home) h1,body:not(.home) h2,body:not(.home) h3{font-family:var(--font-main)}h1,h2,h3,.projects-title{font-weight:300;letter-spacing:0;color:var(--text);margin:0 0 12px}h1{font-size:3.25rem;line-height:1.05}h1.name{font-weight:300;font-size:4.3rem;line-height:.95;white-space:nowrap}h2{font-size:1.75rem;line-height:1.2;margin-top:28px}h3{font-size:1.25rem;line-height:1.25;margin-top:20px}p,li{color:var(--muted);line-height:1.8;font-size:1.05rem;max-width:72ch}.icon{width:16px;height:16px;flex:0 0 auto}.profile-section{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:56px;align-items:start}.profile-section>*{min-width:0}body.home .profile-section{padding-block:clamp(18px,3vw,36px);margin-bottom:110px;gap:clamp(40px,6vw,72px)}.profile-picture{justify-self:start;width:100%;max-width:380px}.portrait{position:relative;width:100%;max-width:380px;aspect-ratio:4 / 3;border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.16);box-shadow:0 26px 70px #0000007a,inset 0 1px #ffffff47,inset 0 -1px #ffffff09;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.012) 48%,transparent),#ffffff05;backdrop-filter:blur(8px) saturate(135%);-webkit-backdrop-filter:blur(8px) saturate(135%);isolation:isolate}.portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffff38,inset 0 -1px #ffffff05,inset 0 0 0 1px #fff1;z-index:4}.portrait-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit;opacity:1;transition:opacity .7s cubic-bezier(.22,1,.36,1),filter .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);z-index:1}.portrait-img-color{opacity:1;z-index:1}.portrait-img-bw{opacity:0;z-index:2}.portrait-canvas{position:absolute;top:50%;left:50%;width:150%;height:150%;display:block;opacity:0;z-index:3;pointer-events:none;transform:translate(-50%,-50%);transition:opacity .28s ease}.portrait.is-animating .portrait-img{opacity:0;filter:brightness(.88) contrast(1.04);transform:scale(1.006)}.portrait.is-animating{border-color:transparent;box-shadow:none;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}.portrait.is-animating:after{opacity:0}.portrait.is-animating .portrait-canvas{opacity:1}.portrait-canvas.is-done{display:none}.bio-text{margin:0 0 24px;font-size:1.25rem;max-width:70ch}.profile-links{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:24px;margin-top:12px}.link-button,.github-link{display:inline-flex;align-items:center;gap:8px;padding:4px 0;color:var(--text);font-weight:300;transition:color .2s ease}.link-button{transition:color .2s ease,transform .2s ease}.link-button:hover{color:var(--accent);transform:translateY(-1px)}.projects-title{margin-top:64px;font-size:clamp(2.6rem,5.4vw,3.9rem);line-height:.95;text-transform:none;color:var(--text)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));column-gap:32px;row-gap:72px;margin-top:28px}.grid-item{position:relative;display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left;padding:12px;border-radius:30px;overflow:visible;background:transparent;border:none}.grid-item-canvas{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:22px;overflow:visible;background:transparent}.grid-item-image{position:relative;z-index:1;width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.project-card--mujoco-quadruped .grid-item-canvas{background:#000;overflow:hidden}.project-card--mujoco-quadruped .grid-item-image{object-fit:contain}.liquid-glass-studio-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:block;width:100%;height:100%;border-radius:inherit;background:transparent;mix-blend-mode:screen;pointer-events:none}.liquid-glass-studio-canvas--tile{z-index:2;mix-blend-mode:normal;transform:translateZ(0);transition:transform .24s cubic-bezier(.2,.8,.2,1)}.grid-item:hover .liquid-glass-studio-canvas--tile,.grid-item:focus-visible .liquid-glass-studio-canvas--tile{transform:translate3d(2px,-2px,0)}.liquid-glass-studio-canvas--fallback{background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.025) 44%,transparent),#000}.grid-item span{position:relative;z-index:1;font-size:1.18rem;font-weight:300;color:var(--text)}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:32px}.inline-link{color:var(--text);font-weight:300}.bio{margin-bottom:32px}.readme-container{margin-bottom:40px}.readme-container ul{padding-left:20px}.readme-container ul li{margin-bottom:10px}.screenshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-top:24px}.tab-container{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px}.tab{padding:6px 0;cursor:pointer;background:transparent;border:none;font-weight:300;text-transform:uppercase;font-size:.78rem;color:var(--muted);transition:color .2s ease}.tab.active{color:var(--text);font-weight:400}.tab:hover{color:var(--accent)}.bio-container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center;margin-bottom:36px}.responsive-video,.responsive-pdf,.responsive-embed{width:100%;border:none;border-radius:var(--radius-md);background:var(--bg-2)}.responsive-video{aspect-ratio:16 / 9}.machining-experience{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:24px;align-items:center}.machining-experience img{width:100%;height:auto}.responsive-img{width:min(900px,100%);margin:0 auto}.responsive-img--compact{width:min(460px,100%)}.side-by-side{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 auto 36px;width:min(900px,100%)}.side-img{width:100%;height:260px;object-fit:cover}.media-row{margin-bottom:16px}@media(max-width:600px){.side-by-side{grid-template-columns:1fr}}.media-40,.media-50{display:inline-block;vertical-align:top;margin:0 2% 16px 0}.screenshot-grid img,.machining-experience img,.responsive-img,.side-img,.media-40,.media-50{border-radius:var(--radius-md)}.media-40{width:40%}.media-50{width:50%}.responsive-pdf,.responsive-embed{height:clamp(420px,70vh,900px)}@media(max-width:900px){.profile-section{grid-template-columns:1fr;text-align:center}.profile-picture{justify-self:center}h1.name{white-space:normal}.profile-links{justify-content:center}.bio-container,.machining-experience{grid-template-columns:1fr}}@media(max-width:700px){body{padding:36px 20px 60px}.container{padding:clamp(32px,10vw,80px)}h1{font-size:2.35rem}h1.name{max-width:8.5ch;margin-inline:auto;font-size:2.65rem;line-height:1.05;white-space:normal}body.home .bio-text{max-width:20ch;margin-inline:auto}body.home .profile-section{padding-block:18px}h2{font-size:1.35rem}h3{font-size:1.1rem}.header{flex-direction:column;align-items:flex-start}.link-button,.github-link{width:100%;justify-content:center}.media-40,.media-50{width:100%;display:block;margin-right:0}}@media(max-width:600px){.tab{width:100%;text-align:left}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important;animation:none!important}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
