@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64418ffc17e50301-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:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0e96d314a90a6138-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:DM Mono Fallback;src:local("Arial");ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.00%;size-adjust:134.59%}.__className_ed0cc4{font-family:DM Mono,DM Mono Fallback;font-weight:400;font-style:normal}.__variable_ed0cc4{--font-dm-mono:"DM Mono","DM Mono Fallback"}:root{--bg:#080807;--fg:#f2eee4;--muted:#918b80;--dim:#5f5a52;--body:#cfc9be;--font-body:var(--font-inter),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;--font-code:var(--font-dm-mono),ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--text-2xl:2rem;--text-xl:1.375rem;--text-lg:1.125rem;--text-base:0.9375rem;--text-sm:0.8125rem;--text-xs:0.6875rem;--text-code:0.75rem;--leading-tight:1.1111;--leading-heading:1.3333;--leading-subhead:1.6;--leading-ui:1.5;--leading-prose:1.75;--weight-body:350;--weight-medium:500;--weight-heading:550}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-ui);font-weight:var(--weight-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}.sheet{max-width:560px;margin:0 auto;padding:100px 28px 92px;position:relative;z-index:1}.sheet.reading{max-width:620px}.name-row{justify-content:space-between;gap:16px}.lockup,.name-row{display:flex;align-items:center}.lockup{gap:8px;min-width:0}.logo{width:32px;height:32px;flex:none;display:block;overflow:visible}.logo rect{fill:var(--fg);shape-rendering:crispEdges}.logo .lid{opacity:0}.logo .hit{fill:none;pointer-events:all}.logo .ghost{opacity:0;pointer-events:none}.logo .ghost.fading{animation:logo-ghost-fade .42s ease-out forwards}@keyframes logo-ghost-fade{0%{opacity:.38}to{opacity:0}}h1{font-family:var(--font-body);font-weight:var(--weight-heading);line-height:1.15;letter-spacing:-.02em;margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:30px}.page-head .tabs{margin:0 0 0 auto;flex:none}.page-head .tabs button:last-child{margin-right:0}.sheet>.logo{display:block;margin-bottom:20px}.tabs{display:flex;gap:4px;margin:32px 0 26px;position:relative}.tabs:after{content:"";position:absolute;left:0;bottom:6px;height:2px;width:var(--w,0);border-radius:2px;background:var(--fg);transform:translateX(var(--x,0));transition:transform .3s cubic-bezier(.2,.8,.25,1),width .3s cubic-bezier(.2,.8,.25,1)}.tabs button{display:inline-flex;align-items:center;justify-content:center;padding:7px 4px 10px;margin-right:12px;border:0;background:none;color:var(--muted);font:inherit;cursor:pointer;transition:color .2s ease}.tab-icon{display:block}.tabs button:hover,.tabs button[aria-selected=true]{color:var(--fg)}.tabs button:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:4px}.panel{display:none}.panel.on{display:block}.panel.on .row{animation:row-wake .34s steps(4) both}.panel.on .about{animation:row-wake .34s steps(4)}.panel.on .row:nth-child(2){animation-delay:24ms}.panel.on .row:nth-child(3){animation-delay:48ms}.panel.on .row:nth-child(4){animation-delay:72ms}.panel.on .row:nth-child(5){animation-delay:96ms}.panel.on .row:nth-child(6){animation-delay:.12s}@keyframes row-wake{0%{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}html[data-tab=built] #panel-about,html[data-tab=built] #panel-writing{display:none}html[data-tab=built] #panel-built{display:block}html[data-tab=writing] #panel-about,html[data-tab=writing] #panel-built{display:none}html[data-tab=writing] #panel-writing{display:block}html[data-tab=built] .tabs button[data-panel=about],html[data-tab=built] .tabs button[data-panel=writing]{color:var(--muted)}html[data-tab=built] .tabs button[data-panel=built]{color:var(--fg)}html[data-tab=writing] .tabs button[data-panel=about],html[data-tab=writing] .tabs button[data-panel=built]{color:var(--muted)}html[data-tab=writing] .tabs button[data-panel=writing]{color:var(--fg)}.about-copy p,.lede{margin:0 0 18px;font-size:var(--text-base);line-height:1.7;color:var(--body)}.about-copy>:last-child{margin-bottom:0}.about a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--fg) 35%,transparent);text-decoration-color:color-mix(in srgb,var(--fg) 35%,transparent);text-underline-offset:3px}.about a:hover{-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.about a:focus-visible{outline:2px dotted var(--fg);outline-offset:3px}.mark-link{display:inline-flex;align-items:center;gap:5px;text-decoration:none;vertical-align:-3px}.mark-link>span:not(.mark){text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--fg) 35%,transparent);text-decoration-color:color-mix(in srgb,var(--fg) 35%,transparent);text-underline-offset:3px;transition:-webkit-text-decoration-color .2s ease;transition:text-decoration-color .2s ease;transition:text-decoration-color .2s ease,-webkit-text-decoration-color .2s ease}.mark-link:hover>span:not(.mark){-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.mark{flex:none;height:14px;width:auto;border-radius:3px}.mark-letter{display:inline-grid;place-items:center;width:14px;border-radius:3px;background:var(--fg);color:var(--bg);font-family:var(--font-body);font-size:8px;font-weight:600;line-height:1;letter-spacing:0}.mark-glyph{width:14px;color:var(--fg)}.mark-link .link-icon{flex:none;width:14px;height:14px;color:var(--muted);transition:color .2s ease}.mark-link:focus-visible .link-icon,.mark-link:hover .link-icon{color:var(--fg)}.about-contact{margin-top:32px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--fg) 9%,transparent)}.section-label{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.01em;color:var(--muted)}.section-label:after{content:"";flex:1 1;min-width:24px;height:3px;background-image:radial-gradient(circle,currentColor .55px,transparent .95px);background-size:3px 3px;background-repeat:repeat-x;opacity:.45}.rows{display:flex;flex-direction:column}.row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:start;grid-column-gap:12px;column-gap:12px;padding:10px;margin:0 -10px;border-radius:10px;position:relative}.row:after{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--fg);transform:scaleY(0);transform-origin:top;transition:transform .3s cubic-bezier(.2,.8,.25,1)}.row:focus-within:after,.row:hover:after{transform:scaleY(1)}.glyph{width:16px;height:16px;margin-top:4px;color:var(--muted);flex:none;transition:color .16s steps(2),transform .18s steps(2)}.row:focus-within .glyph,.row:hover .glyph{color:var(--fg);transform:translateX(2px)}.who{min-width:0}.title{font-size:14.5px;font-weight:500}.title a{text-decoration:none}.backlink,.facts dd a,.link-row span,.post-foot a,.title a{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size .3s cubic-bezier(.2,.8,.25,1),color .2s ease}.backlink:focus-visible,.backlink:hover,.facts dd a:focus-visible,.facts dd a:hover,.link-row:focus-visible span,.link-row:hover span,.post-foot a:focus-visible,.post-foot a:hover,.title a:focus-visible,.title a:hover{background-size:100% 1px;color:var(--fg)}.link-row{display:inline-flex;align-items:center;gap:10px}.link-row:focus-visible .link-icon,.link-row:hover .link-icon{color:var(--fg)}.backlink:focus-visible,.facts dd a:focus-visible,.link-row:focus-visible,.post-foot a:focus-visible,.title a:focus-visible{outline:2px dotted var(--fg);outline-offset:3px}.role{font-size:var(--text-sm);color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.row:focus-within .role,.row:hover .role{display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}.when{font-size:12.5px;color:var(--muted);white-space:nowrap;padding-top:2px}.links{display:flex;flex-direction:column;gap:8px}.links a{font-size:var(--text-sm);color:var(--body);text-decoration:none;width:-moz-fit-content;width:fit-content}.link-icon{flex:none;color:var(--muted);transition:color .25s ease}.backlink{display:inline-block;margin-bottom:26px;font-size:12px;color:var(--muted);text-decoration:none}.backlink:hover{color:var(--fg)}.backlink,.post-foot a{padding-bottom:1px}.post-title{font-family:var(--font-body);font-size:27px;font-weight:var(--weight-heading);line-height:1.15;letter-spacing:-.025em;margin:0 0 10px}.post-meta{margin:0 0 16px;font-size:var(--text-sm);color:var(--muted)}.post-lede{margin:0 0 20px;font-size:var(--text-base);line-height:1.7;color:var(--body)}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 30px}.tag{padding:3px 9px;border:1px solid color-mix(in srgb,var(--fg) 14%,transparent);border-radius:999px;font-size:var(--text-xs);color:var(--muted)}.facts{display:grid;grid-template-columns:max-content 1fr;grid-gap:7px 14px;gap:7px 14px;margin:0 0 24px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);border-radius:10px;font-size:var(--text-sm)}.facts dt{color:var(--muted)}.facts dd{margin:0;font-size:12.5px}.activity-note{max-width:360px;margin:40px auto 0;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--fg) 12%,transparent);text-align:center;font-size:var(--text-sm);line-height:1.7;color:var(--muted)}.activity-note p{margin:0}.activity-note p:first-child{color:var(--body)}.activity-when{display:flex;flex-wrap:wrap;justify-content:center;gap:0 6px}.post-foot{display:flex;align-items:center;justify-content:space-between;margin-top:38px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--fg) 9%,transparent);font-size:var(--text-sm);color:var(--muted)}.post-foot a{text-decoration:none}article{font-size:14.5px;line-height:var(--leading-prose);color:var(--body)}article>:first-child{margin-top:0}article h1{font-size:1.5rem}article h1,article h2{font-family:var(--font-body);font-weight:var(--weight-heading);letter-spacing:-.015em;line-height:var(--leading-heading);color:var(--fg);margin:30px 0 11px}article h2{font-size:17.5px}article h3{font-family:var(--font-body);font-size:15px;line-height:var(--leading-subhead);font-weight:var(--weight-heading);color:var(--fg);margin:22px 0 7px}article p{margin:0 0 15px}article ol,article ul{margin:0 0 15px;padding-left:18px}article li{margin-bottom:7px}article a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--fg) 35%,transparent);text-decoration-color:color-mix(in srgb,var(--fg) 35%,transparent);text-underline-offset:3px}article a:hover{-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}article strong{color:var(--fg);font-weight:var(--weight-heading)}article blockquote{margin:0 0 20px;padding:2px 0 2px 16px;border-left:2px solid color-mix(in srgb,var(--fg) 22%,transparent);color:var(--muted)}article blockquote p:last-child{margin-bottom:0}article code{font-family:var(--font-code);font-size:.875em;background:color-mix(in srgb,var(--fg) 8%,transparent);padding:2px 6px;border-radius:4px;color:var(--fg)}article pre{margin:0 0 20px;padding:14px 16px;overflow-x:auto;background:color-mix(in srgb,var(--fg) 4%,transparent);border:1px solid color-mix(in srgb,var(--fg) 8%,transparent);border-radius:10px}article pre code{background:none;padding:0;font-size:12.5px;line-height:var(--leading-ui)}article pre.ascii{font-family:var(--mono);font-size:11.5px;line-height:var(--leading-ui);color:var(--body);white-space:pre;overflow-x:auto}article pre.ascii code{font-family:inherit;font-size:inherit;line-height:inherit}article hr{border:0;border-top:1px solid color-mix(in srgb,var(--fg) 10%,transparent);margin:34px 0}article img{max-width:100%;height:auto;border-radius:8px}article table{border-collapse:collapse;width:100%;margin:0 0 18px;font-size:var(--text-sm)}article td,article th{border:1px solid color-mix(in srgb,var(--fg) 14%,transparent);padding:5px 9px;text-align:left}article th{color:var(--fg);font-weight:var(--weight-heading)}@media (prefers-reduced-motion:reduce){.panel.on .about,.panel.on .row{animation:none}.backlink,.facts dd a,.glyph,.link-icon,.link-row span,.post-foot a,.row:after,.tabs button,.tabs:after,.title a{transition:none}.backlink:focus-visible,.backlink:hover,.facts dd a:focus-visible,.facts dd a:hover,.link-row:focus-visible span,.link-row:hover span,.post-foot a:focus-visible,.post-foot a:hover,.title a:focus-visible,.title a:hover{background-size:100% 1px}}.label-spaced{margin-top:40px}@media (max-width:480px){:root{--text-2xl:1.75rem;--text-xl:1.25rem;--text-lg:1rem;--text-base:0.875rem;--text-sm:0.75rem;--text-xs:0.625rem;--text-code:0.6875rem}.sheet{padding:64px 22px 82px}.logo{width:28px;height:28px}.lockup{gap:8px}.page-head{gap:10px 14px;margin-bottom:24px}.row{grid-template-columns:22px minmax(0,1fr)}.row .when{grid-column:2;margin-top:4px;padding-top:0}.label-spaced{margin-top:40px}.tabs{margin:30px 0 22px}.row{padding:8px 9px;margin:0 -9px}.label{margin-bottom:10px}.tabs button{font-size:12px}.row .title{font-size:14px}.row .when{font-size:12px}.post-title{font-size:22px}}@media (max-width:360px){.logo{width:26px;height:26px}.lockup{gap:7px}.page-head{gap:8px 12px;margin-bottom:20px}.post-lede{font-size:14px}}