@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ab36ba74ba67ee0c-s.0vbhejztomta0.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/33f266618f7bf8bb-s.1vqi-k1w20m2i.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36f8835f1b5285ee-s.016_c6f56w-54.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0fe8cf670dc7929a-s.43u5tn_wmp7tb.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e858660d9da6747c-s.0o146vuhj0hlr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/31a7435702a308bc-s.19n67_thuu7m9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c9e42e3eae6237c2-s.p.2s-4kwv_nqb0b.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ab36ba74ba67ee0c-s.0vbhejztomta0.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/33f266618f7bf8bb-s.1vqi-k1w20m2i.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/36f8835f1b5285ee-s.016_c6f56w-54.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0fe8cf670dc7929a-s.43u5tn_wmp7tb.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e858660d9da6747c-s.0o146vuhj0hlr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/31a7435702a308bc-s.19n67_thuu7m9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c9e42e3eae6237c2-s.p.2s-4kwv_nqb0b.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Source Code Pro Fallback;src:local(Arial);ascent-override:73.11%;descent-override:20.28%;line-gap-override:0.0%;size-adjust:134.59%}.source_code_pro_22105c22-module__9htFGW__className{font-family:Source Code Pro,Source Code Pro Fallback;font-style:normal}.source_code_pro_22105c22-module__9htFGW__variable{--font-mono:"Source Code Pro", "Source Code Pro Fallback"}
.portfolio-machine-page{--machine-bg:#0a0a0c;--machine-text:#e8e6f0;--machine-muted:#8b8798;--machine-accent:#b794f6;--machine-border:#b794f638;--machine-font:var(--font-mono,ui-monospace, "Fragment Mono", "Source Code Pro", monospace);background:var(--machine-bg);min-height:100dvh;color:var(--machine-text);font-family:var(--machine-font);font-size:.8125rem;line-height:1.55}.portfolio-machine-shell{max-width:52rem;margin:0 auto;padding:5.5rem 1.25rem 6rem}@media (min-width:768px){.portfolio-machine-shell{padding-left:2rem;padding-right:2rem}}.portfolio-machine-header{z-index:50;border-bottom:1px solid var(--machine-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0ceb;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex;position:fixed;top:0;left:0;right:0}.portfolio-machine-brand{letter-spacing:.12em;color:var(--machine-text);font-weight:600;text-decoration:none}.portfolio-machine-brand:hover{color:var(--machine-accent)}.portfolio-machine-controls{align-items:center;gap:.75rem;display:flex}.portfolio-machine-locale{border:1px solid var(--machine-border);border-radius:999px;font-size:.6875rem;display:flex}.portfolio-machine-locale button{cursor:pointer;color:var(--machine-muted);font:inherit;font-size:inherit;background:0 0;border:none;padding:.2rem .55rem}.portfolio-machine-locale button.is-active,.portfolio-machine-locale button:hover{color:var(--machine-text)}.portfolio-machine-locale button.is-active{background:var(--machine-accent);color:#0a0a0c;border-radius:999px}.portfolio-machine-doc{flex-direction:column;gap:.35rem;display:flex}.portfolio-machine-doc .machine-brand{letter-spacing:.2em;color:var(--machine-accent);margin-bottom:.75rem;font-size:.75rem}.portfolio-machine-doc h1,.portfolio-machine-doc .machine-h1{color:var(--machine-text);margin:.85rem 0 .25rem;font-size:1.125rem;font-weight:600}.portfolio-machine-doc h2,.portfolio-machine-doc .machine-h2{color:var(--machine-accent);margin:1.25rem 0 .35rem;font-size:1rem;font-weight:600}.portfolio-machine-doc h3,.portfolio-machine-doc .machine-h3{color:var(--machine-text);margin:.75rem 0 .2rem;font-size:.875rem;font-weight:600}.portfolio-machine-doc p,.portfolio-machine-doc .machine-p{color:var(--machine-muted);max-width:65ch;margin:.15rem 0}.portfolio-machine-doc .machine-kv{color:var(--machine-muted)}.portfolio-machine-doc .machine-kv strong{color:var(--machine-text);font-weight:500}.portfolio-machine-doc .machine-list{color:var(--machine-muted);margin:.2rem 0 .5rem 1rem;padding:0;list-style:outside}.portfolio-machine-doc .machine-rule{border:none;border-top:1px dashed var(--machine-border);margin:1rem 0}.portfolio-machine-link{color:inherit;margin:.15rem 0;text-decoration:none;display:inline-block}.portfolio-machine-link:hover .machine-link-label{color:var(--machine-accent)}.machine-link-label{color:var(--machine-text);font-weight:500}.machine-link-url{color:var(--machine-muted);word-break:break-all;font-size:.75rem;display:block}
