@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.VpuGNq_className{font-family:Inter,Inter Fallback;font-style:normal}.VpuGNq_variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.P1H3iW_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.P1H3iW_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#07080a;--panel:#0e1014;--line:#1d2027;--text:#e8eaee;--dim:#8b919d;--accent:#c6ff3d;--accent2:#38e1ff;--glass:#ffffff0b;--glass-border:#ffffff24;--mx:50vw;--my:30vh}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--bg);color:var(--text);font-family:var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:#000}.wrap{width:min(1160px,100% - 48px);margin-inline:auto}.mono,.kicker,.label,.tag,.meta,.tl-period,.status,.chip{font-family:var(--font-mono), monospace}.grid-bg{z-index:-2;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.35;background-size:64px 64px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 20%,#000 20%,#0000 75%);mask-image:radial-gradient(80% 60% at 50% 20%,#000 20%,#0000 75%)}.glow{z-index:-1;pointer-events:none;background:radial-gradient(520px circle at var(--mx) var(--my), #c6ff3d17, transparent 60%);position:fixed;inset:0}.nav{z-index:50;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:14px max(24px,50% - 580px);transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{-webkit-backdrop-filter:blur(40px)saturate(180%);border-color:var(--glass-border);background:#0a0c11d1;box-shadow:0 8px 32px #00000059}.brand{align-items:center;gap:10px;font-weight:600;display:flex}.brand-mark{background:var(--accent);color:#000;width:32px;height:32px;font:700 13px var(--font-mono);border-radius:8px;place-items:center;display:grid}.nav nav{gap:4px;display:flex}.nav nav a{color:var(--dim);border-radius:999px;padding:6px 12px;font-size:14px;transition:all .2s}.nav nav a:hover,.nav nav a.active{color:var(--text);background:#ffffff0f}.nav-toggle{display:none}.btn{background:var(--accent);color:#000;border:1px solid var(--accent);border-radius:10px;align-items:center;gap:8px;padding:13px 24px;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 40px -8px #c6ff3d8c}.btn.ghost{background:var(--glass);color:var(--text);border-color:var(--glass-border);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 1px #ffffff26}.btn.ghost:hover{border-color:var(--accent);box-shadow:none}.btn-sm{padding:8px 16px;font-size:13px}.hero{padding:190px 0 60px;position:relative}.status{border:1px solid var(--glass-border);color:var(--dim);background:var(--glass);-webkit-backdrop-filter:blur(16px);border-radius:999px;align-items:center;gap:10px;margin-bottom:32px;padding:7px 14px;font-size:12px;display:inline-flex;box-shadow:inset 0 1px #ffffff26}.dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 #c6ff3d99}@keyframes pulse{70%{box-shadow:0 0 0 10px #c6ff3d00}to{box-shadow:0 0 #c6ff3d00}}h1{letter-spacing:-.045em;font-size:clamp(48px,9vw,112px);font-weight:700;line-height:1}.grad{background:linear-gradient(100deg, var(--accent), var(--accent2));color:#0000;-webkit-background-clip:text;background-clip:text;min-height:1.1em;display:inline-block}.caret{background:var(--accent);vertical-align:-.05em;width:.06em;height:.85em;margin-left:6px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.lead{max-width:640px;color:var(--dim);margin:32px 0 36px;font-size:20px}.cta{flex-wrap:wrap;gap:12px;display:flex}.meta{color:var(--dim);text-transform:uppercase;letter-spacing:.08em;flex-wrap:wrap;gap:8px 28px;margin-top:56px;font-size:12px;display:flex}.meta span:first-child{color:var(--accent)}.stats{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(22px)saturate(160%);background:linear-gradient(145deg,#ffffff17,#ffffff06 60%);border-radius:16px;grid-template-columns:repeat(4,1fr);margin-top:72px;display:grid;box-shadow:inset 0 1px #ffffff2e,0 10px 40px -12px #0009}.stat{border-right:1px solid var(--line);padding:28px}.stat:last-child{border:0}.stat b{letter-spacing:-.03em;font-size:44px;line-height:1.1;display:block}.stat span{color:var(--dim);font-size:14px}.section{padding:110px 0 20px}.kicker{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;font-size:13px}.kicker span{color:var(--accent)}h2{letter-spacing:-.035em;max-width:800px;margin-bottom:48px;font-size:clamp(32px,5vw,56px);line-height:1.08}.card{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(22px)saturate(160%);background:linear-gradient(145deg,#ffffff17,#ffffff06 60%);border-radius:16px;padding:28px;transition:border-color .3s,transform .3s;box-shadow:inset 0 1px #ffffff2e,0 10px 40px -12px #0009}.label{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:14px;font-size:12px}.about{grid-template-columns:1.6fr 1fr;align-items:start;gap:48px;display:grid}.body{color:#b6bbc5;margin-bottom:20px;font-size:18px}.lang{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.lang span{color:var(--dim);font-size:14px}.timeline{gap:20px;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(var(--accent), var(--line) 30%, var(--line));width:1px;position:absolute;top:8px;bottom:8px;left:218px}.tl{grid-template-columns:200px 1fr;gap:36px;display:grid;position:relative}.tl:before{content:"";background:var(--bg);border:2px solid var(--dim);z-index:1;border-radius:50%;width:11px;height:11px;transition:all .3s;position:absolute;top:34px;left:213px}.tl.current:before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 16px var(--accent)}.tl-period{text-align:right;color:var(--dim);padding-top:28px;font-size:13px}.tl-period em{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-top:4px;font-size:11px;font-style:normal;display:block}.tl-body{margin-left:20px}.tl-body:hover{border-color:#353b47;transform:translate(4px)}.tl-body h3{letter-spacing:-.01em;font-size:20px}.org{color:var(--accent2);margin:2px 0 14px;font-weight:500}.org span{color:var(--dim);font-weight:400}.tl-body ul{gap:8px;list-style:none;display:grid}.tl-body li{color:#aab0bb;padding-left:18px;font-size:15px;position:relative}.tl-body li:before{content:"▸";color:var(--accent);position:absolute;left:0}.skills{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--glass-border);color:#d6d9e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0f;border-radius:6px;padding:6px 11px;font-size:12.5px;transition:all .2s}.chip:hover{border-color:var(--accent);color:var(--accent)}.projects{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.project{flex-direction:column;height:100%;min-height:240px;display:flex;position:relative;overflow:hidden}.project:after{content:"";opacity:0;background:radial-gradient(300px at 100% 0,#c6ff3d1f,#0000 60%);transition:opacity .3s;position:absolute;inset:0}.project.live:hover{border-color:var(--accent);transform:translateY(-4px)}.project.live:hover:after{opacity:1}.project.soon{opacity:.8;border-style:dashed}.project-top{justify-content:space-between;margin-bottom:auto;padding-bottom:40px;display:flex}.tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:11px}.arrow{color:var(--dim);font-size:20px;transition:all .3s}.project.live:hover .arrow{color:var(--accent);transform:translate(3px,-3px)}.project h3{letter-spacing:-.02em;margin-bottom:8px;font-size:22px}.project p{color:var(--dim);font-size:15px}.creds{grid-template-columns:1fr 1fr;gap:0 48px;display:grid}.cred{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:18px 0;display:flex}.cred strong{font-weight:500;display:block}.cred span{color:var(--dim);font-size:14px}.cred em{font:normal 13px var(--font-mono);color:var(--accent)}.contact{text-align:left;background:radial-gradient(600px at 100% 0,#c6ff3d24,#0000 60%),linear-gradient(145deg,#ffffff17,#ffffff06 60%);padding:64px}.contact h2{margin-bottom:20px}.footer{color:var(--dim);justify-content:space-between;padding:64px 0 40px;font-size:14px;display:flex}.creds{margin-bottom:40px}.learn{grid-template-columns:1fr;gap:16px;display:grid}.course-list{grid-template-columns:1fr 1fr;gap:0 48px;display:grid}.label b{color:var(--dim);margin-left:6px;font-weight:400}.course{border-bottom:1px solid var(--line);padding:14px 0}.course:last-child{border:0;padding-bottom:0}.course-top{justify-content:space-between;gap:16px;display:flex}.course strong{font-size:15px;font-weight:500}.course em{font:normal 12px var(--font-mono);color:var(--accent);white-space:nowrap}.course span{color:var(--dim);font-size:13px}.bar{background:var(--line);border-radius:2px;height:3px;margin-top:8px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:2px;height:100%;display:block}.reveal{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transform:translateY(24px)}.reveal.in{opacity:1;transform:none}@media (max-width:900px){.nav nav{display:none}.nav-toggle{border:1px solid var(--glass-border);background:var(--glass);cursor:pointer;border-radius:10px;place-content:center;gap:4px;width:40px;height:40px;display:grid}.nav-toggle span{background:var(--text);width:18px;height:2px;transition:transform .2s,opacity .2s;display:block}.nav-toggle.open span:first-child{transform:translateY(6px)rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:last-child{transform:translateY(-6px)rotate(-45deg)}.nav nav.open{z-index:1;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(24px);background:#0a0c11f5;border-radius:12px;flex-direction:column;gap:2px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);left:16px;right:16px;box-shadow:0 8px 32px #00000059}.nav nav.open a{padding:10px 12px}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.about,.creds,.course-list{grid-template-columns:1fr;gap:24px}.projects{grid-template-columns:1fr 1fr}.timeline:before{left:5px}.tl{grid-template-columns:1fr;gap:0;padding-left:28px}.tl:before{top:6px;left:0}.tl-period{text-align:left;padding:0 0 8px}.tl-body{margin-left:0}.contact{padding:32px}}@media (max-width:600px){.nav{grid-template-columns:1fr auto;grid-template-areas:"brand toggle""contact contact";row-gap:8px;padding:12px 16px;display:grid}.nav .brand{grid-area:brand}.nav .nav-toggle{grid-area:toggle}.brand-name{font-size:13px}.nav>.btn{grid-area:contact;justify-self:center;padding:8px 12px;font-size:12px;display:inline-flex}.projects{grid-template-columns:1fr}.hero{padding-top:130px}.meta{margin-top:36px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}.orbs{z-index:-2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.orbs i{filter:blur(110px);opacity:.5;border-radius:50%;animation:24s ease-in-out infinite alternate drift;position:absolute}.orbs i:first-child{opacity:.32;background:#3d7bff;width:520px;height:520px;top:8%;left:-8%}.orbs i:nth-child(2){background:var(--accent);opacity:.2;width:460px;height:460px;animation-delay:-8s;top:38%;right:-10%}.orbs i:nth-child(3){opacity:.26;background:#8a3dff;width:560px;height:560px;animation-delay:-15s;top:68%;left:20%}.orbs i:nth-child(4){background:var(--accent2);opacity:.2;width:420px;height:420px;animation-delay:-4s;top:80%;right:8%}@keyframes drift{to{transform:translate(60px,-50px)scale(1.12)}}
