@font-face{font-family:lunasquee-site;font-style:normal;font-weight:400;src:url(./lunasquee-site.wbka4ZJu.eot?37371257);src:url(./lunasquee-site.wbka4ZJu.eot?37371257#iefix) format("embedded-opentype"),url(./lunasquee-site.Cb4ZbX2T.woff2?37371257) format("woff2"),url(./lunasquee-site.Dcqvq-y9.woff?37371257) format("woff"),url(./lunasquee-site.Bll4sXkR.ttf?37371257) format("truetype"),url(./lunasquee-site.iOIHyWMk.svg?37371257#lunasquee-site) format("svg")}[class*=" icon-"]:before,[class^=icon-]:before{font-family:lunasquee-site;font-style:normal;font-weight:400;speak:never;display:inline-block;font-variant:normal;line-height:1em;margin-left:.2em;margin-right:.2em;text-align:center;text-decoration:inherit;text-transform:none;width:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-language-typescript:before{content:""}.icon-language-javascript:before{content:""}.icon-nodejs:before{content:""}.icon-nestjs:before{content:""}.icon-angular:before{content:""}.icon-language-python:before{content:""}.icon-language-lua:before{content:""}.icon-language-java:before{content:""}.icon-rss-box:before{content:""}.icon-controller-classic:before{content:""}.icon-key-variant:before{content:""}.icon-icynet:before{content:""}.icon-gitlab:before{content:""}.icon-web:before{content:""}.icon-flutter:before{content:""}.icon-language-lua-variant:before{content:""}.icon-vuejs:before{content:""}.icon-react:before{content:""}.icon-pleroma:before{content:""}.icon-nuxt:before{content:""}.icon-home:before{content:""}.icon-search:before{content:""}.icon-share:before{content:""}.icon-archive:before{content:""}.icon-gitea:before{content:""}.icon-svelte-logo:before{content:""}.icon-bluesky:before{content:""}.icon-github-circled:before{content:""}.icon-rss:before{content:""}.icon-html5:before{content:""}.icon-reddit-alien:before{content:""}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#303030;color:#ddd}.hljs-keyword,.hljs-link,.hljs-literal,.hljs-section,.hljs-selector-tag{color:#fff}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-name,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#d88}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#979797}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title,.hljs-type{font-weight:700}.hljs-emphasis{font-style:italic}.language-list{align-items:center;display:flex;flex-wrap:wrap;font-size:3rem;justify-content:center;margin-bottom:1rem}.language-list span{opacity:.5;transition:opacity .33s linear}.language-list span:hover{opacity:1}.section{background-color:#313131;color:#eee;display:flex;flex-direction:column;min-height:100vh}.section .section-expand{flex-grow:1}.section .section-header{background-color:#383838;border-bottom:5px solid #252525;overflow:hidden;padding:.75rem;text-align:center;text-transform:uppercase}.section .section-header>h1{font-size:1.75rem}.section .section-content{background-color:#313131;color:#fff;display:flex;flex-direction:column;flex-grow:1;font-size:1.5rem;justify-content:space-around;min-height:calc(100vh - 80px);overflow:auto;padding:1rem 20%}@media screen and (max-width:800px){.section .section-content{padding:1rem}}.icon-list{font-size:1.5rem;margin:0 1.5rem;text-align:left}.icon-list ul{list-style:none;padding-left:0}.icon-list ul li{line-height:2rem}.icon-list .flex-center{align-items:center;display:flex;flex-direction:row}.icon-list [class^=icon-]{color:#fff;margin-right:.25rem}.icon-list h2{font-size:1.5rem;text-align:center}@media screen and (max-width:800px){.icon-list{font-size:1.25rem}}.blog{--blog-background:#eee;--blog-section-title-color:#4f4f4f;--blog-text-color:#555;--blog-link-color:#195f7a;--blog-sidebar-link-color:#006891;--blog-title-color:#000;background-color:var(--blog-background);min-height:100vh;width:100%}.blog a{color:var(--blog-link-color)}.blog__header{padding:1rem 0 0;text-align:center}.blog__header a{color:#000}.blog__nav{margin-bottom:1rem}.blog__nav-margin{margin-left:auto}.blog__nav ul{display:flex;flex-direction:row;list-style-type:none;margin:0 auto;max-width:82.4rem;padding:0}.blog__nav ul a{color:var(--blog-sidebar-link-color);padding:1rem 1.2rem}@media(max-width:768px){.blog__nav ul a{padding:.8rem 1rem}}.blog__content{display:flex;gap:1.5rem;margin:0 auto;max-width:1280px}@media(max-width:768px){.blog__content{flex-direction:column;gap:0}}@media(min-width:768px){.blog__main-col{width:70%}}@media(min-width:1080px){.blog__main-col{width:90%}}.blog__main-col img{display:block;height:auto;margin:auto;max-width:100%}.blog-post{margin:50px 0}.blog-post__title{padding:20px 20px 0}.blog-post__title h1{font-size:2rem}.blog-post__title a,.blog-post__title h1{color:var(--blog-title-color)}.blog-post__content{color:var(--blog-text-color);line-height:1.5;padding:0 20px}.blog-post__content code{background:#eee;padding:0 .3em;text-shadow:0 1px #fff}.blog-post__content .codeblock{background:#2d2d2d;border-color:#ddd;border-style:solid;border-width:1px 0;color:#ccc;line-height:22px;margin:0 -20px;overflow:auto;padding:15px 20px;width:calc(100% + 40px)}.blog-post__content .codeblock pre{margin:0}.blog-post__content .codeblock code{background:transparent;padding:0;text-shadow:none}.blog-post__content h1,.blog-post__content h2,.blog-post__content h3,.blog-post__content h4,.blog-post__content h5{font-weight:700;line-height:1.1em;margin:1.1em 0}.blog-post__content p,.blog-post__content table{margin:1.6em 0}.blog-post__content h1{font-size:2em}.blog-post__content h2{font-size:1.5em}.blog-post__content h3{font-size:1.3em}.blog-post__content h4{font-size:1.2em}.blog-post__content h5{font-size:1.1em}.blog-post__content dl,.blog-post__content ol,.blog-post__content ul{line-height:1.6em;margin:1.6em 20px;padding:0}.blog-post__continue{background-color:#efefef;border-radius:8px;color:#000!important;display:inline-block;margin:0 0 20px 20px;padding:.5rem 1.5rem}.blog-post__inner{background-color:#fff;box-shadow:1px 2px 3px #ddd;overflow:hidden}.blog-post__meta{font-size:14px;margin-bottom:.6rem;margin-left:5px}.blog-post__meta a{color:var(--blog-section-title-color);font-weight:700;letter-spacing:2px;line-height:1em;text-shadow:0 1px #fff}.blog-post__footer{border-top:1px solid #ddd;font-size:.85em;line-height:1.6em;margin:0 20px 20px;padding-top:1.6em}.blog-post__tags{display:flex;gap:1rem}.blog-post__tags .blog-post__tag{color:var(--blog-section-title-color)}.blog-post__page{display:flex;justify-content:space-between;margin-top:1.2rem}.blog-post__page-link{display:flex;flex-direction:column}.blog-post__page-link--newer{margin-left:auto;text-align:right}.blog-post__page-link:hover{text-decoration:none}.blog-post__page-link:hover .blog-post__page-name{text-decoration:underline}.blog-post__page-title{color:var(--blog-section-title-color);font-weight:700;line-height:1em;text-shadow:0 1px #fff}.blog__sidebar-block{margin:50px 0}.blog__sidebar-title{color:var(--blog-section-title-color);font-size:.85em;font-weight:700;letter-spacing:2px;line-height:1em;margin-bottom:1em;margin-left:5px;text-decoration:none;text-shadow:0 1px #fff;text-transform:uppercase}.blog__sidebar-content{background:#ddd;border:1px solid #ccc;border-radius:3px;box-shadow:inset 0 -1px 4px #ccc;color:#777;line-height:1.6em;padding:15px;text-shadow:0 1px #fff;word-wrap:break-word;font-size:.9em}.blog__sidebar a{color:var(--blog-sidebar-link-color)}.blog__sidebar ul{list-style-type:none;margin:0;padding:0}.blog__sidebar .tag-cloud a{display:inline-block;margin-right:5px}.blog-archives{margin:50px 0}.blog-archives__year{font-size:.85em;letter-spacing:2px;line-height:1em;margin-bottom:1em;margin-left:5px;text-decoration:none;text-transform:uppercase}.blog-archives__year a{color:var(--blog-section-title-color);font-weight:700;text-shadow:0 1px #fff}.blog-archives__posts{display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr)}@media(max-width:567px){.blog-archives__posts{grid-template-columns:1fr}}.blog-archives__time{color:var(--blog-section-title-color);display:block;font-size:.85em;line-height:1em;margin-bottom:.5em;text-decoration:none}.blog-archives__post{background-color:#fff;box-shadow:1px 2px 3px #ddd;padding:20px}.blog-archives__post header{display:flex;flex-direction:column;height:100%}.gridbox{align-content:center;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around;text-align:center}*,:after,:before{box-sizing:border-box}body,html{height:100%;margin:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}h1,h2,h3,h4,h5,p{margin:0}a{color:#64baff;text-decoration:none}a:hover{text-decoration:underline}footer{background-color:#424242;color:#fff;display:flex;flex-direction:column;gap:1rem;overflow:hidden;padding:1rem 0;text-align:center}
