@font-face{font-family:Pixel;src:url(/assets/VT323-Regular-DICElq-Y.ttf)format("truetype");font-display:swap}:root{--bg:#f7f4ea;--card:#fffdf6;--ink:#1d2320;--ink-2:#4b5650;--rule:#d9d3c2;--accent:#23439a;--accent-2:#b35a16;--pixel:Pixel, "Courier New", monospace}@media (prefers-color-scheme:dark){:root{--bg:#121614;--card:#1a201d;--ink:#e7ece6;--ink-2:#a9b4ac;--rule:#2e3732;--accent:#9db5ff;--accent-2:#f0a15e}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:16.5px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}.skip{position:absolute;left:-999px}.skip:focus{top:12px;left:16px}.top,main,.foot{width:min(980px,100% - 32px);margin:0 auto}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;display:flex}.mark{font:32px/1 var(--pixel);color:var(--ink);text-decoration:none}.mark b{color:var(--accent-2);font-weight:400}.top nav{flex-wrap:wrap;gap:18px;display:flex}.top nav a{color:var(--ink-2);font-weight:500;text-decoration:none}.top nav a:hover{color:var(--ink)}.top .desk{color:var(--accent)!important}.intro{border-bottom:1px solid var(--rule);padding:48px 0 30px}.kicker{font:19px/1.1 var(--pixel);letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-2);margin:0}h1{font:clamp(64px, 12vw, 112px)/.85 var(--pixel);letter-spacing:-1px;margin:8px 0 0;font-weight:400}.role{font:34px/1 var(--pixel);color:var(--accent);margin:10px 0 0}.lede{max-width:62ch;color:var(--ink-2);font-size:19px}.ctas{flex-wrap:wrap;gap:10px;margin:26px 0;display:flex}.btn{border:1.5px solid var(--ink);color:var(--ink);box-shadow:4px 4px 0 var(--rule);border-radius:0;padding:10px 18px;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .12s}.btn:hover{box-shadow:5px 5px 0 var(--rule);transform:translate(-1px,-1px)}.btn.primary{background:var(--ink);color:var(--bg)}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.stats li{background:var(--card);border:1px solid var(--rule);padding:14px}.stats strong{font:44px/1 var(--pixel);color:var(--accent);font-weight:400;display:block}.stats span{color:var(--ink-2);font-size:14px}section{padding:40px 0 10px}h2{font:40px/1 var(--pixel);margin:0 0 18px;font-weight:400}h3{font:30px/1 var(--pixel);margin:0;font-weight:400}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--rule);box-shadow:6px 6px 0 var(--rule);padding:22px}.card.featured{grid-column:1/-1}.card header{align-items:center;gap:14px;display:flex}.card .project-icon{width:56px;height:56px;image-rendering:pixelated;background:url(/assets/project-icons-v1-Cd9LUNLc.webp) 0 0/300% 200% no-repeat;flex:none}.card .project-icon.glyph{background:0 0}.card .project-icon.glyph svg{width:100%;height:100%}.card ul{color:var(--ink-2);padding-left:20px;font-size:15px}.card figure{margin:14px 0}.card img{border:1px solid var(--rule);width:100%;height:auto;display:block}.tags{font:18px var(--pixel);color:var(--ink-2)}.links{flex-wrap:wrap;gap:14px;display:flex}.job{border-top:1px solid var(--rule);padding:16px 0}.job-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.job-head span{font:20px var(--pixel);color:var(--ink-2)}.org{color:var(--accent-2);margin:2px 0;font-weight:600}.job ul{margin:8px 0;padding-left:20px}.job li{margin:4px 0}.split{grid-template-columns:1fr 1fr;gap:40px;display:grid}.small{color:var(--ink-2);font-size:14px}.with-logo{grid-template-columns:136px minmax(0,1fr);align-items:start;gap:0 20px;display:grid}#edu .with-logo{margin:0 0 18px}#edu .with-logo p{margin:0}.org-logo{border:1px solid var(--rule);background:#fff;border-radius:6px;place-items:center;width:136px;height:56px;margin-top:4px;display:grid}.org-logo img{object-fit:contain;display:block}.org-mono{font:26px/1 var(--pixel);letter-spacing:1px;color:#4b5650}@media (width<=560px){.with-logo{grid-template-columns:minmax(0,1fr)}.with-logo .org-logo{margin-bottom:10px}}.contact p{max-width:62ch;font-size:18px}.foot{border-top:1px solid var(--rule);color:var(--ink-2);justify-content:space-between;margin-top:30px;padding:30px 0 40px;display:flex}.diagram{border:1px solid var(--rule);background:#fbf9f1;width:100%;height:auto;padding:8px;display:block}.diagram .node rect{fill:#fffdf6;stroke:#2c3a33;stroke-width:2px}.diagram .node.blue rect{fill:#dde5f7}.diagram .node.amber rect{fill:#f8e7b9}.diagram .node.green rect{fill:#d8ecd5}.diagram .node.red rect{fill:#f6d4cc}.diagram .node.frame rect{fill:#eef0e7;stroke-dasharray:7 5}.diagram text{font-family:var(--pixel);fill:#1d2320}.diagram text.t{text-anchor:middle;font-size:20px}.diagram text.ft{text-anchor:start;fill:#4b5650;font-size:20px}.diagram text.s{text-anchor:middle;fill:#4f5a52;font-size:15px}.diagram .l{fill:#4f5a52;font-size:15px}.diagram .l.hot{fill:#b3362a}.diagram .l.ok{fill:#2f6d2f}.diagram .l.muted{fill:#6c766f}.diagram .edge{stroke:#2c3a33;stroke-width:2px}.diagram .edge.hot{stroke:#b3362a;stroke-width:2.5px}.diagram .edge.ok{stroke:#2f6d2f}.diagram .edge.dashed{stroke:#8a938c;stroke-dasharray:6 5}.diagram .head{fill:#2c3a33}.diagram .head.hot{fill:#b3362a}.diagram .head.ok{fill:#2f6d2f}.diagram .step rect{fill:#14146a}.diagram .step text{fill:#fff;text-anchor:middle;font-size:16px}@media (width<=760px){.cards,.split{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{padding-top:20px}}@media (prefers-reduced-motion:reduce){.btn{transition:none}}
