*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}:root{color-scheme:light dark;--pri: oklch(.9796 .0017 67.8);--sec: oklch(.4047 .2339 267.21);--ter: oklch(.1452 .0021 286.13);--o-xs: .09;--o-sm: .24;--o-md: .48;--o-lg: .72;--o-xl: .91;--sel-bg: var(--pri);--sel-fg: var(--sec);--side-padding: clamp(16px, 10.3px + 1.79vw, 24px)}@font-face{font-family:Geist;src:url(../assets/fonts/Geist[wght].woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(../assets/fonts/GeistMono[wght].woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Fallback;src:local("Arial"),local("Liberation Sans");font-weight:100 424;size-adjust:103.12%;ascent-override:97.46%;descent-override:28.61%;line-gap-override:0%}@font-face{font-family:Geist Fallback;src:local("Arial"),local("Liberation Sans");font-weight:425 474;size-adjust:104.25%;ascent-override:96.4%;descent-override:28.3%;line-gap-override:0%}@font-face{font-family:Geist Fallback;src:local("Arial"),local("Liberation Sans");font-weight:475 549;size-adjust:105.43%;ascent-override:95.32%;descent-override:27.98%;line-gap-override:0%}@font-face{font-family:Geist Fallback;src:local("Arial Bold"),local("Liberation Sans Bold");font-weight:550 900;size-adjust:101.02%;ascent-override:99.49%;descent-override:29.2%;line-gap-override:0%}@font-face{font-family:Geist Mono Fallback;src:local("Courier New"),local("Liberation Mono");size-adjust:99.98%;ascent-override:100.52%;descent-override:29.51%;line-gap-override:0%}html.is-arriving body{visibility:hidden}[tabindex="-1"]:focus{outline:none}section[id]{scroll-margin-top:var(--nav-offset, 60px)}body{font-family:Geist,Geist Fallback,sans-serif;color:var(--ter);background-color:var(--sec);min-height:100dvh;display:flex;flex-direction:column;scroll-behavior:smooth;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}@media(prefers-reduced-motion:reduce){body{scroll-behavior:auto}}a{font-family:inherit;font-weight:450;text-decoration:none;color:inherit}a:active{scale:.99!important}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ter);outline-offset:2px}input{all:unset;box-sizing:border-box}button{all:unset;box-sizing:border-box;cursor:pointer;text-align:center}button:active{scale:.99!important}svg{fill:var(--ter);height:auto;width:fit-content}hr{border:none;border-top:1px solid oklch(from var(--ter) l c h / var(--o-sm))}.band{width:100%;max-width:1280px;padding:36px var(--side-padding);margin:0 auto}::selection{background-color:var(--sel-bg);color:var(--sel-fg)}.bg-pri{background-color:var(--pri);--sel-bg: var(--sec);--sel-fg: var(--pri)}.bg-sec{background-color:var(--sec);--sel-bg: var(--pri);--sel-fg: var(--sec)}.hidden,[hidden]{display:none!important}.no-select{-webkit-user-select:none;user-select:none}.mono{font-family:Geist Mono,Geist Mono Fallback,monospace}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}a.full,button.full{width:fit-content;padding:9px 12px;font-size:14px;font-weight:500;transition:opacity .2s ease}@media(hover:hover){:is(a.full,button.full):hover{opacity:var(--o-lg)}}a.full.comp,button.full.comp{border:2px solid}a.full.pri,button.full.pri{background-color:var(--pri);color:var(--sec);border-color:var(--pri)}a.full.ter,button.full.ter{background-color:var(--ter);color:var(--pri);border-color:var(--ter)}a.full.sec,button.full.sec{background-color:var(--sec);color:var(--pri);border-color:var(--sec)}a.full-hover,button.full-hover{width:fit-content;padding:9px 12px;font-size:14px;font-weight:400;background-color:transparent;transition:background-color .2s ease}a.full-hover.pri,button.full-hover.pri{color:var(--pri)}@media(hover:hover){:is(a.full-hover.pri,button.full-hover.pri):hover{background-color:oklch(from var(--pri) l c h / var(--o-xs))}}a.full-hover.ter,button.full-hover.ter{color:var(--ter)}@media(hover:hover){:is(a.full-hover.ter,button.full-hover.ter):hover{background-color:oklch(from var(--ter) l c h / var(--o-xs))}}a.full-hover.sec,button.full-hover.sec{color:var(--sec)}@media(hover:hover){:is(a.full-hover.sec,button.full-hover.sec):hover{background-color:oklch(from var(--sec) l c h / var(--o-xs))}}a.outline,button.outline{width:fit-content;padding:9px 13px;border:2px solid;font-size:14px;font-weight:500;transition:opacity .2s ease}@media(hover:hover){:is(a.outline,button.outline):hover{opacity:var(--o-lg)}}a.outline.pri,button.outline.pri{border-color:var(--pri);color:var(--pri)}a.outline.ter,button.outline.ter{border-color:var(--ter);color:var(--ter)}a.outline.sec,button.outline.sec{border-color:var(--sec);color:var(--sec)}a.plain,button.plain{width:fit-content;font-family:Geist Mono,Geist Mono Fallback,monospace;font-size:14px;font-weight:400}@media(hover:hover){:is(a.plain,button.plain):hover{opacity:var(--o-lg);text-decoration:underline}}a.plain.pri,button.plain.pri{color:var(--pri)}a.plain.ter,button.plain.ter{color:var(--ter)}a.plain.sec,button.plain.sec{color:var(--sec)}a.plain.icon,button.plain.icon{display:flex;align-items:center;gap:6px}:is(a.plain.icon,button.plain.icon) svg{width:18px;fill:currentColor}a.outline.icon,button.outline.icon{display:flex;align-items:center;gap:6px}:is(a.outline.icon,button.outline.icon) svg{width:18px;fill:currentColor}a.full.icon,button.full.icon{display:flex;align-items:center;gap:6px}:is(a.full.icon,button.full.icon) svg{width:18px;fill:currentColor}a.full-hover.icon,button.full-hover.icon{display:flex;align-items:center;gap:6px}:is(a.full-hover.icon,button.full-hover.icon) svg{width:18px;fill:currentColor}@media(max-width:550px){a.plain,button.plain{text-decoration:underline}}.button-container{display:flex;align-items:center;gap:12px}.button-container.row{flex-direction:row}@media(prefers-reduced-motion:reduce){a.full,button.full,a.full-hover,button.full-hover,a.outline,button.outline,a.plain,button.plain{transition:none!important}}@font-face{font-family:Material Symbols Outlined;src:url(../assets/fonts/material-symbols-outlined-subset.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-feature-settings:"liga";font-variation-settings:"wght" 400,"GRAD" 0,"opsz" 16}.g-icon{font-size:16px!important;display:inline-block;flex:none;width:1em;height:1em;overflow:hidden;white-space:nowrap}.g-icon.fill{font-variation-settings:"FILL" 1}.g-icon.outline{font-variation-settings:"FILL" 0}.g-icon.sm{font-size:12px!important}.inp{display:flex;align-items:center;padding:2px;font-family:Geist Mono,Geist Mono Fallback,monospace;font-size:14px;color:var(--ter)}.inp-command{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:0 12px;color:var(--sec);font-weight:400}.inp-prompt{font-weight:600;font-size:13px}.inp code{font:inherit;line-height:1.5;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inp-copy,.inp-download,.inp-submit{display:grid;place-items:center;flex:none;padding:9px 16px;background-color:var(--sec);color:var(--pri);font:inherit;transition:opacity .2s ease}@media(hover:hover){:is(.inp-copy,.inp-download,.inp-submit):hover{opacity:var(--o-xl)}}.inp-submit{font-family:Geist,Geist Fallback,sans-serif;font-size:13px;font-weight:500;white-space:nowrap}.inp.bar{align-items:stretch;min-width:0;padding:0;font-size:13px;background-color:oklch(from var(--sec) l c h / var(--o-xs))}.inp.bar .inp-command{gap:8px;padding:6px 10px}.inp.bar .inp-prompt{font-size:13px;line-height:1.5;opacity:var(--o-md);-webkit-user-select:none;user-select:none}.inp.bar :is(.inp-copy,.inp-download,.inp-submit){padding:8px 12px}.inp input{flex:1;min-width:0;font:inherit;line-height:1.5;color:inherit}.inp input::placeholder{color:inherit;opacity:var(--o-lg)}.inp input:-webkit-autofill{-webkit-text-fill-color:var(--sec);transition:background-color 99999s}.inp:has(input):focus-within{outline:2px solid var(--sec);outline-offset:2px}.inp input:focus-visible{outline:none}@media(prefers-reduced-motion:reduce){.inp-copy,.inp-download,.inp-submit{transition:none}}.container{display:flex;gap:21px}.container.column{flex-direction:column}.container.a-center{align-items:center}.container.j-center{justify-content:center}.header{display:flex;flex-direction:column;gap:16px}.header h1{font-size:clamp(2rem,1.8044rem + .8696vw,2.5rem);font-weight:500;line-height:.95;text-wrap:balance}.header h2{font-size:clamp(1.375rem,1.2283rem + .6522vw,1.75rem);font-weight:500;line-height:.95;text-wrap:balance}.header p{font-size:clamp(.9375rem,.8438rem + .1953vw,1rem);font-weight:400;color:var(--pri);opacity:var(--o-lg);text-wrap:pretty}.header a:not(.full,.full-hover,.outline):active{scale:1!important}@media(hover:hover){.header a:not(.full,.full-hover,.outline):hover{opacity:var(--o-lg);text-decoration:underline}}.cards-wrapper{display:grid;grid-template-columns:1fr;justify-items:start;gap:32px 16px;width:100%}.cards-wrapper .card{width:100%;min-width:0;display:flex;flex-direction:column;gap:18px}.cards-wrapper .card .card-content{position:relative;container-type:inline-size;aspect-ratio:4 / 3;border:1px solid oklch(from var(--sec) l c h / var(--o-xs));display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color .35s}@media(hover:hover){.cards-wrapper .card .card-content:hover{border-color:oklch(from var(--sec) l c h / var(--o-sm))}}.cards-wrapper .card .card-info{display:flex;flex-direction:column;gap:6px}.cards-wrapper .card .card-info h3{font-weight:500;font-size:16px;color:var(--sec)}.cards-wrapper .card .card-info p{color:oklch(from var(--sec) l c h / var(--o-lg));line-height:1.36}@media(max-width:550px){.cards-wrapper .card .card-info h3,.cards-wrapper .card .card-info p{font-size:15px}}.cards-wrapper .card.long{grid-column:1 / -1;border:1px solid oklch(from var(--sec) l c h / var(--o-xs));padding:24px;transition:border-color .35s}@media(hover:hover){.cards-wrapper .card.long:hover{border-color:oklch(from var(--sec) l c h / var(--o-sm))}}.cards-wrapper .card.long .card-content{aspect-ratio:16 / 5;border:none}.cards-wrapper .card.long .card-info{max-width:none;margin-top:auto}.cards-wrapper.connected{column-gap:0;padding-right:1px}.cards-wrapper.connected .card-info{padding-right:18px}.cards-wrapper.connected .card-content{position:relative;z-index:0;margin-right:-1px}@media(hover:hover){.cards-wrapper.connected .card-content:hover{z-index:1}}.cards-wrapper.connected .card.long{margin-right:-1px}.cards-wrapper.connected .card.long .card-content{margin-right:0}@media(min-width:768px){.cards-wrapper{grid-template-columns:repeat(2,1fr)}.cards-wrapper .card.long{flex-direction:row;align-items:flex-start}.cards-wrapper .card.long .card-content{flex:1;min-width:0}.cards-wrapper .card.long .card-info{max-width:45%}}@media(min-width:968px){.cards-wrapper{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){.card,.card-content,.card.long{transition:none!important}}.note{min-width:0;width:100%;padding:clamp(2rem,1.8116rem + .5479vw,2.25rem) clamp(1.3125rem,.4178rem + 2.6027vw,2.5rem);border:1px solid oklch(from var(--sec) l c h / var(--o-xs));font-family:Geist Mono,Geist Mono Fallback,monospace;font-size:14px;line-height:1.6;transition:border-color .35s}.note h3{font-weight:500;font-size:14px;color:var(--sec);padding-bottom:4px}.note p,.note a{color:oklch(from var(--sec) l c h / var(--o-lg));line-height:1.6}.note a:active{scale:1!important}.note strong{color:var(--sec);font-weight:500}.note code{font-family:Geist Mono,Geist Mono Fallback,monospace;font-size:14px;font-weight:420;line-height:1.6;padding:1px 5px;background-color:oklch(from var(--sec) l c h / var(--o-xs));color:var(--sec);white-space:nowrap}@media(hover:hover){.note:hover{border-color:oklch(from var(--sec) l c h / var(--o-sm))}.note a:hover{opacity:1}}@media(max-width:550px){.note{padding:24px 16px}.note,.note h3,.note code{font-size:13px}}.body{display:flex;flex-direction:column;gap:12px}.marks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;color:oklch(from var(--sec) l c h / var(--o-lg))}.marks li{position:relative;padding-left:5ch}@media(max-width:550px){.marks li{padding-left:4ch}}.marks li:before{content:attr(data-m);position:absolute;left:0;color:oklch(from var(--ter) l c h / var(--o-md))}@media(prefers-reduced-motion:reduce){.note{transition:none}}header{position:sticky;top:-24px;z-index:100;padding-top:24px;background-color:var(--sec)}header nav{border-bottom:1px solid transparent;transition:border-color .2s ease}@media(prefers-reduced-motion:reduce){header nav{transition:none}}header.is-scrolled nav{border-bottom-color:oklch(from var(--pri) l c h / var(--o-sm))}.nav-container{display:flex;flex-direction:row;align-items:center;gap:24px;line-height:18px;padding:12px var(--side-padding)}@media(max-width:550px){.nav-container{gap:0}}.nav-left ul{list-style:none;padding:0;margin:0}.nav-left ul li{white-space:nowrap}.nav-left ul p{color:var(--pri);opacity:var(--o-md)}.nav-left ul .nav-letter{opacity:var(--o-xl)}.nav-left ul .nav-bracket{opacity:var(--o-md)}.nav-right,.nav-left ul{display:flex;align-items:center;flex-direction:row;gap:12px}:is(.nav-right,.nav-left ul) #star-count{font-variant-numeric:tabular-nums}:is(.nav-right,.nav-left ul) #star-count:empty{display:none}.nav-right{margin-left:auto}.nav-right>a{min-height:36px}.nav-right>.full{min-width:171px;white-space:nowrap;text-align:center}@media(max-width:1024px){.nav-left{display:none}}@media(max-width:550px){.nav-container:has([data-back]) .nav-key{display:none}}@media(max-width:400px){.nav-container:has([data-back]) [data-back]{padding-inline:6px}}@media(max-width:359.98px){.nav-container:has([data-back]) #star-count{display:none}}footer .container{gap:72px}footer .band{padding:54px var(--side-padding)}.footer-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:48px}.footer-links ul{list-style:none;padding:0;margin:0}.footer-links ul li p{font-size:13px;font-weight:500;color:var(--pri);opacity:var(--o-lg);padding-bottom:4px}@media(max-width:768px){.footer-links{grid-template-columns:repeat(2,1fr)}}@media(max-width:330px){.footer-links{grid-template-columns:repeat(1,1fr)}}.footer-end{display:flex;align-items:center;justify-content:space-between;gap:48px}.footer-end #ascii-wordmark{font-family:monospace;font-size:13px;font-weight:400;color:var(--pri);opacity:var(--o-lg);margin:0;padding:0;display:inline-block;width:max-content;max-width:none;white-space:pre;overflow:visible;font-synthesis:none;text-rendering:geometricPrecision}@media(max-width:768px){.footer-end{flex-direction:column;justify-content:center}.footer-end #ascii-wordmark{font-size:12px}}.footer-end-extra{display:flex;flex-direction:column;align-items:flex-end;gap:12px}@media(hover:hover){.footer-end a:hover{text-decoration:underline}}.footer-end-main{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0;max-width:100%}@media(max-width:768px){.footer-end-extra,.footer-end-main{align-items:center}.footer-end-main p{text-align:center}.footer-end #ascii-wordmark{font-size:clamp(8px,calc((100vw - 2 * var(--side-padding) - 17px) / 26),12px)}}.shortcuts{position:fixed;right:var(--side-padding);bottom:var(--side-padding);z-index:100}.shortcuts>button{pointer-events:auto;display:grid;place-items:center;position:relative;width:36px;aspect-ratio:1 / 1;color:var(--pri);background-color:var(--sec);outline:1px solid oklch(from var(--pri) l c h / var(--o-md));transition:background-color .2s ease,scale .2s ease}@media(hover:hover){.shortcuts>button:hover{background-color:oklch(from var(--sec) l c h / var(--o-lg));scale:1.06}}.shortcuts>button:active{scale:.98}@media(max-width:1024px){.shortcuts{display:none!important}}@media(prefers-reduced-motion:reduce){.shortcuts>button{transition:none}}@keyframes shortcuts-dropdown-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.shortcuts-dropdown{position:absolute;z-index:20;right:0;bottom:calc(100% + 10px);display:none;transform-origin:bottom right}.shortcuts-dropdown.is-open{display:block;animation:shortcuts-dropdown-in .15s ease}.shortcuts-dropdown .dropdown{display:block}.shortcuts-dropdown .dropdown-wrapper{width:max-content;min-width:210px;height:fit-content;color:var(--sec);background-color:var(--pri);outline:1px solid oklch(from var(--sec) l c h / var(--o-md));padding:8px 12px;display:flex;flex-direction:column;font-family:Geist Mono,Geist Mono Fallback,monospace;font-size:12px!important}@media(prefers-reduced-motion:reduce){.shortcuts-dropdown.is-open{animation:none}}.shortcut-marks{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:3px}.shortcut-marks .key{width:18px;height:18px;flex:0 0 18px;display:grid;place-items:center;font-size:13px;font-weight:500;line-height:1;box-sizing:border-box;background-color:var(--pri);border:1px solid var(--sec);box-shadow:0 1px var(--sec)}.key-group{display:flex;flex-direction:column}.key-group>div{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:32px}.key-group>div p{order:-1;font-size:13px;font-weight:420;white-space:nowrap}.key-group>div .shortcut-marks{order:1;flex:none}.key-group>div+div{border-top:1px solid oklch(from var(--sec) l c h / var(--o-xs))}
