:root{--bg:#fafaf9;--bg-alt:#f5f5f4;--text:#1c1917;--text-secondary:#57534e;--text-muted:#a8a29e;--border:#e7e5e4;--accent:#1c1917;--font-heading:"Space Grotesk", "Georgia", serif;--font-body:"Inter", system-ui, sans-serif;--container-max:720px;--section-padding:clamp(60px, 10vh, 120px) clamp(24px, 5vw, 40px);--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);color:var(--text);background:var(--bg);font-weight:400;line-height:1.75;overflow-x:hidden}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted);text-underline-offset:3px;transition:text-decoration-color .2s}a:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}::selection{color:#fafaf9;background:#1c1917}.container{max-width:var(--container-max);width:100%;margin:0 auto}#main-nav{z-index:100;-webkit-backdrop-filter:blur(12px);background:#fafaf9e6;border-bottom:1px solid #0000;padding:0 clamp(24px,5vw,40px);transition:border-color .3s;position:fixed;top:0;left:0;right:0}#main-nav.scrolled{border-bottom-color:var(--border)}.nav-inner{max-width:var(--container-max);justify-content:space-between;align-items:center;height:56px;margin:0 auto;display:flex}.nav-logo{font-family:var(--font-heading);letter-spacing:-.02em;font-size:1rem;font-weight:600;text-decoration:none;color:var(--text)!important}.nav-links{gap:28px;display:flex}.nav-links a{color:var(--text-secondary);font-size:.85rem;font-weight:400;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--text)}.nav-toggle{display:none}#hero{min-height:100vh;padding:var(--section-padding);text-align:center;justify-content:center;align-items:center;display:flex}.hero-bg{display:none}.hero-content{max-width:560px}.hero-name{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--text);background:0 0;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset;margin-bottom:16px;font-size:clamp(2rem,5.5vw,3.2rem);font-weight:600;line-height:1.15}.hero-tagline{color:var(--text-secondary);margin-bottom:36px;font-size:1.05rem;font-weight:300}.hero-cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn{font-family:var(--font-body);cursor:pointer;border:1px solid var(--border);border-radius:6px;align-items:center;padding:10px 22px;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover{color:var(--bg);background:#292524}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-alt);color:var(--text);border-color:#d6d3d1}.scroll-indicator{color:var(--text-muted);text-decoration:none;animation:3s ease-in-out infinite bounce;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.scroll-indicator:hover{color:var(--text)}@keyframes bounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(6px)}}section,footer{padding:var(--section-padding);position:relative}.proof-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;padding:24px clamp(24px,5vw,40px)}.proof-text{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:400}.section-title{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text);margin-bottom:8px;font-size:clamp(1.4rem,3vw,1.8rem);font-weight:600}.section-subtitle{color:var(--text-secondary);margin-bottom:40px;font-size:.95rem}#about{border-top:none}.about-intro{align-items:flex-start;gap:28px;margin-bottom:8px;display:flex}.headshot{object-fit:cover;border:2px solid var(--border);border-radius:50%;flex-shrink:0;width:120px;height:120px}.about-grid{grid-template-columns:1fr;gap:40px;display:grid}.about-text p{color:var(--text-secondary);margin-bottom:16px;font-size:.95rem;line-height:1.8}.about-text p:last-child{margin-bottom:0}.about-socials{align-items:center;gap:14px;margin-top:18px;display:flex}.about-socials a{color:var(--text-secondary);align-items:center;transition:color .2s,transform .2s;display:flex}.about-socials a:hover{color:var(--accent);transform:translateY(-2px)}.github-stat{color:#00b894;font-size:.8rem;font-family:var(--font-body);border-left:1px solid var(--border);align-items:center;gap:6px;padding-left:6px;display:flex}.github-stat .stat-dot{background:#00b894;border-radius:50%;width:7px;height:7px;animation:2s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.about-skills h3{font-family:var(--font-heading);color:var(--text);margin-bottom:14px;font-size:.95rem;font-weight:500}.skill-tags{flex-wrap:wrap;gap:8px;display:flex}.tag{background:var(--bg-alt);color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;padding:5px 12px;font-size:.78rem;font-weight:500;transition:all .2s;display:inline-block}.tag:hover{color:var(--text);background:#eeeceb}.about-education{margin-top:8px}.about-education h3{font-family:var(--font-heading);color:var(--text);margin-bottom:14px;font-size:.95rem;font-weight:500}.education-list{flex-direction:column;gap:16px;display:flex}.education-item{align-items:flex-start;gap:12px;display:flex}.edu-logo{flex-shrink:0}.edu-school{color:var(--text);font-size:.9rem;font-weight:500;display:block}.edu-degree{color:var(--text-secondary);font-size:.82rem;display:block}#open-source{border-top:1px solid var(--border)}.project-card{border:1px solid var(--border);border-radius:8px;max-width:520px;padding:24px 28px;transition:border-color .2s}.project-card:hover{border-color:#00b894}.project-title{font-family:var(--font-heading);margin-bottom:8px;font-size:1.1rem;font-weight:600}.project-title a{color:var(--text);text-decoration:none;transition:color .2s}.project-title a:hover{color:#00b894}.project-desc{color:var(--text-secondary);margin-bottom:14px;font-size:.9rem;line-height:1.6}.project-links{gap:12px;margin-top:16px;display:flex}.project-link{color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;align-items:center;gap:5px;padding:6px 14px;font-size:.82rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.project-link:hover{border-color:var(--text-secondary);color:var(--text)}.project-link.primary{color:#fff;background:#00b894;border-color:#00b894}.project-link.primary:hover{background:#00a381;border-color:#00a381}#publications{border-top:1px solid var(--border)}.book-card{border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:28px;max-width:520px;padding:28px;display:flex}.book-cover{border-radius:4px;flex-shrink:0;width:120px;height:auto;box-shadow:0 4px 12px #0000001a}.book-title{font-family:var(--font-heading);color:var(--text);letter-spacing:-.01em;margin-bottom:4px;font-size:1.15rem;font-weight:600}.book-type{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;font-size:.8rem}.book-description{color:var(--text-secondary);margin-bottom:20px;font-size:.92rem;line-height:1.7}.book-links{flex-wrap:wrap;gap:10px;display:flex}#projects{border-top:1px solid var(--border)}.projects-grid{grid-template-columns:1fr;gap:16px;margin-bottom:16px;display:grid}.project-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:24px;transition:all .2s}.project-card:before{display:none}.project-card:hover{border-color:#d6d3d1;box-shadow:0 2px 8px #0000000a}.project-card-content{position:relative}.project-card h3{font-family:var(--font-heading);color:var(--text);margin-bottom:6px;font-size:1.05rem;font-weight:600}.project-card p{color:var(--text-secondary);margin-bottom:14px;font-size:.88rem;line-height:1.7}.project-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.project-tags .tag{padding:3px 8px;font-size:.7rem}.project-link{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:4px;font-size:.82rem;font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex}.project-link:hover{color:var(--text)}.project-link svg{width:14px;height:14px}.services-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.service-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;padding:32px 24px;transition:all .2s;display:flex}.service-card:hover{border-color:#1c191733;transform:translateY(-2px);box-shadow:0 4px 12px #00000008}.service-icon{background:var(--bg);border:1px solid var(--border);width:40px;height:40px;color:var(--text);border-radius:4px;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.service-card h3{font-family:var(--font-heading);color:var(--text);letter-spacing:-.01em;margin-bottom:12px;font-size:1.1rem;font-weight:600}#contact{border-top:1px solid var(--border)}#contact .section-subtitle{margin-bottom:32px}.contact-form{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:40px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:16px;width:100%;display:grid}.form-group{flex-direction:column;gap:6px;width:100%;display:flex}.form-group label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.form-group input,.form-group textarea{font-family:var(--font-body);border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;border-radius:6px;padding:10px 14px;font-size:.88rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--text-muted);outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.contact-secondary{text-align:center;margin-bottom:40px}.contact-or{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:16px;font-size:.78rem}.contact-links{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.contact-link{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;align-items:center;gap:8px;padding:10px 18px;font-size:.85rem;font-weight:400;text-decoration:none;transition:all .2s;display:inline-flex}.contact-link:hover{color:var(--text);background:var(--bg-alt);border-color:#d6d3d1}.contact-link svg{stroke:var(--text-muted);transition:stroke .2s}.contact-link:hover svg{stroke:var(--text-secondary)}.footer-bottom{border-top:1px solid var(--border);padding-top:32px}.footer-bottom p{color:var(--text-muted);font-size:.78rem}.reveal{opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);transform:translateY(12px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:80ms}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}.nav-active{color:var(--text)!important}.page-header{padding:clamp(120px,16vh,180px) clamp(24px,5vw,40px) clamp(40px,6vh,80px)}.page-label{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;font-size:.8rem;font-weight:400}.page-title{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--text);margin-bottom:16px;font-size:clamp(1.8rem,4.5vw,2.8rem);font-weight:600;line-height:1.2}.page-subtitle{color:var(--text-secondary);max-width:520px;font-size:1rem;line-height:1.7}.consulting-section{padding:var(--section-padding);border-top:1px solid var(--border)}.consulting-section.alt-bg{background:var(--bg-alt)}.approach-text p{color:var(--text-secondary);margin-bottom:16px;font-size:.95rem;line-height:1.8}.approach-text p:last-child{margin-bottom:0}.services-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:8px;display:grid}.service-card{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:24px;transition:all .2s}.service-card:hover{border-color:#d6d3d1;box-shadow:0 2px 8px #0000000a}.service-icon{color:var(--text-muted);margin-bottom:14px}.service-card h3{font-family:var(--font-heading);color:var(--text);margin-bottom:8px;font-size:.95rem;font-weight:600}.service-card p{color:var(--text-secondary);font-size:.85rem;line-height:1.7}.cta-section .section-title{margin-bottom:12px}.recent-work-list{flex-direction:column;gap:20px;margin-top:8px;display:flex}.recent-work-item{border-bottom:1px solid var(--border);align-items:baseline;gap:16px;padding-bottom:20px;display:flex}.recent-work-item:last-child{border-bottom:none;padding-bottom:0}.rw-title{font-family:var(--font-heading);color:var(--text);white-space:nowrap;min-width:200px;font-size:.88rem;font-weight:600}.rw-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.6}.consulting-footer{border-top:1px solid var(--border);padding:clamp(24px,4vh,40px) clamp(24px,5vw,40px)}.consulting-footer p{color:var(--text-muted);font-size:.78rem}.consulting-footer-inner{text-align:center}@media (width<=640px){.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:flex}.nav-toggle span{background:var(--text);width:20px;height:1.5px;transition:all .2s;display:block}.nav-links{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#fafaf9fa;flex-direction:column;gap:0;padding:8px 0;display:none;position:absolute;top:56px;left:0;right:0}.nav-links.open{display:flex}.nav-links a{padding:12px clamp(24px,5vw,40px);font-size:.88rem}.nav-links a:hover{background:var(--bg-alt)}.hero-cta{flex-direction:column;align-items:center}.btn{justify-content:center;width:100%;max-width:240px}.contact-links{flex-direction:column;align-items:center}.contact-link{justify-content:center;width:100%;max-width:280px}.services-grid{grid-template-columns:1fr}.book-card{text-align:center;flex-direction:column;align-items:center}.book-links{justify-content:center}.recent-work-item{flex-direction:column;gap:4px}.rw-title{min-width:unset}.form-row{grid-template-columns:1fr}.about-intro{text-align:left;flex-direction:column;align-items:flex-start}}
