@font-face{font-family:satoshi;src:url(../media/Satoshi_400-s.p.2oultpqxb_gh9.woff2)format("woff2");font-display:swap;font-weight:400}@font-face{font-family:satoshi;src:url(../media/Satoshi_500-s.p.2gbh8zsgu5xby.woff2)format("woff2");font-display:swap;font-weight:500}@font-face{font-family:satoshi;src:url(../media/Satoshi_700-s.p.19z5sx2nusz2v.woff2)format("woff2");font-display:swap;font-weight:700}@font-face{font-family:satoshi Fallback;src:local(Arial);ascent-override:102.23%;descent-override:24.29%;line-gap-override:10.12%;size-adjust:98.8%}._8zat1W_className{font-family:satoshi,satoshi Fallback}._8zat1W_variable{--font-satoshi:"satoshi", "satoshi Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/f7095de3000afb68-s.3zvkfbs08rnj_.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:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/e63b65bb308a9351-s.p.3strvg7o-g5v2.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 Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.hi389G_className{font-family:Instrument Serif,Instrument Serif Fallback;font-style:italic;font-weight:400}.hi389G_variable{--font-display:"Instrument Serif", "Instrument Serif Fallback"}
:root{--bg:#fdfdfc;--ink:#161616;--muted:#7a7873;--line:#d9d6d0;--code-bg:#f3f1ed}@media (prefers-color-scheme:dark){:root{--bg:#131313;--ink:#eceae6;--muted:#8e8b85;--line:#3a3835;--code-bg:#1f1e1c}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-satoshi), system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color .15s}a:hover{text-decoration-color:currentColor}.shell{flex-direction:column;min-height:100dvh;padding:40px 48px;display:flex}.top{justify-content:space-between;align-items:center;gap:24px;display:flex}.wordmark{font-family:var(--font-display), Georgia, serif;letter-spacing:-.01em;font-size:34px;font-style:italic;line-height:1;text-decoration:none}.top nav,.bottom{flex-wrap:wrap;gap:6px 22px;font-size:14px;display:flex}.top nav a,.bottom a{color:var(--muted);text-decoration:none}.top nav a:hover,.bottom a:hover{color:var(--ink)}.stars{font-variant-numeric:tabular-nums}.body{flex:1;justify-content:space-between;align-items:center;gap:48px;display:flex}main{align-self:flex-start;width:100%;max-width:600px;padding:120px 0 140px}.side{flex:0 380px;margin-right:4vw}.bottom{color:var(--muted);font-size:13px}.prose p{letter-spacing:-.012em;font-size:24px;line-height:1.42}.prose p+p{margin-top:1.1em}.get{margin-top:48px}.get-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.github{border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;height:52px;padding:0 22px;font-size:17px;font-weight:500;text-decoration:none;transition:border-color .15s;display:inline-flex}.github:hover{border-color:var(--ink)}.github .count{border-left:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;padding-left:10px}.github[aria-busy=true]{opacity:.6;cursor:progress}.github.is-starred{color:var(--muted)}.download{background:var(--ink);height:52px;color:var(--bg);border-radius:999px;align-items:center;gap:10px;padding:0 26px 0 22px;font-size:17px;font-weight:500;text-decoration:none;transition:transform .15s,opacity .15s;display:inline-flex;box-shadow:0 1px 2px #0000001f,inset 0 1px #ffffff1f}.download:hover{opacity:.9}.download:active{transform:scale(.98)}.download svg{margin-top:-3px}.prompt{border:1px solid var(--line);background:var(--bg);width:min(400px,100% - 32px);color:var(--ink);border-radius:16px;margin:auto;padding:28px;font-size:16px;line-height:1.5;box-shadow:0 24px 64px #0000002e}.prompt::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000047}.prompt[open]{animation:.18s ease-out pop}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}}.prompt-title{font-family:var(--font-display), Georgia, serif;margin-bottom:8px;font-size:30px;font-style:italic;line-height:1.1}.prompt-error{color:#b4472f;margin-top:8px;font-size:14px}.prompt-actions{flex-direction:column;gap:8px;margin-top:24px;display:flex}.prompt button{height:46px;font:inherit;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;font-weight:500;display:inline-flex}.btn-star{background:var(--ink);color:var(--bg);border:0}.btn-star:disabled{opacity:.6;cursor:progress}.btn-skip{border:1px solid var(--line);color:var(--muted);background:0 0}.btn-skip:hover{color:var(--ink);border-color:var(--muted)}.note{color:var(--muted);margin-top:12px;font-size:14px}.note a{color:var(--muted)}.title{letter-spacing:-.015em;font-size:24px;font-weight:700}.title+.note{margin-top:4px}.back{color:var(--muted);margin-bottom:24px;font-size:14px;text-decoration:none;display:inline-block}.posts{margin-top:48px;list-style:none}.posts li+li{margin-top:24px}.posts a{font-size:19px;font-weight:500}.posts .note{margin-top:2px;display:block}.release{margin-top:56px}.release h2{font-size:19px;font-weight:700}.release h2 a{text-decoration:none}.release .note{margin-top:2px}.release .article{margin-top:16px}.title~.article{margin-top:40px}.article{overflow-wrap:anywhere;font-size:16px;line-height:1.65}.article>*+*{margin-top:1em}.article>:first-child{margin-top:0}.article h2{margin-top:2em;font-size:19px;font-weight:700}.article h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:1.6em;font-size:12px;font-weight:700}.article ul,.article ol{padding-left:1.2em}.article li+li{margin-top:.45em}.article code{background:var(--code-bg);border-radius:4px;padding:1px 5px;font-size:.88em}.article pre{background:var(--code-bg);border-radius:6px;padding:14px 16px;overflow-x:auto}.article pre code{background:0 0;padding:0}.article blockquote{border-left:2px solid var(--line);color:var(--muted);padding-left:16px}.article table{border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}.article th,.article td{border-bottom:1px solid var(--line);text-align:left;padding:6px 14px 6px 0}.article img{max-width:100%;height:auto}.hum{flex-direction:column;align-items:center;gap:4px;display:flex}.hum-stage{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;max-width:250px;position:relative}.hum svg{width:100%;height:auto;display:block;overflow:visible}.hum line,.hum-waves path{fill:none;stroke:var(--ink);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.hum-skull{fill:var(--bg);stroke:var(--ink);stroke-width:5px}.hum-shadow{fill:var(--ink);opacity:.1}.hum-fig{transform-origin:100px 218px}.hum-hips,.hum-torso{transform-origin:100px 148px}.hum-head{transform-origin:100px 92px}.hum-arm{transform-origin:100px 106px}.hum-fore{transform-origin:100px 136px}.hum-leg{transform-origin:100px 148px}.hum-shin{transform-origin:100px 182px}.hum-fig{animation:.45s ease-in-out infinite alternate hum-bob}.hum-hips{animation:6s ease-in-out infinite hum-hips}.hum-torso{animation:6s ease-in-out infinite hum-torso}.hum-head{animation:6s ease-in-out infinite hum-head}.hum-arm-l{animation:6s ease-in-out infinite hum-arm-l}.hum-fore-l{animation:6s ease-in-out infinite hum-fore-l}.hum-arm-r{animation:6s ease-in-out infinite hum-arm-r}.hum-fore-r{animation:6s ease-in-out infinite hum-fore-r}.hum-leg-l{animation:6s ease-in-out infinite hum-leg-l}.hum-shin-l{animation:6s ease-in-out infinite hum-shin-l}.hum-leg-r{animation:6s ease-in-out infinite hum-leg-r}.hum-shin-r{animation:6s ease-in-out infinite hum-shin-r}.hum-waves{opacity:0}.hum[data-state=listening] :is(.hum-fig,.hum-hips,.hum-torso,.hum-head,.hum-arm,.hum-fore,.hum-leg,.hum-shin){animation:none}.hum[data-state=listening] .hum-torso{transform:rotate(-2deg)}.hum[data-state=listening] .hum-head{transform:rotate(7deg)}.hum[data-state=listening] .hum-arm-r{transform:rotate(-110deg)}.hum[data-state=listening] .hum-fore-r{transform:rotate(-86deg)}.hum[data-state=listening] .hum-arm-l{transform:rotate(12deg)}.hum[data-state=listening] .hum-fore-l{transform:rotate(10deg)}.hum[data-state=listening] .hum-leg-l{transform:rotate(6deg)}.hum[data-state=listening] .hum-leg-r{transform:rotate(-6deg)}.hum[data-state=listening] .hum-waves{opacity:1}.hum[data-state=listening] .hum-waves path{animation:.9s ease-out infinite hum-wave}.hum[data-state=listening] .hum-waves path+path{animation-delay:.25s}.hum[data-state=done] :is(.hum-hips,.hum-torso,.hum-head,.hum-arm,.hum-fore,.hum-leg,.hum-shin){animation:none}.hum[data-state=done] .hum-fig{animation:.65s cubic-bezier(.3,1.4,.5,1) hum-jump}.hum[data-state=done] .hum-arm-l{transform:rotate(128deg)}.hum[data-state=done] .hum-fore-l{transform:rotate(18deg)}.hum[data-state=done] .hum-arm-r{transform:rotate(-128deg)}.hum[data-state=done] .hum-fore-r{transform:rotate(-18deg)}.hum[data-state=done] .hum-leg-l{transform:rotate(12deg)}.hum[data-state=done] .hum-leg-r{transform:rotate(-12deg)}.hum-bubble{background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;border-radius:14px 14px 4px;padding:6px 12px;font-size:14px;font-weight:500;transition:opacity .2s,transform .2s;position:absolute;top:0;right:0;transform:translateY(6px)scale(.9)}.hum figcaption{color:var(--muted);text-align:center;font-size:13px}.hum[data-state=done] .hum-bubble{opacity:1;transform:none}@keyframes hum-hips{0%{transform:translate(12px,3px)}7.5%{transform:translate(-12px,3px)}15%{transform:translate(12px,3px)}22.5%{transform:translate(-12px,3px)}30%{transform:translate(12px,3px)}37.5%{transform:translate(-12px,3px)}45%{transform:translate(12px,3px)}52.5%{transform:translate(-12px,3px)}60%{transform:translate(12px,3px)}68%{transform:translateY(6px)}86%{transform:translateY(6px)}to{transform:translate(12px,3px)}}@keyframes hum-torso{0%{transform:rotate(-6deg)}7.5%{transform:rotate(6deg)}15%{transform:rotate(-6deg)}22.5%{transform:rotate(6deg)}30%{transform:rotate(-6deg)}37.5%{transform:rotate(6deg)}45%{transform:rotate(-6deg)}52.5%{transform:rotate(6deg)}60%{transform:rotate(-6deg)}68%{transform:rotate(8deg)}86%{transform:rotate(8deg)}to{transform:rotate(-6deg)}}@keyframes hum-head{0%{transform:rotate(-6deg)}7.5%{transform:rotate(6deg)}15%{transform:rotate(-6deg)}22.5%{transform:rotate(6deg)}30%{transform:rotate(-6deg)}37.5%{transform:rotate(6deg)}45%{transform:rotate(-6deg)}52.5%{transform:rotate(6deg)}60%{transform:rotate(-6deg)}68%{transform:rotate(26deg)}86%{transform:rotate(26deg)}to{transform:rotate(-6deg)}}@keyframes hum-arm-l{0%{transform:rotate(58deg)}7.5%{transform:rotate(-34deg)}15%{transform:rotate(58deg)}22.5%{transform:rotate(-34deg)}30%{transform:rotate(58deg)}37.5%{transform:rotate(-34deg)}45%{transform:rotate(58deg)}52.5%{transform:rotate(-34deg)}60%{transform:rotate(58deg)}68%{transform:rotate(130deg)}86%{transform:rotate(130deg)}to{transform:rotate(58deg)}}@keyframes hum-fore-l{0%{transform:rotate(0)}7.5%{transform:rotate(0)}15%{transform:rotate(0)}22.5%{transform:rotate(0)}30%{transform:rotate(0)}37.5%{transform:rotate(0)}45%{transform:rotate(0)}52.5%{transform:rotate(0)}60%{transform:rotate(0)}68%{transform:rotate(0)}86%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes hum-arm-r{0%{transform:rotate(34deg)}7.5%{transform:rotate(-58deg)}15%{transform:rotate(34deg)}22.5%{transform:rotate(-58deg)}30%{transform:rotate(34deg)}37.5%{transform:rotate(-58deg)}45%{transform:rotate(34deg)}52.5%{transform:rotate(-58deg)}60%{transform:rotate(34deg)}68%{transform:rotate(-115deg)}86%{transform:rotate(-115deg)}to{transform:rotate(34deg)}}@keyframes hum-fore-r{0%{transform:rotate(0)}7.5%{transform:rotate(0)}15%{transform:rotate(0)}22.5%{transform:rotate(0)}30%{transform:rotate(0)}37.5%{transform:rotate(0)}45%{transform:rotate(0)}52.5%{transform:rotate(0)}60%{transform:rotate(0)}68%{transform:rotate(-107deg)}86%{transform:rotate(-107deg)}to{transform:rotate(0)}}@keyframes hum-leg-l{0%{transform:rotate(16deg)}7.5%{transform:rotate(-4deg)}15%{transform:rotate(16deg)}22.5%{transform:rotate(-4deg)}30%{transform:rotate(16deg)}37.5%{transform:rotate(-4deg)}45%{transform:rotate(16deg)}52.5%{transform:rotate(-4deg)}60%{transform:rotate(16deg)}68%{transform:rotate(16deg)}86%{transform:rotate(16deg)}to{transform:rotate(16deg)}}@keyframes hum-shin-l{0%{transform:rotate(0)}7.5%{transform:rotate(0)}15%{transform:rotate(0)}22.5%{transform:rotate(0)}30%{transform:rotate(0)}37.5%{transform:rotate(0)}45%{transform:rotate(0)}52.5%{transform:rotate(0)}60%{transform:rotate(0)}68%{transform:rotate(-20deg)}86%{transform:rotate(-20deg)}to{transform:rotate(0)}}@keyframes hum-leg-r{0%{transform:rotate(4deg)}7.5%{transform:rotate(-16deg)}15%{transform:rotate(4deg)}22.5%{transform:rotate(-16deg)}30%{transform:rotate(4deg)}37.5%{transform:rotate(-16deg)}45%{transform:rotate(4deg)}52.5%{transform:rotate(-16deg)}60%{transform:rotate(4deg)}68%{transform:rotate(-16deg)}86%{transform:rotate(-16deg)}to{transform:rotate(4deg)}}@keyframes hum-shin-r{0%{transform:rotate(0)}7.5%{transform:rotate(0)}15%{transform:rotate(0)}22.5%{transform:rotate(0)}30%{transform:rotate(0)}37.5%{transform:rotate(0)}45%{transform:rotate(0)}52.5%{transform:rotate(0)}60%{transform:rotate(0)}68%{transform:rotate(20deg)}86%{transform:rotate(20deg)}to{transform:rotate(0)}}@keyframes hum-bob{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes hum-wave{0%{opacity:0;transform:translate(-4px)}30%{opacity:1}to{opacity:0;transform:translate(6px)}}@keyframes hum-jump{0%{transform:translateY(0)scale(1.04,.95)}45%{transform:translateY(-26px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hum *{animation:none!important}}@media (max-width:900px){.body{flex-direction:column;align-items:flex-start;gap:0}main{padding-bottom:32px}.side{flex:none;width:100%;margin:0 0 64px}.hum-stage{max-width:180px}}@media (max-width:640px){.shell{padding:24px 16px}.top nav{justify-content:flex-end;gap:4px 16px}main{padding:72px 0 96px}.prose p{font-size:20px}.wordmark{font-size:30px}.get-row{gap:8px}.download,.github{height:46px;padding:0 16px;font-size:15px}}
