:root{--bg:#020a18;--bg2:#06152b;--card:#081a34;--line:#18385f;--blue:#1f7cff;--cyan:#28a8ff;--text:#f7f9ff;--muted:#9babc1;--shell:1280px;--shadow:0 22px 70px #0008}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:78px}body{margin:0;background:radial-gradient(circle at 73% 16%,#0d3476 0,transparent 28%),linear-gradient(125deg,#010815,#020b1b 48%,#06152a);color:var(--text);font:15px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(#3a6da008 1px,transparent 1px),linear-gradient(90deg,#3a6da008 1px,transparent 1px);background-size:54px 54px;pointer-events:none}a{color:inherit;text-decoration:none}.shell{width:min(calc(100% - 48px),var(--shell));margin:auto}.skip{position:fixed;left:10px;top:-60px;z-index:99;background:#fff;color:#000;padding:8px 12px}.skip:focus{top:10px}.progress{position:fixed;inset:0 0 auto;height:2px;z-index:100}.progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue))}header#header{position:fixed;inset:0 0 auto;z-index:50;transition:.25s;background:#020a18c8;backdrop-filter:blur(18px);border-bottom:1px solid transparent}.nav{height:76px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;margin-right:auto;font-weight:800}.brand b{font-size:29px;color:var(--blue);letter-spacing:-3px}.nav nav{display:flex;gap:29px}.nav nav a{font-size:13px;font-weight:650;color:#d7dfed;position:relative;padding:28px 0}.nav nav a:after{content:"";position:absolute;left:0;right:100%;bottom:18px;height:2px;background:var(--blue);transition:.25s}.nav nav a.active,.nav nav a:hover{color:var(--cyan)}.nav nav a.active:after{right:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#1486ff,#2456ff);border:1px solid #3697ff;color:white;font-weight:750;padding:12px 19px;border-radius:9px;box-shadow:0 10px 30px #0b6cff33;cursor:pointer;transition:.25s}.btn:hover{transform:translateY(-2px);box-shadow:0 15px 36px #1678ff55}.btn.small{padding:8px 16px;font-size:13px}.btn.outline{background:#071226b8;border-color:#61728d;box-shadow:none}.btn.outline:hover{border-color:var(--blue)}#menu{display:none;background:none;border:0;color:white;font-size:22px}#mobile{display:none}.hero{padding:130px 0 70px;min-height:820px}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:38px}.kicker{color:var(--cyan);font-size:12px;font-weight:850;letter-spacing:.12em}.hero h1,.section h2{margin:12px 0 16px;line-height:1.08;letter-spacing:-.055em}.hero h1{font-size:clamp(2.7rem,4.2vw,4rem);white-space:nowrap}.hero h1 span,.section h2 span{color:var(--blue)}.lead{max-width:620px;color:#b6c3d6;font-size:17px}.typed{color:#8093ad;margin:24px 0}.typed b{color:#e9f0fc}.typed i{display:inline-block;width:2px;height:17px;background:var(--blue);margin-left:4px;vertical-align:-3px;animation:blink .8s steps(2) infinite}.actions,.social{display:flex;gap:12px;flex-wrap:wrap}.actions{margin-top:27px}.social{margin-top:26px}.social a{width:39px;height:39px;border:1px solid #1c3558;border-radius:50%;display:grid;place-items:center;background:#0a1830;color:#c7d3e4;font-size:12px;font-weight:800}.social a:hover{border-color:var(--blue);color:var(--cyan);transform:translateY(-2px)}.portrait{height:520px;position:relative;display:grid;place-items:end center}.portrait img{position:relative;z-index:2;width:min(100%,530px);max-height:500px;object-fit:cover;object-position:center top;filter:saturate(1.08) contrast(1.03);mask-image:linear-gradient(#000 0 82%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0 82%,transparent 100%)}.halo{position:absolute;z-index:0;width:470px;height:470px;border-radius:50%;background:radial-gradient(circle,#167dff9c,transparent 66%);box-shadow:0 0 95px #167dff55}.portrait:before,.portrait:after{content:"";position:absolute;border:1px solid #1379ff1f;border-radius:50%;width:520px;height:520px}.portrait:after{width:620px;height:620px}.chip{position:absolute;z-index:4;border:1px solid #17477b;background:#05152be6;padding:7px 12px;border-radius:9px;font-size:11px;color:#b7c7dc}.chip:first-letter{color:var(--blue)}.c1{left:0;bottom:95px}.c2{right:0;top:135px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #16365c;background:#06162cdd;border-radius:16px;box-shadow:var(--shadow);margin-top:-20px}.stats article{padding:20px 24px;display:flex;gap:15px;align-items:center}.stats article+article{border-left:1px solid #193454}.stats article>b{width:45px;height:45px;border-radius:50%;border:1px solid #174378;display:grid;place-items:center;color:var(--cyan);font-size:18px}.stats strong{display:block;color:var(--blue);font-size:24px;line-height:1.1}.stats span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.section{padding:95px 0}.alt{background:linear-gradient(90deg,#020b18,#06152a 60%,#020b18)}.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}.section h2{font-size:clamp(2rem,3vw,3.15rem)}.copy>p:not(.kicker),.title>p:not(.kicker){color:#9eacc1}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.services article,.skill-grid article,.edu article,.projects article,.repo-grid article{border:1px solid #18385d;background:linear-gradient(145deg,#0a1a34,#071428);border-radius:11px;padding:20px;transition:.25s}.services article:hover,.skill-grid article:hover,.projects article:hover,.repo-grid article:hover{transform:translateY(-5px);border-color:#237ef7;box-shadow:0 18px 45px #0005}.services article{color:var(--cyan);font-size:25px}.services h3{font-size:14px;color:white;margin:8px 0 2px}.services p{font-size:12px;color:var(--muted);margin:0}.title{text-align:center;max-width:760px;margin:0 auto 40px}.title h2{margin-top:4px}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.skill-grid b{color:var(--blue);font-size:11px}.skill-grid h3{margin:5px 0}.skill-grid p{color:var(--muted);font-size:13px}.projects,.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.project-top,.repo-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.tag{font-size:10px;border:1px solid #275181;border-radius:99px;padding:3px 8px;color:#9fc8ff}.projects h3,.repo-grid h3{margin:14px 0 5px}.projects p,.repo-grid p{color:var(--muted);font-size:12px}.project-link{color:var(--cyan);font-weight:700;font-size:12px}.repo-head{display:flex;justify-content:space-between;align-items:center;margin:45px 0 16px}.filter{background:#07172d;color:#b6c5d8;border:1px solid #1b3a60;border-radius:99px;padding:7px 12px;cursor:pointer}.filter.active,.filter:hover{color:#fff;border-color:#2787ff;background:#0a2d5c}.timeline{max-width:1000px;margin:auto}.timeline details{border-left:2px solid #1d6fe3;background:#07172c;border-radius:0 10px 10px 0;margin:12px 0;padding:17px 20px}.timeline summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.timeline summary b{color:#f5f8ff}.timeline summary span{color:#6faeff;font-size:12px}.timeline p{color:#a9b7ca;margin:12px 0 0}.edu{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.edu h3{font-size:14px;margin:0 0 5px}.edu p,.special{color:var(--muted);font-size:12px}.special{margin-top:16px;border:1px solid #17385d;background:#07172c;padding:20px;border-radius:11px}.special h3{color:white}.contact{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-links{display:grid;gap:7px}.contact-links a{color:#77b7ff}.contact form{display:grid;gap:12px;border:1px solid #17385d;background:#07172c;padding:24px;border-radius:13px}.contact label{font-size:12px;color:#aab9cd;display:grid;gap:5px}input,textarea{width:100%;border:1px solid #22466f;background:#030c1b;color:#fff;border-radius:8px;padding:11px;font:inherit}input:focus,textarea:focus{outline:2px solid #1f7cff55;border-color:var(--blue)}form small{color:#72869f}footer{border-top:1px solid #17304f;padding:25px 0;color:#6f829c;font-size:12px}footer .shell{display:flex;justify-content:space-between}.js .reveal{opacity:0;transform:translateY(18px);transition:.7s cubic-bezier(.2,.7,.2,1)}.js .reveal.in{opacity:1;transform:none}.muted{color:var(--muted)}@keyframes blink{50%{opacity:0}}@media(max-width:1000px){.nav nav,.desktop-hire{display:none}#menu{display:block}.hero-grid,.about,.contact{grid-template-columns:1fr}.hero h1{white-space:normal}.portrait{height:470px}.stats{grid-template-columns:repeat(2,1fr)}.stats article:nth-child(3){border-left:0;border-top:1px solid #193454}.stats article:nth-child(4){border-top:1px solid #193454}.services,.skill-grid,.projects,.repo-grid,.edu{grid-template-columns:repeat(2,1fr)}#mobile.open{display:grid;padding:12px 24px 22px;gap:10px;border-top:1px solid #17304f}.nav .btn{display:none}}@media(max-width:620px){.shell{width:min(calc(100% - 28px),var(--shell))}.hero{padding-top:110px}.hero h1{font-size:2.75rem}.portrait{height:400px}.chip{display:none}.stats{grid-template-columns:1fr}.stats article+article{border-left:0;border-top:1px solid #193454}.services,.skill-grid,.projects,.repo-grid,.edu{grid-template-columns:1fr}.section{padding:72px 0}.timeline summary{display:block}.timeline summary span{display:block;margin-top:5px}.repo-head{display:block}.repo-head>div{margin-top:10px}.contact{gap:30px}footer .shell{display:block}.social a{width:42px;height:42px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid #66b5ff;outline-offset:3px}.text-link{align-self:center;color:var(--cyan);font-size:13px;font-weight:700}.assistant{display:none;position:fixed;right:22px;bottom:22px;z-index:80}.js .assistant{display:block}.assistant-toggle{border:1px solid #3697ff;border-radius:99px;background:linear-gradient(135deg,#1486ff,#2456ff);box-shadow:0 15px 40px #0009;color:#fff;font:inherit;font-weight:750;padding:12px 18px;cursor:pointer}.assistant-panel{position:absolute;right:0;bottom:58px;width:min(370px,calc(100vw - 28px));overflow:hidden;border:1px solid #285889;border-radius:16px;background:#06152bf2;box-shadow:0 25px 80px #000b;backdrop-filter:blur(18px)}.assistant-panel>header{position:static;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #18385f;background:#081a34}.assistant-panel header div{display:grid}.assistant-panel header small{color:var(--muted)}.assistant-panel header button{border:0;background:transparent;color:#fff;font-size:23px;cursor:pointer}.assistant-messages{display:grid;gap:9px;max-height:290px;overflow:auto;padding:14px}.msg{max-width:90%;margin:0;padding:9px 11px;border-radius:10px;background:#10284a;color:#dbe8fa;font-size:12px}.msg.user{justify-self:end;background:#155fc5;color:#fff}.assistant-prompts{display:flex;gap:6px;padding:0 14px 10px;overflow:auto}.assistant-prompts button{white-space:nowrap;border:1px solid #275181;border-radius:99px;background:#07172d;color:#b9d8ff;padding:5px 8px;cursor:pointer}.assistant-panel form{display:flex;padding:12px;border-top:1px solid #18385f}.assistant-panel input{min-width:0;border-radius:8px 0 0 8px}.assistant-panel form button{width:45px;border:0;border-radius:0 8px 8px 0;background:var(--blue);color:#fff;font-size:20px;cursor:pointer}.noscript{position:fixed;z-index:120;inset:auto 14px 14px;padding:12px;border:1px solid #ffb347;background:#2c1d08;color:#fff;border-radius:8px}@media(max-width:620px){.assistant{right:14px;bottom:14px}.assistant-panel{bottom:55px}.assistant-toggle{padding:10px 14px}}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}.standalone-page{min-height:100vh;display:grid;place-items:center;padding:24px}.standalone-card{width:min(620px,100%);border:1px solid #18385d;background:linear-gradient(145deg,#0a1a34,#071428);border-radius:16px;padding:clamp(28px,6vw,55px);box-shadow:var(--shadow)}.standalone-card h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.08}.standalone-card p:not(.kicker){color:var(--muted);margin-bottom:28px}
