:root{--hue-blue:209;--hue-pink:270;--color-gray-1:hsl(var(--hue-blue), 10%, 10%);--color-gray-2:hsl(var(--hue-blue), 10%, 20%);--color-gray-3:hsl(var(--hue-blue), 10%, 30%);--color-gray-4:hsl(var(--hue-blue), 10%, 40%);--color-gray-5:hsl(var(--hue-blue), 10%, 50%);--color-gray-6:hsl(var(--hue-blue), 10%, 60%);--color-gray-7:hsl(var(--hue-blue), 10%, 70%);--color-gray-8:hsl(var(--hue-blue), 10%, 80%);--color-gray-9:hsl(var(--hue-blue), 10%, 90%);--font-family:system-ui, sans-serif;--bg-color:hsl(var(--hue-blue), 40%, 2%);--text-color:var(--color-gray-7);--link-color:hsl(var(--hue-blue), 92%, 70%);--text-shadow:1px 1px 3px rgba(0, 0, 0, 0.5);--box-shadow:0 2px 5px 0 rgba(0, 0, 0, 0.26);--btn-bg-color:hsl(var(--hue-blue), 10%, 50%);--btn-active-bg-color:var(--link-color);--btn-active-filter:drop-shadow(0 0 10px hsla(var(--hue-blue), 100%, 100%, .5));--btn-danger-bg-color:hsl(var(--hue-pink), 60%, 57%);--btn-danger-filter:drop-shadow(0 0 10px hsla(var(--hue-pink), 100%, 100%, .5));--info-color:var(--link-color);--info-bg-color:hsl(var(--hue-blue), 100%, 17%);--nav-parent-bg-color:hsl(var(--hue-blue), 100%, 12%);--warn-color:hsl(var(--hue-pink), 100%, 50%);--warn-bg-color:hsl(var(--hue-pink), 50%, 20%);--logo-color:hsl(var(--hue-blue), 10%, 85%);--text-shadow-glow:0 0 5px hsl(var(--hue-pink), 100%, 45%), 0 0 10px hsl(var(--hue-pink), 100%, 45%);--focus-outline:4px solid var(--btn-danger-bg-color)}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{margin:0;padding:0}html{font-family:helvetica neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5}@media(min-width:38em){html{font-size:20px}}body{color:#515151;background-color:#fff;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a{color:#268bd2;text-decoration:none}a strong{color:inherit}a:hover,a:focus{text-decoration:underline}p{margin-top:0;margin-bottom:1rem}strong{color:#303030}ul,ol,dl{margin-top:0;margin-bottom:1rem}dt{font-weight:700}dd{margin-bottom:.5rem}hr{position:relative;margin:1.5rem 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr{font-size:85%;font-weight:700;color:#555;text-transform:uppercase}abbr[title]{cursor:help;border-bottom:1px dotted #e5e5e5}code,pre{font-family:Menlo,Monaco,courier new,monospace}code{padding:.25em .5em;font-size:85%;color:#bf616a;background-color:#f9f9f9;border-radius:3px}pre{display:block;margin-top:0;margin-bottom:1rem;padding:1rem;font-size:.8rem;line-height:1.4;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;background-color:#f9f9f9}pre code{padding:0;font-size:100%;color:inherit;background-color:transparent;overflow:auto}.highlight{margin-bottom:1rem;border-radius:4px}.highlight pre{margin-bottom:0}blockquote{padding:.5rem 1rem;margin:.8rem 0;color:#7a7a7a;border-left:.25rem solid #e5e5e5}blockquote p:last-child{margin-bottom:0}@media(min-width:30em){blockquote{padding-right:5rem;padding-left:1.25rem}}img{display:block;max-width:100%;margin:0 0 1rem;border-radius:5px}table{margin-bottom:1rem;width:100%;border:1px solid #e5e5e5;border-collapse:collapse}td,th{padding:.25rem .5rem;border:1px solid #e5e5e5}tbody tr:nth-child(odd) td,tbody tr:nth-child(odd) th{background-color:#f9f9f9}.lead{font-size:1.25rem;font-weight:300}.message{margin-bottom:1rem;padding:1rem;color:#717171;background-color:#f9f9f9}.container{max-width:40rem;padding-left:1rem;padding-right:1rem;margin-left:auto;margin-right:auto}.masthead{padding-top:1rem;padding-bottom:1rem;margin-bottom:3rem}.masthead-title{margin-top:0;margin-bottom:0;color:#505050}.masthead-title a{color:#505050}.masthead-title small{font-size:75%;font-weight:400;color:silver;letter-spacing:0}.logo{font-size:2rem;line-height:1.15;text-align:center;white-space:nowrap;padding-top:.5rem}.logo a{font-family:beon,sans-serif;border:none;color:hsl(var(--hue-blue),10%,80%)!important;display:inline-block;font-size:200%;text-transform:uppercase;text-decoration:none;margin:1.75rem 0;text-shadow:0 0 .1em hsl(var(--hue-pink),100%,100%),0 0 .5em hsl(var(--hue-pink),100%,100%),0 0 .25em hsl(var(--hue-pink),100%,50%),0 0 .5em hsl(var(--hue-pink),100%,50%),0 0 .75em hsl(var(--hue-pink),100%,50%),0 0 1em hsl(var(--hue-pink),100%,50%),0 0 1.5em hsl(var(--hue-pink),100%,50%),0 0 3em hsl(var(--hue-pink),100%,50%)}.logo-eternal{position:relative;font-size:40%;text-transform:uppercase;display:block;letter-spacing:.9em;border:.1em solid transparent;border-radius:.25em;padding:.25em;text-shadow:0 0 .1em hsl(var(--hue-blue),100%,90%),0 0 .25em hsl(var(--hue-blue),100%,90%),0 0 .25em hsl(var(--hue-blue),100%,50%),0 0 .5em hsl(var(--hue-blue),100%,50%);&::before{content:'';position:absolute;inset:-.1em;border:.1em solid hsl(var(--hue-blue),100%,90%);border-radius:inherit;pointer-events:none;box-shadow:0 0 .1em hsl(var(--hue-blue),100%,90%),0 0 .25em hsl(var(--hue-blue),100%,90%),0 0 .5em hsl(var(--hue-blue),100%,50%),0 0 .75em hsl(var(--hue-blue),100%,50%),inset 0 0 .5em hsl(var(--hue-blue),100%,50%),inset 0 0 .75em hsl(var(--hue-blue),100%,50%)}}.logo-lastChar{letter-spacing:normal}@media(scripting:enabled){.logo-letter,.logo-eternal::before{opacity:0}}.fonts-loaded{.logo-letter, .logo-eternal::before{opacity:1}@media(prefers-reduced-motion:no-preference){.logo-letter,.logo-eternal::before{animation:logo-power-on 200ms ease-in var(--delay)both}.logo-letter.logo-blinker,.logo-eternal.logo-blinker::before{animation:logo-blink var(--blink-duration)linear var(--delay)both}}}.logo-lit{.logo-letter, .logo-eternal::before{opacity:1;animation:none}}@keyframes logo-power-on{0%{opacity:0}40%{opacity:.8}55%{opacity:.4}100%{opacity:1}}@keyframes logo-blink{0%,10%{opacity:0}11%,28%{opacity:1}29%,50%{opacity:0}51%,56%{opacity:.7}57%,64%{opacity:.2}65%,100%{opacity:1}}.logo .tagline{font-size:1rem;font-weight:300;text-align:center;text-shadow:var(--text-shadow-glow)}@media(min-width:960px){.logo{font-size:1.5rem}.logo a{margin-top:0}}html{font:16px/1.5 sans-serif;font-size:clamp(1rem,.5rem + 1vw,1.5rem);font-family:var(--font-family)}body{background-color:var(--bg-color);color:var(--text-color);font-size:max(16px,1rem - 2px)}h1{color:var(--color-gray-8);border-bottom:1px solid var(--btn-bg-color);font-size:2rem}h2{color:var(--color-gray-8);font-size:1.75rem;border-bottom:none;border-left:5px solid hsl(var(--hue-blue),30%,50%);padding-left:.75rem;margin-top:2.5rem;margin-bottom:1rem}h3{color:var(--color-gray-7);font-size:1.5rem;margin-top:2rem}h4{color:var(--color-gray-6);font-size:1.2rem;margin-bottom:.75rem}strong{color:inherit}ul{list-style-image:none}li>ul{margin-bottom:0}a{color:var(--link-color);text-decoration:none;&:hover{color:hsl(var(--hue-blue),92%,80%)}&:focus{outline:none}&:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:2px}}code{color:hsl(var(--hue-blue),10%,90%)}code,pre{background-color:hsl(var(--hue-blue),10%,12%)}td code{white-space:nowrap}.table-scroll{overflow-x:auto}tbody tr:nth-child(odd) td,tbody tr:nth-child(odd) th{background-color:hsl(var(--hue-blue),10%,12%)}hr{color:var(--color-gray-7)}.copyright{color:var(--color-gray-7);text-align:center}.copyright a{color:var(--color-gray-7);text-decoration:underline}.content{padding-top:.5rem;padding-bottom:4rem}@media(min-width:960px){.content{padding-top:6rem;max-width:1440px;margin-left:20rem;margin-right:0}}@media(min-width:960px){.sidebar{position:fixed;top:0;left:0;bottom:0;padding-top:1.5rem;width:20rem;overflow-y:scroll;nav{display:block;margin:1.5rem 2rem 2rem;padding:0}}#btn-nav{display:none}}#btn-nav{max-width:40rem;padding:0 1rem;margin:0 auto;fill:var(--btn-bg-color);cursor:pointer}#btn-nav.active{fill:var(--btn-active-bg-color)}#btn-nav .icon{width:48px;height:48px;display:block;float:right;position:relative;top:1.75rem}nav{display:none;max-width:40rem;margin:3.5rem auto 1rem;padding:0 4rem 0 1rem}nav.active{display:block}nav a.active,nav li.active>a{background-color:var(--info-bg-color);display:block}nav>ul>li>ul>li:has(.active).active>a{background-color:var(--nav-parent-bg-color)}.nav-item{display:block;line-height:1.75}a.nav-item:hover,a.nav-item:focus{text-decoration:underline}.nav-item.active{font-weight:700}#doc-toc{margin-bottom:0}aside{display:flex;margin-bottom:1rem;padding:5px 10px;align-items:center}aside>.icon{width:32px;height:32px;min-width:32px}aside p{margin-left:10px;margin-top:5px;margin-bottom:0}aside.info{background-color:var(--info-bg-color);border:3px solid hsl(var(--hue-blue),50%,20%);> .icon{fill:var(--info-color)}}aside.warn{background-color:var(--warn-bg-color);border:3px solid hsl(var(--hue-pink),50%,20%);> .icon{fill:var(--warn-color)}}.icon{width:1em;height:1em}.icon.external{fill:var(--info-color)}table.button-descriptions{width:100%;margin-bottom:2rem;border-collapse:collapse;svg{fill:var(--btn-active-bg-color);filter:var(--btn-active-filter);height:2rem;vertical-align:middle;display:inline-block}svg.danger{fill:var(--btn-danger-bg-color);filter:var(--btn-danger-filter)}th, td{border-color:var(--color-gray-3)}td:nth-child(2){white-space:nowrap}tbody tr:nth-child(odd) td, tbody tr:nth-child(odd) th{background-color:inherit}}ul.screenshots{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);list-style:none;margin-bottom:.5rem;padding:0;li:last-child{grid-column:1/-1}img{height:20vw;width:100%;object-fit:cover;vertical-align:bottom;margin:0;padding:.5rem}.screenshot-link{display:block;&:focus-visible{outline:var(--focus-outline);outline-offset:-2px}}}.row{display:flex;justify-content:space-around;img{max-height:50vh;margin:0 auto}}figure{figcaption{color:hsl(var(--hue-blue),20%,50%);text-align:center;margin-top:.5rem}}#lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:none;background:rgba(0,0,0,.9);&[open]{display:flex;align-items:center;animation:lightbox-fade .167s}img{margin:auto;max-width:90vw;max-height:90vh;width:auto;height:auto;object-fit:contain}&:focus-visible{outline:var(--focus-outline);outline-offset:-4px}}@keyframes lightbox-fade{from{opacity:0}}@media(min-width:960px){ul.screenshots{margin-left:5vw;margin-right:5vw;img{object-fit:contain}}#lightbox img{max-width:66vw;max-height:66vh}}.github-buttons{display:flex;justify-content:center;gap:12px;margin-top:.5rem;&>div{white-space:nowrap;border:1px solid;border-color:rgba(240,246,252,.1);background-image:linear-gradient(180deg,#21262d,#1a1e23 90%);border-radius:.25em;&:hover{border-color:#8b949e;background-image:linear-gradient(180deg,#30363d,#292e33 90%)}a{display:inline-flex;align-items:center;color:#c9d1d9;padding:8px 10px;font-size:.75rem;line-height:1rem;text-decoration:none}svg{margin-right:5px}}.github-star svg{color:#e3b341}.github-sponsor svg{color:#db61a2}}.highlight{position:relative}.highlight-copy-btn{position:absolute;top:0;right:0;border:0;border-radius:0 0 0 4px;padding:2px 8px;font-size:.75rem;line-height:1.5;color:#eee;background-color:rgba(0,0,0,.5);opacity:0;transition:opacity .2s;cursor:pointer;&:focus-visible{opacity:1;outline:var(--focus-outline);outline-offset:-2px}}.highlight:hover .highlight-copy-btn{opacity:1}details{margin:.5rem;padding:.5rem 1rem;background-color:var(--color-gray-1);border-radius:4px;&[open]{background-color:var(--color-gray-2);summary{margin-bottom:1rem}}}summary{cursor:pointer;font-weight:700;outline:none;&>span{margin-left:.5rem}&:hover{color:hsl(var(--hue-blue),50%,70%)}&:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:2px}}