@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,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(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,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(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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.00%;size-adjust:134.59%}.__className_4dc837{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_4dc837{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{color-scheme:dark;--bg:#07080d;--bg-2:#0d0f17;--surface:#0f1220;--ink:#f2f4fa;--muted:#98a1b8;--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--accent:#456aff;--accent-2:#8fa6ff;--accent-glow:rgba(69,106,255,.35);--tint-1:rgba(255,255,255,.03);--tint-2:rgba(255,255,255,.07);--nav-bg:rgba(7,8,13,.7);--nav-bg-solid:rgba(7,8,13,.97);--card-a:rgba(255,255,255,.04);--card-b:rgba(255,255,255,.015);--card-shadow:none;--cta-a:rgba(69,106,255,.1);--cta-b:rgba(255,255,255,.02);--glow-a:rgba(69,106,255,.45);--glow-b:rgba(69,106,255,.12);--violet:#8b5cf6;--glow-v:rgba(139,92,246,.4);--green:#3fb950;--radius:16px;--font-sans:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}[data-theme=light]{color-scheme:light;--bg:#ffffff;--bg-2:#f5f7fb;--surface:#ffffff;--ink:#0f172a;--muted:#55627a;--line:rgba(15,23,42,.1);--line-2:rgba(15,23,42,.18);--accent:#2f55f0;--accent-2:#2547d4;--accent-glow:rgba(69,106,255,.28);--tint-1:rgba(15,23,42,.035);--tint-2:rgba(15,23,42,.07);--nav-bg:rgba(255,255,255,.75);--nav-bg-solid:rgba(255,255,255,.98);--card-a:#ffffff;--card-b:#fbfcff;--card-shadow:0 1px 2px rgba(15,23,42,.05),0 8px 24px rgba(15,23,42,.05);--cta-a:rgba(69,106,255,.1);--cta-b:rgba(69,106,255,.02);--glow-a:rgba(69,106,255,.3);--glow-b:rgba(69,106,255,.08);--glow-v:rgba(139,92,246,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body,html{background:var(--bg)}body{margin:0;color:var(--ink);line-height:1.65;font-family:var(--font-sans);-webkit-font-smoothing:antialiased}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}h1,h2,h3,h4{margin:0;line-height:1.12;letter-spacing:-.03em}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 24px}.h-sm{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.site-nav{position:fixed;inset:0 0 auto 0;z-index:50;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav-inner{display:flex;justify-content:space-between;height:68px}.brand,.nav-inner{align-items:center}.brand{display:inline-flex;color:var(--ink);font-weight:700;font-size:1.2rem;letter-spacing:-.02em;white-space:nowrap}.brand:hover{text-decoration:none}.brand-logo{margin-right:10px;height:36px;width:36px}.brand-text span{color:#456aff;margin-left:.1em}.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto}.nav-links>a:not(.btn){padding:8px 14px;color:var(--muted);font-size:.92rem;font-weight:500;border-radius:999px}.nav-links>a:not(.btn):hover{color:var(--ink);background:var(--tint-2);text-decoration:none}.nav-cta{margin-left:10px}.nav-toggle{display:none;margin-left:8px;width:40px;height:40px;background:none;border:1px solid var(--line-2);border-radius:10px;cursor:pointer;position:relative}.nav-toggle span{position:absolute;left:11px;right:11px;height:2px;background:var(--ink);border-radius:2px}.nav-toggle span:first-child{top:15px}.nav-toggle span:last-child{top:23px}.theme-toggle{display:grid;place-items:center;width:40px;height:40px;margin-left:6px;background:none;border:1px solid var(--line-2);border-radius:999px;color:var(--ink);cursor:pointer;transition:background .15s}.theme-toggle:hover{background:var(--tint-2)}.theme-toggle .moon{display:none}[data-theme=light] .theme-toggle .moon{display:block}[data-theme=light] .theme-toggle .sun{display:none}.nav-end{display:flex}.btn,.nav-end{align-items:center}.btn{display:inline-flex;justify-content:center;gap:8px;padding:13px 24px;border-radius:999px;font-weight:600;font-size:.98rem;border:1px solid transparent;cursor:pointer;transition:transform .15s,background .15s,box-shadow .15s}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-sm{padding:8px 18px;font-size:.9rem}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.1) inset,0 8px 30px -8px var(--accent-glow)}.btn-primary:hover{background:#4a6cff;color:#fff}.btn-ghost{color:var(--ink);border-color:var(--line-2);background:var(--tint-1)}.btn-ghost:hover{background:var(--tint-2)}.hero{position:relative;padding:156px 0 96px;overflow:hidden;text-align:center}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse 70% 60% at 50% 0,#000 0,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 0,#000 0,transparent 75%);opacity:.6}.hero-glow{position:absolute;left:50%;top:-240px;width:900px;height:600px;transform:translateX(-50%);background:radial-gradient(38% 55% at 36% 50%,var(--glow-a),transparent),radial-gradient(38% 55% at 64% 50%,var(--glow-v),transparent);filter:blur(40px);pointer-events:none}.hero-inner{position:relative;display:flex;flex-direction:column;align-items:center}.hero h1{font-size:clamp(2.6rem,7vw,5.2rem);font-weight:800;letter-spacing:-.045em}.grad{background:linear-gradient(100deg,var(--ink) 0,var(--accent-2) 40%,var(--violet) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.lead{max-width:680px;margin:26px 0 34px;font-size:1.15rem;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.terminal{width:100%;max-width:720px;margin-top:72px;text-align:left;background:#0d0f17;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);box-shadow:0 40px 120px -30px var(--accent-glow);overflow:hidden}.term-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.term-bar i{width:11px;height:11px;border-radius:50%;background:#2a2f45}.term-bar span{margin-left:10px;font:.78rem var(--font-mono);color:#98a1b8}.terminal pre{margin:0;padding:22px 24px;font:.88rem/1.75 var(--font-mono);color:#c8cfe4;overflow-x:auto}.terminal .p{color:var(--green)}.terminal .k{color:#8fa6ff}.terminal .ok{color:var(--green)}.cur{display:inline-block;width:8px;height:1em;vertical-align:text-bottom;background:#8fa6ff;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.section{padding:100px 0;position:relative}.section-head{max-width:680px;margin-bottom:48px}.eyebrow{display:inline-block;font:600 .78rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin-bottom:14px}.section h2{font-size:clamp(1.9rem,4vw,2.9rem);font-weight:800}.section-head p{color:var(--muted);font-size:1.08rem;margin:16px 0 0}.grid{display:grid;grid-gap:18px;gap:18px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.card{position:relative;background:linear-gradient(180deg,var(--card-a),var(--card-b));border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--card-shadow);transition:border-color .2s,transform .2s,box-shadow .2s}.card:hover{border-color:rgba(69,106,255,.45);box-shadow:0 20px 60px -30px var(--accent-glow)}.card h3{font-size:1.2rem;font-weight:700;margin:14px 0 8px}.card p{margin:0;color:var(--muted);font-size:.96rem}.icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(69,106,255,.14);border:1px solid rgba(69,106,255,.3);color:var(--accent-2)}.project h3{font-size:1.7rem;margin-top:18px}.badge{display:inline-block;padding:4px 12px;border-radius:999px;font:500 .75rem var(--font-mono);color:var(--accent-2);background:rgba(69,106,255,.12);border:1px solid rgba(69,106,255,.3)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.tag{padding:4px 11px;border-radius:8px;font:.78rem var(--font-mono);color:var(--muted);border:1px solid var(--line-2)}.card-link{display:inline-flex;align-items:center;gap:6px;margin-top:22px;font-weight:600}.about{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:56px;gap:56px;align-items:start}.avatar{border-radius:50%;object-fit:cover;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--line-2),0 0 40px var(--accent-glow);margin-bottom:24px;display:block}.about .sub{color:var(--ink);font-weight:500;margin:12px 0 20px}.about p{color:var(--muted)}.certs{list-style:none;margin:0;padding:0}.certs li{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:.95rem}.certs li:last-child{border:0}.certs svg{color:var(--accent-2);flex:none}.stack-group{margin-bottom:30px}.logos{display:flex;flex-wrap:wrap;gap:10px}.logo{display:inline-flex;align-items:center;gap:10px;padding:9px 16px 9px 12px;border:1px solid var(--line);border-radius:999px;background:var(--tint-1);font-size:.9rem;font-weight:500}.logo-img{width:24px;height:24px;object-fit:contain}:root:not([data-theme=light]) .logo-img.mono{filter:invert(1)}.cta{position:relative;overflow:hidden;text-align:center;padding:72px 32px;border:1px solid var(--line-2);border-radius:28px;background:linear-gradient(180deg,var(--cta-a),var(--cta-b))}.cta-glow{position:absolute;left:50%;top:-260px;width:700px;height:400px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(69,106,255,.5),transparent);filter:blur(30px);pointer-events:none}.cta>*{position:relative}.cta>p{color:var(--muted);max-width:540px;margin:16px auto 40px;font-size:1.08rem}.contact-grid{text-align:left}.contact-card{color:var(--ink)}.contact-card:hover{text-decoration:none;transform:translateY(-3px)}.site-footer{border-top:1px solid var(--line);padding:64px 0 28px;background:var(--bg-2);color:var(--muted);font-size:.92rem}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1.2fr;grid-gap:48px;gap:48px}.footer-about{margin:14px 0 0;max-width:360px}.footer-company{margin-top:18px}.footer-company strong,.site-footer h4{color:var(--ink)}.site-footer h4{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin-bottom:8px}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--ink);text-decoration:none}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:48px;padding-top:22px;border-top:1px solid var(--line);font-size:.85rem}.legal-page{padding:120px 0 80px}.back-link{display:inline-block;font-size:.9rem;color:var(--muted);margin-bottom:20px}.back-link:hover{color:var(--ink);text-decoration:none}.legal-hero{padding-bottom:28px;margin-bottom:36px;border-bottom:1px solid var(--line)}.legal-hero h1{font-size:clamp(2rem,4vw,3rem);font-weight:800}.legal-hero .updated{color:var(--muted);margin:10px 0 0}.legal-layout{display:grid;grid-template-columns:250px minmax(0,1fr);grid-gap:56px;gap:56px;align-items:start}.legal-toc{position:-webkit-sticky;position:sticky;top:92px}.legal-toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}.legal-toc li a{display:block;padding:7px 14px;margin-left:-1px;border-left:2px solid transparent;font-size:.9rem;color:var(--muted)}.legal-toc li a:hover{color:var(--ink);text-decoration:none}.legal-toc li a.active{color:var(--accent-2);border-left-color:var(--accent);font-weight:600}.toc-other{margin-top:20px;font-size:.88rem;color:var(--muted)}.legal-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:44px 52px;max-width:820px}.legal-body section{scroll-margin-top:90px;margin-bottom:32px}.legal-body section:last-child{margin-bottom:0}.legal-body h2{font-size:1.35rem;margin-bottom:12px}.legal-body li,.legal-body p{color:var(--muted);line-height:1.8}.legal-body p{margin:0 0 14px}.legal-body strong{color:var(--ink)}.legal-body ol,.legal-body ul{margin:0 0 14px;padding-left:22px}.legal-body li{margin-bottom:6px}.legal-lead{padding-bottom:8px;margin-bottom:24px;border-bottom:1px solid var(--line)}.legal-lead p{font-size:1.1rem;color:var(--ink)}@media (max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}.about,.footer-grid,.grid-3{grid-template-columns:1fr}.about,.footer-grid{gap:36px}.legal-layout{grid-template-columns:1fr;gap:24px}.legal-toc{position:static}.legal-body{padding:28px 22px}}@media (max-width:760px){.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;padding:14px 24px 22px;background:var(--nav-bg-solid);border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.nav-cta{margin:8px 0 0}.grid-2,.grid-4{grid-template-columns:1fr}.hero{padding-top:132px}.section{padding:72px 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cur{animation:none}}