:root{--display:"Unbounded","Hanken Grotesk",system-ui,sans-serif;--body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--out:cubic-bezier(.16,1,.3,1);--in-out:cubic-bezier(.65,0,.35,1);--gutter:clamp(16px,4vw,48px);--max:1240px;--r-lg:32px;--r-md:22px;--section:clamp(48px,8vh,80px)}body,#root{overflow:visible;position:static;display:block;height:auto;min-height:100%}html{background:linear-gradient(180deg,var(--sky-top)0%,color-mix(in srgb,var(--glow)38%,var(--sky-top))24%,var(--sky-low)62%)fixed var(--sky-top);scroll-behavior:smooth}*,*:before,*:after{box-sizing:border-box}body{color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;margin:0;font-size:17px;line-height:1.6}a{color:inherit}img{display:block;max-width:100%}::selection{background:var(--glow);color:#101828}:focus-visible{outline:2px solid var(--glow);outline-offset:3px;border-radius:6px}.sr-only{position:absolute;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px}.skip{position:fixed;z-index:100;background:var(--ink);color:var(--sky-top);text-decoration:none;border-radius:999px;padding:10px 16px;top:-60px;left:12px}.skip:focus{top:12px}.shell{position:relative;z-index:10;display:flex;flex-direction:column;min-height:100svh}.shell,.chrome{transition:opacity .6s var(--out),filter .6s var(--out)}html[data-focus]{overflow:hidden}html[data-focus] :-webkit-any(.shell,.chrome){opacity:0;filter:blur(8px);pointer-events:none}html[data-focus] :-moz-any(.shell,.chrome){opacity:0;filter:blur(8px);pointer-events:none}html[data-focus] :is(.shell,.chrome){opacity:0;filter:blur(8px);pointer-events:none}.wrap{max-width:var(--max);padding:0 var(--gutter);width:100%;margin:0 auto}.sec{padding-top:var(--section)}.sec-head{margin-bottom:clamp(24px,4vh,40px)}.page-head{max-width:46rem;padding-top:150px;padding-bottom:8px}.page-head .h2{font-size:clamp(2.2rem,5vw,3.8rem)}header+.sec{padding-top:clamp(24px,4vh,40px)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px)}.pane{position:relative;background:var(--pane);border:1px solid var(--pane-edge);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(24px)saturate(170%);backdrop-filter:blur(24px)saturate(170%);box-shadow:inset 0 1px 0 var(--pane-shine),0 40px 80px -40px var(--shadow)}.pane:before{content:"";position:absolute;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,var(--pane-shine)0%,transparent 32%);opacity:.6;inset:0}.h2,.h3{font-family:var(--display);margin:0;font-weight:500}.h2{letter-spacing:-.02em;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.1}.h3{letter-spacing:-.01em;font-size:1.08rem;line-height:1.3}.body{color:var(--ink-dim);max-width:62ch;margin:0}.date{font-family:var(--mono);color:var(--ink-dim);font-variant-numeric:tabular-nums;font-size:.8rem}.chips{display:flex;list-style:none;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0}.chips li{border:1px solid var(--pane-edge);background:var(--pane);border-radius:999px;padding:7px 14px;font-size:.92rem}@media (max-width:1080px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:820px){body{font-size:16px}.grid{grid-template-columns:1fr}.page-head{padding-top:110px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}}.scene_sYmpqg{position:fixed;z-index:0;opacity:0;transition:opacity 1.4s var(--out);inset:0}.scene_sYmpqg[data-ready=true]{opacity:1}.scene_sYmpqg canvas{display:block}.hud_z2tvmg{position:fixed;z-index:40;pointer-events:none;inset:0}.hud_z2tvmg>*{pointer-events:auto;animation:rise .7s var(--out)both}@keyframes rise_z2tvmg{0%{opacity:0;transform:translateY(12px)}}.status_z2tvmg{position:absolute;display:flex;font:500 .9rem/1 var(--body);color:var(--ink);border-radius:999px;align-items: center;gap:10px;padding:12px 18px 12px 14px;top:24px;left:24px}.status_z2tvmg p{margin:0}.dot_z2tvmg{background:var(--glow);box-shadow:0 0 10px var(--glow);border-radius:50%;width:7px;height:7px}.corner_z2tvmg,.bar_z2tvmg{position:absolute;display:flex;border-radius:999px;align-items: center;gap:4px;padding:6px}.corner_z2tvmg{top:24px;right:24px}.bar_z2tvmg{bottom:24px;left:24px}.sep_z2tvmg{background:var(--pane-edge);width:1px;height:18px;margin:0 4px}.btn_z2tvmg{display:inline-grid;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items: center;width:38px;height:38px;padding:0;transition:background .25s,color .25s}.btn_z2tvmg:hover{background:var(--pane-edge)}.tools_z2tvmg{display:flex;background:var(--pane);box-shadow:inset 0 0 0 1px var(--pane-edge);border-radius:999px;gap:2px;padding:3px}.tools_z2tvmg .btn_z2tvmg{width:34px;height:34px}.tools_z2tvmg [aria-checked=true],.btn_z2tvmg[aria-pressed=true]{background:var(--ink);color:var(--sky-top)}.keys_z2tvmg{position:absolute;display:grid;border-radius:var(--r-md);font:500 .78rem/1 var(--body);color:var(--ink);gap:8px;margin:0;padding:14px 16px;bottom:84px;left:24px}.keys_z2tvmg div{display:flex;align-items: center;gap:12px}.keys_z2tvmg dt{display:flex;gap:3px;min-width:96px}.keys_z2tvmg dd{opacity:.7;margin:0}.keys_z2tvmg kbd{display:inline-grid;box-shadow:inset 0 0 0 1px var(--pane-edge);font:600 .66rem/1 var(--mono);border-radius:5px;place-items: center;min-width:20px;height:20px}.camera_z2tvmg{position:absolute;display:flex;flex-direction:column;gap:8px;width:min(300px,24vw,40vh - 56px);bottom:24px;right:24px}.feed_z2tvmg{position:relative;margin:0}.window_z2tvmg{aspect-ratio:16/10;border:1px solid var(--pane-edge);border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--pane-shine),0 30px 60px -30px var(--shadow)}.feed_z2tvmg figcaption{position:absolute;color:#e6edf8;font:500 .66rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;background:#080c188c;border-radius:999px;padding:4px 8px;top:10px;left:12px}.chip_z2tvmg{position:absolute;display:grid;color:#e6edf88c;cursor:pointer;background:#080c188c;border:0;border-radius:999px;place-items: center;width:28px;height:28px;padding:0;transition:color .25s;top:6px;right:6px}.chip_z2tvmg[aria-pressed=true]{color:#a8f0ff}.mirror_z2tvmg{position:relative;overflow:hidden;background:#0b1020}.mirror_z2tvmg video,.mirror_z2tvmg canvas{position:absolute;object-fit:cover;width:100%;height:100%;inset:0;transform:scaleX(-1)}.foot_t99mIw{padding-top:var(--section);color:var(--ink-dim);margin-top:auto;padding-bottom:36px;font-size:.86rem}.nav_Y-uYDQ{position:fixed;z-index:50;display:flex;animation:drop .9s var(--out)both;border-radius:999px;align-items: center;gap:4px;padding:6px;top:16px;left:50%;transform:translate(-50%)}.nav_Y-uYDQ a,.nav_Y-uYDQ button{display:inline-flex;color:var(--ink-dim);font:500 .92rem/1 var(--body);text-decoration:none;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items: center;height:38px;padding:0 16px;transition:color .25s,background .25s}.nav_Y-uYDQ a:hover,.nav_Y-uYDQ button:hover{color:var(--ink)}.nav_Y-uYDQ a[aria-current=page]{color:var(--ink);background:var(--pane-edge)}.nav_Y-uYDQ .mark_Y-uYDQ{font-family:var(--display);color:var(--ink);letter-spacing:-.02em;padding:0 14px 0 16px;font-weight:600}.nav_Y-uYDQ .toggle_Y-uYDQ{justify-content:center;width:38px;padding:0}.sep_Y-uYDQ{background:var(--pane-edge);width:1px;height:18px;margin:0 4px}@keyframes drop_Y-uYDQ{0%{opacity:0;transform:translate(-50%,-24px)}}@media (max-width:420px){.nav_Y-uYDQ a,.nav_Y-uYDQ button{padding:0 11px;font-size:.88rem}.nav_Y-uYDQ .mark_Y-uYDQ{padding:0 10px 0 12px}}.path_U5ZVmQ{list-style:none;max-width:920px;margin:0;padding:clamp(20px,3vw,36px)}.item_U5ZVmQ{position:relative;display:grid;grid-template-columns:9.5rem 1fr;gap:8px 28px;padding:22px 0 22px 28px}.item_U5ZVmQ:before{content:"";position:absolute;background:var(--pane-edge);width:1px;top:0;bottom:0;left:4px}.item_U5ZVmQ:first-child:before{top:30px}.item_U5ZVmQ:last-child:before{bottom:calc(100% - 30px)}.item_U5ZVmQ:after{content:"";position:absolute;background:var(--sky-top);border:1.5px solid var(--ice);border-radius:50%;width:9px;height:9px;top:26px;left:0}.edu_U5ZVmQ:after{border-color:var(--ink-dim)}.date_U5ZVmQ{padding-top:2px}.org_U5ZVmQ{color:var(--ink);margin:2px 0 8px}@media (max-width:820px){.item_U5ZVmQ{grid-template-columns:1fr;gap:2px}}.portrait_IkDeUw{display:block;font:inherit;color:inherit;cursor:pointer;width:100%;padding:10px}.card_IkDeUw{--radius:calc(var(--r-lg) - 10px);position:relative;display:block;aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;clip-path:inset(0 round var(--radius));isolation:isolate}.face_IkDeUw{position:absolute;border-radius:var(--radius);overflow:hidden;transition:opacity .7s var(--out),filter .7s var(--out),transform .9s var(--out);width:100%;height:100%;inset:0}.picture_IkDeUw{display:contents}img.face_IkDeUw{object-fit:cover;object-position:50% 30%}.back_IkDeUw{opacity:0;filter:blur(14px);background:#1c3a7e;transform:scale(1.04)}.portrait_IkDeUw[data-flipped=true] img.face_IkDeUw{opacity:0;filter:blur(14px);transform:scale(.98)}.portrait_IkDeUw[data-flipped=true] .back_IkDeUw{opacity:1;filter:none;transform:none}.layer_IkDeUw{position:absolute;display:block;width:100%;height:100%;inset:0}.layer_IkDeUw canvas{display:block}@media (max-width:820px){.portrait_IkDeUw{max-width:260px}}.bioRow_vMaHeA{display:grid;grid-template-columns:minmax(200px,300px)1fr;align-items: start;gap:20px}.bio_vMaHeA{columns:2 22rem;color:var(--ink);column-gap:40px;max-width:none;padding:clamp(24px,3.5vw,44px) clamp(24px,3.5vw,44px) calc(clamp(24px,3.5vw,44px) - 1em)}.bio_vMaHeA p{margin:0 0 1em}.skills_vMaHeA{display:grid;grid-template-columns:1fr 1fr;padding:8px}.skills_vMaHeA>div{padding:clamp(24px,3vw,40px)}.skills_vMaHeA>div:nth-child(2n){border-left:1px solid var(--pane-edge)}.skills_vMaHeA>div:nth-child(n+3){border-top:1px solid var(--pane-edge)}@media (max-width:820px){.bioRow_vMaHeA,.skills_vMaHeA{grid-template-columns:1fr}.skills_vMaHeA>div:nth-child(2n){border-left:0}.skills_vMaHeA>div+div{border-top:1px solid var(--pane-edge)}}.contact_jOmzzA{display:flex;flex-direction:column;width:100%;max-width:620px;padding:clamp(10px,2vw,22px) clamp(22px,3.5vw,40px)}.contact_jOmzzA a{position:relative;display:flex;text-decoration:none;color:var(--ink);font-family:var(--display);justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0;font-size:1.05rem;font-weight:500}.contact_jOmzzA a+a{border-top:1px solid var(--pane-edge)}.contact_jOmzzA a span{color:var(--ink-dim);font-family:var(--body);text-align:right;overflow-wrap:anywhere;transition:color .25s;font-size:1rem;font-weight:400}.contact_jOmzzA a:hover span{color:var(--ink)}.hero_16OKWw{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:100svh;padding-top:96px;padding-bottom:64px}.copy_16OKWw{max-width:44rem}.name_16OKWw{font-family:var(--display);letter-spacing:-.035em;margin:0 0 28px;font-size:clamp(3rem,8.4vw,7.4rem);font-weight:500;line-height:.94}.line_16OKWw{display:block;overflow:hidden;padding-bottom:.06em}.line_16OKWw>span{display:inline-block;animation:rise 1.1s var(--out)both,sweep 2.6s var(--in-out).7s both}.line_16OKWw:nth-child(2)>span{animation-delay:90ms,.85s}.sheen_16OKWw{background:linear-gradient(100deg,var(--ink)40%,var(--ice)50%,var(--ink)60%)0 0/300% 100% no-repeat;color:#0000;-webkit-background-clip:text;background-clip:text}@keyframes rise_16OKWw{0%{transform:translateY(105%)}}@keyframes sweep_16OKWw{0%{background-position:100% 0}to{background-position:0 0}}@keyframes fade_16OKWw{0%{opacity:0;transform:translateY(10px)}}.actions_16OKWw{display:flex;animation:fade 1s var(--out).4s both;flex-wrap:wrap;align-items: center;gap:12px;margin-top:36px}.btn_16OKWw{display:inline-flex;font:500 .98rem/1 var(--body);text-decoration:none;cursor:pointer;transition:transform .3s var(--out),background .3s,border-color .3s;border:0;border-radius:999px;align-items: center;height:48px;padding:0 22px}.btn_16OKWw:hover{transform:translateY(-1px)}.solid_16OKWw{background:var(--ink);color:var(--sky-top)}.glass_16OKWw{background:var(--pane);border:1px solid var(--pane-edge);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--ink)}.glass_16OKWw:hover{border-color:var(--ice)}.socials_16OKWw{display:flex;gap:6px;margin-left:6px}.icon_16OKWw{display:inline-grid;color:var(--ink-dim);border-radius:999px;place-items: center;width:48px;height:48px;transition:color .25s,background .25s}.icon_16OKWw:hover{color:var(--ink);background:var(--pane)}.icon_16OKWw svg{width:20px;height:20px}.take_16OKWw{position:absolute;right:var(--gutter);animation:fade 1s var(--out)1.2s both;gap:10px;bottom:64px}@media (hover:none),(pointer:coarse),(max-width:1023px),(orientation:portrait){.take_16OKWw{display:none}}@media (max-width:820px),(orientation:portrait){.hero_16OKWw{justify-content:flex-end;padding-bottom:48px}.socials_16OKWw{margin-left:0}}.card_qgM0lg{display:flex;border-radius:var(--r-md);text-decoration:none;overflow:hidden;transition:border-color .35s,transform .5s var(--out);flex-direction:column;gap:10px;min-height:220px;padding:clamp(22px,2.6vw,30px)}.card_qgM0lg:after{content:"";position:absolute;background:radial-gradient(closest-side,color-mix(in srgb,var(--glow)28%,transparent),transparent);opacity:0;transition:opacity .5s var(--out);pointer-events:none;border-radius:50%;height:80%;bottom:-60%;left:10%;right:10%}.card_qgM0lg:hover{border-color:var(--ice);transform:translateY(-3px)}.card_qgM0lg:hover:after{opacity:1}.top_qgM0lg{display:flex;justify-content:space-between;align-items: center;gap:12px}.title_qgM0lg{margin-top:6px;font-size:1.3rem}.text_qgM0lg{display:-webkit-box;-webkit-line-clamp:4;overflow:hidden;-webkit-box-orient:vertical;font-size:.96rem;line-height:1.55}.repo_qgM0lg{font-family:var(--mono);color:var(--ink-dim);margin-top:auto;padding-top:8px;font-size:.76rem}.open_qgM0lg{color:var(--ink-dim);transition:color .25s,transform .35s var(--out);flex:none}.card_qgM0lg:hover .open_qgM0lg{color:var(--ink);transform:translate(2px,-2px)}
