@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #101214;--surface: #161a1c;--text: #ecefeb;--meta: #aab5af;--label: #aab5af;--green: #79e5ae;--red: #fd6d84;--border: #2c3530}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-bottom:7rem}body{background:var(--bg);color:var(--text);font-family:IBM Plex Mono,monospace;font-size:15px;line-height:1.75;min-height:100vh}::selection{background:var(--green);color:var(--bg)}a{color:inherit;text-underline-offset:5px;transition:color .15s,border-color .15s}a:hover{color:var(--green)}a:focus-visible{outline:2px solid var(--green);outline-offset:5px}h1,h2,h3{font-weight:400;line-height:1.3}.skip-link{position:absolute;top:-100px;left:1rem;padding:.6rem;background:var(--bg);z-index:10000}.skip-link:focus{top:1rem}.site-masthead{max-width:960px;margin:0 auto;padding:1.5rem 2rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-brand{text-decoration:none;font-size:1.15rem;letter-spacing:-.05em}.site-brand span{color:var(--green)}.masthead-note{font-size:.68rem;color:var(--meta)}.page{max-width:960px;margin:0 auto;padding:2.6rem 2rem 6rem;min-height:70vh}nav.main-nav{position:fixed;bottom:0;left:0;right:0;border-top:1px solid var(--border);background:var(--bg);display:flex;align-items:stretch;z-index:1000;padding:0 max(1rem,calc((100vw - 896px)/2))}nav.main-nav a{color:var(--meta);text-decoration:none;padding:.85rem .95rem;font-size:.76rem;display:flex;align-items:center;justify-content:center;min-height:44px}nav.main-nav a:first-child{padding-left:.2rem;padding-right:1.3rem}nav.main-nav a:hover{color:var(--text)}nav.main-nav a.active{color:var(--green);box-shadow:0 -2px 0 var(--green)}.nav-spacer{flex:1}nav.main-nav .nav-contact{padding-right:0;color:var(--green)}.prompt{color:var(--meta);font-size:.73rem;margin-bottom:1.7rem;overflow-wrap:anywhere}.p-user,.ok{color:var(--green)}.p-path{color:var(--meta)}.section-label{font-size:.7rem;letter-spacing:.08em;color:var(--meta);text-transform:uppercase;margin-bottom:1.2rem}h1.section-label{color:var(--text);text-transform:none;font-size:1.9rem;letter-spacing:-.045em;margin-bottom:.7rem}.page-summary{color:var(--meta);font-size:.87rem;max-width:66ch;margin-bottom:2.4rem}.divider{border:0;border-top:1px solid var(--border);margin:2.2rem 0}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.cursor{animation:blink 1.2s step-end infinite;color:var(--green)}.intro h1{font-size:clamp(2rem,5vw,3.1rem);letter-spacing:-.065em;line-height:1.2}.intro h1>span{color:var(--green)}.intro-role{color:var(--green);font-size:clamp(1.1rem,2.6vw,1.6rem);letter-spacing:-.035em;margin-top:.7rem}.intro-description{margin-top:1.5rem;color:var(--meta);max-width:78ch;font-size:.9rem}.intro-meta{color:var(--meta);font-size:.72rem;margin-top:1.2rem}.intro-meta span{margin:0 .65rem;color:var(--green)}.social-links{display:flex;flex-wrap:wrap;gap:1.8rem;margin-top:1.2rem}.social-links a{font-size:.78rem;padding:.35rem 0}.social-links span{color:var(--green)}.home-links{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2.5rem}.home-card{display:block;background:var(--surface);border:1px solid var(--border);padding:1.4rem;text-decoration:none}.home-card:only-child{grid-column:1 / -1}.home-card:hover{color:var(--text);border-color:var(--green)}.card-path{font-size:.68rem;color:var(--green)}.home-card h2{font-size:.95rem;margin:.7rem 0;letter-spacing:-.025em}.home-card h2 span{color:var(--green)}.home-card p{color:var(--meta);font-size:.77rem;max-width:42ch}.eyebrow{display:block;color:var(--green);font-size:.67rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1.1rem}.about-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2.5rem;align-items:start}.about-bio{line-height:1.9;font-size:.86rem}.about-bio>p+p{margin-top:1.2rem}.about-origin{color:var(--meta);font-size:.78rem}.about-offline{padding:1.5rem;border:1px solid var(--border);background:var(--surface)}.about-offline h2{font-size:1.1rem;margin:.6rem 0 1rem;letter-spacing:-.035em}.about-offline p{color:var(--meta);font-size:.78rem}.interest-list{display:flex;flex-wrap:wrap;gap:.5rem 1rem;list-style:none;margin-top:1.2rem}.interest-list li{font-size:.68rem;color:var(--text)}.interest-list li:before{content:"/ ";color:var(--green)}.about-principle{margin-top:2.5rem;padding:1.7rem 0 1.7rem 1.4rem;border-left:2px solid var(--green);background:linear-gradient(90deg,#79e5ae08,transparent)}.about-principle .eyebrow{color:var(--meta);margin-bottom:.7rem}.about-principle p{font-size:clamp(.95rem,2.3vw,1.2rem);line-height:1.7;letter-spacing:-.03em}.skills-grid,.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.skill-group{background:var(--surface);border:1px solid var(--border);padding:1.35rem}.skill-group-wide{grid-column:1 / -1}.skill-cat{color:var(--text);font-size:.8rem;margin-bottom:1rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{color:var(--meta);border:1px solid #3b4940;padding:.2rem .55rem;font-size:.73rem;max-width:100%;overflow-wrap:anywhere}.tag.hi{color:var(--green)}.project-item{border:1px solid var(--border);background:var(--surface);padding:1.5rem;display:flex;flex-direction:column}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.project-number{font-size:.7rem;color:var(--green)}.project-name{color:var(--text);font-size:1.2rem;letter-spacing:-.045em;margin-bottom:.8rem;overflow-wrap:anywhere}.project-type{color:var(--meta);font-size:.67rem;letter-spacing:.025em}.project-desc{font-size:.82rem;color:var(--meta);line-height:1.85;margin-bottom:1.2rem}.project-stack{display:flex;flex-wrap:wrap;gap:.4rem 1rem;list-style:none;font-size:.65rem;color:var(--meta);margin-bottom:1.4rem}.project-stack li:before{content:"#";color:var(--green)}.project-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}.project-link{color:var(--text);font-size:.73rem;overflow-wrap:anywhere}.project-link span{color:var(--green)}.project-current{color:var(--meta);font-size:.73rem}.cert-item{display:grid;grid-template-columns:20px 65px minmax(0,1fr) auto;gap:1rem;padding:1rem .5rem;border-top:1px solid var(--border);align-items:center}.ci-ok,.ci-code{color:var(--green)}.ci-code{font-size:.75rem}.ci-prog,.ci-inprog{color:var(--meta)}.ci-name{font-size:.85rem}.ci-date{font-size:.72rem;color:var(--meta);white-space:nowrap;text-align:right}@media(max-width:700px){.site-masthead{padding:1.15rem 1.25rem}.masthead-note{font-size:.6rem}.page{padding:2rem 1.25rem 7rem}.home-links,.skills-grid,.projects-grid{grid-template-columns:1fr}.wide-only{display:none}nav.main-nav{flex-wrap:wrap;padding:0 .7rem env(safe-area-inset-bottom,0px)}nav.main-nav a{padding:.7rem .5rem;font-size:.72rem}nav.main-nav a:first-child{padding:.7rem .5rem}.nav-spacer{display:none}nav.main-nav .nav-contact{width:100%;padding:.4rem;min-height:36px;border-top:1px solid var(--border)}.about-grid{grid-template-columns:1fr;gap:1.7rem}.about-principle{margin-top:1.7rem}.cert-item{grid-template-columns:18px minmax(0,1fr);gap:.5rem .8rem}.ci-code{display:none}.ci-date{grid-column:2;text-align:left}}@media(max-width:360px){nav.main-nav a,nav.main-nav a:first-child{padding-left:.3rem;padding-right:.3rem}.masthead-note{max-width:16ch;text-align:right}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
