@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/font/plex/plex-sans-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/font/plex/plex-sans-500.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/font/plex/plex-sans-600.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/font/plex/plex-sans-700.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/font/plex/plex-mono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/font/plex/plex-mono-500.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/font/plex/plex-mono-600.woff2) format("woff2")}:root{--bg: #070b10;--surface: #0c121a;--surface-2: #111a24;--line: rgba(120, 180, 180, .14);--line-strong: rgba(120, 200, 190, .28);--fg: #cdd8e0;--fg-dim: #8394a1;--fg-mute: #55636f;--primary: #4be3c3;--primary-deep: #1f8f7d;--accent: #ffb454;--link: #6ce0ff;--ok: #5ad18a;--warn: #ffb454;--bad: #ff6b6b;--glow: 0 0 10px rgba(75, 227, 195, .35);--glow-soft: 0 0 22px rgba(75, 227, 195, .16);--mono: "IBM Plex Mono", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;--sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--step--1: clamp(.82rem, .79rem + .15vw, .9rem);--step-0: clamp(.96rem, .92rem + .2vw, 1.05rem);--step-1: clamp(1.15rem, 1.05rem + .5vw, 1.4rem);--step-2: clamp(1.45rem, 1.25rem + 1vw, 1.95rem);--step-3: clamp(1.9rem, 1.5rem + 2vw, 2.9rem);--step-4: clamp(2.4rem, 1.8rem + 3.2vw, 4rem);--radius: 8px;--radius-sm: 5px;--maxw: 1120px;--readw: 72ch;--nav-h: 58px;--space: 1rem}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{background:var(--bg);color-scheme:dark;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--sans);font-size:var(--step-0);line-height:1.7;color:var(--fg);background:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;overflow-x:hidden}::selection{background:#4be3c347;color:#eafffb}a{color:var(--link);text-decoration:none;transition:color .15s,text-shadow .15s}a:hover{color:#b8f6ff}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}h1,h2,h3,h4,h5,h6{font-family:var(--mono);font-weight:600;line-height:1.2;color:#e6eef2;text-wrap:balance;letter-spacing:-.01em}img,svg,video,canvas{max-width:100%;height:auto;display:block}*{scrollbar-width:thin;scrollbar-color:var(--primary-deep) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--primary-deep);border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.stack>*+*{margin-top:var(--space)}.eyebrow{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}.chip{display:inline-flex;align-items:center;gap:.35em;font-family:var(--mono);font-size:.78rem;padding:.12em .6em;border:1px solid var(--line);border-radius:999px;color:var(--fg-dim);background:#ffffff04;transition:border-color .15s,color .15s}a.chip:hover{border-color:var(--line-strong);color:var(--primary)}.badge-lang{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--accent);border:1px solid rgba(255,180,84,.4);border-radius:4px;padding:.05em .4em;vertical-align:middle}.prose{max-width:var(--readw)}.prose>*+*{margin-top:1.05em}.prose h2{font-size:var(--step-2);margin-top:2em;padding-bottom:.3em;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--nav-h) + 1rem)}.prose h3{font-size:var(--step-1);margin-top:1.7em;color:var(--primary);scroll-margin-top:calc(var(--nav-h) + 1rem)}.prose h4{font-size:var(--step-0);margin-top:1.4em;color:#dce6ea}.prose p,.prose li{color:var(--fg)}.prose a{color:var(--link);text-decoration:underline;text-decoration-color:#6ce0ff59;text-underline-offset:3px}.prose a:hover{text-decoration-color:var(--link)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose strong{color:#e9f1f4;font-weight:600}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.prose blockquote{border-left:3px solid var(--primary-deep);background:#4be3c30d;color:var(--fg-dim);padding:.6em 1.1em;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-style:italic}.prose img{border:1px solid var(--line);border-radius:var(--radius-sm);margin-inline:auto}.prose center{display:block;text-align:center}.prose center img{display:inline-block}.prose font{color:inherit}.prose :not(pre)>code{font-family:var(--mono);font-size:.88em;color:var(--primary);background:#4be3c317;border:1px solid var(--line);border-radius:4px;padding:.08em .4em;word-break:break-word}.prose pre.astro-code{font-family:var(--mono);font-size:.86rem;line-height:1.6;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;box-shadow:inset 0 0 40px #00000059;position:relative}.prose pre.astro-code code{font-family:inherit}.code-copy{position:absolute;top:.5rem;right:.5rem;font-family:var(--mono);font-size:.7rem;color:var(--fg-dim);background:#00000059;border:1px solid var(--line);border-radius:4px;padding:.18em .55em;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,border-color .15s}pre.astro-code:hover .code-copy{opacity:1}.code-copy:hover{color:var(--primary);border-color:var(--line-strong)}.prose table{width:100%;border-collapse:collapse;font-size:.92rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:.45em .7em;text-align:left}.prose thead th,.prose th{background:#4be3c312;color:var(--primary);font-family:var(--mono);font-weight:600}.prose tbody tr:nth-child(2n) td{background:#ffffff05}.prose td.danger,.prose .danger{background:#ff6b6b24!important}.prose td.warning,.prose .warning{background:#ffb45424!important}.prose td.success,.prose .success{background:#5ad18a24!important}.yt-embed{position:relative;aspect-ratio:16/9;margin:1.4em 0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.yt-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.asciinema-player{margin:1.4em 0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:2rem}.prose video{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.lang[data-astro-cid-r2b4e7hz]{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.8rem}.lang-link[data-astro-cid-r2b4e7hz]{color:var(--fg-mute);text-transform:uppercase;letter-spacing:.06em;padding:.2em 0}.lang-link[data-astro-cid-r2b4e7hz]:hover{color:var(--primary);text-shadow:var(--glow)}.lang-link[data-astro-cid-r2b4e7hz].active{color:var(--primary);font-weight:600}.lang[data-astro-cid-r2b4e7hz] .dot[data-astro-cid-r2b4e7hz]{color:var(--fg-mute);opacity:.6}.site-head[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:50;min-height:var(--nav-h);background:color-mix(in srgb,var(--surface) 78%,transparent);-webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);border-bottom:1px solid var(--line)}.bar[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1.5rem;min-height:var(--nav-h)}.brand[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.55rem;font-family:var(--mono);font-weight:600;color:#e8f2f4;text-transform:lowercase;letter-spacing:.02em}.brand[data-astro-cid-3ef6ksr2] img[data-astro-cid-3ef6ksr2]{border-radius:6px;filter:drop-shadow(0 0 8px rgba(75,227,195,.3))}.nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1.35rem;margin-left:auto;flex-wrap:wrap}.nav-link[data-astro-cid-3ef6ksr2]{font-family:var(--mono);font-size:.86rem;color:var(--fg-dim);text-transform:lowercase;position:relative;padding:.2em 0}.nav-link[data-astro-cid-3ef6ksr2]:before{content:"";color:var(--primary);margin-right:0}.nav-link[data-astro-cid-3ef6ksr2]:hover{color:var(--primary);text-shadow:var(--glow)}.nav-link[data-astro-cid-3ef6ksr2].active{color:var(--primary)}.nav-link[data-astro-cid-3ef6ksr2].active:before{content:"> "}.nav-toggle[data-astro-cid-3ef6ksr2],.burger[data-astro-cid-3ef6ksr2]{display:none}@media(max-width:800px){.bar[data-astro-cid-3ef6ksr2]{flex-wrap:wrap}.burger[data-astro-cid-3ef6ksr2]{display:inline-flex;flex-direction:column;gap:4px;margin-left:auto;cursor:pointer;padding:.4rem}.burger[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{width:22px;height:2px;background:var(--fg);transition:.2s}.nav[data-astro-cid-3ef6ksr2]{flex-basis:100%;flex-direction:column;align-items:flex-start;gap:.2rem;max-height:0;overflow:hidden;transition:max-height .25s ease;margin-left:0}.nav-link[data-astro-cid-3ef6ksr2]{padding:.5rem 0;width:100%}.nav-toggle[data-astro-cid-3ef6ksr2]:checked~.nav[data-astro-cid-3ef6ksr2]{max-height:60vh}.nav-toggle[data-astro-cid-3ef6ksr2]:checked~.burger[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[data-astro-cid-3ef6ksr2]:checked~.burger[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(2){opacity:0}.nav-toggle[data-astro-cid-3ef6ksr2]:checked~.burger[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(3){transform:translateY(-6px) rotate(-45deg)}}.site-foot[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 60%,transparent);margin-top:5rem}.foot[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center;justify-content:space-between;padding-block:1.4rem;font-family:var(--mono);font-size:.8rem;color:var(--fg-mute)}.prompt[data-astro-cid-sz7xmlte] .p[data-astro-cid-sz7xmlte]{color:var(--primary-deep)}.foot-links[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:1rem}.foot-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--fg-dim)}.foot-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--primary);text-shadow:var(--glow)}#constellation[data-astro-cid-ki4xnhu7]{position:fixed;inset:0;width:100vw;height:100vh;z-index:-2;display:block;background:radial-gradient(1200px 700px at 70% -10%,rgba(31,143,125,.1),transparent 60%),radial-gradient(900px 600px at 10% 110%,rgba(38,120,150,.08),transparent 55%),var(--bg)}#scanlines[data-astro-cid-ki4xnhu7]{position:fixed;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(to bottom,#0000 0 2px,#00000029 3px 3px);mix-blend-mode:multiply;opacity:.5}#main{min-height:60vh}[data-reveal]{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}[data-reveal].in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none}}
