@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2)format("woff2")}:root{--black:#000;--white:#fff;--dim:#a3a3a3;--rule:#2a2a2a;--amber:#ffb000;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0}html{background:var(--black);color:var(--white)}body{font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber);text-underline-offset:3px}a:hover{color:var(--amber)}:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.page{width:min(1080px,100% - 40px);margin-inline:auto;padding-block:56px 40px}.seg{font:400 13px/1.5 var(--mono);color:var(--dim);white-space:pre;scrollbar-width:none;overflow-x:auto}.seg b{color:var(--amber);font-weight:400}header{grid-template-columns:1fr auto;align-items:end;gap:24px;margin-block:40px 28px;display:grid}h1{font:600 clamp(44px, 7vw, 80px)/1 var(--sans);letter-spacing:-.025em}.dim{color:var(--dim)}.site-nav{gap:20px;font-weight:500;display:flex}.site-nav a[aria-current=page]{color:var(--amber);text-decoration:none}.site-top{justify-content:space-between;align-items:baseline;gap:24px;margin-top:40px;display:flex}.site-top .name{font-size:18px;font-weight:600;text-decoration:none}.page-title{margin-top:40px;margin-bottom:28px}.lede{max-width:62ch;font-size:20px;line-height:1.5}.lede+.lede{margin-top:12px}section{border-top:1px solid var(--rule);grid-template-columns:200px 1fr;gap:24px;padding-block:28px;display:grid}section:first-of-type{margin-top:48px}h2{font:500 16px/1.55 var(--sans)}.rows{gap:22px;display:grid}.row{grid-template-columns:220px 1fr;gap:24px;display:grid}.row h3{font:600 16px/1.55 var(--sans)}.row .meta{color:var(--dim)}.row p{max-width:64ch}.row ul{max-width:64ch;margin-top:6px;padding-left:18px}.row li{margin-top:4px}.row li::marker{color:var(--amber)}.kv{grid-template-columns:220px 1fr;gap:6px 24px;display:grid}.kv dt{color:var(--dim)}.project h2 .meta{color:var(--amber);font-weight:400}.project .updated{color:var(--dim);font-weight:400}.project .summary{font-size:18px}.project .details>p{margin-top:14px;font-weight:500}.contact-form{gap:18px;max-width:640px;display:grid}.form-status{color:var(--amber)}.field{gap:6px;display:grid}.field label{font-weight:500}input,textarea{font:inherit;color:var(--white);background:var(--black);border:1px solid #3a3a3a;border-radius:0;width:100%;padding:10px 12px}textarea{resize:vertical;min-height:180px;line-height:1.5}input:focus-visible,textarea:focus-visible{outline:2px solid var(--amber);outline-offset:0;border-color:#0000}.button{font:600 16px/1 var(--sans);background:var(--amber);color:#000;cursor:pointer;border:0;border-radius:0;padding:12px 22px}.button:hover{background:#fff}.send{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.sent{font-size:22px;line-height:1.4}.sent-sub{margin-top:10px}footer{margin-top:40px}@media (width<=760px){.page{padding-top:28px}header{grid-template-columns:1fr}.site-top{flex-direction:column;gap:10px;margin-top:24px}section,.row{grid-template-columns:1fr;gap:6px}.rows{gap:20px}.kv{grid-template-columns:1fr;gap:0}.kv dd{margin-bottom:8px}}
