.no-js *,.no-js *::before,.no-js *::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.no-js .page--nojs{isolation:isolate}.no-js .page__body,.no-js .post,.no-js .content__body{min-width:0}.no-js .table-scroll{width:100%;max-width:100%;min-width:0}.no-js .terminal-prompt--static,.no-js .terminal-prompt--static .prompt__line{opacity:1;visibility:visible}.no-js .hero__actions .button-link .prompt__cursor{animation:nojs-terminal-cursor-blink 1.05s steps(1,end)infinite!important}.no-js .terminal-prompt--nojs-home .prompt__line{display:inline-flex;align-items:baseline;flex-wrap:nowrap}.no-js .prompt__input--nojs{position:relative;display:inline-block;width:max-content;max-width:max-content;margin-left:.55em;line-height:inherit;vertical-align:baseline;white-space:nowrap}.no-js .prompt__input--nojs .prompt__command--context{display:inline-block;margin-left:0;clip-path:inset(0 100% 0 0)}.no-js .prompt__input--nojs .prompt__cursor--nojs{position:absolute;inset-inline-start:0;margin-left:.16em}.no-js .prompt__input--nojs-tiny .prompt__command--context{width:2ch;animation:nojs-terminal-type 220ms steps(2,end)180ms forwards!important}.no-js .prompt__input--nojs-tiny .prompt__cursor--nojs{animation:nojs-terminal-cursor-move 220ms steps(2,end)180ms forwards,nojs-terminal-cursor-blink 1.05s steps(1,end)400ms infinite!important}.no-js .prompt__input--nojs-short .prompt__command--context{width:6ch;animation:nojs-terminal-type 420ms steps(6,end)180ms forwards!important}.no-js .prompt__input--nojs-short .prompt__cursor--nojs{animation:nojs-terminal-cursor-move 420ms steps(6,end)180ms forwards,nojs-terminal-cursor-blink 1.05s steps(1,end)600ms infinite!important}.no-js .prompt__input--nojs-medium .prompt__command--context{animation:nojs-terminal-type 720ms steps(12,end)180ms forwards!important}.no-js .prompt__input--nojs-medium .prompt__cursor--nojs{animation:nojs-terminal-cursor-move 720ms steps(12,end)180ms forwards,nojs-terminal-cursor-blink 1.05s steps(1,end)900ms infinite!important}.no-js .prompt__input--nojs-long .prompt__command--context{animation:nojs-terminal-type 1.05s steps(20,end)180ms forwards!important}.no-js .prompt__input--nojs-long .prompt__cursor--nojs{animation:nojs-terminal-cursor-move 1.05s steps(20,end)180ms forwards,nojs-terminal-cursor-blink 1.05s steps(1,end)1.23s infinite!important}.no-js .prompt__input--nojs-home{width:6ch;max-width:6ch;overflow:hidden;animation:nojs-home-command-clear 1ms linear 1.18s forwards!important}.no-js .terminal-prompt--nojs-article{display:inline-grid;width:min(100%,max-content);max-width:100%;vertical-align:top}.no-js .terminal-prompt--nojs-article .prompt__line{display:flex;grid-area:1/1;align-items:baseline;flex-wrap:wrap;min-width:0;max-width:100%}.no-js .terminal-prompt--nojs-article .prompt__identity{flex:none}.no-js .terminal-prompt--nojs-article .prompt__line--nojs-writing-start{visibility:visible;opacity:1;animation:nojs-writing-stage-hide 1ms linear 1.42s forwards!important}.no-js .terminal-prompt--nojs-article .prompt__line--nojs-writing-final{visibility:hidden;opacity:0;pointer-events:none;animation:nojs-writing-stage-reveal 1ms linear 1.48s forwards!important}.no-js .prompt__input--nojs-writing-cd .prompt__command--context{width:12ch;animation:nojs-terminal-type 760ms steps(12,end)180ms forwards!important}.no-js .prompt__input--nojs-writing-cd .prompt__cursor--nojs{animation:nojs-terminal-cursor-move 760ms steps(12,end)180ms forwards,nojs-terminal-cursor-blink 1.05s steps(1,end)940ms infinite!important}.no-js .prompt__input--nojs-writing-final .prompt__command--context{animation-delay:1.66s!important}.no-js .prompt__input--nojs-writing-final .prompt__cursor--nojs{animation-delay:1.66s,2.71s!important}.no-js .terminal-prompt--nojs-whoami .prompt__input{animation:nojs-whoami-command-hide 1ms linear 1.3s forwards!important}.no-js .terminal-prompt--nojs-whoami .prompt__input .prompt__cursor--nojs{animation:nojs-terminal-cursor-move 420ms steps(6,end)180ms forwards,nojs-whoami-command-cursor 1ms linear 1.3s forwards!important}.no-js .terminal-prompt--nojs-whoami .prompt__output--nojs{visibility:hidden;opacity:0;animation:nojs-whoami-output-reveal 1ms linear 1.3s forwards!important}.no-js .terminal-prompt--nojs-whoami .prompt__output--nojs .prompt__cursor--output{animation:nojs-terminal-cursor-blink 1.05s steps(1,end)1.3s infinite!important}.no-js .prompt__node-sync--nojs{position:relative;top:.3em;display:inline-block;width:29ch;height:1.35em;margin-left:.55em;line-height:1.35;vertical-align:baseline;white-space:nowrap;animation:nojs-node-sync-container-reset 1ms linear 5.25s forwards!important}.no-js .prompt__node-sync-step{position:absolute;inset:0 auto auto 0;display:inline-flex;align-items:baseline;visibility:hidden;opacity:0}.no-js .prompt__node-sync-step .prompt__command--context{display:inline-block;margin-left:0;overflow:hidden;white-space:nowrap}.no-js .prompt__node-sync-step--bitcoin{animation:nojs-node-sync-bitcoin-step 5.25s linear forwards!important}.no-js .prompt__node-sync-step--bitcoin .prompt__command--context{width:0;animation:nojs-node-sync-bitcoin-type 1.15s steps(29,end).45s forwards!important}.no-js .prompt__node-sync-step--bitcoin .prompt__cursor,.no-js .prompt__node-sync-step--monero .prompt__cursor{animation:nojs-terminal-cursor-blink 1.05s steps(1,end)infinite!important}.no-js .prompt__node-sync-step--monero{animation:nojs-node-sync-monero-step 5.25s linear forwards!important}.no-js .prompt__node-sync-step--monero .prompt__command--context{width:0;animation:nojs-node-sync-monero-type 720ms steps(17,end)3.15s forwards!important}.no-js .prompt__node-sync-cursor{position:absolute;top:0;left:0;margin-left:0;line-height:inherit;transform:none;visibility:hidden;opacity:0;animation:nojs-node-sync-final-cursor 1ms linear 5.25s forwards,nojs-terminal-cursor-blink 1.05s steps(1,end)5.25s infinite!important}.no-js .hero__status-command{animation:home-status-command-type 720ms steps(8,end)320ms forwards!important}.no-js .hero__status-cursor{animation:home-status-cursor 1.42s steps(1,end)forwards!important}.no-js .hero__status-result{animation:home-status-result-reveal 320ms ease-out 1.28s forwards!important}.no-js .hero--status-sequence .content__body>:not(.hero__terminal){animation:home-status-content-reveal 420ms ease-out 1.58s forwards!important}.no-js .hero--status-sequence .content__body>:nth-child(3){animation-delay:1.68s!important}.no-js .hero--status-sequence .content__body>:nth-child(4){animation-delay:1.78s!important}.no-js .hero--status-sequence .content__body>:nth-child(5){animation-delay:1.88s!important}.no-js .home-section-reveal{animation:home-section-reveal 460ms ease-out forwards!important}.no-js .home-section-reveal--projects{animation-delay:2.02s!important}.no-js .home-section-reveal--writing{animation-delay:2.18s!important}@keyframes nojs-terminal-type{to{clip-path:inset(0)}}@keyframes nojs-terminal-cursor-move{to{inset-inline-start:100%}}@keyframes nojs-terminal-cursor-blink{0%,45%{opacity:1}46%,100%{opacity:0}}@keyframes nojs-home-command-clear{to{width:0;max-width:0}}@keyframes nojs-writing-stage-hide{to{visibility:hidden;opacity:0;pointer-events:none;clip-path:inset(0 100% 0 0)}}@keyframes nojs-writing-stage-reveal{to{visibility:visible;opacity:1;pointer-events:auto}}@keyframes nojs-whoami-command-hide{to{visibility:hidden;opacity:0}}@keyframes nojs-whoami-command-cursor{to{visibility:hidden;opacity:0}}@keyframes nojs-whoami-output-reveal{to{visibility:visible;opacity:1}}@keyframes nojs-node-sync-bitcoin-step{0%,52%{visibility:visible;opacity:1}56%,100%{visibility:hidden;opacity:0}}@keyframes nojs-node-sync-bitcoin-type{to{width:29ch}}@keyframes nojs-node-sync-monero-step{0%,59%{visibility:hidden;opacity:0}60%,95%{visibility:visible;opacity:1}99%,100%{visibility:hidden;opacity:0}}@keyframes nojs-node-sync-monero-type{to{width:17ch}}@keyframes nojs-node-sync-final-cursor{to{visibility:visible;opacity:1}}@keyframes nojs-node-sync-container-reset{to{width:0}}.no-js .footer__links--nojs{flex-wrap:wrap}.no-js .donate-page__currency-marks{top:1.25rem;right:1.35rem;gap:.65rem;opacity:.11;transform:none}.no-js .donate-page__currency-marks img{width:clamp(2.65rem,5vw,3.35rem);filter:saturate(.9)}.no-js .donation-card--bitcoin::after,.no-js .donation-card--monero::after{right:-.9rem;bottom:-1.35rem;width:7rem;background:var(--donation-mark)50%/contain no-repeat;opacity:.055;-webkit-mask:none;mask:none;content:""}.no-js .donation-card--bitcoin{--donation-mark:url("/icons/donations/bitcoin.png")}.no-js .donation-card--monero{--donation-mark:url("/icons/donations/monero.png")}.no-js .visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.nojs-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:none;width:auto!important;max-width:none!important;height:auto!important;min-height:0;max-height:none!important;margin:0!important;padding:clamp(3.75rem,8vh,5.5rem)clamp(.85rem,4vw,2rem)clamp(1rem,4vh,2rem);place-items:center}.nojs-lightbox:target{display:grid}.no-js .page__body:has(.nojs-lightbox:target){z-index:121;-webkit-backdrop-filter:none;backdrop-filter:none}.no-js .page--nojs:has(.nojs-lightbox:target)>.page__aside,.no-js body:has(.nojs-lightbox:target) .back-to-top{visibility:hidden}.nojs-lightbox__backdrop{position:absolute;inset:0;background:var(--theme-deep,#020509);cursor:zoom-out}.nojs-lightbox__frame{position:relative;z-index:1;width:min(94vw,88rem);max-width:94vw!important;max-height:calc(100vh - 6rem);margin:0}.nojs-lightbox__viewport{display:grid;overflow:auto;width:100%;max-height:calc(100vh - 8rem);overscroll-behavior:contain;background:var(--theme-deep,#06090d);border:1px solid var(--panel-border-strong);border-radius:.4rem;box-shadow:0 1.5rem 5rem rgba(0,0,0,calc(.62 * var(--theme-shadow-scale,1)));place-items:center;scrollbar-color:var(--base03)rgba(0,0,0,.18);scrollbar-width:thin}.nojs-lightbox__viewport img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 8rem);object-fit:contain}.nojs-lightbox__frame figcaption{max-width:72ch;margin:.65rem auto 0;color:var(--base04);text-align:center}.nojs-lightbox__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;margin-top:.75rem}.nojs-lightbox__actions a{padding:.45rem .65rem;color:var(--base05);background:rgba(var(--theme-rgb-panel,12,18,25),.98);border:1px solid var(--panel-border-strong);border-radius:.3rem;font:600 .72rem/1.25 var(--font-monospace);text-decoration:none}.nojs-lightbox__actions a:hover,.nojs-lightbox__actions a:focus-visible{color:var(--base00);background:var(--base0C);border-color:var(--base0C)}.nojs-lightbox__close{position:absolute;top:auto;right:0;bottom:calc(100% + .65rem);z-index:122;display:grid;width:2.75rem;height:2.75rem;color:var(--base05);background:rgba(var(--theme-rgb-panel,12,18,25),.98);border:1px solid var(--panel-border-strong);border-radius:.35rem;place-items:center;font:1.65rem/1 var(--font-ui);text-decoration:none}.nojs-lightbox__close:hover,.nojs-lightbox__close:focus-visible{color:var(--base0C);border-color:var(--base0C);outline:2px solid color-mix(in srgb,var(--base0C) 55%,transparent);outline-offset:.2rem}.no-js .back-to-top--nojs{position:static;display:grid;flex:none;margin-left:auto;text-decoration:none}.no-js .reading-progress--nojs{display:none}@supports(animation-timeline:scroll()){.no-js .reading-progress--nojs{display:block;opacity:0;animation:nojs-reading-progress-visibility 1ms linear both!important;animation-timeline:scroll(root)!important;animation-range:0% 100%!important}.no-js .reading-progress--nojs .reading-progress__fill{animation:nojs-reading-progress-fill 1ms linear both!important;animation-timeline:scroll(root)!important;animation-range:0% 100%!important}.no-js .back-to-top--nojs-only,.no-js .back-to-top--scriptfree-404{position:fixed;right:1.25rem;bottom:1.25rem;z-index:20;margin-left:0;opacity:0;pointer-events:none;animation:nojs-back-to-top-reveal 1ms linear both!important;animation-timeline:scroll(root)!important;animation-range:0 50rem!important}}@keyframes nojs-reading-progress-visibility{0%,2%{opacity:0}4%,100%{opacity:1}}@keyframes nojs-reading-progress-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes nojs-back-to-top-reveal{0%,70%{opacity:0;pointer-events:none;transform:translateY(.4rem)}100%{opacity:1;pointer-events:auto;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.no-js .back-to-top--nojs-only,.no-js .back-to-top--scriptfree-404{transform:none!important}}@supports not (animation-timeline:scroll()){.no-js .back-to-top--nojs-only,.no-js .back-to-top--scriptfree-404{opacity:1;pointer-events:auto}}.no-js .back-to-top--nojs-only,.back-to-top--scriptfree-404{overflow:hidden;line-height:1}.no-js .back-to-top--nojs-only::before,.no-js .back-to-top--nojs-only::after,.back-to-top--scriptfree-404::before,.back-to-top--scriptfree-404::after{content:none}.no-js .social-icon--github{--icon:url("/icons/raster/github.png")}.no-js .social-icon--bluesky{--icon:url("/icons/raster/bluesky.png")}.no-js .social-icon--x{--icon:url("/icons/raster/x.png")}.no-js .social-icon--matrix{--icon:url("/icons/raster/matrix.png")}.no-js .social-icon--mastodon{--icon:url("/icons/raster/mastodon.png")}.no-js .social-icon--reddit{--icon:url("/icons/raster/reddit.png")}.no-js .social-icon--keybase{--icon:url("/icons/raster/keybase.png")}.no-js .social-icon--openpgp{--icon:url("/icons/raster/openpgp.png")}.no-js .social-icon--nostr{--icon:url("/icons/raster/nostr.png")}.no-js .social-icon--mail{--icon:url("/icons/raster/mail.png")}.no-js [data-lucide]{display:inline-flex;min-inline-size:1em;align-items:center;justify-content:center;font-style:normal}.no-js [data-lucide=arrow-right]::before{content:"→"}.no-js [data-lucide=arrow-up-right]::before{content:"↗"}.no-js [data-lucide=chevron-down]::before{content:"⌄"}.no-js [data-lucide=container]::before{content:"◇"}.no-js [data-lucide=cpu]::before{content:"⚙"}.no-js [data-lucide=network]::before{content:"⌘"}.no-js [data-lucide=pin]::before{content:"📌"}.no-js [data-lucide=rocket]::before{content:"↑"}.no-js [data-lucide=tag]::before{content:"#"}.no-js [data-lucide=terminal]::before{content:">_"}.no-js [data-lucide=rss]::before{content:"◔"}.no-js [data-lucide=code-2]::before{content:"</>"}.nojs-tag-nav{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1.5rem}.nojs-tag-nav a{border:1px solid var(--muted);border-radius:.25rem;padding:.35rem .65rem;text-decoration:none}.nojs-tag-nav a:hover,.nojs-tag-nav a:focus-visible{border-color:var(--base0C)}.no-js .article-figure__media>a{display:block}.no-js .article-figure__media>a:focus-visible{outline:2px solid var(--base0C);outline-offset:.25rem}@media(prefers-reduced-motion:reduce){.no-js .hero__actions .button-link .prompt__cursor{opacity:1;animation:none!important}.no-js .hero__status-command{width:8.35ch;animation:none!important}.no-js .hero__status-cursor{display:none;animation:none!important}.no-js .hero__status-result,.no-js .hero--status-sequence .content__body>:not(.hero__terminal),.no-js .home-section-reveal{opacity:1;transform:none;animation:none!important}.no-js .prompt__input--nojs .prompt__command--context{clip-path:none;animation:none!important}.no-js .prompt__input--nojs .prompt__cursor--nojs{inset-inline-start:100%;opacity:1;animation:none!important}.no-js .prompt__input--nojs-home{width:0;max-width:0;animation:none!important}.no-js .prompt__input--nojs-home .prompt__command--context{visibility:hidden}.no-js .prompt__input--nojs-home .prompt__cursor--nojs{inset-inline-start:0}.no-js .terminal-prompt--nojs-article .prompt__line--nojs-writing-start{display:none;animation:none!important}.no-js .terminal-prompt--nojs-article .prompt__line--nojs-writing-final{visibility:visible;opacity:1;pointer-events:auto;animation:none!important}.no-js .terminal-prompt--nojs-article .prompt__input--nojs-writing-final .prompt__command--context{clip-path:none;animation:none!important}.no-js .terminal-prompt--nojs-article .prompt__input--nojs-writing-final .prompt__cursor--nojs{inset-inline-start:100%;animation:none!important}.no-js .terminal-prompt--nojs-whoami .prompt__input{display:none;animation:none!important}.no-js .terminal-prompt--nojs-whoami .prompt__output--nojs{visibility:visible;opacity:1;animation:none!important}.no-js .terminal-prompt--nojs-whoami .prompt__output--nojs .prompt__cursor--output{animation:none!important}.no-js .prompt__node-sync-step,.no-js .prompt__node-sync-a11y{display:none;animation:none!important}.no-js .prompt__node-sync-cursor{visibility:visible;opacity:1;animation:none!important}.no-js .prompt__node-sync--nojs{width:0;animation:none!important}}@media(max-width:47.99rem){.no-js .terminal-prompt--nojs-article{width:100%}.no-js .terminal-prompt--nojs-article .prompt__line{width:100%}.no-js .terminal-prompt--nojs-article .prompt__input{flex:0 0 100%;box-sizing:border-box;width:100%;max-width:100%;margin-left:0;padding-left:.55em}.no-js .prompt__node-sync-step,.no-js .prompt__node-sync-a11y{display:none;animation:none!important}.no-js .prompt__node-sync--nojs{width:0;max-width:0;animation:none!important}.no-js .prompt__node-sync-cursor{visibility:visible;opacity:1;animation:nojs-terminal-cursor-blink 1.05s steps(1,end)infinite!important}.no-js .main-nav--nojs ul{gap:.45rem}.no-js .main-nav--nojs .page__brand{flex-basis:100%}.no-js .donate-page__currency-marks{top:.9rem;right:.9rem;gap:.45rem;opacity:.075}.no-js .donate-page__currency-marks img{width:2.35rem}}