@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--primary:#5e6ad2;--primary-hover:#828fff;--primary-focus:#5e69d1;--canvas:#010102;--surface-1:#0d0e12;--surface-2:#15161a;--surface-3:#1c1d22;--surface-4:#23252a;--hairline:#23252a;--hairline-strong:#2e3035;--hairline-tertiary:#383a40;--ink:#f7f8f8;--ink-muted:#d0d6e0;--ink-subtle:#8a8f98;--ink-tertiary:#62666d;--success:#27a644;--overlay:#000000b3;--sp-xxs:4px;--sp-xs:8px;--sp-sm:12px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--sp-xxl:48px;--sp-section:96px;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-xxl:24px;--r-pill:9999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,system-ui,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}ul{list-style:none}.app{opacity:0;transition:opacity .6s}.app.visible{opacity:1}.eyebrow{letter-spacing:.4px;color:var(--primary);text-transform:uppercase;margin-bottom:var(--sp-md);font-size:13px;font-weight:500}.display-xl{letter-spacing:-3px;font-size:clamp(40px,7vw,80px);font-weight:600;line-height:1.05}.display-lg{letter-spacing:-1.8px;font-size:clamp(32px,5vw,56px);font-weight:600;line-height:1.1}.display-md{letter-spacing:-1px;font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.15}.headline{letter-spacing:-.6px;font-size:28px;font-weight:600;line-height:1.2}.card-title{letter-spacing:-.4px;font-size:22px;font-weight:500;line-height:1.25}.subhead{letter-spacing:-.2px;font-size:20px;font-weight:400;line-height:1.4}.body-lg{letter-spacing:-.1px;font-size:18px;font-weight:400;line-height:1.5}.body{letter-spacing:-.05px;font-size:16px;font-weight:400;line-height:1.5}.body-sm{letter-spacing:0;font-size:14px;font-weight:400;line-height:1.5}.caption{letter-spacing:0;font-size:12px;font-weight:400;line-height:1.4}.mono{letter-spacing:0;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:13px;font-weight:400}.ink-muted{color:var(--ink-muted)}.ink-subtle{color:var(--ink-subtle)}.ink-tertiary{color:var(--ink-tertiary)}.accent{color:var(--primary)}.container{max-width:1280px;padding:0 var(--sp-lg);margin:0 auto}.section{padding:var(--sp-section) 0}.section-surface{background:var(--surface-1)}.section-header{margin-bottom:var(--sp-xxl)}.grid-3{gap:var(--sp-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-2{gap:var(--sp-lg);grid-template-columns:repeat(2,1fr);display:grid}.nav{z-index:100;background:var(--canvas);border-bottom:1px solid var(--hairline);height:56px;position:fixed;top:0;left:0;right:0}.nav-inner{max-width:1280px;padding:0 var(--sp-lg);justify-content:space-between;align-items:center;height:100%;margin:0 auto;display:flex}.nav-logo{align-items:center;gap:var(--sp-sm);cursor:pointer;display:flex}.logo-mark{background:var(--primary);color:#fff;border-radius:var(--r-sm);justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:600;display:flex}.logo-mark.sm{border-radius:var(--r-xs);width:24px;height:24px;font-size:12px}.logo-text{letter-spacing:-.3px;font-size:15px;font-weight:600}.nav-links{gap:var(--sp-xxs);display:flex}.nav-link{color:var(--ink-subtle);padding:var(--sp-xs) var(--sp-sm);border-radius:var(--r-md);background:0 0;border:none;font-size:14px;font-weight:400;transition:all .15s}.nav-link:hover{color:var(--ink);background:var(--surface-1)}.nav-link.active{color:var(--ink);background:var(--surface-2)}.nav-actions{gap:var(--sp-xs);align-items:center;display:flex}.hamburger{padding:var(--sp-xs);background:0 0;border:none;flex-direction:column;gap:4px;display:none}.hamburger span{background:var(--ink);border-radius:1px;width:18px;height:1.5px;transition:all .2s}.hamburger.open span:first-child{transform:rotate(45deg)translate(4px,4px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg)translate(4px,-4px)}.btn{padding:var(--sp-xs) 14px;border-radius:var(--r-md);border:none;justify-content:center;align-items:center;font-size:14px;font-weight:500;line-height:1.2;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{background:var(--primary-focus)}.btn-secondary{background:var(--surface-1);color:var(--ink);border:1px solid var(--hairline)}.btn-secondary:hover{background:var(--surface-2);border-color:var(--hairline-strong)}.btn-lg{padding:var(--sp-sm) var(--sp-md);font-size:14px}.card{border-radius:var(--r-lg);padding:var(--sp-lg);border:1px solid var(--hairline)}.card-surface-1{background:var(--surface-1)}.card-surface-2{background:var(--surface-2);border-color:var(--hairline-strong)}.hero{border-bottom:1px solid var(--hairline);align-items:center;min-height:100vh;padding-top:56px;display:flex}.hero-title{letter-spacing:-3px;margin-bottom:var(--sp-lg);font-size:clamp(40px,7vw,80px);font-weight:600;line-height:1.05}.hero-sub{color:var(--ink-muted);letter-spacing:-.1px;margin-bottom:var(--sp-md);font-size:18px;line-height:1.5}.hero-greeting{color:var(--ink-subtle);margin-bottom:var(--sp-xl);min-height:1.5em;font-family:JetBrains Mono,monospace;font-size:13px}.typed{color:var(--ink-muted)}.cursor{color:var(--primary);font-weight:300;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.hero-actions{gap:var(--sp-xs);display:flex}.about-grid{gap:var(--sp-xl);grid-template-columns:1.2fr .8fr;align-items:start;display:grid}.about-body p{color:var(--ink-muted);margin-bottom:var(--sp-md)}.about-body .body-lg{color:var(--ink)}.stats{gap:var(--sp-xxl);margin-top:var(--sp-xl);padding-top:var(--sp-lg);border-top:1px solid var(--hairline);display:flex}.stat{gap:var(--sp-xxs);flex-direction:column;display:flex}.stat-value{letter-spacing:-.6px;color:var(--ink);font-size:28px;font-weight:600}.stat-label{color:var(--ink-subtle);text-transform:uppercase;letter-spacing:.4px;font-size:12px}.card-header{align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-lg);padding-bottom:var(--sp-lg);border-bottom:1px solid var(--hairline);display:flex}.avatar{background:var(--primary);color:#fff;border-radius:var(--r-full,9999px);justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:600;display:flex}.card-list{gap:var(--sp-sm);flex-direction:column;display:flex}.card-list li{color:var(--ink-muted);align-items:center;gap:var(--sp-xs);font-size:14px;display:flex}.card-footer{align-items:center;gap:var(--sp-xs);margin-top:var(--sp-lg);padding-top:var(--sp-md);border-top:1px solid var(--hairline);display:flex}.status-dot{background:var(--success);border-radius:50%;width:6px;height:6px}.quote-section{background:var(--surface-1);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.quote-panel{text-align:center;max-width:640px;margin:0 auto}.quote-mark{color:var(--primary);opacity:.3;margin-bottom:var(--sp-md);font-family:Georgia,serif;font-size:64px;line-height:.5;display:block}.quote-text{letter-spacing:-.2px;color:var(--ink);margin-bottom:var(--sp-md);font-size:20px;font-style:italic;font-weight:400;line-height:1.5}.quote-author{text-transform:uppercase;letter-spacing:.4px;margin-bottom:var(--sp-lg);font-size:13px}.quote-nav{gap:var(--sp-xs);justify-content:center;display:flex}.quote-dot{border:1px solid var(--hairline-strong);background:0 0;border-radius:50%;width:6px;height:6px;transition:all .15s}.quote-dot.active{background:var(--primary);border-color:var(--primary)}.feature-card{transition:border-color .15s}.feature-card:hover{border-color:var(--hairline-strong)}.feature-icon{margin-bottom:var(--sp-md);font-size:24px;display:block}.feature-card .card-title{margin-bottom:var(--sp-xs)}.skill-card{transition:border-color .15s}.skill-card:hover{border-color:var(--hairline-strong)}.skill-header{margin-bottom:var(--sp-sm);justify-content:space-between;display:flex}.skill-track{background:var(--surface-3);border-radius:2px;height:4px;overflow:hidden}.skill-fill{background:var(--primary);border-radius:2px;height:100%;transition:width 1.2s cubic-bezier(.25,.46,.45,.94)}.contact-grid{gap:var(--sp-lg);grid-template-columns:1.5fr 1fr;align-items:start;display:grid}.contact-card .body-lg{color:var(--ink);margin-bottom:var(--sp-xl)}.contact-links{gap:var(--sp-sm);flex-direction:column;display:flex}.contact-link{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);border-radius:var(--r-md);transition:background .15s;display:flex}.contact-link:hover{background:var(--surface-2)}.contact-icon{font-size:18px}.contact-link div{flex-direction:column;display:flex}.cta-card{text-align:center;align-items:center;gap:var(--sp-md);flex-direction:column;display:flex}.cta-card .headline{margin-bottom:0}.footer{background:var(--canvas);border-top:1px solid var(--hairline);padding:var(--sp-xxl) 0 var(--sp-lg)}.footer-inner{justify-content:space-between;gap:var(--sp-xxl);margin-bottom:var(--sp-xxl);display:flex}.footer-brand{align-items:center;gap:var(--sp-sm);display:flex}.footer-grid{gap:var(--sp-xxl);display:flex}.footer-col{gap:var(--sp-xs);flex-direction:column;display:flex}.footer-col .caption{margin-bottom:var(--sp-xxs)}.footer-col a{transition:color .15s}.footer-col a:hover{color:var(--ink)}.footer-bottom{padding-top:var(--sp-lg);border-top:1px solid var(--hairline)}@media (width<=1024px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.nav-links{background:var(--canvas);justify-content:center;align-items:center;gap:var(--sp-sm);z-index:99;border-top:1px solid var(--hairline);flex-direction:column;display:none;position:fixed;inset:56px 0 0}.nav-links.open{display:flex}.nav-link{padding:var(--sp-sm) var(--sp-md);font-size:18px}.nav-actions{display:none}.hamburger{display:flex}.hero-title{letter-spacing:-1.5px}.grid-3,.grid-2,.about-grid,.contact-grid{grid-template-columns:1fr}.stats{gap:var(--sp-xl);flex-wrap:wrap}.footer-inner{flex-direction:column}.footer-grid{gap:var(--sp-lg);flex-direction:column}}@media (width<=480px){.hero-title{letter-spacing:-1px}.display-md{letter-spacing:-.5px}.hero-actions{flex-direction:column}.btn-lg{width:100%}}
