.bunny[data-astro-cid-j4ovxmoi]{flex:none;display:block;overflow:visible}.eyes-blink[data-astro-cid-j4ovxmoi]{display:none}@media (prefers-reduced-motion:no-preference){[data-astro-cid-j4ovxmoi][data-blinking] .eyes-open[data-astro-cid-j4ovxmoi]{display:none}[data-astro-cid-j4ovxmoi][data-blinking] .eyes-blink[data-astro-cid-j4ovxmoi]{display:inline}[data-astro-cid-j4ovxmoi][data-bunny=awake] .bunny-body[data-astro-cid-j4ovxmoi]{transform-origin:8px 14px;transition:transform .25s var(--ease)}[data-astro-cid-j4ovxmoi][data-bunny=awake]:hover .bunny-body[data-astro-cid-j4ovxmoi]{transform:translateY(-1px)scaleY(1.06)}}.ticker[data-astro-cid-u6vsyxkm]{white-space:nowrap;color:var(--subtle);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0;font-size:13px;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.ticker-track[data-astro-cid-u6vsyxkm]{width:max-content;display:flex}ul[data-astro-cid-u6vsyxkm]{flex:none;margin:0;padding:0;list-style:none;display:flex}li[data-astro-cid-u6vsyxkm]{gap:18px;padding-right:18px;display:flex}span[data-astro-cid-u6vsyxkm]{color:var(--maroon)}@media (prefers-reduced-motion:no-preference){.ticker-track[data-astro-cid-u6vsyxkm]{animation:28s linear infinite ticker-scroll}.ticker[data-astro-cid-u6vsyxkm]:hover .ticker-track[data-astro-cid-u6vsyxkm]{animation-play-state:paused}}@keyframes ticker-scroll{to{transform:translate(-50%)}}:root{--base:#1e1e2e;--surface:#313244;--text:#cdd6f4;--subtle:#a6adc8;--pink:#f5c2e7;--blue:#89b4fa;--rosewater:#f5e0dc;--maroon:#eba0ac;--peach:#fab387;--line:color-mix(in srgb, var(--text) 12%, transparent);--ease:cubic-bezier(.19, 1, .22, 1);color-scheme:dark}*{box-sizing:border-box}body{background:var(--base);color:var(--text);font:15px/1.6 var(--font-mono), monospace;margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.wrap{max-width:1044px;margin:0 auto;padding:0 32px 96px}.bar{color:var(--subtle);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:24px 0;font-size:13px;display:flex}.bar a:hover{color:var(--text)}.bar b{color:var(--pink);font-weight:500}.home-link{align-items:center;gap:10px;display:inline-flex}.footer{margin-top:64px}.keys{flex-wrap:wrap;gap:22px;display:flex}.term{padding-top:72px}.ln{font:inherit;margin:0;font-weight:400}.ln[id]{scroll-margin-top:24px}.ln[id]:focus{outline:none}.pr{color:var(--pink);margin-right:12px}.cmd{vertical-align:bottom;white-space:nowrap;display:inline-block;position:relative;overflow:hidden}h1{letter-spacing:-.03em;margin:18px 0 14px;font-size:clamp(34px,5vw,58px);font-weight:700;line-height:1.05}.lede{color:var(--subtle);letter-spacing:-.02em;margin:8px 0 72px;font-size:clamp(26px,3.8vw,44px);font-weight:500;line-height:1.2;position:relative}.lede .word{white-space:nowrap}.lede .ch{position:relative}.think{display:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-intro=play] .lede .ch{animation:reveal 0s calc(var(--lede-at) + var(--i) * var(--lede-char)) both}[data-intro=play] .lede .ch:after{content:"";background:var(--rosewater);opacity:0;width:.55em;height:1em;animation:char-caret var(--lede-char) step-end calc(var(--lede-at) + var(--i) * var(--lede-char));position:absolute;top:.08em;left:100%}[data-intro=play] .lede .ch.last:after{animation:lede-blink 1.05s step-end calc(var(--lede-at) + var(--i) * var(--lede-char)) infinite}[data-intro=play] .think{color:var(--subtle);letter-spacing:0;animation:gone 0s var(--lede-at) forwards;font-size:15px;font-weight:400;display:block;position:absolute;top:.15em;left:0}.spin{white-space:pre;vertical-align:-.15em;height:1.2em;color:var(--maroon);line-height:1.2em;display:inline-block;overflow:hidden}.spin>span{animation:spin calc(var(--frames) * var(--tick)) steps(var(--frames)) infinite;display:block}.spin>span>span{display:block}.think .t{-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#6c7086 30%,#fff 50%,#6c7086 70%) 0 0/300% 100% text;animation:1.6s linear infinite tshim}@keyframes reveal{0%{visibility:hidden}to{visibility:visible}}@keyframes gone{to{visibility:hidden}}@keyframes char-caret{0%,to{opacity:1}}@keyframes lede-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes spin{to{transform:translateY(-100%)}}@keyframes tshim{0%{background-position:100% 0}to{background-position:-100% 0}}.blk{margin:12px 0 64px;padding:0;list-style:none}.empty{color:var(--subtle);white-space:pre-wrap}.row{grid-template-columns:28px 200px minmax(0,1fr);align-items:center;gap:20px;margin:0 -14px;padding:12px 14px;display:grid}.row svg{width:24px;height:24px;fill:var(--blue);display:block}.row .n{overflow-wrap:anywhere;font-weight:500}.row .d{color:var(--subtle);overflow-wrap:anywhere}.row .n:before{content:"> ";color:var(--pink);opacity:0;white-space:pre;width:0;display:inline-block;transform:translate(-6px)}.row:is(:hover,:focus-visible) .n:before{opacity:1;width:2ch;transform:none}.row:is(:hover,:focus-visible) svg{fill:var(--pink)}.row:is(:hover,:focus-visible) .d{color:var(--text)}@media (prefers-reduced-motion:no-preference){.row .n:before{transition:opacity .25s var(--ease), transform .25s var(--ease), width .25s var(--ease)}}.cv>div{grid-template-columns:23ch minmax(0,1fr);gap:20px;padding:6px 0;display:grid}.cv dt{color:var(--subtle)}.cv dd{margin:0}.closing{margin-top:8px}.caret{vertical-align:-.2em;background:var(--rosewater);width:.6em;height:1.15em;display:inline-block}.doc{max-width:76ch}.doc h1{overflow-wrap:anywhere;font-size:clamp(28px,4vw,44px)}.meta{color:var(--peach);margin:16px 0 32px}.prose{overflow-wrap:anywhere}.prose a{text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:4px}.prose :not(pre)>code{background:var(--surface);padding:2px 5px}.prose pre{padding:20px;overflow-x:auto}.prose code{font-family:inherit}.prose img{max-width:100%;height:auto}@media (width<=760px){.wrap{padding-left:16px;padding-right:16px}.row{grid-template-columns:24px minmax(0,1fr);gap:4px 14px}.row .d{grid-area:2/2}.cv>div{grid-template-columns:1fr;gap:0;padding:8px 0}}[data-intro=play] [data-fx]{animation-delay:var(--at);animation-duration:var(--dur);animation-timing-function:var(--ease);animation-fill-mode:both}[data-intro=play] [data-fx=rise]{animation-name:rise}[data-intro=play] [data-fx=type] .cmd:after{content:"";background:var(--base);box-shadow:inset .6ch 0 var(--rosewater);animation:uncover var(--dur) steps(var(--ch)) var(--at) both;position:absolute;inset:0}[data-intro=play] [data-fx=type]{animation-name:fade;animation-duration:0s}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.caret{animation:1.05s step-end infinite blink}.live .caret{animation-name:cursor-blink}.pill{animation:pill-in .45s var(--ease) both}}@keyframes pill-in{0%{opacity:0;transform:translate(-50%,12px)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@keyframes uncover{to{transform:translate(100%)}}@keyframes blink{50%{opacity:0}}@keyframes cursor-blink{50%{color:inherit;background:0 0}}[hidden]{display:none!important}button{font:inherit}.closing.live{cursor:text;overflow-wrap:anywhere;position:relative}.live .prompt-text{white-space:pre-wrap}.live .caret{vertical-align:baseline;color:var(--base);padding:.075em 0;display:inline}.live .cli{opacity:0;border:0;width:1px;height:1px;padding:0;font-size:16px;position:absolute;bottom:0;left:0}.live .ghost{color:color-mix(in srgb, var(--subtle) 70%, transparent);cursor:pointer;white-space:pre-wrap;background:0 0;border:0;padding:0}.live .ghost:hover{color:var(--text)}button:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.out{overflow-wrap:anywhere;margin:4px 0 28px}.out .ln{margin:0}.out p{white-space:pre-wrap;margin:0}.out .blk{margin:8px 0 0}.out .muted{color:var(--subtle)}.out .bad{color:var(--peach)}.out button{color:var(--pink);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.out button:hover{text-underline-offset:4px;text-decoration:underline}.help.grid{grid-template-columns:22ch minmax(0,1fr);gap:2px 20px;display:grid}.help.grid button{justify-self:start}.help span{color:var(--subtle)}.help.inline{flex-wrap:wrap;gap:2ch;display:flex}.help.inline button{color:var(--blue)}.help.inline button:last-child{color:var(--text)}.neo{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:0 28px;display:grid}.neo svg{width:96px;height:96px;fill:var(--blue)}.neo b{color:var(--pink);font-weight:500}.sw{gap:4px;margin-top:8px;display:flex}.sw i{width:20px;height:14px;display:block}.pill{z-index:8;width:max-content;max-width:calc(100vw - 32px);color:var(--subtle);background:#181825;border:1px solid #45475a;padding:8px 14px;font-size:13px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0006}.pill b{color:var(--pink);font-weight:500}.pill kbd{font:inherit;color:var(--text);background:var(--surface);padding:1px 6px}.bar .back{color:var(--subtle)}.bar .back:hover{color:var(--text)}.coarse{display:none}@media (pointer:coarse){.fine{display:none}.coarse{display:inline}}@media (width<=760px){.help.grid{grid-template-columns:1fr;gap:0}.help.grid span{margin-bottom:8px}.neo{gap:0 14px}.neo svg{width:48px;height:48px}}
