@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vt323-latin-400-normal.wDgJuOC9.woff2)format("woff2"),url(/_astro/vt323-latin-400-normal.Dqn9ZSPj.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/pixelify-sans-latin-400-normal.DLrIX9QE.woff2)format("woff2"),url(/_astro/pixelify-sans-latin-400-normal.JapMNN6Z.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/pixelify-sans-latin-600-normal.Dd_Dy7u5.woff2)format("woff2"),url(/_astro/pixelify-sans-latin-600-normal.BNlgYbDL.woff)format("woff")}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/press-start-2p-latin-400-normal._wFEWmAB.woff2)format("woff2"),url(/_astro/press-start-2p-latin-400-normal.KLytu4cr.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-italic.B9rkokqX.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-italic.Bkkwkp6n.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff)format("woff")}:root{--bg:#0b0c0e;--bg-raised:#131519;--line:#23262d;--fg:#d9d6cc;--muted:#7d7a72;--phos:#f0954a;--phos-dim:#f0954a33;--ok:#7cc47f;--err:#e5675a;--font-term:"VT323", ui-monospace, Menlo, Consolas, monospace;--font-display:"Pixelify Sans", "VT323", ui-monospace, monospace;--font-read:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--size:1.35rem;color-scheme:dark}:root[data-phos=vert]{--phos:#6fdc8c;--phos-dim:#6fdc8c33}:root[data-phos=blanc]{--phos:#e9e6dc;--phos-dim:#e9e6dc2e}:root[data-phos=cyan]{--phos:#5fd4e8;--phos-dim:#5fd4e833}:root[data-phos=rose]{--phos:#ff8fc4;--phos-dim:#ff8fc433}:root[data-font=pixelify]{--font-term:"Pixelify Sans", ui-monospace, monospace;--size:1.15rem}:root[data-font=press]{--font-term:"Press Start 2P", ui-monospace, monospace;--size:.72rem}:root[data-font=jetbrains]{--font-term:"JetBrains Mono", ui-monospace, monospace;--size:.95rem}@view-transition{navigation:auto}::view-transition-old(root){animation:.22s both vt-out}::view-transition-new(root){animation:.38s cubic-bezier(.16,1,.3,1) both vt-in}@keyframes vt-out{to{opacity:0;filter:blur(3px)}}@keyframes vt-in{0%{opacity:0;filter:blur(3px);transform:translateY(8px)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font:var(--size)/1.45 var(--font-term);margin:0}body:after{content:"";pointer-events:none;z-index:5;background:radial-gradient(at 50% 40%,#0000 55%,#00000080 100%),repeating-linear-gradient(#ffffff05 0 1px,#0000 1px 3px);position:fixed;inset:0}.crt-off body:after{display:none}p{margin:0}.muted{color:var(--muted)}.phos{color:var(--phos);text-shadow:0 0 10px var(--phos-dim)}.ok{color:var(--ok)}.err{color:var(--err)}a{color:var(--phos);text-underline-offset:.2em}a:hover{text-shadow:0 0 12px var(--phos-dim)}:focus-visible{outline:1px solid var(--phos);outline-offset:2px}::selection{background:var(--phos);color:var(--bg)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.status{padding:.15rem max(16px, env(safe-area-inset-right,0px)) calc(.15rem + env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));background:var(--phos);color:var(--bg);white-space:nowrap;justify-content:space-between;gap:1rem;font-size:.85em;transition:background .3s;display:flex;overflow:hidden}.status a{color:inherit;text-decoration:none}.status a:hover,.status .sound:hover{text-shadow:none;text-decoration:underline}.status .right{gap:1rem;display:flex}.status .sound{all:unset;cursor:pointer}.status .sound:focus-visible{outline:1px solid var(--bg)}@media (width<=560px){.status .hide-sm{display:none}}.langs{top:max(.7rem, env(safe-area-inset-top,0px));right:max(16px, env(safe-area-inset-right,0px));z-index:7;border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:blur(6px);font:.88rem/1 var(--font-read);text-transform:uppercase;letter-spacing:.06em;gap:2px;padding:2px;animation:.42s cubic-bezier(.16,1,.3,1) .12s both in;display:flex;position:fixed}.lang-opt{color:var(--muted);align-items:center;gap:.45em;padding:.35em .6em;text-decoration:none;transition:color .16s,background .16s,box-shadow .16s;display:flex}.lang-opt .flag{filter:grayscale(.7)brightness(.8);width:auto;height:.95em;transition:filter .16s;display:block;box-shadow:0 0 0 1px #0006}.lang-opt.on{color:var(--phos);background:var(--phos-dim);box-shadow:inset 0 0 0 1px var(--phos);text-shadow:0 0 8px var(--phos-dim)}.lang-opt.on .flag,a.lang-opt:hover .flag,a.lang-opt:focus-visible .flag{filter:none}a.lang-opt:hover,a.lang-opt:focus-visible{color:var(--fg);background:var(--bg-raised);text-shadow:none}.fx-layer{z-index:30;cursor:pointer;width:100%;height:100%;transition:opacity .6s;animation:.4s both fx-in;position:fixed;inset:0}.fx-layer.out{opacity:0;pointer-events:none}@keyframes fx-in{0%{opacity:0}}.fx-boot{color:#c8c8c8;font:.95rem/1.5 var(--font-read);opacity:0;background:#000;padding:1.5rem max(16px,4vw);overflow:hidden}.fx-boot.on{opacity:1}.fx-boot p{white-space:pre-wrap;margin:0;animation:.12s both in}.fx-boot .err{color:#f55}.fx-boot .phos{color:var(--phos)}.fx-glitch body{animation:90ms steps(2,end) infinite fx-glitch}@keyframes fx-glitch{0%{filter:hue-rotate(90deg)contrast(1.6);transform:translate(3px,-2px)skew(2deg)}50%{filter:invert(.15)saturate(3);transform:translate(-4px,3px)}to{filter:hue-rotate(-60deg);transform:translate(2px,1px)skew(-3deg)}}.veil{z-index:10;background:var(--bg);color:var(--phos);opacity:0;pointer-events:none;place-items:center;transition:opacity .26s;display:grid;position:fixed;inset:0}.veil.on{opacity:1;pointer-events:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@view-transition{navigation:none}}.page{flex-direction:column;min-height:100dvh;display:flex}.page .top,.page .doc,.page .after{width:100%;max-width:50rem;padding-inline:max(16px, env(safe-area-inset-left,0px));margin-inline:auto}.page .top{padding-top:1.5rem;padding-right:9rem}@media (width<=560px){.page .top{padding-top:3.6rem;padding-right:max(16px, env(safe-area-inset-right,0px))}}.echo{color:var(--muted);overflow-wrap:anywhere}.echo .ps1{color:var(--phos);text-shadow:0 0 10px var(--phos-dim);text-decoration:none}.echo .path,.echo .typed{color:var(--fg)}.page .doc{flex:1;padding-block:1.2rem 2rem;animation:.42s cubic-bezier(.16,1,.3,1) both in}.page .after{padding-bottom:2rem}.page .after>*+*{margin-top:.4rem}.page .status{z-index:6;position:sticky;bottom:0}@keyframes in{0%{opacity:0;filter:blur(2px);transform:translateY(6px)}}.doc-title{font:600 clamp(1.8rem, 6vw, 2.8rem)/1.1 var(--font-display);color:var(--phos);text-shadow:0 0 18px var(--phos-dim), 0 0 2px var(--phos);text-wrap:balance;margin:0 0 .3rem}.doc-meta,.doc-meta a{color:var(--muted)}.doc-meta a:hover{color:var(--phos)}.doc-head{border-bottom:1px dashed var(--line);margin-bottom:2rem;padding-bottom:1rem}.ls{margin:0;padding:0;list-style:none}.ls li{grid-template-columns:11ch 1fr;gap:0 1.2rem;padding-block:.15rem;display:grid}.ls .date{color:var(--muted)}.ls .desc{color:var(--muted);grid-column:2}@media (width<=560px){.ls li{grid-template-columns:1fr}.ls .desc{grid-column:1}}.pager{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.pager a{border:1px solid var(--line);color:var(--fg);padding:.5rem .8rem;text-decoration:none;transition:border-color .16s,transform .16s cubic-bezier(.16,1,.3,1);display:block}.pager a:hover{border-color:var(--phos);text-shadow:none;transform:translateY(-2px)}.pager span{color:var(--muted);display:block}.pager .next{text-align:right;grid-column:2}@media (width<=560px){.pager{grid-template-columns:1fr}.pager .next{grid-column:1}}.prose{font:.95rem/1.75 var(--font-read);overflow-wrap:break-word}.prose>*+*{margin-top:1.1em}.prose :is(h2,h3,h4){font-family:var(--font-display);color:var(--fg);margin:2.2em 0 .6em;font-weight:600;line-height:1.2;position:relative}.prose h2{font-size:1.5rem}.prose h2:before{content:"## ";color:var(--phos)}.prose h3{font-size:1.2rem}.prose h3:before{content:"### ";color:var(--muted)}.prose h4{font-size:1rem}.prose strong{color:var(--phos);font-weight:600}.prose a{overflow-wrap:anywhere}.prose ul,.prose ol{padding-left:2.5ch}.prose li+li{margin-top:.3em}.prose ul>li::marker{content:"- ";color:var(--phos)}.prose blockquote{border-left:2px solid var(--phos);background:var(--bg-raised);color:var(--fg);margin-inline:0;padding:.6rem 1rem}.prose blockquote>*+*{margin-top:.6em}.prose hr{border:0;border-top:1px dashed var(--line);margin-block:2.5em}.prose :not(pre)>code{background:var(--bg-raised);border:1px solid var(--line);padding:.1em .35em;font-size:.9em}.prose pre{border:1px solid var(--line);border-left:2px solid var(--phos);scrollbar-width:thin;scrollbar-color:var(--line) transparent;margin-inline:0;padding:1rem 1.1rem;font-size:.85rem;line-height:1.6;position:relative;overflow-x:auto;background:var(--bg-raised)!important}.prose table{border-collapse:collapse;width:100%;font-size:.9em;display:block;overflow-x:auto}.prose :is(th,td){border:1px solid var(--line);text-align:left;padding:.4rem .8rem}.prose th{color:var(--phos);font-weight:600}.prose img{border:1px solid var(--phos);max-width:100%;height:auto;box-shadow:0 0 24px var(--phos-dim);margin-inline:auto;display:block}.prose figure{margin-inline:0}.prose figcaption{color:var(--muted);text-align:center;margin-top:.4rem;font-size:.85em}.prose .anchor{color:var(--muted);opacity:0;margin-left:.4em;text-decoration:none}.prose :is(h2,h3,h4):hover .anchor,.prose .anchor:focus{opacity:1}.prose .copy{all:unset;border:1px solid var(--line);background:var(--bg-raised);color:var(--muted);font:.75rem var(--font-read);cursor:pointer;padding:0 .5rem;position:absolute;top:.4rem;right:.5rem}.prose .copy:hover,.prose .copy:focus-visible{color:var(--phos);border-color:var(--phos)}
