@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-cyrillic-ext-400-normal.C5u8faa9.woff2)format("woff2"),url(/_astro/ubuntu-mono-cyrillic-ext-400-normal.CL-A5l1V.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-cyrillic-400-normal.OGyu3tt3.woff2)format("woff2"),url(/_astro/ubuntu-mono-cyrillic-400-normal.Di_0TARV.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-greek-ext-400-normal.CUE8Ia0W.woff2)format("woff2"),url(/_astro/ubuntu-mono-greek-ext-400-normal.BNZd3ZNJ.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-greek-400-normal.CCUzT4Jh.woff2)format("woff2"),url(/_astro/ubuntu-mono-greek-400-normal.DR50Gfyl.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-latin-ext-400-normal.Cadvr_Yo.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-ext-400-normal.C-izf5FM.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-latin-400-normal.l4cqI2xd.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-400-normal.DpWeehTz.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ubuntu-mono-cyrillic-ext-700-normal.Bs-2rkWJ.woff2)format("woff2"),url(/_astro/ubuntu-mono-cyrillic-ext-700-normal.CqMWGnc6.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ubuntu-mono-cyrillic-700-normal.BFVeNRUG.woff2)format("woff2"),url(/_astro/ubuntu-mono-cyrillic-700-normal.Fcmsc1TE.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ubuntu-mono-greek-ext-700-normal.BT9L2HK2.woff2)format("woff2"),url(/_astro/ubuntu-mono-greek-ext-700-normal.C7ZC70Zm.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ubuntu-mono-greek-700-normal.BZ2dYCtm.woff2)format("woff2"),url(/_astro/ubuntu-mono-greek-700-normal.CzNTt3J6.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ubuntu-mono-latin-ext-700-normal.DW9JNpKV.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-ext-700-normal.DDYBRrrS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ubuntu-mono-latin-700-normal.nUYOZNIl.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-700-normal.g9eDMPsO.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-cyrillic-ext-400-italic.vIFCddP8.woff2)format("woff2"),url(/_astro/ubuntu-mono-cyrillic-ext-400-italic.CWlpOLPo.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-cyrillic-400-italic.DUSCFzjY.woff2)format("woff2"),url(/_astro/ubuntu-mono-cyrillic-400-italic.B01DtDFM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-greek-ext-400-italic.DFcEvUSK.woff2)format("woff2"),url(/_astro/ubuntu-mono-greek-ext-400-italic.CpwtGf4n.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-greek-400-italic.VbTMstSA.woff2)format("woff2"),url(/_astro/ubuntu-mono-greek-400-italic.Do_M3oJc.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-latin-ext-400-italic.JtYd4XE5.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-ext-400-italic.4imo9GFN.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ubuntu-mono-latin-400-italic.CoJvPx2A.woff2)format("woff2"),url(/_astro/ubuntu-mono-latin-400-italic.DzsLMQlc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0a0a0a;--sky-a:#000;--sky-b:#1a1a1a;--panel:#121212;--panel-2:#1c1c1c;--border:#333;--ink:#d6d6d6;--dim:#888;--link:#fff;--heading:#f0f0f0;--moon-fill:#e8e8e8;--moon-crater:#b5b5b5;--code:silver;--ok:#eaeaea;--shadow:0 4px 18px #00000080;--stars-opacity:.6;--font-mono:"Ubuntu Mono", ui-monospace, monospace;--radius:10px}:root[data-theme=light]{--bg:#f4f4f4;--sky-a:#d8d8d8;--sky-b:#fafafa;--panel:#fff;--panel-2:#ececec;--border:#cfcfcf;--ink:#2a2a2a;--dim:#6e6e6e;--link:#000;--heading:#1a1a1a;--moon-fill:#b0b0b0;--moon-crater:#8a8a8a;--code:#444;--ok:#2a2a2a;--shadow:0 4px 18px #0000001a;--stars-opacity:0}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);color-scheme:dark;scroll-behavior:smooth}html[data-theme=light]{color-scheme:light}body{font-family:var(--font-mono);color:var(--ink);min-height:100vh;font-size:1rem;line-height:1.75;transition:background .25s,color .25s}.starfield{z-index:-1;opacity:var(--stars-opacity);pointer-events:none;background:radial-gradient(1px 1px at 8% 12%,#ccc 50%,#0000 51%),radial-gradient(1px 1px at 23% 68%,#777 50%,#0000 51%),radial-gradient(1px 1px at 37% 25%,#ccc 50%,#0000 51%),radial-gradient(1px 1px at 52% 81%,#777 50%,#0000 51%),radial-gradient(1px 1px at 66% 8%,#ccc 50%,#0000 51%),radial-gradient(1px 1px at 74% 55%,#777 50%,#0000 51%),radial-gradient(1px 1px at 88% 30%,#ccc 50%,#0000 51%),radial-gradient(1px 1px at 94% 74%,#777 50%,#0000 51%),radial-gradient(1px 1px at 15% 90%,#777 50%,#0000 51%),radial-gradient(1px 1px at 45% 45%,#444 50%,#0000 51%);transition:opacity .4s;position:fixed;inset:0}.page{max-width:46rem;margin:0 auto;padding:0 1.25rem 3rem}h1,h2,h3,h4{font-family:var(--font-mono);color:var(--heading);font-weight:700;line-height:1.45}a{color:var(--link);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline 1px}:focus-visible{outline:2px solid var(--link);outline-offset:2px}::selection{background:var(--link);color:var(--bg)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;margin-bottom:1.25rem;padding:1.25rem 1.5rem;transition:border-color .15s,transform .15s;display:block}a.card:hover{border-color:var(--link);text-decoration:none;transform:translateY(-1px)}.card-title{margin-bottom:.375rem;font-size:1rem}a.card:hover .card-title{color:var(--link)}.card-desc{color:var(--ink);margin-bottom:.375rem;font-size:.9375rem}.meta{font-family:var(--font-mono);color:var(--dim);font-size:.8125rem}.meta a{color:var(--dim);text-underline-offset:2px;text-decoration:underline 1px}.section-label{font-family:var(--font-mono);color:var(--dim);letter-spacing:.08em;margin:2rem 0 1rem;font-size:.8125rem;font-weight:700}.section-label:before{content:"☾ "}.tag{font-family:var(--font-mono);color:var(--dim);background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:0 .65em;font-size:.75rem;line-height:1.6;display:inline-block}.crumbs{font-family:var(--font-mono);color:var(--dim);margin-bottom:1rem;font-size:.8125rem}.crumbs a{color:var(--dim)}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre{margin-bottom:1.1rem}.prose h2{margin:2rem 0 .75rem;font-size:1rem}.prose h2:before{content:"☾ ";color:var(--dim)}.prose h3{color:var(--ink);margin:1.5rem 0 .625rem;font-size:.875rem}.prose ul,.prose ol{padding-left:1.5rem}.prose li::marker{color:var(--dim)}.prose blockquote{border-left:3px solid var(--border);color:var(--dim);padding:.25rem 0 .25rem 1rem}.prose code{font-family:var(--font-mono);background:var(--panel-2);border:1px solid var(--border);color:var(--code);border-radius:4px;padding:.1em .35em;font-size:.85em}.prose pre{border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;font-size:.8125rem;overflow-x:auto;background:var(--panel)!important}.prose pre code{color:inherit;background:0 0;border:none;padding:0}.prose pre span{color:var(--ink)!important}.prose a{text-underline-offset:3px;text-decoration:underline 1px}.prose hr{border:none;border-top:1px dashed var(--border);margin:1.5rem 0}.dim{color:var(--dim)}.blink{animation:1.1s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}.header[data-astro-cid-hkbrpulz]{justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0 2rem;display:flex}.logo[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);color:var(--ink);align-items:center;gap:.5rem;font-size:1rem;font-weight:700;display:inline-flex}.logo[data-astro-cid-hkbrpulz]:hover{color:var(--link);text-decoration:none}.logo-cursor[data-astro-cid-hkbrpulz]{color:var(--link);animation:1.1s steps(2,start) infinite blink}.nav[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:.25rem 1rem;font-size:.875rem;display:flex}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{color:var(--dim)}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--link);text-decoration:none}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz][aria-current=page]{color:var(--heading);border-bottom:2px solid var(--heading)}#theme-toggle[data-astro-cid-hkbrpulz]{border:1px solid var(--border);color:var(--heading);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .55rem;font-size:.8125rem;line-height:1}#theme-toggle[data-astro-cid-hkbrpulz]:hover{border-color:var(--link);color:var(--link)}.icon-moon[data-astro-cid-hkbrpulz]{display:none}html[data-theme=light] .icon-moon[data-astro-cid-hkbrpulz]{display:inline}html[data-theme=light] .icon-sun[data-astro-cid-hkbrpulz]{display:none}.footer[data-astro-cid-hkbrpulz]{border-top:1px dashed var(--border);text-align:center;margin-top:3rem;padding-top:1.5rem}.footer[data-astro-cid-hkbrpulz] p[data-astro-cid-hkbrpulz]{margin-bottom:.25rem}
