@font-face{font-family:CMU-ui;font-family:CMU-nrm;src:url(../../../fonts/cmunui.ttf) format("truetype");font-weight:400;font-style:nomral}@font-face{font-family:CMU-nrm;src:url(../../../fonts/cmunrm.ttf) format("truetype");font-weight:400}@font-face{font-family:CMU-norm;src:url(../../../fonts/cmunorm.ttf) format("truetype");font-weight:400}@font-face{font-family:CMU-Mono;src:url(../../../fonts/cmunvt.ttf) format("truetype")}ul{line-height:1;opacity:.8}*{transition:.35s ease;box-sizing:border-box;text-rendering:optimizeLegibility;font-smooth:always}.shiki{background-color:#00000080!important;padding:15px!important;border-radius:5px!important;overflow-x:auto!important;margin:20px 0!important;border-left:3px solid var(--color-primary)!important;font-family:Courier New,monospace!important;font-size:.95rem!important;line-height:1.5!important}.shiki code{background:none!important;padding:0!important}.shiki span{font-style:inherit!important}html[data-theme=light] :global(.shiki){background-color:#f0f0f0cc!important}.shiki .line{padding:0 10px!important}.shiki-dark{color:#e0e0e0!important}.shiki-dark .shiki-token-keyword{color:#da2222!important}.shiki-dark .shiki-token-string{color:#a5d6ff!important}.shiki-dark .shiki-token-function{color:#d2a8df!important}.shiki-dark .shiki-token-number{color:#4980df!important}.shiki-dark .shiki-token-comment{color:#8b949e!important;font-style:italic!important}:root{--color-bg: #ededed;--color-bg: #dddddd;--color-text: #3d3d3d;--color-primary: #a0252a}html[data-theme=dark]{--color-bg: #000000;--color-bg: #0e0e0e;--color-text: #aaa998;--color-primary: #a0252a}body{margin:0;font-family:CMU-norm;font-family:Inconsolata;font-family:CMU-ui;font-family:CMU-nrm;font-weight:600;color:var(--color-text);background-color:var(--color-bg)}.main-block{padding:25px 0 0;text-align:center}.section{max-width:1024px;margin:auto;padding:30px;display:block;gap:0;width:100%}.section-fullsize{width:100dvw;margin:auto;padding:0;display:block;gap:0;width:100%}.text-block{max-width:500px;text-align:justify;padding:0 15px;opacity:.75;mix-blend-mode:overlay}.cards{color:#dedede;border-radius:5px;display:flex;gap:30px;flex-wrap:wrap;margin-top:15px;margin-bottom:15px}.card{max-width:500px;min-width:250px;margin:0 auto auto 0;border-radius:7.5px;padding:15px 25px 6.5px;text-align:left;flex:1;font-family:CMU-norm;font-family:CMU-Mono;font-family:Inconsolata;font-weight:750;background-color:#141e02c9;border:3px solid #4448;box-sizing:border-box;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.card .header{font-weight:550;font-family:CMU-norm;font-family:Inconsolata}.card a{font-weight:600}.card img{width:100%;margin-top:3.75px}.card-text-hover{width:100%;height:100%;margin:-15px -25px;padding:15px 25px;color:#fff;opacity:.4}.card-text-hover .header{opacity:.8;color:#fff;font-family:CMU-nrm;font-family:Inconsolata;gap:10}.card-text-hover p{color:#fffa}.card-text-hover:hover{opacity:.9}.container{margin-top:20px;display:flex;flex-direction:column}.projects-post p{font-family:Inconsolata;padding:5px;gap:50px;line-height:1.45;margin-top:25px;margin-bottom:25px;font-size:1.05rem;max-width:1000px;align-self:center}.projects-post::selection{color:var(--color-primary)}.projects-post ul,.projects-post li{font-family:Inconsolata;font-size:1.15rem}.projects-post pre{background-color:#0009;border:3px solid #4448;border-radius:4.5px;font-family:Inconsolata;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);line-height:1.25;font-size:1.15rem}.projects-post h1{position:sticky;left:0;top:30px;font-family:CMU-ui;font-family:CMU-nrm;font-size:1.4em;border-bottom:3px solid #888a;box-sizing:border-box;z-index:2;max-width:1024px;color:var(--color-text);background-color:var(--color-bg);padding:10px 12px 6px;opacity:1;margin:auto -4px 100px;font-size:calc(min(1000px,100dvw)/50 + .1dvw + .09rem);height:48px;text-align:center}.projects-post h2{position:sticky;border-bottom:3px solid #888a;left:0;top:72px;z-index:2;color:var(--color-text);padding:12px 8px 8px;background-color:var(--color-bg);font-size:1.1rem;height:47px;border-radius:2px;margin-right:-4px;margin-left:-4px}.projects-post h3{position:sticky;left:0;top:80px;z-index:2;color:var(--color-text);padding:1px 1em 5px 2em;background-color:var(--color-bg);font-size:1.15rem;width:fit-content;padding-right:auto;align-self:end;margin-left:auto;height:32px;transform:scale(.8);border-radius:8px}.projects-post pre code{font-family:Inconsolata}.projects-post pre code span{color:#eee}.projects-post pre code .parameter{color:#eea}.projects-post pre code .comment{color:#89a}.projects-post pre code .function{color:#8dd}.projects-post pre code .punctuation{color:#db9}.projects-post pre code .template-string{color:#0d0}.projects-post pre code .property{color:#ff9}.projects-post pre code .selector{color:#bb7}.projects-post pre code .keyword{color:#fa8}.projects-post pre code .constant{color:#a8a}.projects-post pre code .operator{color:#f99}.projects-post pre code .number{color:#dd8}.projects-post pre code .tag{color:#8a4}.projects-post pre code .attr-name{color:#d78}.projects-post pre code .attr-value{color:#ada}.projects-post img,.blog-post img{display:block;width:100%;height:auto;border-radius:4px;margin:30px auto}.projects-post video{display:block;width:100%;height:auto;border-radius:4px;margin:30px auto}.blog-post video{display:block;width:100%;height:auto;border-radius:4px;margin:30px auto}.blog-post p{font-family:Inconsolata;padding:5px;line-height:1.45;margin-top:25px;margin-bottom:25px;font-size:1.05rem;max-width:1000px;align-self:center}.blog-post::selection{color:var(--color-primary)}.blog-post ul,.blog-post li{font-family:Inconsolata;font-size:1.15rem}.blog-post pre{background-color:#0009;border:3px solid #4448;border-radius:4.5px;font-family:Inconsolata;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);line-height:1.25;font-size:1.15rem}.blog-post h1{position:sticky;left:0;top:30px;font-family:CMU-ui;font-family:CMU-nrm;font-size:1.4em;border-bottom:3px solid #888a;box-sizing:border-box;z-index:2;max-width:1024px;color:var(--color-text);background-color:var(--color-bg);padding:10px 12px 6px;opacity:1;margin:auto -4px 100px;font-size:calc(min(1000px,100dvw)/50 + .1dvw + .09rem);height:48px;text-align:center}.blog-post h2{position:sticky;border-bottom:3px solid #888a;left:0;top:72px;z-index:2;color:var(--color-text);padding:12px 8px 8px;background-color:var(--color-bg);font-size:1.1rem;height:47px;border-radius:2px;margin-right:-4px;margin-left:-4px}.blog-post h3{position:sticky;left:0;top:80px;z-index:2;color:var(--color-text);padding:1px 1em 5px 2em;background-color:var(--color-bg);font-size:1.15rem;width:fit-content;padding-right:auto;align-self:end;margin-left:auto;height:32px;transform:scale(.8);border-radius:8px}.blog-post pre code{font-family:Inconsolata}.blog-post pre code span{color:#eee}.blog-post pre code .parameter{color:#eea}.blog-post pre code .comment{color:#89a}.blog-post pre code .function{color:#8dd}.blog-post pre code .punctuation{color:#db9}.blog-post pre code .template-string{color:#0d0}.blog-post pre code .property{color:#ff9}.blog-post pre code .selector{color:#bb7}.blog-post pre code .keyword{color:#fa8}.blog-post pre code .constant{color:#a8a}.blog-post pre code .operator{color:#f99}.blog-post pre code .number{color:#dd8}.blog-post pre code .tag{color:#8a4}.blog-post pre code .attr-name{color:#d78}.blog-post pre code .attr-value{color:#ada}.header{margin-top:5px;margin-bottom:-2px;line-height:.9;font-family:CMU-ui;font-family:CMU-nrm}.ui{font-family:CMU-ui;font-family:CMU-nrm}hr{border:none;border-bottom:2px dashed #888}p{font-size:1.1rem;font-weight:560;font-synthesis-weight:auto;line-height:1.5}.ib{font-weight:600}.keyed{margin:3.75px -15px;padding:7.5px 15px;border-radius:3.75px;background-color:#0000}.keyed:hover{background-color:#000d}.inline-preview{margin:0;padding:15px 15px 0}.inline-preview:hover{text-decoration:underline 1.875px dotted}.card a{color:#fff}.card a:hover{color:#fea}.card a:visited{color:#fff}a{text-decoration:underline 1.375px dotted;color:#aaae}a:hover{color:#f32;text-decoration:underline 1.375px solid}a:visited{color:#aaae}.shaded{background-image:url(../../../back2.webp);background-color:#000c;color:#eeee;margin:30px 0 50px;background-attachment:fixed;background-position:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.switcher.svelte-u8uo5a{border:none;outline:none;color:var(--color-text);background-color:#0000;padding:2px 5px;border-radius:4px}.nav.svelte-1elxaub{width:100%;color:var(--color-text);position:fixed;top:0;height:30px;background-color:var(--color-bg);z-index:4}.border-part.svelte-1elxaub{max-width:1024px;margin-left:auto;margin-right:auto;height:30px;font-size:x-small;font-weight:800;display:flex;border-bottom:1.375px double black;border-bottom:1.375px double #aaa}.left-part.svelte-1elxaub{flex:1;align-items:center;white-space:nowrap;display:flex;padding:0 20px;gap:15px}.center-part.svelte-1elxaub{text-align:center;flex:1;display:flex;padding:0;gap:5px;padding-left:auto;padding-right:auto;align-items:center;justify-content:center}.right-part.svelte-1elxaub{display:flex;padding:0 20px;gap:15px;flex:0;align-items:center}.item.svelte-1elxaub{display:inline-flex;font-size:small}a.svelte-1elxaub{text-decoration:underline 1.375px dotted;color:var(--color-text)}a.svelte-1elxaub:hover,a.svelte-1elxaub:visited:hover{color:#d22;text-decoration:underline 1.375px solid}a.svelte-1elxaub:visited{color:var(--color-text)}.three-bg-canvas{position:fixed;inset:0;width:100dvw;height:100dvh;z-index:-1;pointer-events:none;display:block;opacity:.3}main{position:relative;z-index:1}
