:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-deep:#05080b;--bg:#0a0e13;--bg-raise:#0f151c;--plate:#161d25;--plate-hi:#1d2731;--line:#1e2731;--line-soft:#161e26;--ink:#dbe3ec;--ink-strong:#f2f6fa;--dim:#909daf;--faint:#5d6a79;--accent:#52e0a4;--accent-deep:#1f7f5c;--amber:#e2a457;--proto:#74b6e8;--retired:#5a6672;--led-live:#52e0a4;--led-soon:#e2a457;--led-proto:#74b6e8;--led-retired:#48525e;--led-eink:#c9d3dd;--led-blank:transparent;--mono:ui-monospace, "JetBrains Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--u:20px;--radius:4px;--maxw:72ch}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.skip-link{z-index:200;background:var(--accent);color:#04120c;border-radius:var(--radius);font-family:var(--mono);padding:10px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:top .12s;position:absolute;top:-100px;left:8px}.skip-link:focus{top:8px}.led{--led-c:var(--led-blank);background:var(--led-c);width:7px;height:7px;box-shadow:0 0 5px color-mix(in srgb, var(--led-c) 80%, transparent);border-radius:50%;flex:none;display:inline-block}[data-state=live] .led,.led[data-state=live]{--led-c:var(--led-live)}[data-state=soon] .led,.led[data-state=soon]{--led-c:var(--led-soon)}[data-state=proto] .led,.led[data-state=proto]{--led-c:var(--led-proto)}[data-state=retired] .led,.led[data-state=retired]{--led-c:var(--led-retired);box-shadow:none}[data-state=eink] .led,.led[data-state=eink]{--led-c:var(--led-eink)}.badge{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;vertical-align:2px;border:1px solid;border-radius:999px;padding:2px 7px;font-size:11px}.badge[data-state=live]{color:var(--led-live);border-color:color-mix(in srgb, var(--led-live) 35%, transparent);background:color-mix(in srgb, var(--led-live) 10%, transparent)}.badge[data-state=soon]{color:var(--led-soon);border-color:color-mix(in srgb, var(--led-soon) 35%, transparent);background:color-mix(in srgb, var(--led-soon) 10%, transparent)}.badge[data-state=proto]{color:var(--led-proto);border-color:color-mix(in srgb, var(--led-proto) 35%, transparent);background:color-mix(in srgb, var(--led-proto) 10%, transparent)}.badge[data-state=retired]{color:var(--retired);border-color:color-mix(in srgb, var(--retired) 45%, transparent)}.cv{max-width:82ch;margin:0 auto;padding:clamp(24px,5vw,48px) clamp(16px,5vw,40px) 64px}.cv-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 24px;padding-bottom:20px;display:flex}.cv-head>div{flex:340px;min-width:0}.cv-head h1{letter-spacing:-.02em;color:var(--ink-strong);margin:0;font-size:clamp(24px,4vw,34px);font-weight:640}.cv-head .handle{font-family:var(--mono);color:var(--accent);margin-left:8px;font-size:.55em;font-weight:500}.cv-title{color:var(--dim);margin:6px 0 0;font-size:15.5px}.cv-contact{font-family:var(--mono);color:var(--faint);margin:10px 0 0;font-size:12.5px;line-height:1.9}.cv-contact a{white-space:nowrap}.cv .cv-avail{color:var(--ink);align-items:baseline;gap:9px;margin:12px 0 0;font-size:14px;line-height:1.5;display:flex}.cv-avail .led{flex:none;position:relative;top:-1px}.cv-back{font-family:var(--mono);flex-direction:column;flex:none;align-items:flex-end;gap:8px;margin:0;font-size:12.5px;display:flex}.cv-print{font-family:var(--mono);color:var(--ink);background:var(--bg-raise);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:7px 12px;font-size:12.5px}.cv-print:hover{border-color:var(--faint)}.cv-alt{color:var(--faint);font-size:11.5px}.cv main section{margin-top:clamp(28px,4vw,40px)}.cv h2{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line-soft);margin:0 0 12px;padding-bottom:6px;font-size:12px}.cv h3{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:22px 0 8px;font-size:11px}.cv p{color:var(--dim);margin:0 0 10px;font-size:15px}.cv main ul,.cv main ol{color:var(--dim);margin:0;padding-left:20px;font-size:15px}.cv main li{margin-bottom:7px}.cv-role{color:var(--ink)!important}.cv-role strong{color:var(--ink-strong)}.cv-year{font-family:var(--mono);color:var(--faint);font-size:12px}.cv-timeline{padding:0;list-style:none}.cv-timeline li{border-top:1px solid var(--line-soft);grid-template-columns:58px minmax(0,1fr);gap:14px;margin:0;padding:8px 0;display:grid}.cv-timeline .cv-year{color:var(--accent);font-size:13px}.cv-timeline strong{color:var(--ink)}.cv-projects{padding:0;list-style:none}.cv-projects>li{border-top:1px solid var(--line-soft);margin:0;padding:10px 0}.cv-proj-head{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 2px;display:flex;color:var(--ink)!important}.cv-proj-head strong{color:var(--ink-strong)}.cv-proj-tag,.cv-proj-res{margin:0 0 2px;font-size:14px}.cv-proj-meta{font-family:var(--mono);color:var(--faint);margin:4px 0 0;font-size:11.5px}.cv-nodes{padding:0;list-style:none}.cv-nodes li{font-size:14px}.cv-nodes strong{font-family:var(--mono);color:var(--accent);font-weight:500}.cv-skills{grid-template-columns:150px minmax(0,1fr);gap:6px 18px;margin:0;display:grid}.cv-skills dt{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding-top:2px;font-size:11px}.cv-skills dd{color:var(--dim);margin:0;font-size:14px}.cv-socials{padding:0;list-style:none}.cv-stat{font-family:var(--mono);color:var(--faint);font-size:11.5px}.cv-foot{border-top:1px solid var(--line);font-family:var(--mono);letter-spacing:.08em;color:#3f4954;margin-top:48px;padding-top:20px;font-size:11.5px}.cv-foot p{color:inherit;font-size:inherit;margin:0}@media (max-width:560px){.cv-skills,.cv-timeline li{grid-template-columns:minmax(0,1fr);gap:2px}.cv-timeline li{gap:2px}}@media print{:root{--ink:#111;--ink-strong:#000;--dim:#222;--faint:#555;--accent:#0a5c3e;--line:#bbb;--line-soft:#ddd;--bg:#fff;--bg-raise:#fff}html,body{font-size:10.5pt;line-height:1.42;color:#111!important;background:#fff!important}.cv{max-width:none;padding:0}.cv-back,.skip-link,.cv-avail .led{display:none!important}.cv-avail{font-size:10.5pt;font-weight:600;color:#111!important}.cv-head{border-bottom:1.5pt solid #333;padding-bottom:8pt}.cv h2{border-bottom:.5pt solid #bbb;margin-top:0;color:#0a5c3e!important}.cv main section{break-inside:avoid;margin-top:14pt}.cv-projects>li,.cv-timeline li{break-inside:avoid;border-top:.5pt solid #ddd}.cv p,.cv main ul,.cv main ol,.cv-nodes li,.cv-proj-tag,.cv-proj-res{font-size:10pt;color:#222!important}.badge{color:#333!important;background:0 0!important;border-color:#999!important}.cv-nodes strong,.cv-timeline .cv-year,.cv-head .handle{color:#0a5c3e!important}a{text-decoration:none;color:#111!important}.cv-socials a:after,.case-links a:after{content:""}.cv-foot{margin-top:16pt;color:#666!important}@page{margin:14mm 14mm 12mm}}
