@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap");:root,html[data-theme=dark]{--bg:#0a0d0b;--bg-elev:#10140f;--bg-card:#0f1310;--line:#1c2620;--line-2:#243029;--text:#e6eee8;--text-mute:#8b958e;--text-dim:#5b6661;--accent:oklch(78% 0.18 152);--accent-soft:oklch(78% 0.18 152/0.14);--accent-line:oklch(78% 0.18 152/0.32);--shadow:0 1px 0 hsla(0,0%,100%,.02) inset,0 24px 60px -28px rgba(0,0,0,.5);--sun:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='12' cy='12' r='4'/><path d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41'/></svg>");--moon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79Z'/></svg>")}html[data-theme=light]{--bg:#f6f8f5;--bg-elev:#fff;--bg-card:#fff;--line:#e6ece6;--line-2:#d4ddd5;--text:#0e1612;--text-mute:#4d5852;--text-dim:#7a8480;--accent:oklch(56% 0.16 152);--accent-soft:oklch(56% 0.16 152/0.10);--accent-line:oklch(56% 0.16 152/0.30);--shadow:0 1px 0 hsla(0,0%,100%,.6) inset,0 24px 60px -32px rgba(15,40,30,.18)}*{box-sizing:border-box}body,html{margin:0;padding:0;overflow-x:hidden}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:DM Sans,system-ui,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .24s ease,color .24s ease}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}.wrap{max-width:1120px;margin:0 auto;padding:0 32px}@media (max-width:640px){.wrap{padding:0 20px}}section{padding:96px 0;position:relative}@media (max-width:720px){section{padding:72px 0}}h1,h2,h3,h4{font-family:Space Grotesk,DM Sans,sans-serif;font-weight:600;letter-spacing:-.02em;margin:0;color:var(--text);text-wrap:balance}h1{font-size:clamp(40px,7vw,88px);line-height:1.02;letter-spacing:-.035em;font-weight:700}h2{font-size:clamp(28px,3.6vw,44px);line-height:1.1}h3{font-size:20px;line-height:1.25}p{margin:0;color:var(--text-mute)}.mono{letter-spacing:0}.eyebrow,.mono{font-family:JetBrains Mono,monospace}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.16em;margin-bottom:24px}.eyebrow:before{content:"";width:28px;height:1px;background:var(--accent)}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:48px;padding-bottom:20px;border-bottom:1px solid var(--line)}.section-title .count{font-family:JetBrains Mono,monospace;color:var(--text-dim);font-size:13px}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in oklab,var(--bg) 78%,transparent);border-bottom:1px solid var(--line)}.nav-inner{justify-content:space-between;height:64px}.nav-brand,.nav-inner{display:flex;align-items:center}.nav-brand{gap:10px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:500}.nav-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--line-2);flex-shrink:0}.nav-brand-accent{color:var(--accent)}.nav-links{display:flex;gap:28px;font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text-mute)}.nav-links a{transition:color .18s}.nav-links a:hover{color:var(--text)}.nav-links a:before{content:"// ";color:var(--text-dim)}@media (max-width:720px){.nav-links{display:none}}.nav-actions{display:flex;align-items:center;gap:10px}.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:38px;height:38px;background:transparent;border:1px solid var(--line-2);border-radius:8px;cursor:pointer;padding:0;transition:border-color .18s;flex-shrink:0}.hamburger:hover{border-color:var(--accent-line)}@media (max-width:720px){.hamburger{display:flex}}.hamburger-bar{width:16px;height:1.5px;background:var(--text-mute);border-radius:2px;transition:transform .24s ease,opacity .2s ease,width .2s ease;transform-origin:center}.hamburger.open .hamburger-bar:first-child{transform:translateY(6.5px) rotate(45deg)}.hamburger.open .hamburger-bar:nth-child(2){opacity:0;width:0}.hamburger.open .hamburger-bar:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;bottom:0;z-index:49;background:var(--bg);border-top:1px solid var(--line);flex-direction:column;justify-content:space-between;padding:16px 20px 40px;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .22s ease,transform .22s ease}@media (max-width:720px){.mobile-menu{display:flex}}.mobile-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-link{display:flex;align-items:center;gap:14px;padding:20px 0;border-bottom:1px solid var(--line);font-family:JetBrains Mono,monospace;font-size:22px;font-weight:500;color:var(--text-mute);letter-spacing:-.02em;transition:color .18s,gap .18s,opacity .22s ease,transform .22s ease;opacity:0;transform:translateY(6px)}.mobile-menu.open .mobile-link{opacity:1;transform:translateY(0)}.mobile-link:before{content:"//";font-size:12px;color:var(--text-dim);letter-spacing:0;transition:color .18s}.mobile-link:hover{color:var(--text);gap:18px}.mobile-link:hover:before{color:var(--accent)}.mobile-link.active{color:var(--text)}.mobile-link.active:before{color:var(--accent)}.mobile-menu-footer{color:var(--text-dim);padding-top:24px}.mobile-menu-footer,.theme-toggle{font-family:JetBrains Mono,monospace;font-size:12px}.theme-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);background:transparent;color:var(--text-mute);padding:8px 14px;border-radius:999px;cursor:pointer;transition:all .18s}.theme-toggle:hover{border-color:var(--accent-line);color:var(--text)}.theme-toggle .ico{width:14px;height:14px;background:currentColor;-webkit-mask:var(--sun) center/contain no-repeat;mask:var(--sun) center/contain no-repeat}html[data-theme=dark] .theme-toggle .ico{-webkit-mask:var(--moon) center/contain no-repeat;mask:var(--moon) center/contain no-repeat}.hero{padding:64px 0 80px;position:relative}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:48px;gap:48px;align-items:start}@media (max-width:880px){.hero-grid{grid-template-columns:1fr;gap:36px}}.hero h1{font-size:clamp(26px,3.8vw,44px);letter-spacing:-.025em;margin-bottom:0}.hero h1 .accent{color:var(--accent)}.hero h1 .underline{display:inline-block;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-position:0 92%;background-size:100% 8px}.hero-sub{margin-top:20px;font-size:16px;max-width:500px;line-height:1.65}.hero-meta{margin-top:36px;display:flex;flex-wrap:wrap;gap:24px 36px;font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text-mute)}.hero-meta .label{color:var(--text-dim);display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}.hero-cta{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:8px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:transform .16s,background .16s,color .16s,border-color .16s}.btn-primary{background:var(--accent);color:#07120c}.btn-primary:hover{transform:translateY(-1px)}.btn-ghost{border-color:var(--line-2);color:var(--text);background:transparent}.btn-ghost:hover{border-color:var(--accent-line);color:var(--accent)}.btn .arrow{transition:transform .18s}.btn:hover .arrow{transform:translateX(3px)}.hero-social{margin-top:20px;display:flex;gap:10px;align-items:center}.hero-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line-2);border-radius:8px;color:var(--text-mute);transition:border-color .18s,color .18s,transform .18s}.hero-social a:hover{border-color:var(--accent-line);color:var(--accent);transform:translateY(-1px)}.hero-social .ico{width:17px;height:17px}.stack-card{border:1px solid var(--line);border-radius:16px;background:var(--bg-card);padding:28px 28px 24px;display:flex;flex-direction:column;gap:14px;height:100%}.stack-card-label{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.14em}.stack-card-title{font-family:Space Grotesk,sans-serif;font-size:clamp(20px,2.4vw,28px);font-weight:600;line-height:1.2;color:var(--text);letter-spacing:-.02em}.stack-card-pills{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}.avatar-wrap{position:relative;justify-self:center;width:min(360px,90%);aspect-ratio:1/1}.avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:1px solid var(--line-2);filter:saturate(1.02)}.avatar-wrap:before{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px dashed var(--accent-line);animation:spin 40s linear infinite}.avatar-wrap:after{content:"";position:absolute;inset:-24px;border-radius:50%;border:1px solid var(--line)}.avatar-status{position:absolute;bottom:12px;right:12px;background:var(--bg-elev);border:1px solid var(--line-2);border-radius:999px;padding:6px 12px 6px 8px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex;align-items:center;gap:6px;color:var(--text-mute)}.avatar-status .pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--accent-soft)}70%{box-shadow:0 0 0 12px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes spin{to{transform:rotate(1turn)}}.main-stack{margin-top:28px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.stack-pill{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--line-2);border-radius:999px;background:var(--bg-elev);font-family:JetBrains Mono,monospace;font-size:13px;transition:border-color .18s,transform .18s}.stack-pill:hover{border-color:var(--accent-line);transform:translateY(-1px)}.main-stack .sep{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:13px}.ico{display:inline-block;background:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.tech-icon{color:var(--accent);display:flex;align-items:center;flex-shrink:0}.tech-icon--muted{color:var(--text-dim)}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:64px;gap:64px;align-items:start}@media (max-width:880px){.about-grid{grid-template-columns:1fr;gap:36px}}.about-grid p{color:var(--text);font-size:17px;line-height:1.6}.about-grid p+p{margin-top:18px;color:var(--text-mute);font-size:16px}.facts{border:1px solid var(--line);border-radius:14px;background:var(--bg-card);overflow:hidden}.fact{display:grid;grid-template-columns:130px 1fr;padding:20px 24px;border-bottom:1px solid var(--line);font-size:14px;align-items:baseline}.fact:last-child{border-bottom:0}.fact-label{font-family:JetBrains Mono,monospace;color:var(--text-dim);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.fact-value{color:var(--text)}.fact-value .accent{color:var(--accent)}.projects-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto;grid-gap:20px;gap:20px}@media (max-width:880px){.projects-grid{grid-template-columns:1fr}}.project-card{position:relative;border:1px solid var(--line);border-radius:16px;background:var(--bg-card);overflow:hidden;transition:border-color .22s,transform .22s}.project-card:hover{border-color:var(--accent-line);transform:translateY(-2px)}.project-card .media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#000}.project-card .media img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s ease}.project-card:hover .media img{transform:scale(1.03)}.project-card .body{padding:22px 24px 24px}.project-card .tag{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.project-card h3{margin-bottom:8px}.project-card p{font-size:14px;line-height:1.5}.project-card .badges{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.badge{font-family:JetBrains Mono,monospace;font-size:11px;padding:5px 9px;border:1px solid var(--line-2);border-radius:6px;color:var(--text-mute)}.project-card.featured{grid-row:span 2}.project-card.featured .media{aspect-ratio:auto;height:60%;min-height:360px}.timeline{display:flex;flex-direction:column;gap:0}.job{display:grid;grid-template-columns:200px 1fr;grid-gap:40px;gap:40px;padding:32px 0;border-top:1px solid var(--line);position:relative}.job:first-child{border-top:0;padding-top:8px}@media (max-width:720px){.job{grid-template-columns:1fr;gap:12px;padding:28px 0}}.job-date{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;padding-top:4px}.job-date .current{color:var(--accent);display:inline-flex;align-items:center;gap:6px}.job-date .current:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.job-role{font-family:Space Grotesk;font-size:22px;font-weight:600;margin-bottom:4px}.job-company{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:13px;margin-bottom:14px}.job-desc{font-size:15px;color:var(--text-mute);max-width:680px}.job-bullets{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.job-bullets li{position:relative;padding-left:22px;font-size:14.5px;color:var(--text);line-height:1.55}.job-bullets li:before{content:"";position:absolute;left:0;top:10px;width:10px;height:1px;background:var(--accent)}.job-bullets li b{color:var(--text);font-weight:600}.edu-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}@media (max-width:720px){.edu-grid{grid-template-columns:1fr}}.edu-card{border:1px solid var(--line);border-radius:14px;padding:26px 26px 24px;background:var(--bg-card);position:relative;overflow:hidden}.edu-card:before{content:"";position:absolute;top:0;left:0;width:60px;height:2px;background:var(--accent)}.edu-school{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}.edu-degree{font-size:18px;font-weight:600;margin-bottom:6px;font-family:Space Grotesk}.edu-meta{font-size:13px;font-family:JetBrains Mono,monospace}.edu-focus,.edu-meta{color:var(--text-mute)}.edu-focus{margin-top:16px;font-size:14px}.edu-focus b{color:var(--text);font-weight:500}.skills-groups{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}@media (max-width:880px){.skills-groups{grid-template-columns:1fr}}.skill-group{border:1px solid var(--line);border-radius:14px;padding:22px 22px 18px;background:var(--bg-card)}.skill-group h3{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-dim);letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px;font-weight:500}.skill-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.skill{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:8px;font-size:14.5px;transition:background .16s}.skill:hover{background:var(--bg-elev)}.skill .ico{width:18px;height:18px;flex-shrink:0}.skill .name{flex:1 1}.skill .level{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-dim)}.contact{border-top:1px solid var(--line);padding:96px 0 64px}.contact-inner{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:64px;gap:64px;align-items:start}@media (max-width:880px){.contact-inner{grid-template-columns:1fr;gap:36px}}.contact h2{font-size:clamp(40px,6vw,72px);line-height:1;letter-spacing:-.035em}.contact h2 .accent{color:var(--accent)}.contact-sub{margin-top:20px;font-size:17px;max-width:440px}.contact-channels{display:flex;flex-direction:column;gap:8px}.channel{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--bg-card);transition:border-color .2s,transform .2s}.channel:hover{border-color:var(--accent-line);transform:translateX(4px)}.channel .ico{width:22px;height:22px}.channel .meta{flex:1 1;min-width:0}.channel .label{display:block;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}.channel .value{font-size:15px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel .arrow{color:var(--text-dim);font-family:JetBrains Mono,monospace;transition:color .2s,transform .2s}.channel:hover .arrow{color:var(--accent);transform:translate(2px,-2px)}footer{border-top:1px solid var(--line);padding:24px 0;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:12px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap;text-align:center}.nav-links a.active{color:var(--text)}.nav-links a.active:before{color:var(--accent)}.page-hero{padding:72px 0 48px;border-bottom:1px solid var(--line)}.page-title{font-size:clamp(32px,5vw,60px);line-height:1.05;letter-spacing:-.03em;font-weight:700;margin-bottom:0}.page-sub{margin-top:16px;font-size:17px;color:var(--text-mute);max-width:560px;line-height:1.6}.page-content{padding:64px 0 96px}.coming-soon-block{border:1px dashed var(--line-2);border-radius:14px;padding:48px 40px;max-width:480px}.contact-page-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:64px;gap:64px;align-items:start}@media (max-width:880px){.contact-page-grid{grid-template-columns:1fr;gap:40px}}.contact-form{display:flex;flex-direction:column;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:640px){.form-row{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:8px}.field-label{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.12em}.field-input{background:var(--bg-card);border:1px solid var(--line-2);border-radius:10px;padding:13px 16px;font-family:DM Sans,system-ui,sans-serif;font-size:15px;color:var(--text);outline:none;transition:border-color .18s,box-shadow .18s;resize:none;width:100%}.field-input::placeholder{color:var(--text-dim)}.field-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.field-input:disabled{opacity:.5;cursor:not-allowed}.field-textarea{min-height:160px;line-height:1.6}.form-error{font-family:JetBrains Mono,monospace;font-size:12px;color:oklch(70% .18 25);padding:12px 14px;border:1px solid oklch(70% .18 25/.3);border-radius:8px;background:oklch(70% .18 25/.06)}.form-feedback{display:flex;flex-direction:column;align-items:flex-start;padding:40px;border:1px solid var(--line);border-radius:16px;background:var(--bg-card)}.form-feedback--success{border-color:var(--accent-line)}.form-feedback-icon{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);border:1px solid var(--accent-line);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--accent);margin-bottom:20px}.form-feedback h3{font-size:22px;margin-bottom:8px}.form-feedback p{color:var(--text-mute);font-size:15px}