@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/c7f47671e39f7787-s.0klc_mi0-5f4_.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:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/f06bf9da926bae75-s.p.2874ccu1_u7jf.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:Instrument Sans Fallback;src:local(Arial);ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.0%;size-adjust:102.74%}.instrument_sans_16008933-module__E9Tbpa__className{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.instrument_sans_16008933-module__E9Tbpa__variable{--font-sans:"Instrument Sans", "Instrument Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.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/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.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/e532fa1b9921e1cd-s.3cb5lpr2l6xud.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/2fe89d53234c61d4-s.1u30mmyq6lnsd.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.40sczeszzbjw1.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/5e05ae5b48faa55e-s.1yd4_i3e35931.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/a7afbb44bec2bb18-s.1qc6dx89jd2qv.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/02263ebadd758ea4-s.29yke99gs9qpn.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/68757d6cddeff913-s.1i-sca43-qwng.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.0oace-s_gkfks.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%}.ibm_plex_mono_9d88f727-module__1NxLqG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_9d88f727-module__1NxLqG__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--paper:#fbfaf6;--ink:#1c1b16;--muted:#6e6c5e;--faint:#a8a695;--line:#e5e3d6;--line-strong:#d5d2c0;--wash:#f4f2e7;--red:#b3352b;--green:#3a7d44;--sans:var(--font-sans), -apple-system, sans-serif;--mono:var(--font-mono), ui-monospace, Menlo, monospace;--spine-x:clamp(28px, 6vw, 84px)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;padding-bottom:44px;font-size:17px;line-height:1.6}.mono{font-family:var(--mono)}::selection{background:var(--ink);color:var(--paper)}a{color:inherit}:focus-visible{outline:2px solid var(--red);outline-offset:3px}.skip-link{z-index:100;font-family:var(--mono);background:var(--ink);color:var(--paper);padding:10px 16px;font-size:12px;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.col{max-width:780px;padding:0 24px 0 calc(var(--spine-x) + 44px);margin:0 auto}@media (min-width:1180px){.col{padding-left:24px}}.spine-track{top:36px;bottom:0;left:var(--spine-x);background:var(--line);width:2px;position:absolute}.spine-fill{background:var(--ink);transform-origin:top;width:100%;height:100%;position:absolute;top:0;left:0}.spine-head{background:var(--red);border:2px solid var(--paper);width:11px;height:11px;box-shadow:0 0 0 1px var(--red);border-radius:50%;margin-top:-5.5px;margin-left:-5.5px;position:absolute;left:50%}.spine-dot{background:var(--paper);border:2px solid var(--faint);border-radius:50%;width:11px;height:11px;margin-left:-5.5px;transition:border-color .4s,background .4s;position:absolute;left:50%}.spine-dot.active{background:var(--ink);border-color:var(--ink)}.site-header{justify-content:space-between;align-items:baseline;padding:26px 0;display:flex}.sig{font-family:var(--mono);color:var(--muted);font-size:13px}.sig b{color:var(--ink);font-weight:500}.sig .branch{color:var(--red)}.site-header nav{font-family:var(--mono);gap:24px;font-size:12px;display:flex}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover{color:var(--red)}section[data-commit]{padding-top:100px}.chead{font-family:var(--mono);color:var(--faint);flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:30px;font-size:12px;display:flex}.chead .hash{color:var(--red)}.chead .msg{color:var(--ink);font-weight:500}.hero{min-height:auto}.hero h1{letter-spacing:-.035em;max-width:15ch;font-size:clamp(2.7rem,7.5vw,4.8rem);font-weight:600;line-height:1.02}.hero h1 em{color:var(--muted);font-style:italic;font-weight:500}.hero .sub{max-width:46ch;color:var(--muted);margin-top:26px;font-size:1.05rem}.hero .meta{font-family:var(--mono);color:var(--faint);flex-wrap:wrap;gap:36px;margin-top:40px;font-size:12px;display:flex}.hero .meta div b{color:var(--ink);margin-bottom:2px;font-size:13px;font-weight:500;display:block}.scroll-hint{font-family:var(--mono);color:var(--faint);margin-top:64px;font-size:11px}.scroll-hint span{animation:2s ease-in-out infinite nudge;display:inline-block}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.project{color:inherit;border-top:1px solid var(--line);padding:24px 0;text-decoration:none;display:block}.project:last-of-type{border-bottom:1px solid var(--line)}.pline{font-family:var(--mono);color:var(--faint);flex-wrap:wrap;gap:10px;font-size:11.5px;display:flex}.pline .add{color:var(--green)}.pline .del{color:var(--red)}.project h3{letter-spacing:-.01em;margin-top:6px;font-size:1.3rem;font-weight:550;display:inline-block}.project h3 .u{background-image:linear-gradient(var(--ink), var(--ink));background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:2px;transition:background-size .35s}.project:hover h3 .u{background-size:100% 1px}.project:hover .pline .hash{color:var(--red)}.project .desc{color:var(--muted);max-width:54ch;margin-top:6px;font-size:.95rem}.project .arrow{font-family:var(--mono);color:var(--faint);float:right;margin-top:8px;font-size:12px}.project:hover .arrow{color:var(--ink)}.stats{border:1px solid var(--line-strong);grid-template-columns:repeat(3,1fr);margin-top:56px;display:grid}.stat{border-right:1px solid var(--line-strong);padding:20px 24px}.stat:last-child{border-right:none}.stat .n{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600}.stat .l{font-family:var(--mono);letter-spacing:.1em;color:var(--faint);text-transform:uppercase;margin-top:2px;font-size:10.5px}.stat .l em{color:var(--green);font-style:normal}.xp{border-top:1px solid var(--line);grid-template-columns:150px 1fr;gap:18px;padding:22px 0;display:grid}.xp:last-of-type{border-bottom:1px solid var(--line)}.xp .when{font-family:var(--mono);color:var(--faint);padding-top:3px;font-size:12px}.xp h3{font-size:1.05rem;font-weight:550}.xp h3 span{color:var(--muted);font-weight:400}.xp p{color:var(--muted);max-width:56ch;margin-top:4px;font-size:.93rem}.xp .tag{font-family:var(--mono);color:var(--green);font-size:10px}.about-grid{grid-template-columns:1.4fr 1fr;gap:56px;display:grid}.about-grid p{color:var(--muted);margin-bottom:1em}.about-grid p b{color:var(--ink);font-weight:550}.list dt{font-family:var(--mono);letter-spacing:.12em;color:var(--faint);text-transform:uppercase;margin:18px 0 6px;font-size:10.5px}.list dt:first-of-type{margin-top:0}.list dd{font-size:.95rem}.merge{padding-bottom:40px}.merge h2{letter-spacing:-.03em;font-size:clamp(1.9rem,4.5vw,2.9rem);font-weight:600;line-height:1.1}.merge h2 em{color:var(--muted);font-style:italic;font-weight:500}.merge .links{flex-wrap:wrap;gap:14px;margin-top:30px;display:flex}.merge .links a{font-family:var(--mono);color:var(--ink);border:1px solid var(--line-strong);padding:10px 18px;font-size:12.5px;text-decoration:none;transition:border-color .25s,color .25s}.merge .links a:hover{border-color:var(--red);color:var(--red)}.merged-badge{font-family:var(--mono);color:var(--green);border:1px solid var(--green);border-radius:999px;align-items:center;gap:10px;margin-top:56px;padding:8px 16px;font-size:12px;display:inline-flex}.colophon{font-family:var(--mono);color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:40px;font-size:10.5px;display:flex}.colophon a{color:var(--faint)}.colophon a:hover{color:var(--red)}.statusbar{background:var(--wash);border-top:1px solid var(--line);height:44px;font-family:var(--mono);color:var(--muted);z-index:10;justify-content:space-between;align-items:center;padding:0 18px;font-size:11px;display:flex;position:fixed;bottom:0;left:0;right:0}.statusbar .ok{color:var(--green)}.statusbar .sec{color:var(--ink);font-weight:500}.nf{flex-direction:column;justify-content:center;min-height:70vh;display:flex}.nf h1{font-family:var(--mono);font-size:clamp(1.2rem,3vw,1.8rem);font-weight:500}.nf h1 .hash{color:var(--red)}.nf p{color:var(--muted);margin-top:14px}.nf a{font-family:var(--mono);color:var(--ink);font-size:13px}@media (max-width:720px){:root{--spine-x:16px}body{font-size:16px}.col{padding-left:52px}section[data-commit]{padding-top:84px}.hero .meta{gap:20px}.site-header nav{display:none}.xp{grid-template-columns:1fr;gap:4px}.about-grid{grid-template-columns:1fr;gap:30px}.stats{grid-template-columns:1fr}.stat{border-right:none;border-bottom:1px solid var(--line-strong)}.stat:last-child{border-bottom:none}.statusbar .hide-m{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-hint span{animation:none}*{transition-duration:.01ms!important}[data-reveal],.merged-badge{opacity:1!important;transform:none!important}.spine-fill{transform:none!important}.spine-head{display:none!important}}
