:root{--bg:#0a0e14;--bg-2:#0e131c;--surface:#111826;--surface-2:#161f2e;--border:#1f2a3a;--text:#c5d0de;--heading:#e9eff7;--muted:#7d8aa0;--accent:#4f9dff;--accent-dim:#2f80ed;--accent-bg:#4f9dff1a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", ui-monospace, Menlo, monospace;--maxw:1040px;--nav-h:72px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(900px 500px at 80% -5%,#4f9dff12,#0000 60%),radial-gradient(700px 500px at 0 0,#3867d60f,#0000 55%);background-attachment:fixed;font-size:17px;line-height:1.6}a{color:var(--accent);text-decoration:none}::selection{background:var(--accent-bg);color:var(--heading)}.container{max-width:var(--maxw);margin:0 auto;padding:0 28px}section{padding:92px 0}.heading{color:var(--heading);letter-spacing:-.02em;font-weight:700}.sec-title{align-items:center;gap:14px;margin-bottom:42px;display:flex}.sec-title .num{font-family:var(--font-mono);color:var(--accent);font-size:1rem;font-weight:500}.sec-title h2{color:var(--heading);letter-spacing:-.02em;white-space:nowrap;font-size:clamp(1.5rem,4vw,2rem);font-weight:700}.sec-title .line{background:var(--border);flex:1;height:1px}.btn{font-family:var(--font-mono);border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:9px;padding:13px 22px;font-size:.9rem;font-weight:500;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex}.btn:hover{background:var(--accent-bg);transform:translateY(-2px);box-shadow:0 8px 24px -12px #4f9dff80}.btn.solid{background:var(--accent);color:#05193b;border-color:var(--accent)}.btn.solid:hover{background:#74b0ff}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{font-family:var(--font-mono);color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.78rem}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(22px)}.reveal.in{opacity:1;transform:none}.nav{height:var(--nav-h);z-index:50;backdrop-filter:blur(10px);background:#0a0e148c;border-bottom:1px solid #0000;align-items:center;transition:border-color .3s,background .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{border-bottom-color:var(--border);background:#0a0e14cc}.nav .container{justify-content:space-between;align-items:center;width:100%;display:flex}.logo{font-family:var(--font-mono);color:var(--accent);border:1.5px solid var(--accent);letter-spacing:-1px;border-radius:8px;place-items:center;width:40px;height:40px;font-size:1.05rem;font-weight:700;transition:background .2s;display:grid}.logo:hover{background:var(--accent-bg)}.nav-links{align-items:center;gap:30px;display:flex}.nav-links a{color:var(--text);font-size:.9rem;font-family:var(--font-mono);transition:color .2s}.nav-links a .n{color:var(--accent);margin-right:5px;font-size:.8rem}.nav-links a:hover{color:var(--accent)}.nav-cv{border:1px solid var(--accent);color:var(--accent);border-radius:6px;padding:8px 16px;font-size:.82rem}.nav-cv:hover{background:var(--accent-bg)}@media (width<=720px){.nav-links a:not(.nav-cv){display:none}}.hero{min-height:100vh;padding-top:var(--nav-h);flex-direction:column;justify-content:center;display:flex}.hero .intro{font-family:var(--font-mono);color:var(--accent);margin-bottom:22px;font-size:1rem}.hero h1{color:var(--heading);letter-spacing:-.03em;font-size:clamp(2.6rem,8vw,4.7rem);font-weight:800;line-height:1.02}.hero h2{color:var(--muted);letter-spacing:-.03em;margin-top:6px;font-size:clamp(1.8rem,6vw,3.4rem);font-weight:800;line-height:1.05}.hero h2 .hl{color:var(--accent)}.hero p{max-width:560px;margin-top:26px;font-size:1.06rem}.hero .cta{flex-wrap:wrap;gap:16px;margin-top:38px;display:flex}.hero .avail{font-family:var(--font-mono);color:var(--muted);align-items:center;gap:9px;margin-top:34px;font-size:.86rem;display:inline-flex}.dot{background:var(--accent);border-radius:50%;width:9px;height:9px;animation:2.4s infinite pulse;box-shadow:0 0 #4f9dff99}@keyframes pulse{0%{box-shadow:0 0 #4f9dff80}70%{box-shadow:0 0 0 9px #4f9dff00}to{box-shadow:0 0 #4f9dff00}}.socials{gap:20px;margin-top:30px;display:flex}.socials a{color:var(--muted);transition:color .2s,transform .2s;display:inline-flex}.socials a:hover{color:var(--accent);transform:translateY(-3px)}.socials svg{width:22px;height:22px}.projects{gap:18px;display:grid}.card{background:linear-gradient(180deg, var(--surface), var(--bg-2));border:1px solid var(--border);border-radius:14px;grid-template-columns:1fr;gap:14px;padding:26px 28px;transition:transform .2s,border-color .2s,box-shadow .25s;display:grid}.card:hover{border-color:#4f9dff66;transform:translateY(-4px);box-shadow:0 18px 40px -24px #000c}.card .top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.card h3{color:var(--heading);letter-spacing:-.01em;font-size:1.28rem;font-weight:700}.card .meta{font-family:var(--font-mono);color:var(--accent);margin-top:4px;font-size:.8rem}.card p{color:var(--text);font-size:.98rem}.card .links{align-items:center;gap:16px;display:flex}.card .links a,.card .links span.priv{color:var(--muted);font-family:var(--font-mono);align-items:center;gap:6px;font-size:.8rem;transition:color .2s;display:inline-flex}.card .links a:hover{color:var(--accent)}.card .links svg{width:17px;height:17px}.priv-badge{font-family:var(--font-mono);color:var(--accent);background:var(--accent-bg);white-space:nowrap;border:1px solid #4f9dff4d;border-radius:999px;padding:3px 9px;font-size:.72rem}.about-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:50px;display:grid}.about p{margin-bottom:14px}.about .photo-wrap{width:300px;max-width:100%;position:relative}.about .photo-wrap img{aspect-ratio:4/5;object-fit:cover;object-position:center 20%;border:1px solid var(--border);border-radius:16px;width:100%;transition:transform .3s,box-shadow .3s,border-color .3s;display:block;box-shadow:0 20px 50px -22px #000000d9}.about .photo-wrap:hover img{border-color:#4f9dff80;transform:translateY(-5px);box-shadow:0 28px 60px -24px #4f9dff38}.skills-groups{grid-template-columns:1fr 1fr;gap:18px 30px;margin-top:26px;display:grid}.skills-groups h4{color:var(--accent);font-family:var(--font-mono);margin-bottom:9px;font-size:.82rem;font-weight:500}.skills-groups ul{list-style:none}.skills-groups li{color:var(--text);padding:2px 0 2px 16px;font-size:.92rem;position:relative}.skills-groups li:before{content:"▹";color:var(--accent);position:absolute;left:0}.exp-item{border-left:2px solid var(--border);padding:0 0 30px 28px;position:relative}.exp-item:before{content:"";background:var(--bg);border:2px solid var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:-7px}.exp-item:last-child{padding-bottom:0}.exp-item .role{color:var(--heading);font-size:1.12rem;font-weight:700}.exp-item .org{color:var(--accent);font-size:.95rem}.exp-item .when{font-family:var(--font-mono);color:var(--muted);margin:4px 0 12px;font-size:.8rem}.exp-item ul{list-style:none}.exp-item li{margin-bottom:6px;padding-left:18px;font-size:.96rem;position:relative}.exp-item li:before{content:"▹";color:var(--accent);position:absolute;left:0}.contact{text-align:center;padding:110px 0 90px}.contact .num{font-family:var(--font-mono);color:var(--accent)}.contact h2{color:var(--heading);letter-spacing:-.03em;margin:14px 0 18px;font-size:clamp(2rem,7vw,3.2rem);font-weight:800}.contact p{max-width:520px;margin:0 auto 36px}.contact .avail{justify-content:center}.footer{text-align:center;color:var(--muted);font-family:var(--font-mono);padding:34px 0 40px;font-size:.8rem}.footer .socials{display:none}@media (width<=820px){.about-grid{grid-template-columns:1fr;gap:36px}.about .photo-wrap{width:220px;margin:0 auto}section{padding:72px 0}.skills-groups{grid-template-columns:1fr 1fr}}
