@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}._3QQ21q_className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}._3QQ21q_variable{--font-sans:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/faab88e4be272d29-s.3zhtymus0wdqb.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a45aa1001bf9176f-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/41ba59f553543ecf-s.1da667lu-u79a.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/67bba87670b402d1-s.1i05ju5aeyhye.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d6c1ff7e86974212-s.p.1dgcou5jor5q_.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/49b1d53681a91a99-s.31-2bzhq1gx_9.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/123d516c9baeb953-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a74d2542cc4c775f-s.2taws-qdxmzlf.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7ac0b1cd3e695dd0-s.0htwiiqufp3l9.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/916cd8a3bde3edf8-s.p.28xcb7557rbh2.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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.VCrZzq_className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.VCrZzq_variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--paper:#fbf9f4;--box:#f1eee6;--ink:#1a1b20;--ink-2:#4a463f;--muted:#5f5a51;--rule:#e2ddd2;--accent:#c23c17;--on-accent:#fff;--internal:#1f5fbf;--internal-tint:#e2edff;--public:#0d7049;--public-tint:#d9f4e6;--margin-w:12rem;--gap:2.5rem;--term-bg:#1d1c19;--term-bar:#282622;--term-line:#3a3731;--sky-1:#7cc6f2;--sky-2:#ffd9a8;--sky-3:#ff9f6b;--sun:#fff6d8;--streak:#ffffffb3;--ridge-1:#8fd3b4;--ridge-2:#43b085;--ridge-3:#1d8461;--ridge-4:#0d5440;--night-1:#ffcf8a;--night-2:#ff9a66;--night-3:#f0606a;--moon:#fff4d6;--star:transparent;--night-streak:#ffffff73;--nridge-1:#c94f72;--nridge-2:#9a3264;--nridge-3:#6b2257;--nridge-4:#3d1640;--scene-ink:#0e1b2c;--scene-ink-2:#1d2b3a;--scene-line:#0e1b2c59;--scene-chip:#ffffff73;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f1220;--term-bg:#0f0e0d;--term-bar:#1b1a17;--term-line:#38342e;--sky-1:#1b2a5a;--sky-2:#c7303f;--sky-3:#ffb347;--sun:#ffe7a8;--streak:#1b2a5a80;--ridge-1:#e0524a;--ridge-2:#a8283f;--ridge-3:#6e1a3a;--ridge-4:#350f2a;--night-1:#0b1236;--night-2:#1e2f7a;--night-3:#3f5bb0;--moon:#fff2c4;--star:#fff;--night-streak:#7882aa40;--nridge-1:#2f47a8;--nridge-2:#22357f;--nridge-3:#18265c;--nridge-4:#0e1736;--scene-ink:#fff6ec;--scene-ink-2:#fff1e2;--scene-line:#fff6ec73;--scene-chip:#0f122059;--box:#181c2e;--ink:#f3efe8;--ink-2:#c9cbd6;--muted:#a3a7b8;--rule:#262b40;--accent:#ff8a5c;--on-accent:#0f1220;--internal:#8ab4ff;--internal-tint:#16203a;--public:#5fe0a6;--public-tint:#10261f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0f1220;--term-bg:#0f0e0d;--term-bar:#1b1a17;--term-line:#38342e;--sky-1:#1b2a5a;--sky-2:#c7303f;--sky-3:#ffb347;--sun:#ffe7a8;--streak:#1b2a5a80;--ridge-1:#e0524a;--ridge-2:#a8283f;--ridge-3:#6e1a3a;--ridge-4:#350f2a;--night-1:#0b1236;--night-2:#1e2f7a;--night-3:#3f5bb0;--moon:#fff2c4;--star:#fff;--night-streak:#7882aa40;--nridge-1:#2f47a8;--nridge-2:#22357f;--nridge-3:#18265c;--nridge-4:#0e1736;--scene-ink:#fff6ec;--scene-ink-2:#fff1e2;--scene-line:#fff6ec73;--scene-chip:#0f122059;--box:#181c2e;--ink:#f3efe8;--ink-2:#c9cbd6;--muted:#a3a7b8;--rule:#262b40;--accent:#ff8a5c;--on-accent:#0f1220;--internal:#8ab4ff;--internal-tint:#16203a;--public:#5fe0a6;--public-tint:#10261f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{background:var(--paper);color:var(--ink);font:1.0625rem/1.65 var(--font-sans), system-ui, sans-serif;overflow-wrap:break-word;margin:0;overflow-x:clip}h1,h2,h3{font-family:var(--font-sans), system-ui, sans-serif;letter-spacing:-.025em;margin:0;font-weight:700;line-height:1.12}p{margin:0}a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--accent);text-decoration-color:currentColor;text-decoration-thickness:2px}a:active{opacity:.8}a[href],button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{width:min(68rem,100% - 2rem);margin-inline:auto}.skip-link{z-index:10;background:var(--ink);color:var(--paper);padding:.6rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:.75rem}.site-header{border-bottom:1px solid var(--rule)}.header-row{align-items:center;gap:1.5rem;min-height:4.25rem;display:flex}.brand{font-family:var(--font-sans), system-ui, sans-serif;letter-spacing:-.02em;align-items:center;min-height:44px;font-size:1.25rem;font-weight:700;text-decoration:none;display:inline-flex}.site-nav{gap:.25rem;margin-left:auto;display:flex}.site-nav a,.theme-toggle{min-height:44px;color:var(--ink-2);border-radius:4px;align-items:center;padding:0 .75rem;text-decoration:none;display:inline-flex}.site-nav a:hover{color:var(--accent);background:var(--box)}.site-nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}.theme-toggle{font:inherit;border:1px solid var(--ink-2);color:var(--ink-2);background:0 0;font-size:.875rem;transition:background-color .12s}.theme-toggle:hover{background:var(--box);color:var(--ink)}.theme-toggle:active{transform:translateY(1px)}.theme-toggle .to-light,:root[data-theme=dark] .theme-toggle .to-dark{display:none}:root[data-theme=dark] .theme-toggle .to-light{display:inline}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .to-dark{display:none}:root:not([data-theme=light]) .theme-toggle .to-light{display:inline}}.button{border:1px solid var(--ink-2);min-height:46px;color:var(--ink);border-radius:4px;align-items:center;padding:0 1.15rem;font-weight:600;text-decoration:none;transition:background-color .12s;display:inline-flex}.button:hover{background:var(--box);color:var(--ink)}.button:active{transform:translateY(1px)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button.primary:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.scene{text-align:center;isolation:isolate;background:var(--sky-1);justify-content:center;align-items:flex-start;min-height:min(52rem,100svh);margin-inline:calc(50% - 50vw);padding:clamp(7.5rem,16vh,10rem) 0 14rem;display:flex;position:relative;overflow:hidden}.landscape{z-index:-1;width:100%;height:100%;position:absolute;inset:0}.landscape .px,.landscape .orb,.landscape .ridge,.landscape .drift,.landscape .birds{transform-box:fill-box}.scene-text{flex-direction:column;align-items:center;display:flex}.scene h1{letter-spacing:-.04em;color:var(--scene-ink);text-wrap:balance;max-width:16ch;font-size:clamp(2.5rem,7vw,5.25rem);line-height:1.02}.role{color:var(--scene-ink);letter-spacing:-.01em;margin-top:.75rem;font-size:clamp(1.15rem,2.4vw,1.5rem);font-weight:600}.lede{color:var(--scene-ink-2);text-wrap:pretty;max-width:38rem;margin-top:1.25rem;font-size:1.1875rem}.scene .actions,.contact-scene .actions{justify-content:center}:is(.scene,.contact-scene) .button:not(.primary){color:var(--scene-ink);border-color:var(--scene-line);background:var(--scene-chip)}:is(.scene,.contact-scene) .button:not(.primary):hover{background:var(--paper);color:var(--ink)}body:has(.scene) .site-header{inset-inline:0;z-index:5;border-bottom:0;position:absolute;top:0}body:has(.scene) .site-header .brand{color:var(--scene-ink)}body:has(.scene) .site-nav a{color:var(--scene-ink)}body:has(.scene) .site-header .theme-toggle{color:var(--scene-ink);border-color:var(--scene-line)}.contact-scene{isolation:isolate;text-align:center;background:var(--night-1);color:var(--scene-ink);margin:6rem calc(50% - 50vw) 0;padding:9rem 0 13rem;position:relative;overflow:hidden}.contact-scene:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(var(--paper), transparent);height:6rem;position:absolute;inset:0 0 auto}.contact-inner{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.contact-inner h2{letter-spacing:-.035em;color:var(--scene-ink);font-size:clamp(2rem,5vw,3.25rem)}.contact-inner>p:not(.actions){color:var(--scene-ink-2);max-width:32rem;margin-top:.75rem;font-size:1.125rem}main:has(.contact-scene)+.site-footer{margin-top:0}.stage{position:relative}.stage>.scene{position:sticky;top:0}.section.lifted{z-index:1;margin-top:-7rem;background:var(--paper);border-radius:16px 16px 0 0;margin-inline:-2.5rem;padding:2.75rem 2.5rem .5rem;position:relative}.section.lifted:before{content:"";z-index:-1;background:var(--paper);border-radius:28px 28px 0 0;position:absolute;inset:0 calc(50% - 50vw)}.term{background:var(--term-bg);color:#e8e3d8;border:1px solid var(--term-line);border-radius:6px;min-width:0;margin:0;overflow:hidden}.term-bar{background:var(--term-bar);border-bottom:1px solid var(--term-line);align-items:center;gap:.75rem;padding:.55rem .9rem;display:flex}.term-title{font:.75rem/1.4 var(--font-mono), ui-monospace, monospace;color:#b5ae9f}.term-body{font:.8125rem/1.6 var(--font-mono), ui-monospace, monospace;tab-size:4;margin:0;padding:1rem 1.1rem 1.15rem;overflow-x:auto}.term-body:focus-visible{outline-offset:-3px}.term figcaption{color:#b5ae9f;padding:0 1.1rem .9rem;font-size:.75rem}.tp{color:#86c9a6}.tl-dim{color:#b5ae9f}.tl-err{color:#f4a594}.tl-ok{color:#86c9a6}.tl-warn{color:#e9c784}.cl .ln{text-align:right;color:#8a8478;-webkit-user-select:none;user-select:none;width:2ch;margin-right:1.25ch;display:inline-block}.tk-k{color:#e9a882}.tk-s{color:#e9c784}.tk-c{color:#b5ae9f;font-style:italic}.tk-f{color:#9fd0e8}.repo-demo{gap:1rem;margin-top:1.25rem;display:grid;container-type:inline-size}@container (min-width:46rem){.repo-demo{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}}.demo-caption{color:var(--muted);grid-column:1/-1;font-size:.8125rem}.flow{background:var(--cat-tint,var(--box));border:1px solid color-mix(in srgb, var(--cat,var(--rule)) 25%, transparent);border-radius:10px;margin:1.5rem 0 0;padding:1.25rem 1.25rem 1rem;container-type:inline-size}.flow ol{gap:1.1rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.flow ol>li{color:var(--ink);grid-template-columns:2rem minmax(0,1fr);align-items:start;gap:.85rem;font-size:.9rem;line-height:1.4;display:grid;position:relative}.flow-n{z-index:1;width:2rem;height:2rem;font:500 .75rem/1 var(--font-mono), ui-monospace, monospace;color:var(--cat);background:var(--paper);border:1.5px solid var(--cat);border-radius:50%;place-items:center;display:grid;position:relative}.flow ol>li:first-child .flow-n{background:var(--cat);color:var(--paper)}.flow-label{padding-top:.4rem}.flow ol>li:not(:last-child):after{content:"";background:linear-gradient(var(--cat), color-mix(in srgb, var(--cat) 25%, transparent));width:2px;position:absolute;top:2rem;bottom:-1.1rem;left:calc(1rem - 1px)}@container (min-width:36rem){.flow ol{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.75rem}.flow ol>li{grid-template-rows:2rem auto;grid-template-columns:minmax(0,1fr);gap:.7rem}.flow-label{padding-top:0;padding-right:.25rem}.flow ol>li:not(:last-child):after{background:linear-gradient(90deg, var(--cat), color-mix(in srgb, var(--cat) 25%, transparent));width:auto;height:2px;inset:calc(1rem - 1px) -.25rem auto 2.5rem}}.flow figcaption{border-top:1px dashed var(--rule);color:var(--muted);margin-top:1rem;padding-top:.75rem;font-size:.75rem}.hub{gap:.9rem;display:grid}.hub-node{font:500 .8125rem/1 var(--font-mono), ui-monospace, monospace;background:var(--cat);color:var(--paper);border-radius:999px;justify-self:start;align-items:center;gap:.5rem;padding:.65rem .9rem;display:inline-flex}.spokes{border-left:2px solid var(--cat);gap:.5rem;margin:0 0 0 1rem;padding:0 0 0 1.4rem;list-style:none;display:grid}.spokes li{background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:.55rem .85rem;font-size:.875rem;position:relative}.spokes li:before{content:"";border-top:2px solid var(--cat);width:1.4rem;position:absolute;top:50%;left:calc(-1.4rem - 2px)}@container (min-width:36rem){.spokes{border-left:0;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));margin-left:0;padding:0}.spokes li:before{display:none}}.section{padding:4.5rem 0 0}.section-head{grid-template-columns:var(--margin-w) minmax(0, 1fr);gap:var(--gap);align-items:baseline;padding-bottom:1.25rem;display:grid}.section-head h2{grid-column:2;font-size:clamp(1.6rem,3vw,2.1rem)}.section-head p{color:var(--ink-2);grid-column:2;margin-top:-.5rem}.page-head{max-width:48rem;padding:4rem 0 2rem}.page-head h1{font-size:clamp(2.2rem,5vw,3.2rem)}.more{margin:1rem 0 0 calc(var(--margin-w) + var(--gap))}.more a{align-items:center;min-height:44px;display:inline-flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.work-tabs{margin:0 0 1.25rem calc(var(--margin-w) + var(--gap));flex-wrap:wrap;gap:.25rem 1.75rem;display:flex}.work-tabs[hidden]{display:none}.work-tabs button{font:700 clamp(1.4rem, 2.8vw, 2rem)/1.15 var(--font-sans), system-ui, sans-serif;letter-spacing:-.025em;min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;transition:color .12s,box-shadow .12s;box-shadow:inset 0 -3px #0000}.work-tabs button:hover{color:var(--ink)}.work-tabs button[aria-selected=true]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}.work-intro{margin:0 0 1.5rem calc(var(--margin-w) + var(--gap));color:var(--ink-2);max-width:44rem}@media (max-width:639px){.work-tabs,.work-intro{margin-left:0}}[data-category=professional]{--cat:var(--internal);--cat-tint:var(--internal-tint)}[data-category=open-source],[data-category=personal]{--cat:var(--public);--cat-tint:var(--public-tint)}.entries{border-top:1px solid var(--rule)}.entry{grid-template-columns:var(--margin-w) minmax(0, 1fr);gap:var(--gap);border-bottom:1px solid var(--rule);padding:1.75rem 0;display:grid}.margin{font:.8125rem/1.45 var(--font-mono), ui-monospace, monospace;color:var(--muted);font-variant-numeric:tabular-nums;flex-direction:column;gap:.3rem;padding-top:.3rem;display:flex}.margin .visibility{color:var(--cat,var(--ink-2));font-weight:500}.entry-body{border-left:1px solid var(--rule);padding-left:var(--gap);margin-left:calc(var(--gap) / -2)}.entry-title{margin-bottom:.4rem;font-size:clamp(1.2rem,2.2vw,1.35rem)}.entry-title a{margin-block:-12px;padding-block:12px;text-decoration:none;display:inline-block}.entry-title a:hover{text-decoration:underline;text-decoration-thickness:2px}.entry-body>p{color:var(--ink-2);max-width:44rem}.stack{font:.8125rem/1.5 var(--font-mono), ui-monospace, monospace;color:var(--muted);margin-top:.6rem}.entry-links{flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:.6rem;display:flex}.entry-links a{align-items:center;min-height:44px;display:inline-flex}.entry.repo .entry-body{background:var(--cat-tint,var(--box));border:1px solid color-mix(in srgb, var(--cat,var(--rule)) 30%, transparent);border-radius:4px;margin-left:0;padding:1.25rem 1.5rem}.compact{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.compact li{grid-template-columns:var(--margin-w) minmax(0, 1fr);gap:var(--gap);border-bottom:1px solid var(--rule);align-items:center;display:grid}.compact li a{min-height:52px;font-family:var(--font-sans), system-ui, sans-serif;grid-area:1/2;align-items:center;font-size:1.15rem;font-weight:600;display:inline-flex}.compact li span{font:.8125rem/1.45 var(--font-mono), ui-monospace, monospace;color:var(--muted);grid-area:1/1}.contact-list{margin-top:1rem}.contact-band{padding-bottom:1rem}.filter-bar{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding-bottom:.5rem;display:flex}.filter-bar[hidden]{display:none}.filter-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.filter-buttons button{font:inherit;border:1px solid var(--ink-2);min-height:44px;color:var(--ink);background:0 0;border-radius:4px;padding:0 1rem;font-size:.9375rem;transition:background-color .12s}.filter-buttons button:hover{background:var(--box)}.filter-buttons button:active{transform:translateY(1px)}.filter-buttons button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filter-status{color:var(--muted);font-size:.875rem}.filtered[data-filter=professional] .group[data-group=open-source],.filtered[data-filter=open-source] .group[data-group=professional]{display:none}.crumbs{color:var(--muted);padding-top:2rem;font-size:.9375rem}.crumbs a{align-items:center;min-height:44px;display:inline-flex}.detail .page-head{padding-top:1rem}.visibility-line{font:500 .875rem/1.5 var(--font-mono), ui-monospace, monospace;color:var(--cat,var(--ink-2));margin-top:.75rem}.detail-entry{border-top:1px solid var(--rule)}.facts{gap:1rem;margin:0}.facts dt{color:var(--muted)}.facts dd{color:var(--ink);margin:.1rem 0 0}.prose{max-width:46rem}.prose .summary{color:var(--ink);font-size:1.1875rem}.prose h2{margin:2.25rem 0 .75rem;font-size:1.35rem}.prose ul{color:var(--ink-2);gap:.5rem;margin:0;padding-left:1.2rem;display:grid}.prose p+p{margin-top:1rem}.note{border-top:1px dashed var(--rule);color:var(--ink-2);margin-top:1.25rem;padding-top:1rem;font-size:.9875rem}.about-entry{border-top:1px solid var(--rule)}.about-entry .prose p{color:var(--ink-2)}.tech{border-top:1px solid var(--rule);margin:0}.tech div{grid-template-columns:var(--margin-w) minmax(0, 1fr);gap:var(--gap);border-bottom:1px solid var(--rule);padding:.9rem 0;display:grid}.tech dt{font:.8125rem/1.6 var(--font-mono), ui-monospace, monospace;color:var(--muted)}.tech dd{margin:0}.not-found{padding-bottom:4rem}.site-footer{border-top:1px solid var(--rule);margin-top:6rem}.footer-row{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem;padding:1.25rem 0 2rem;font-size:.9375rem;display:flex}.footer-links{flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.footer-links a{min-height:44px;color:var(--ink-2);align-items:center;display:inline-flex}.footer-note{margin-left:.5rem;font-size:.8125rem}@media (max-width:1170px){.section.lifted{margin-inline:-1rem;padding-inline:1rem}}@media (max-width:959px){:root{--margin-w:9rem;--gap:1.75rem}.scene{padding-bottom:12rem}}@media (max-width:639px){body{font-size:1rem}.header-row{flex-wrap:wrap;gap:0 .5rem;padding-top:.25rem}.site-nav{order:3;justify-content:space-between;width:100%;margin:0 -.75rem}.theme-toggle{margin-left:auto}.scene{min-height:0;padding:9rem 0 8rem}.contact-scene{padding:5rem 0 10rem}.section.lifted{margin-top:-4rem;border-radius:14px 14px 0 0;margin-inline:-1rem;padding:2rem 1rem 0}.term-body{white-space:pre-wrap;padding:.85rem;font-size:.75rem}.cl{text-indent:-3.25ch;padding-left:3.25ch;display:block}.lede{font-size:1.0625rem}.section{padding-top:3rem}.page-head{padding:2.5rem 0 1.5rem}.section-head,.entry,.compact li,.tech div{grid-template-columns:minmax(0,1fr);gap:.4rem}.section-head h2,.section-head p{grid-column:1}.section-head p{margin-top:.25rem}.entry{padding:1.4rem 0}.margin{flex-flow:wrap;gap:.15rem .9rem;padding-top:0}.entry-body{border-left:0;margin-left:0;padding-left:0}.entry.repo .entry-body{padding:1rem 1.1rem}.compact li{gap:0;padding:.6rem 0}.compact li a,.compact li span{grid-area:auto/1}.compact li a{min-height:44px}.more{margin-left:0}.facts{flex-flow:wrap;gap:.75rem 1.5rem}.site-footer{margin-top:4rem}}@media (prefers-reduced-motion:no-preference){.landscape .ridge,.landscape .orb{animation:1.4s cubic-bezier(.2,.7,.2,1) both rise;animation-delay:calc(var(--layer) * 90ms)}.landscape .orb{animation-duration:2.2s}.landscape .drift{animation:28s ease-in-out infinite alternate drift}.landscape .birds{animation:36s ease-in-out infinite alternate glide}.scene-text{animation:.9s cubic-bezier(.2,.7,.2,1) .25s both rise-text}[data-motion=on] :is(.section-head,.entry,.compact li){opacity:0;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(22px)}[data-motion=on] :is(.section-head,.entry,.compact li).is-in{opacity:1;transform:none}}[data-scrub=on] .flow ol>li .flow-n{opacity:.5;transition:transform .35s cubic-bezier(.3,1.4,.5,1),opacity .25s,background-color .25s,color .25s;transform:scale(.82)}[data-scrub=on] .flow ol>li .flow-label{opacity:.45;transition:opacity .3s}[data-scrub=on] .flow ol>li[data-on] .flow-n{opacity:1;background:var(--cat);color:var(--paper);transform:none}[data-scrub=on] .flow ol>li[data-on] .flow-label{opacity:1}[data-scrub=on] .flow ol>li:not(:last-child):after{transform-origin:top;transition:scale .35s ease-out;scale:1 0}[data-scrub=on] .flow ol>li[data-on]:has(+li[data-on]):after{scale:1}@container (min-width:36rem){[data-scrub=on] .flow ol>li:not(:last-child):after{transform-origin:0;scale:0 1}[data-scrub=on] .flow ol>li[data-on]:has(+li[data-on]):after{scale:1}}[data-scrub=on] .flow .spokes>li{opacity:.35;transition:opacity .3s,transform .35s;transform:translateY(8px)}[data-scrub=on] .flow .spokes>li[data-on]{opacity:1;transform:none}[data-scrub=on] .term.scrub .tl{opacity:0;transition:opacity .15s}[data-scrub=on] .term.scrub .tl[data-on]{opacity:1}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes rise-text{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes drift{to{transform:translate(-48px)}}@keyframes glide{50%{transform:translate(70px,-14px)}to{transform:translate(150px,4px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.button:active,.theme-toggle:active,.filter-buttons button:active{transform:none}}
