:root{--bg:#faf8f5;--surface:#f4f0e6;--surface-strong:#fff;--text:#1a191d;--muted:#6e6d7a;--faint:#9a98a3;--line:#e5dfd5;--accent:#ff5656;--link:#2e5cb8;--link-strong:#234b9a;--content:720px;--page-pad:24px}[data-theme=dark]{--bg:#111118;--surface:#181825;--surface-strong:#14141f;--text:#e8e4dc;--muted:#a6a2ad;--faint:#75717f;--line:#292838;--accent:#ff7474;--link:#6ea6ff;--link-strong:#a9c9ff}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);-moz-text-size-adjust:100%;text-size-adjust:100%;font-family:Geist,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:var(--bg);min-height:100vh;margin:0;transition:background-color .16s,color .16s}a{color:inherit;text-decoration:none}a:hover{color:var(--link)}p,h1,h2,h3{margin:0}main{min-height:calc(100vh - 188px)}.site-header,.site-footer{padding-inline:var(--page-pad);justify-content:center;display:flex}.nav-shell,.site-footer{width:min(var(--content), 100%)}.nav-shell{border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:24px;padding-block:32px;display:flex}.brand,.nav-right,.section-label,.item-meta,.tag-row,.inline-link,.site-footer,.contact-list,.eyebrow{font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace}.brand{color:var(--text);font-size:18px;font-weight:700;line-height:1.25}.nav-right{color:var(--text);align-items:center;gap:24px;font-size:14px;font-weight:500;display:flex}.nav-right a[aria-current=page]{color:var(--accent)}.nav-link{padding-bottom:4px;position:relative}.nav-right .nav-link:hover{color:var(--text)}.nav-right .nav-link:after{background:var(--accent);content:"";transform-origin:0;height:2px;transition:transform .16s;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.nav-right .nav-link:hover:after,.nav-right .nav-link[aria-current=page]:after{transform:scaleX(1)}.nav-actions{display:none}.nav-utilities{align-items:center;gap:16px;display:flex}.nav-icon-button{width:34px;height:34px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.nav-icon-button:hover{color:var(--link)}.menu-button,.mobile-nav-panel{display:none}.icon-link,.footer-links a,.muted-icon,.social-icon-link{justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.social-icon-link{color:var(--muted)}.social-icon-link:hover{color:var(--link)}.page-shell{width:min(var(--content), calc(100% - (var(--page-pad) * 2)));margin-inline:auto;padding-block:40px 80px}.stack{flex-direction:column;gap:64px;display:flex}.section{flex-direction:column;gap:32px;display:flex}.section-label,.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:14px;font-weight:700;line-height:1.3}.hero,.about-header{align-items:center;gap:32px;display:flex}.avatar{border:1px solid var(--line);background:var(--surface);border-radius:999px;flex:none;width:120px;height:120px;overflow:hidden}.about-header .avatar{width:140px;height:140px}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.hero-copy,.about-title{flex-direction:column;gap:12px;min-width:0;display:flex}.hero h1,.page-intro h1,.about-title h1,.post-header h1{color:var(--text);font-size:32px;font-weight:700;line-height:1.25}.hero h1{font-size:28px}.hero-copy>p,.page-intro p,.about-title p:first-of-type{color:var(--accent);font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:14px;font-weight:500;line-height:1.5}.about-title p:last-of-type{color:var(--muted);font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.social-row{flex-wrap:wrap;gap:14px;padding-top:8px;display:flex}.contact-list a,.inline-link,.list-item h2 a,.project-item h2 a{color:var(--link)}.contact-list a:hover,.inline-link:hover,.list-item h2 a:hover,.project-item h2 a:hover{color:var(--link-strong)}.list-stack{flex-direction:column;gap:32px;display:flex}.project-stack{gap:40px}.list-item{flex-direction:column;gap:8px;display:flex}.project-item{gap:12px}.list-item h2{color:var(--text);font-size:18px;font-weight:650;line-height:1.4}.project-item h2{font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace}.list-item p,.bio-copy,.contact-copy,.article{color:var(--muted);font-size:15px;line-height:1.7}.list-item p{font-size:14px;line-height:1.6}.item-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;line-height:1.4;display:flex}.inline-link{align-items:center;gap:4px;width:fit-content;font-size:13px;font-weight:500;display:inline-flex}.tag-row{flex-wrap:wrap;gap:8px;display:flex}.tag-row span{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:4px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;line-height:1.2;display:inline-flex}.tech-icon{color:var(--muted);display:inline-flex}.project-links{flex-wrap:wrap;gap:14px;display:flex}.page-intro,.post-header{border-bottom:1px solid var(--line);flex-direction:column;gap:12px;padding-bottom:48px;display:flex}.content-sections{flex-direction:column;gap:56px;padding-top:48px;display:flex}.bio-copy{color:var(--text);flex-direction:column;gap:20px;display:flex}.experience-list{flex-direction:column;gap:28px;display:flex}.experience-item{flex-direction:column;gap:10px;display:flex}.experience-company{color:var(--text);align-items:center;gap:16px;display:flex}.experience-company:hover{color:var(--text)}.experience-logo{border:1px solid var(--line);background:var(--surface-strong);border-radius:10px;flex:none;justify-content:center;align-items:center;width:48px;height:48px;padding:8px;display:inline-flex;overflow:hidden}.experience-logo img{object-fit:contain;width:100%;height:100%;display:block}.experience-logo-wordmark{width:132px;height:48px;padding:8px 10px}.experience-logo-fluxon{color:var(--text)}.experience-logo-fluxon svg{width:100%;height:auto;display:block}[data-theme=dark] .experience-logo-wordmark:not(.experience-logo-fluxon) img{filter:invert()}.experience-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.experience-company-name{color:var(--text);font-size:18px;font-weight:650;line-height:1.4}.experience-role{color:var(--muted);font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.4}.experience-item h2{color:var(--text);font-size:18px;line-height:1.4}.experience-item p{color:var(--muted);font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.experience-item ul,.award-list{color:var(--muted);margin:0;padding-left:20px;font-size:14px;line-height:1.65}.contact-list{color:var(--muted);flex-direction:column;gap:12px;font-size:14px;display:flex}.contact-list div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.contact-card-list{flex-direction:column;gap:12px;display:flex}.contact-card{border:1px solid var(--line);background:var(--surface-strong);min-width:0;color:var(--text);border-radius:12px;align-items:center;gap:16px;padding:16px;display:flex}.contact-card:hover{color:var(--text);border-color:var(--link)}.contact-card-icon{background:var(--surface);width:40px;height:40px;color:var(--muted);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.contact-card-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.contact-card-copy strong{color:var(--text);font-size:14px;line-height:1.3}.contact-card-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.3;overflow:hidden}.article{color:var(--text)}.article h2,.article h3{color:var(--text);margin-top:32px;margin-bottom:12px;line-height:1.35}.article p,.article ul,.article ol,.article pre{margin-block:18px}.article a{color:var(--link)}.article pre{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:18px;font-size:13px;line-height:1.6;overflow-x:auto}.back-link{color:var(--link);align-items:center;gap:8px;margin-top:48px;font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:14px;display:inline-flex}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-inline:auto;padding-block:40px 56px;font-size:12px}.footer-row{justify-content:space-between;align-items:center;gap:24px;width:100%;display:flex}.footer-links{align-items:center;gap:8px;display:flex}.muted-icon{color:var(--faint)}.project-detail-header{border-bottom:1px solid var(--line);flex-direction:column;gap:16px;padding-bottom:48px;display:flex}.project-detail-header h1{color:var(--text);font-size:40px;line-height:1.15}.project-detail-header>p:not(.eyebrow){color:var(--accent);font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:14px;line-height:1.6}.project-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:32px;display:grid}.detail-panel{border:1px solid var(--line);background:var(--surface-strong);border-radius:8px;flex-direction:column;gap:12px;min-height:180px;padding:20px;display:flex}.detail-panel h2,.demo-strip h2{color:var(--text);font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:16px;line-height:1.35}.detail-panel p,.demo-strip p{color:var(--muted);font-size:14px;line-height:1.65}.detail-list{color:var(--muted);margin:0;padding-left:20px;font-size:15px;line-height:1.7}.detail-list li+li{margin-top:10px}.demo-strip{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:24px;padding:22px;display:grid}.demo-strip>div:first-child{flex-direction:column;gap:10px;display:flex}.demo-steps{flex-direction:column;gap:8px;display:flex}.demo-steps span{border-bottom:1px solid var(--line);color:var(--text);padding-bottom:8px;font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}@media (max-width:720px){:root{--page-pad:24px}.nav-shell{border-bottom-color:var(--line);align-items:center;gap:16px;padding-block:16px;position:relative}.brand{max-width:calc(100% - 48px);font-size:16px;line-height:1.3}.menu-button{display:inline-flex}.nav-actions{margin-left:auto;display:flex}.nav-right{display:none}.mobile-nav-panel{z-index:20;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:48px;padding:80px 24px;display:none;position:fixed;inset:57px 0 0}.mobile-nav-panel.is-open{display:flex}.mobile-nav-links{color:var(--text);flex-direction:column;align-items:center;gap:32px;font-family:Geist Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:20px;font-weight:700;display:flex}.mobile-nav-links a{padding-bottom:6px;position:relative}.mobile-nav-links .nav-link:hover,.mobile-nav-links .nav-link:active{color:var(--text)}.mobile-nav-links .nav-link:after{background:var(--accent);content:"";transform-origin:0;height:2px;transition:transform .16s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.mobile-nav-links .nav-link:hover:after,.mobile-nav-links .nav-link:active:after,.mobile-nav-links .nav-link[aria-current=page]:after{transform:scaleX(1)}.mobile-nav-utilities{gap:24px;display:flex}.utility-bubble{background:var(--surface);border-radius:999px;width:40px;height:40px}.stack{gap:56px}.hero{text-align:left;border-bottom:0;flex-direction:column;align-items:flex-start;gap:16px;padding-bottom:0}.about-header{text-align:center;flex-direction:column;align-items:center;gap:24px}.avatar{width:80px;height:80px}.about-header .avatar{width:168px;height:168px}.hero-copy{align-items:flex-start}.hero h1,.page-intro h1,.about-title h1,.post-header h1,.hero h1{font-size:28px}.hero-copy>p{max-width:none;font-size:14px;line-height:1.5}.social-row{justify-content:flex-start;gap:14px}.social-icon-link{width:28px;height:28px}.list-item h2{font-size:20px}.list-item p{font-size:15px}.item-meta{font-size:13px}.projects-page .project-stack,.home-projects .project-stack{gap:16px}.projects-page .project-item,.home-projects .project-item{border:1px solid var(--line);background:var(--surface-strong);border-radius:8px;gap:12px;padding:16px}.projects-page .project-item h2,.home-projects .project-item h2{font-size:15px;line-height:1.35}.projects-page .project-item p,.home-projects .project-item p{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.projects-page .tag-row span,.home-projects .tag-row span{padding:4px 8px;font-size:10px}.project-detail-header h1{font-size:34px}.project-detail-grid,.demo-strip{grid-template-columns:1fr}.contact-card{border-radius:16px}.footer-row{flex-direction:column;align-items:flex-start}}
