:root{--white: #ffffff;--ink-50: #f6f6f8;--ink-100: #e7e7ec;--ink-200: #c9c9d2;--ink-300: #9a9aa6;--ink-400: #6f6f7c;--ink-500: #4c4c57;--ink-600: #34343d;--ink-700: #26262d;--ink-800: #1b1b21;--ink-850: #15151a;--ink-900: #0f0f12;--ink-950: #0a0a0b;--font: "Montserrat", system-ui, -apple-system, sans-serif;--tracking-label: .25em;--max-width: 1120px;--radius: 14px;--card-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 2px 6px rgba(0, 0, 0, .45), 0 24px 60px rgba(0, 0, 0, .35)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{font-family:var(--font);background:var(--ink-950);color:var(--ink-100);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--white);color:var(--ink-950)}.wrap{max-width:var(--max-width);margin:0 auto;padding:0 24px}.section{padding:80px 0;border-top:1px solid var(--ink-800)}@media(max-width:720px){.section{padding:60px 0}.section-title{margin-bottom:28px}}@media(max-width:480px){.wrap{padding:0 18px}.btn{padding:13px 20px;flex:1 1 auto;justify-content:center}}.eyebrow{display:block;font-size:.72rem;font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);margin-bottom:14px}.section-title{font-size:clamp(1.7rem,3.5vw,2.4rem);font-weight:800;letter-spacing:-.02em;text-transform:uppercase;color:var(--white);margin-bottom:40px}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,border-color .2s ease;cursor:pointer;border:none}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--white);color:var(--ink-950)}.btn--ghost{background:transparent;color:var(--ink-100);box-shadow:inset 0 0 0 1px var(--ink-600)}.btn--ghost:hover{box-shadow:inset 0 0 0 1px var(--white);background:var(--ink-800)}.chip{display:inline-block;padding:6px 14px;border-radius:999px;border:1px solid var(--ink-700);background:var(--ink-900);color:var(--ink-200);font-size:.78rem;font-weight:500}.tag{display:inline-block;padding:4px 11px;border-radius:999px;border:1px solid var(--ink-700);color:var(--ink-300);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}.header{position:fixed;top:0;left:0;right:0;z-index:100;background:#0a0a0bb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--ink-800)}.header__inner{display:flex;align-items:center;justify-content:space-between;height:64px}.wordmark{font-weight:800;font-size:.95rem;letter-spacing:.18em;text-transform:uppercase;color:var(--white)}.wordmark span{color:var(--ink-400)}.nav{display:flex;gap:32px}.nav a{font-size:.72rem;font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-300);transition:color .2s ease}.nav a:hover{color:var(--white)}.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:10px}.menu-btn span{display:block;width:22px;height:2px;background:var(--ink-100);margin:5px 0;transition:transform .25s ease,opacity .25s ease}.menu-btn.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-btn.is-open span:nth-child(2){opacity:0}.menu-btn.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:720px){.menu-btn{display:block}.nav{position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:#0a0a0bf7;border-bottom:1px solid var(--ink-800);max-height:0;overflow:hidden;transition:max-height .3s ease}.nav.is-open{max-height:300px}.nav a{padding:16px 24px;border-top:1px solid var(--ink-800)}}.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:radial-gradient(ellipse 120% 90% at 50% 20%,var(--ink-700) 0%,var(--ink-850) 48%,var(--ink-950) 100%)}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.045;pointer-events:none}.hero__inner{position:relative;z-index:1;padding-top:64px}.hero__greeting{display:block;font-size:.75rem;font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);margin-bottom:20px}.hero__name{font-size:clamp(2.6rem,8vw,5.2rem);font-weight:900;letter-spacing:-.03em;line-height:1.02;text-transform:uppercase;color:var(--white);text-shadow:0 12px 40px rgba(0,0,0,.5);margin-bottom:18px}.hero__typed{font-size:clamp(1rem,2.4vw,1.4rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-200);min-height:1.6em;margin-bottom:26px}.hero__cursor{display:inline-block;width:2px;height:1.05em;background:var(--white);margin-left:6px;vertical-align:text-bottom;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.hero__cursor{animation:none}}.hero__tagline{max-width:560px;color:var(--ink-300);font-size:1.02rem;margin-bottom:40px}.hero__cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px}.hero__social{display:flex;gap:24px}.hero__social a{font-size:.72rem;font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);border-bottom:1px solid var(--ink-700);padding-bottom:3px;transition:color .2s ease,border-color .2s ease}.hero__social a:hover{color:var(--white);border-color:var(--white)}@media(max-width:480px){.hero__cta{gap:12px;margin-bottom:40px}.hero__tagline{font-size:.95rem;margin-bottom:32px}}.about__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}.about__text p{color:var(--ink-300);margin-bottom:20px}.facts{display:grid;gap:1px;background:var(--ink-800);border:1px solid var(--ink-800);border-radius:var(--radius);overflow:hidden}.fact{background:var(--ink-900);padding:18px 22px;transition:background .2s ease}.fact:hover{background:var(--ink-850)}.fact__label{display:block;font-size:.65rem;font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);margin-bottom:4px}.fact__value{color:var(--ink-100);font-size:.92rem;font-weight:500}.skills{margin-top:44px}.skills__group{display:flex;align-items:baseline;gap:24px;padding:22px 0;border-top:1px solid var(--ink-800)}.skills__label{flex:0 0 180px;font-size:.68rem;font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400)}.skills__chips{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:820px){.about__grid{grid-template-columns:1fr;gap:32px}.skills__group{flex-direction:column;gap:14px}.skills__label{flex:none}.fact{padding:15px 18px}}.projects__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.project{display:flex;flex-direction:column;background:var(--ink-900);border:1px solid var(--ink-700);border-radius:var(--radius);box-shadow:var(--card-shadow);padding:30px;transition:transform .25s ease,border-color .25s ease}.project:hover{transform:translateY(-4px);border-color:var(--ink-600)}.project--featured{grid-column:1 / -1}.project__top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:6px}.project__title{font-size:1.25rem;font-weight:800;letter-spacing:.02em;color:var(--white)}.project__badge{flex-shrink:0;padding:4px 12px;border-radius:999px;background:var(--white);color:var(--ink-950);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.project__tagline{font-size:.72rem;font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);margin-bottom:16px}.project__desc{color:var(--ink-300);font-size:.94rem;margin-bottom:22px;flex-grow:1}.project__tech{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.project__links{display:flex;gap:22px;align-items:center}.project__link{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-100);border-bottom:1px solid var(--ink-600);padding-bottom:3px;transition:color .2s ease,border-color .2s ease}.project__link:hover{color:var(--white);border-color:var(--white)}.project__private{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-500)}@media(max-width:720px){.projects__grid{grid-template-columns:1fr;gap:16px}.project{padding:22px}}.exp__list{display:grid;gap:24px}.exp{background:var(--ink-900);border:1px solid var(--ink-700);border-radius:var(--radius);box-shadow:var(--card-shadow);padding:30px}.exp__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}.exp__company{font-size:1.15rem;font-weight:800;color:var(--white)}.exp__period{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-400)}.exp__location{font-size:.8rem;color:var(--ink-400);margin-bottom:16px}.exp__role{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.9rem;font-weight:600;color:var(--ink-100);padding:8px 0;border-top:1px solid var(--ink-800)}.exp__role-period{font-weight:500;color:var(--ink-400);font-size:.8rem}.exp__bullets{margin:16px 0 20px;padding-left:20px;display:grid;gap:8px}.exp__bullets li{color:var(--ink-200);font-size:.92rem}.exp__bullets li::marker{color:var(--ink-500)}@media(max-width:720px){.exp__list{gap:16px}.exp{padding:22px}}.exp__tags{display:flex;flex-wrap:wrap;gap:8px}.contact{text-align:center}.contact__lead{max-width:520px;margin:0 auto 36px;color:var(--ink-300)}.contact__actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:40px}.contact__meta{display:flex;justify-content:center;gap:28px;flex-wrap:wrap}.contact__meta a{font-size:.78rem;font-weight:600;letter-spacing:.1em;color:var(--ink-400);transition:color .2s ease}.contact__meta a:hover{color:var(--white)}.footer{border-top:1px solid var(--ink-800);padding:32px 0}.footer__inner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.footer__copy{font-size:.75rem;color:var(--ink-400)}.footer__links{display:flex;gap:24px}.footer__links a{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);transition:color .2s ease}.footer__links a:hover{color:var(--white)}
