:root{--main:#201a49;--mainTransparent:#201a49e1;--mainDetail:#39296d;--mainShadow:#0e031e63;--shadowHover:#411486b7;--text:#fff;--accent:#79ffff;--accent2:#986bff;--selectionBackground:#3181d0;--font:Mooli;--mainStart:#61ffb8;--mainEnd:#9077ff;--mainGradient:linear-gradient(in hsl to right, var(--mainStart), var(--mainEnd));--secondaryStart:#9077ff;--secondaryEnd:#f3a3ff;--secondaryGradient:linear-gradient(in oklch to right, var(--secondaryStart), var(--secondaryEnd));--tertiaryStart:#f952ff;--tertiaryEnd:#ffa3b2;--tertiaryGradient:linear-gradient(in oklch to right, var(--tertiaryStart), var(--tertiaryEnd));--linkGradient:linear-gradient(in oklch to right,#f952ff, #83a0ff);--linkGlow:#ffa3b2b0;--hoverHue:50deg}@font-face{font-family:Mooli;src:url(/assets/font_mooli.ttf);font-display:swap}html{background-color:var(--main);scrollbar-color:var(--accent) transparent;accent-color:var(--accent);color:var(--text);font-size:16px;font-family:var(--font);min-width:100dvw;height:100%;margin:0;transition:background-color .2s,scrollbar-color .2s;overflow-x:hidden}body{height:100%;margin:0}@keyframes articleFadeIn{0%{opacity:0;transform:translateY(0)}1%{opacity:0;transform:translateY(1em)}to{opacity:1;transform:translateY(0)}}article{padding-top:4rem;padding-bottom:0;transition:all .2s;animation:.5s cubic-bezier(.25,.46,.45,.94) articleFadeIn}button{all:unset;cursor:pointer}h1{margin:0;padding:0;font-size:1.625rem;font-weight:900;line-height:1.2;display:inline-block}h1:not(.no-pad){padding-top:.5em;display:inline-block}h2{margin:0;padding:0;font-size:1.25rem;font-weight:900;display:inline-block}h3{margin:0;padding:0;font-size:1.1rem;font-weight:900;display:block}h1:not(.ignoregradient),h2:not(.ignoregradient),h3:not(.ignoregradient){background-image:var(--secondaryGradient);-webkit-text-fill-color:transparent;-moz-text-fill-color:transparent;background-color:#288ada;-webkit-background-clip:text;background-clip:text}h2:not(.ignoregradient){background-image:var(--tertiaryGradient)}.contents ul{margin:0;list-style-type:none}.contents ul>li:before{content:"✦";color:var(--secondaryStart);opacity:.5;margin-right:.5em}img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty;margin-block-start:0}a{all:unset;cursor:pointer}body>nav{background-color:var(--main);z-index:10000;width:100lvw;height:4rem;transition:background-color .2s,box-shadow .2s;animation:.5s cubic-bezier(.25,.46,.45,.94) navFadeIn;display:block;position:fixed;box-shadow:0 0 1em #0000}body>nav[scrolled]{box-shadow:var(--mainShadow) 0 0 1em}body:has(:popover-open)>nav{box-shadow:var(--mainShadow) 0 0 1em}.nav-force-selflink{opacity:0;pointer-events:none;transition:all .2s}.nav-force-selflink.hidden-selflink{display:none}.nav-force-selflink.selflink{pointer-events:auto;opacity:1;display:block}@keyframes navFadeIn{0%{opacity:0}to{opacity:1}}::selection{color:#fff;background:var(--selectionBackground)}header{margin-bottom:1.5em}header>h1{padding-top:0;display:inline-block;background-image:var(--mainGradient)!important}header>p{margin:0;font-size:1rem;font-weight:500}#wordmark{filter:brightness()hue-rotate();width:fit-content;height:3rem;margin:.5rem .5rem .5rem 2rem;transition:filter .2s,transform .2s;display:flex;position:absolute;transform:scale(1)}#wordmark:hover{filter:brightness(130%)hue-rotate();transform:scale(1.1)}.nav-link{text-align:center;background-image:var(--mainGradient);-webkit-text-fill-color:transparent;-moz-text-fill-color:transparent;filter:hue-rotate()brightness();background-color:#288ada;-webkit-background-clip:text;background-clip:text;padding:1em;font-weight:500;transition:all .2s}.nav-link:hover{filter:hue-rotate()brightness(150%)}.nav-link.selflink{filter:hue-rotate(var(--hoverHue));font-weight:900}.nav-link.selflink:hover{filter:hue-rotate(var(--hoverHue)) brightness(150%)}#expanded-nav{float:right;align-items:center;height:100%;margin-right:1.5em;padding-right:.5em;display:flex}#hamburger-nav{float:left;align-items:center;height:3rem;margin:.5rem;display:none}#hamburger-nav>button{aspect-ratio:1;filter:hue-rotate()brightness();cursor:pointer;height:100%;transition:all .2s;display:block;transform:rotate(0)}#hamburger-nav>button:hover{filter:hue-rotate()brightness(150%)}#hamburger-nav>button>span{background-image:var(--mainGradient);border-radius:1em;width:45%;height:6%;margin:0;padding:0;transition:all .2s;display:block;position:absolute;top:50%;left:50%}#hamburger-nav>button>span:first-child{transform:translate(-50%,-300%)}#hamburger-nav>button>span:nth-child(2){transform:translate(-50%,-50%)}#hamburger-nav>button>span:nth-child(3){transform:translate(-50%,200%)}#hamburger-nav:has(:popover-open)>button{filter:hue-rotate(var(--hoverHue)) brightness(100%)}#hamburger-nav:has(:popover-open)>button>span:first-child{transform:translate(-50%,-50%)rotate(45deg)}#hamburger-nav:has(:popover-open)>button>span:nth-child(2){width:0%;left:30%;transform:translate(-50%,-50%)}#hamburger-nav:has(:popover-open)>button>span:nth-child(3){transform:translate(-50%,-50%)rotate(-45deg)}#hamburger-nav:has(:popover-open)>button:hover{filter:hue-rotate(var(--hoverHue)) brightness(150%)}#hamburger-nav>div{float:left;background:var(--main);opacity:0;height:fit-content;filter:drop-shadow(0 .4em .2em var(--mainShadow));border:none;border-radius:0 0 .6em;flex-flow:column;margin:0;padding:.2em;transition:all .2s;display:flex;position:fixed;top:4rem;left:0;right:0;transform:translate(-100%)}#hamburger-nav:has(:popover-open)>div{opacity:1;transform:translate(0)}#toc-nav{aspect-ratio:1;float:right;pointer-events:none;opacity:0;height:3rem;margin:.5rem 1.5em .5rem .5rem;transition:opacity .2s;display:none}body:has(.toc:not(#toc-drop)) #toc-nav{opacity:1;pointer-events:unset}#toc-nav>button{aspect-ratio:1;filter:hue-rotate()brightness();cursor:pointer;align-items:center;height:100%;transition:all .2s;display:block;transform:rotate(0)}#toc-nav>button:hover{filter:hue-rotate()brightness(150%)}#toc-nav>button>span{background-image:var(--secondaryGradient);border-radius:1em;width:35%;height:6%;margin:0;padding:0;transition:all .2s;display:block;position:absolute;top:50%;left:50%}#toc-nav>button>span:first-child{background-image:linear-gradient(var(--secondaryStart));width:8%;height:8%;transform:translate(-300%,-240%)}#toc-nav>button>span:nth-child(2){background-image:linear-gradient(var(--secondaryStart));width:8%;height:8%;transform:translate(-300%,-50%)}#toc-nav>button>span:nth-child(3){background-image:linear-gradient(var(--secondaryStart));width:8%;height:8%;transform:translate(-300%,140%)}#toc-nav>button>span:nth-child(4){transform:translate(-30%,-300%)}#toc-nav>button>span:nth-child(5){transform:translate(-30%,-50%)}#toc-nav>button>span:nth-child(6){transform:translate(-30%,200%)}#toc-nav:has(:popover-open)>button>span:first-child,#toc-nav:has(:popover-open)>button>span:nth-child(2),#toc-nav:has(:popover-open)>button>span:nth-child(3){width:0%;left:30%;transform:translate(-50%,-50%)}#toc-nav:has(:popover-open)>button>span:nth-child(4){width:45%;transform:translate(-50%,-50%)rotate(45deg)}#toc-nav:has(:popover-open)>button>span:nth-child(5){width:0%;left:30%;transform:translate(-50%,-50%)}#toc-nav:has(:popover-open)>button>span:nth-child(6){width:45%;transform:translate(-50%,-50%)rotate(-45deg)}#toc-nav>div{background:var(--main);opacity:0;width:19rem;height:fit-content;filter:drop-shadow(0 .4em .2em var(--mainShadow));border:none;border-radius:0 0 0 .6em;flex-flow:column;margin:0;padding:.2em;transition:transform .2s,opacity .2s;display:flex;position:fixed;top:4rem;left:100vw;transform:translate(0)}#toc-nav:has(:popover-open)>div{opacity:1;transform:translate(-100%)}@media screen and (width<=65em){#expanded-nav{display:none}#toc-nav{display:block}#hamburger-nav{display:flex}#wordmark{margin-left:3.5rem;scale:.9}}pre:has(>code){background-color:var(--mainDetail);border:1px solid var(--accent2);corner-shape:squircle;text-wrap-mode:wrap;border-radius:.5em;margin:1em 0;padding:.5em 1em}.small{background-image:var(--secondaryGradient);-webkit-text-fill-color:transparent;-moz-text-fill-color:transparent;background-color:#288ada;-webkit-background-clip:text;background-clip:text;font-size:.75rem;font-weight:500}.wavy{animation:1s ease-in-out infinite alternate animateWave}.card{width:clamp(100% - 20em,100svw - 10em,60em);margin:auto;font-size:.875rem;line-height:1.6}.focused-card{width:clamp(0em,100svw - 10em,55em)}.slightly-focused-card{width:clamp(0em,100svw - 10em,10svw + 70em)}.article-card{width:clamp(0em,100svw - 10em,95em)}.article-card>div{grid-template-columns:19em 1fr clamp(0em,100svw - 86em,19em);gap:1em;display:grid}.right-align{text-align:right}.viewable-image{perspective:37em;width:100%;display:flex;position:relative}.viewable-image>div{width:100%;transition:transform .4s cubic-bezier(.2,.66,.4,1),width .4s cubic-bezier(.2,.66,.4,1),top .4s cubic-bezier(.2,.66,.4,1),left .4s cubic-bezier(.2,.66,.4,1);display:block;position:relative;top:0;left:0}.viewable-image>div>img{width:100%}.viewable-image{filter:drop-shadow(0 0 .1em var(--mainShadow));transition:transform .2s ease-out,filter .2s ease-out;transform:scale(1)}.viewable-image:not([viewing]):hover{filter:drop-shadow(0 0 .5em var(--shadowHover));transform:scale(1.03)}.viewable-image{cursor:zoom-in}.viewable-image[viewing]{cursor:zoom-out;transition:transform .2s ease-out,filter .2s ease-out;transform:scale(1)}.viewable-image[viewing]>div{z-index:1000;transition:transform .4s cubic-bezier(.2,.66,.4,1),width .4s cubic-bezier(.2,.66,.4,1),top .4s cubic-bezier(.2,.66,.4,1),left .4s cubic-bezier(.2,.66,.4,1)}@keyframes viewableImageBackdropInit{0%{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}to{background:var(--mainShadow);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@keyframes viewableImageBackdropFinal{0%{background:var(--mainShadow);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}to{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0}}viewable-image-backdrop{z-index:5;opacity:1;background:0 0;width:100vw;height:calc(100vh - 3rem);animation:.5s forwards viewableImageBackdropInit;position:fixed}viewable-image-backdrop[unview]{pointer-events:none;animation:.5s forwards viewableImageBackdropFinal}.caption{color:var(--accent);pointer-events:none;margin-bottom:1em;font-style:italic}.caption[white]{color:#fff}.hidden-caption{opacity:0;transition:opacity .2s;display:block;position:absolute;top:100%}.viewable-image[viewing] .caption{opacity:1;pointer-events:all}.centered{text-align:center}.link:not(.ignoregradient){background-image:var(--linkGradient)}.link{-webkit-text-fill-color:transparent;-moz-text-fill-color:transparent;filter:brightness();background-color:#288ada;-webkit-background-clip:text;background-clip:text;font-weight:900;transition:all .2s}.link.external{white-space:nowrap}.link.external:after{content:"";background-image:url(/assets/external.svg);background-repeat:no-repeat;background-size:contain;width:.8em;height:.8em;margin-bottom:0;margin-left:.1em;display:inline-block}.link:hover{filter:brightness(150%)}.link:hover.copyable[clicked]:after{filter:brightness(66.66%)}.copyable.link{display:inline}.copyable[clicked]:after{content:"Copied to your clipboard.";-webkit-text-fill-color:var(--text);-moz-text-fill-color:var(--text);background:var(--mainDetail);pointer-events:none;filter:brightness();border-radius:.5em;width:max-content;padding:.3em .6em;font-weight:100;transition:all .2s;animation:1s cubic-bezier(.895,.03,.685,.22) forwards copyFadeOut;position:absolute;left:50%;transform:translate(-50%,1.5em)}@keyframes copyFadeOut{0%{opacity:1}to{opacity:0}}.image{corner-shape:squircle;border-radius:1em}.gallery{--additional-gap:1em;grid-template-columns:repeat(4,1fr);grid-auto-rows:1px;gap:1px;padding:0;display:grid}.gallery>button{break-inside:avoid;border:none;width:calc(100% - .5em);margin:0;padding:0;display:block}.gallery{width:calc(100% + .5em)}@media screen and (width<=91em){.gallery{grid-template-columns:repeat(3,1fr)}}@media screen and (width<=65em){.gallery{grid-template-columns:repeat(2,1fr)}}.small-gallery{grid-template-columns:repeat(4,1fr)}@media screen and (width<=50em){.small-gallery{grid-template-columns:repeat(3,1fr)}}@media screen and (width<=32em){.small-gallery{grid-template-columns:repeat(2,1fr)}}footer{clear:both;margin-top:6em;position:relative;bottom:4em}.copyright:after{content:"ⓒ 2025 Kiiyoko";color:var(--accent)}.sociallink{text-align:center;color:#0000;-webkit-user-select:none;user-select:none;corner-shape:squircle;filter:brightness();border:1.8px solid #0000;border-radius:100%;width:3rem;height:3rem;margin-bottom:1rem;margin-right:.5rem;font-size:0;transition:all .2s;display:inline-block;transform:scale(1)}.sociallink:hover{filter:brightness(200%);transform:scale(1.1)}.sociallink:active{filter:brightness(250%);transform:scale(1.2)}.sociallink:after{content:"";width:1.75rem;height:1.75rem;margin-top:.625rem;margin-left:auto;margin-right:auto;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}#twitter{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #177cff, #6ff5ff) border-box}#twitter:after{background-image:linear-gradient(#6ff5ff,#177cff);-webkit-mask-image:url(/assets/external/twitter.svg);mask-image:url(/assets/external/twitter.svg)}#bluesky{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #1768ff, #8dcfff) border-box}#bluesky:after{background-image:linear-gradient(#8dcfff,#1768ff);-webkit-mask-image:url(/assets/external/bluesky.svg);mask-image:url(/assets/external/bluesky.svg)}#youtube{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #ff1717, #ff4ed3) border-box}#youtube:after{background-image:linear-gradient(#ff4ed3,#ff1717);-webkit-mask-image:url(/assets/external/youtube.svg);mask-image:url(/assets/external/youtube.svg)}#roblox{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #ff1717, #ff4ed3) border-box}#roblox:after{background-image:linear-gradient(#ff4ed3,#ff1717);-webkit-mask-image:url(/assets/external/roblox.svg);mask-image:url(/assets/external/roblox.svg)}#twitch{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #7017ff, #f673ff) border-box}#twitch:after{background-image:linear-gradient(#f673ff,#7017ff);-webkit-mask-image:url(/assets/external/twitch.svg);mask-image:url(/assets/external/twitch.svg)}#discord{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #5662f6, #8d9eff) border-box}#discord:after{background-image:linear-gradient(#8d9eff,#5662f6);-webkit-mask-image:url(/assets/external/discord.svg);mask-image:url(/assets/external/discord.svg)}#email{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #43f5da, #b1ffd4) border-box}#email:after{background-image:linear-gradient(#b1ffd4,#43f5da);-webkit-mask-image:url(/assets/external/email.svg);mask-image:url(/assets/external/email.svg)}#github{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #979797, #fff) border-box}#github:after{background-image:linear-gradient(#fff,#979797);-webkit-mask-image:url(/assets/external/github.svg);mask-image:url(/assets/external/github.svg)}#miraheze{background:linear-gradient(var(--mainTransparent), var(--main)) padding-box, linear-gradient(to top, #ffb224, #fff78d) border-box}#miraheze:after{background-image:linear-gradient(#fff78d,#ffb224);-webkit-mask-image:url(/assets/external/miraheze.svg);mask-image:url(/assets/external/miraheze.svg)}::-webkit-scrollbar{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--accent);border-radius:100px;transition:background-color .2s}:not(:hover):not(:focus-within)::-webkit-scrollbar-thumb{background-color:#0000}:not(:hover){scrollbar-color:transparent transparent}under-construction{corner-shape:squircle;text-align:center;background:#7e276b4d;border:1px dashed #d332b9;border-radius:1em;width:calc(min(40em,100vw - 10em));margin:1em auto;padding:1.5em;line-height:1.5em;display:block}under-construction:after{content:"UNDER CONSTRUCTION";vertical-align:center;color:#d332b9;font-weight:500}.\38 8x31{flex-wrap:wrap;padding:0;list-style-type:none;display:flex;position:absolute}.\38 8x31>li{min-width:88px;margin:.5em;display:flex}.\38 8x31 img,.\38 8x31 svg{image-rendering:pixelated;width:88px;height:31px;filter:drop-shadow(0 0 .2em var(--mainShadow)) brightness(100%);transition:all .25s}:is(.\38 8x31 img,.\38 8x31 svg):hover{filter:drop-shadow(0 0 .5em var(--shadowHover)) brightness(125%)}@keyframes animateWave{to{filter:brightness(120%);transform:translateY(-.1em)}}.switch{white-space:nowrap;filter:hue-rotate()brightness();cursor:grab;transition:all .5s}.switch:hover{filter:hue-Rotate(var(--hoverHue)) brightness(100%)}.switch:active{cursor:grabbing;filter:hue-Rotate(var(--hoverHue)) brightness(150%);transition:all .3s}.switch>span{animation:1s ease-in-out infinite alternate animateWave;display:inline-block;transform:translateY(.1em)}.switch>span:first-child{color:#77fdc7;animation-delay:-2.28571s}.switch>span:nth-child(2){color:#78fdeb;animation-delay:-2s}.switch>span:nth-child(3){color:#78edfd;animation-delay:-1.71429s}.switch>span:nth-child(4){color:#75cafc;animation-delay:-1.42857s}.switch>span:nth-child(5){color:#73a7fb;animation-delay:-1.14286s}.switch>span:nth-child(6){color:#7289fa;animation-delay:-.857143s}.switch>span:nth-child(7){color:#9077ff;animation-delay:-.571429s}.switch>span:nth-child(8){color:#9077ff;animation-delay:-.285714s}.toc{font-size:.875rem;line-height:1.6}.toc ul{filter:hue-rotate();list-style-type:none;transition:filter .2s}.toc ul>li>a{background-image:var(--secondaryGradient);-webkit-text-fill-color:transparent;-moz-text-fill-color:transparent;filter:brightness()hue-rotate();background-color:#288ada;-webkit-background-clip:text;background-clip:text;transition:all .2s}.toc ul>li>a:hover{filter:brightness(150%)hue-rotate()}.toc ul>li>a[current-focus]{filter:brightness(120%)hue-rotate(-90deg);font-weight:900}.toc ul>li>a[current-focus]:hover{filter:brightness(150%)hue-rotate(-90deg)}.toc>ul{padding:4.5em 0 0;position:sticky;top:2rem}.toc>ul>li>ul{padding-left:1.5em}.toc>ul>li>ul>li>a:before{content:"✦  ";margin-left:-.5em}.toc>ul>li>a{background-image:var(--secondaryGradient)}.toc>ul>li>ul>li{overflow:clip}.toc>ul>li>ul>li>a{background-image:var(--tertiaryGradient)}@media screen and (width<=65em){.article-card>div{display:block}.article-card>div>.toc{display:none}.toc>ul{padding-top:0;padding-left:2em;padding-right:3em;top:0}}@media screen and (aspect-ratio>=1){.\38 8x31{width:53vw}}.saebyn-hello{float:right;shape-outside:polygon(29.77% 0, 100% 0px, 100% 100%, 64.07% 99.7%, 47.49% 71.98%, 42.34% 61.04%, 28.19% 58.79%, 9.48% 39.15%, 19.78% 29.8%, 26.45% 23.09%, 33.52% 11.72%, 29.03% 4.32%);shape-margin:1.4em;pointer-events:none;width:calc(100svh - 8em);max-width:100svw;height:calc(100svh - 8em);position:relative;overflow:hidden}.saebyn-hello>img{object-fit:cover;object-position:0.2% 0;background-size:cover;height:100%;display:block}.saebyn-hello>a{clip-path:polygon(33.08% 2.43%,51.87% 4.44%,59.5% 9.59%,47.96% 15.91%,48.84% 22.27%,56.8% 24.31%,58.9% 13.49%,68.99% 14.65%,75.23% 32.67%,56.99% 35.08%,60% 47.58%,82.55% 53.41%,68.74% 69.61%,73.59% 90.23%,80.88% 88.26%,88.32% 93.58%,69.19% 97.04%,53.13% 77.06%,42.66% 51.21%,29.03% 57.78%,22.06% 45.75%,12.15% 39.96%,25.23% 25.66%,32.37% 12.48%);pointer-events:auto;aspect-ratio:1;height:100%;display:block;position:relative;top:-100%}#hello-container{pointer-events:none;opacity:0;background-image:url(/assets/hello/background.png);background-size:cover;height:100%;transition:opacity .5s}#hello-container[loaded]{opacity:1}#hello-container canvas{width:100%;height:100%;display:block}@media screen and (aspect-ratio<=1){.saebyn-hello{float:none;margin-left:auto;margin-right:0;display:block}}@media screen and (width<=70svh){.saebyn-hello{float:none;min-width:calc(35svh + 50svw);margin-left:auto;margin-right:0;display:block;right:calc(35svh - 50svw)}}
