@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_37e96b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_37e96b{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root,html[data-theme=dark]{--bg:#0e0e0f;--panel:#141416;--text:#ececec;--muted:#a3a3a8;--dim:#85858b;--line:#232326;--line2:#36363a;--dot:#1f1f22;--off:#1c1c1f;--green:#4ade80;--hover:rgba(255,255,255,0.04);color-scheme:dark}html[data-theme=light]{--bg:#f5f5f2;--panel:#edede9;--text:#141414;--muted:#505055;--dim:#66666b;--line:#dcdcd7;--line2:#bbbbb5;--dot:#ddddd8;--off:#e2e2dd;--green:#15803d;--hover:rgba(0,0,0,0.04);color-scheme:light}*,:after,:before{box-sizing:border-box}body,html{margin:0}body{min-height:100vh;background-color:var(--bg);background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:14px 14px;color:var(--text);font-family:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}button{font:inherit;color:inherit}::selection{background:var(--text);color:var(--bg)}:focus-visible{outline:2px solid var(--text);outline-offset:2px}.muted{color:var(--muted)}.dim{color:var(--dim)}.sheet{max-width:760px;min-height:100vh;margin:0 auto;background:var(--bg);border-left:1px dashed var(--line2);border-right:1px dashed var(--line2)}.meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 20px;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.meta,.ruler{border-bottom:1px dashed var(--line2)}.ruler{height:14px;border-top:1px solid var(--line2);background-image:linear-gradient(90deg,var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:40px 10px,8px 5px;background-repeat:repeat-x;background-position:20px 0,20px 0}.header{padding:28px 20px 24px;flex-direction:column;gap:22px}.header,.id{display:flex}.id{flex-wrap:wrap;align-items:stretch;gap:20px}.pixbox{position:relative;padding:14px;border:1px dashed var(--line2);display:grid;place-items:center}.corner{position:absolute;width:8px;height:8px;border:0 solid var(--text)}.corner.tl{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}.corner.tr{top:-1px;right:-1px;border-top-width:2px;border-right-width:2px}.corner.bl{bottom:-1px;left:-1px;border-bottom-width:2px;border-left-width:2px}.corner.br{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}.pix{display:grid;grid-template-columns:repeat(11,8px);grid-auto-rows:8px;grid-gap:2px;gap:2px}.pix span{background:var(--off)}.pix span.on{background:var(--text)}.namebox{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px}.name{margin:0;font-size:clamp(20px,3.4vw,24px);font-weight:800;letter-spacing:-.02em;line-height:1.1;text-transform:uppercase}.caret{display:inline-block;width:.5em;height:.85em;margin-left:6px;background:var(--text);vertical-align:-.06em;animation:blink 1.05s steps(1) infinite}@keyframes blink{50%{opacity:0}}.social{display:flex;align-self:center}.social a{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line2);margin-left:-1px}.social a:first-child{margin-left:0}.social a:hover{background:var(--panel)}.bio{margin:0;max-width:640px;font-size:11.5px;text-wrap:pretty}.spec{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line)}.spec>div{background:var(--bg);padding:10px 12px;display:flex;flex-direction:column;gap:2px}.spec dt{font-size:9px;letter-spacing:.12em;color:var(--dim)}.spec dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}.sq{display:inline-block;width:7px;height:7px;background:var(--green)}.section{padding:24px 20px 28px;display:flex;flex-direction:column;gap:14px}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.section-title{margin:0;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.section-note,.section-title span{color:var(--dim)}.section-note{font-size:9.5px}.tl{display:flex;flex-direction:column;border-top:1px dashed var(--line2)}.tl-item{border-bottom:1px dashed var(--line2)}.tl-row{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 6px;min-height:48px;transition:background .12s}.tl-row:hover{background:var(--hover)}.tl-row:focus-visible{outline:2px solid var(--text);outline-offset:-2px}.tl-label{flex:0 0 200px;min-width:0;display:flex;align-items:center;gap:10px}.tl-sign{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--line2);font-size:10px;color:var(--muted)}.tl-name{display:flex;flex-direction:column;min-width:0;line-height:1.3}.tl-name strong{font-weight:700}.tl-name small{font-size:9.5px;color:var(--dim)}.tl-track{flex:1 1 260px;min-width:0;position:relative;height:26px;background-image:linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:calc(100% / 7) 100%}.tl-bar{position:absolute;top:6px;bottom:6px}.tl-bar.current{background:var(--text)}.tl-bar.past{border:1px solid var(--muted);background-image:repeating-linear-gradient(-45deg,var(--muted) 0 1px,transparent 1px 5px)}.tl-now{position:absolute;top:0;bottom:0;border-left:1px dashed var(--green)}.tl-dates{flex:0 0 96px;text-align:right;font-size:9.5px;color:var(--dim)}.tl-detail{margin:0 6px 14px 16px;padding:4px 0 0 22px;border-left:1px solid var(--line2);gap:10px}.bullets,.tl-detail{display:flex;flex-direction:column}.bullets{margin:0;padding:0;list-style:none;gap:4px;color:var(--muted)}.bullets li{display:flex;gap:10px;text-wrap:pretty}.bullets li:before{content:"›";color:var(--text)}.tags{display:flex;flex-wrap:wrap}.tags span{padding:1px 8px;border:1px solid var(--line2);margin-left:-1px;font-size:9.5px;color:var(--muted)}.tags span:first-child{margin-left:0}.tl-axis{display:flex;flex-wrap:wrap;gap:6px 14px;padding:0 6px}.tl-legend{flex:0 0 200px;display:flex;gap:14px;font-size:9px;letter-spacing:.08em;color:var(--dim)}.tl-legend>span{display:flex;align-items:center;gap:6px}.swatch{display:inline-block;width:12px;height:8px}.swatch.current{background:var(--text)}.swatch.past{border:1px solid var(--muted);background-image:repeating-linear-gradient(-45deg,var(--muted) 0 1px,transparent 1px 4px)}.tl-years{flex:1 1 260px;min-width:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));font-size:9px;color:var(--dim)}.tl-spacer{flex:0 0 96px}.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));grid-gap:20px;gap:20px}.card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line2);background:var(--bg);box-shadow:4px 4px 0 var(--line);transition:transform .15s,box-shadow .15s}.card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--line)}.card-preview{border-bottom:1px solid var(--line2);background:var(--panel)}.card-tabs{display:flex;border-bottom:1px dashed var(--line2);font-size:9.5px}.card-tab{padding:5px 10px;border-right:1px solid var(--line2);background:var(--bg)}.card-idx{margin-left:auto;padding:5px 10px;color:var(--dim)}.card-log{padding:12px 12px 14px;display:flex;flex-direction:column;gap:3px;font-size:10px}.card-log div{display:flex;justify-content:space-between;gap:12px}.card-log span:first-child{color:var(--muted)}.card-body{flex:1 1;padding:14px 14px 12px;display:flex;flex-direction:column;gap:8px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-title h3{margin:0;font-size:13px;font-weight:700}.badge{display:flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:9px;letter-spacing:.08em;color:var(--muted);white-space:nowrap}.badge i{width:5px;height:5px;background:var(--muted)}.badge i.live{background:var(--green)}.card-desc{margin:0;color:var(--muted);text-wrap:pretty}.card-links{margin-top:auto;padding-top:6px;display:flex;font-size:10px}.btn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 10px;border:1px solid var(--line2)}.btn+.btn{margin-left:-1px}.btn:hover{background:var(--panel)}.toc{flex-direction:column}.toc,.toc a{display:flex}.toc a{align-items:baseline;gap:10px;padding:9px 6px;transition:background .12s}.toc a:hover{background:var(--hover);text-decoration:none}.toc a:hover .toc-title{text-decoration:underline;text-underline-offset:3px}.toc-leader{flex:1 1;min-width:24px;border-bottom:1px dotted var(--line2);transform:translateY(-4px)}.toc-read{font-size:9.5px;color:var(--muted)}.post-title{margin:0;font-size:17px;font-weight:800;line-height:1.25;letter-spacing:-.01em}.post-excerpt{margin:0}.post-body{font-size:11.5px;line-height:1.8}.post-body h2{margin:28px 0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.post-body h2:before{content:"## ";color:var(--dim)}.post-body p{margin:0 0 14px}.section>.btn{align-self:flex-start}.contact{padding:16px;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line2);background:var(--panel)}.prompt{font-size:11.5px}.cta{display:flex;flex-wrap:wrap}.cta a{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 14px;border:1px solid var(--line2)}.cta a+a{margin-left:-1px}.cta a.primary{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:700}.status{display:flex;flex-wrap:wrap;align-items:stretch;border-top:1px solid var(--line2);font-size:9.5px}.status>span{padding:6px 12px;border-right:1px solid var(--line2);color:var(--dim)}.status>.mode{background:var(--text);color:var(--bg);font-weight:800;letter-spacing:.06em;border-right:0}.status>.grow{flex:1 1;padding:0;border-right:0}.status>.clock{border-right:0}.status>.clock,.theme{border-left:1px solid var(--line2)}.theme{display:flex}.theme button{all:unset;cursor:pointer;padding:6px 12px;color:var(--muted)}.theme button:focus-visible{outline:2px solid var(--text);outline-offset:-2px}html[data-theme=dark] .theme [data-value=dark],html[data-theme=light] .theme [data-value=light]{background:var(--text);color:var(--bg);font-weight:700}@media (max-width:600px){.hide-sm{display:none!important}.pixbox{padding:10px}.pix{grid-template-columns:repeat(11,6px);grid-auto-rows:6px}.namebox{flex:1 1 160px}.social{width:100%;align-self:stretch}.social a{flex:1 1;width:auto;height:44px}.spec{grid-template-columns:repeat(2,minmax(0,1fr))}.tl-label{flex:1 1}.tl-dates{flex:0 0 auto;order:2}.tl-track{order:3;flex:1 1 100%;height:18px}.tl-bar{top:5px;bottom:5px}.tl-legend,.tl-years{flex:1 1 100%}.tl-detail{margin-left:6px;padding-left:14px}.cta a{flex:1 1 100%;justify-content:center}.cta a+a{margin-left:0;margin-top:-1px}.status>span{padding:12px 10px}.status>.grow{padding:0}.theme button{padding:12px 14px}}@media (prefers-reduced-motion:reduce){.caret{animation:none}.card,.tl-row,.toc a{transition:none}}