@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.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:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vt323-vietnamese-400-normal.D0VnvwZ9.woff2)format("woff2"),url(/_astro/vt323-vietnamese-400-normal.D_5Q7Vcv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/vt323-latin-ext-400-normal.iUdYUaX4.woff2)format("woff2"),url(/_astro/vt323-latin-ext-400-normal.DqOq58ri.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: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");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{color-scheme:dark;--bg:#201f1c;--fg:#e4d2ad;--dim:#a18d68;--acc:#966118;--acc-ink:#faf3e6;--acc-fg:#c48a3c;--hot:#c48a3c;--line:#3a3128;--todo:#9a875f;--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;--display:"VT323", var(--mono);--fs:15px;--lh:1.55;--col:78ch;--gutter-l:max(16px, env(safe-area-inset-left,0px));--gutter-r:max(16px, env(safe-area-inset-right,0px))}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{background:var(--bg);min-height:100%;color:var(--fg);font:var(--fs) / var(--lh) var(--mono);padding-left:var(--gutter-l);padding-right:var(--gutter-r);-webkit-font-smoothing:antialiased;margin:0;padding-block:3.4em 4.8em}body:before{content:"";pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,#00000024 0 1px,#0000 1px 3px),radial-gradient(#0000 55%,#00000073 100%);position:fixed;inset:0}a{color:var(--acc-fg);text-underline-offset:3px;text-decoration:underline 1px}a:hover,a:focus-visible,a:active{background:var(--acc);color:var(--acc-ink);text-decoration:none}:focus-visible{outline:2px solid var(--hot);outline-offset:2px}pre{font:inherit;white-space:pre;margin:0}code{font:inherit}h1,h2,h3,p,ul,ol,dl,table,figure{margin:0}ul,ol{padding-left:2ch}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}td,th{vertical-align:top;text-align:left;font-weight:inherit;overflow-wrap:break-word;padding:.15em 1.5ch .15em 0}td:first-child{color:var(--dim);white-space:nowrap}img{max-width:100%;height:auto}.dim{color:var(--dim)}.todo{color:var(--todo);font-style:italic}.prompt{color:var(--dim);overflow-wrap:anywhere;margin:0 0 .5em}.prompt .user{color:var(--fg);font-weight:600}.prompt .path{color:var(--acc-fg)}.prompt code{color:var(--fg);overflow-wrap:break-word}.cursor{background:var(--fg);vertical-align:text-bottom;width:1ch;height:1.1em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.section{margin-top:1.8em}.section:first-child{margin-top:0}.logo{width:min(100%,34em);height:auto;color:var(--acc-fg);margin:.3em 0 .8em;display:block}.pillars{color:var(--acc-fg);flex-wrap:wrap;gap:.2em 2ch;margin:0 0 .6em;display:flex}.lede{font-family:var(--display);color:var(--acc-fg);text-wrap:balance;margin:.2em 0 .5em;font-size:clamp(26px,5vw,38px);font-weight:400;line-height:1.05}.panel{border:1px solid var(--line);min-width:0;margin-top:.9em;padding:1.3em 1.5ch 1em;position:relative}.panel.dbl{border:3px double var(--line)}.ptitle{background:var(--bg);color:var(--acc-fg);letter-spacing:.06em;padding:0 .6ch;font-size:.9em;font-weight:600;position:absolute;top:-.75em;left:1.2ch}.panel>p+p{margin-top:.8em}.ls{grid-template-columns:1fr;gap:.3em 2ch;display:grid}.ls div{display:contents}.ls dt{color:var(--acc-fg);font-weight:600}.ls dd{margin:0 0 .6em}.k{color:var(--dim);width:6ch;display:inline-block}.copy{font:inherit;color:var(--dim);border:1px solid var(--line);cursor:pointer;background:0 0;min-height:44px;margin-left:1ch;padding:0 .8ch;font-size:.85em}.copy:hover,.copy:focus-visible{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}.fine{color:var(--dim);margin-top:2em;font-size:.85em}.statusline{top:env(safe-area-inset-top,0px);z-index:20;background:var(--acc);min-height:2em;color:var(--acc-ink);padding:.25em var(--gutter-r) .25em var(--gutter-l);align-items:center;gap:2ch;font-size:13px;display:flex;position:fixed;left:0;right:0}.statusline nav{flex:1;gap:1.5ch;display:none}.statusline a{color:inherit;padding:0 .3ch;text-decoration:none}.statusline a:hover,.statusline a:focus-visible,.statusline a[aria-current=page]{background:var(--acc-ink);color:var(--acc)}.statusline .right{white-space:nowrap;margin-left:auto}.hotkeys{z-index:20;background:var(--acc);color:var(--acc-ink);padding:0 var(--gutter-r) env(safe-area-inset-bottom,0px) var(--gutter-l);font-size:13px;position:fixed;bottom:0;left:0;right:0}.hotkeys a{min-height:44px;color:inherit;align-items:center;gap:.5ch;padding:0 .5ch;text-decoration:none;display:inline-flex}.hotkeys a b,.hotkeys summary b{background:var(--acc-ink);color:var(--acc);padding:0 .6ch;font-weight:600}.hotkeys a:hover,.hotkeys a:focus-visible,.hotkeys a[aria-current=page]{background:var(--acc-ink);color:var(--acc)}.hotkeys a:hover b,.hotkeys a:focus-visible b,.hotkeys a[aria-current=page] b{background:var(--acc);color:var(--acc-ink)}.hotkeys .row{display:none}.hotkeys .row a{flex:1;justify-content:center}.hotkeys .sheet summary{cursor:pointer;min-height:44px;font-size:var(--fs);align-items:center;gap:1ch;list-style:none;display:flex}.hotkeys .sheet summary::-webkit-details-marker{display:none}.hotkeys .sheet summary .cur:before{content:"· "}.hotkeys .sheet ul{background:var(--bg);color:var(--fg);border-top:1px solid var(--acc-fg);font-size:var(--fs);margin:0;padding:.3em 0;list-style:none;position:absolute;bottom:100%;left:0;right:0}.hotkeys .sheet li a{width:100%;padding:0 var(--gutter-l);color:var(--fg);gap:1.5ch;display:flex}.hotkeys .sheet li a b,.hotkeys .sheet li a:hover,.hotkeys .sheet li a:focus-visible,.hotkeys .sheet li a[aria-current=page]{background:var(--acc);color:var(--acc-ink)}.hotkeys .sheet li a:hover b,.hotkeys .sheet li a:focus-visible b,.hotkeys .sheet li a[aria-current=page] b{background:var(--acc-ink);color:var(--acc)}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.frame{max-width:calc(22ch + 2ch + var(--col));grid-template-columns:minmax(0,1fr);align-items:start;gap:1.4em 2ch;margin:0 auto;display:grid}.frame>main{min-width:0}.menu{display:none}.menu a{color:var(--fg);padding:.15em .5ch;text-decoration:none;display:block}.menu a u{color:var(--hot);text-decoration-color:var(--hot)}.menu a:hover,.menu a:focus-visible,.menu a[aria-current=page]{background:var(--acc);color:var(--acc-ink)}.menu a:hover u,.menu a:focus-visible u,.menu a[aria-current=page] u{color:var(--acc-ink)}@media (width>=600px){.frame{grid-template-columns:22ch minmax(0, var(--col))}.menu{top:calc(env(safe-area-inset-top,0px) + 4.3em);margin-top:.9em;display:block;position:sticky}.hotkeys .sheet{display:none}.hotkeys .row{display:flex}.hotkeys .row a{flex:none}.ls{grid-template-columns:14ch 1fr}.ls dd{margin:0}}@media (width>=800px){.stack.titles td:nth-child(2){white-space:nowrap}}@media (width>=1000px){.statusline nav{display:flex}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}@media print{:root{--bg:#fff;--fg:#111;--dim:#444;--acc:#000;--acc-ink:#fff;--acc-fg:#000;--hot:#000;--line:#999}body:before{display:none}body{padding-block:1em}.statusline,.hotkeys,.menu{position:static}}.panel+.panel{margin-top:1.8em}.meta{margin-top:.6em}.meta td:first-child{width:7ch}.meta td{overflow-wrap:anywhere}.body{margin-top:1em}.body>*+*{margin-top:.8em}.body img{margin-top:1em}.pager{flex-wrap:wrap;gap:3ch;margin-top:1em;display:flex}.links{overflow-wrap:anywhere}.prompt.end{margin-top:1.4em}@media (width<=799px){.stack,.stack tbody{display:block}.stack tr{grid-template-columns:var(--c1,7ch) 1fr;column-gap:1.5ch;display:grid}.stack td{padding-right:0}.stack td:nth-child(3){grid-column:2;padding-top:0}}figure{margin:0}figcaption{color:var(--dim);margin-top:.4em;font-size:.9em}.hero{margin-top:1em}.hero img,.strip img{border:1px solid var(--line);width:auto;max-width:100%;height:auto;display:block}.hero:not(.portrait) img{object-fit:contain;max-height:70vh}.hero a,.strip a{max-width:100%;display:inline-block}.hero a:hover,.strip a:hover,.hero a:focus-visible,.strip a:focus-visible{background:0 0}.proof-head{grid-template-columns:minmax(0,1fr);align-items:start;gap:1em 3ch;display:grid}.proof-head .hero.portrait{order:-1;justify-self:center;width:min(100%,300px);margin:.6em 0 0}.phone{border:2px solid var(--line);background:#000;border-radius:22px;padding:8px;display:block}.phone img{border:0;border-radius:14px;width:100%}.strip{scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--line) transparent;gap:1.5ch;margin-top:1.4em;padding:.4em 0 .6em;display:flex;position:relative;overflow-x:auto}.strip figure{scroll-snap-align:start;flex:none}.strip img{max-width:none;height:240px}.strip figcaption{white-space:normal;max-width:36ch;font-size:.85em}.js-strip .strip figcaption{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.strip-cap{color:var(--dim);margin-top:.4em;font-size:.9em;display:none}.js-strip .strip-cap{display:block}.strip-cap .n{color:var(--acc-fg)}dialog.viewer{background:var(--bg);color:var(--fg);border:1px solid var(--acc-fg);max-width:min(96vw,1400px);max-height:96vh;padding:2.4em 1.5ch 1em}dialog.viewer::backdrop{background:#000000d9}dialog.viewer figure{flex-direction:column;align-items:center;gap:.6em;display:flex}dialog.viewer img{cursor:pointer;width:auto;max-width:90vw;height:auto;max-height:78vh}dialog.viewer figcaption{text-align:center;max-width:70ch}dialog.viewer figcaption .n{color:var(--acc-fg)}dialog.viewer button{font:inherit;background:var(--acc);color:var(--acc-ink);cursor:pointer;border:0;min-width:44px;min-height:44px;padding:0 1ch;position:absolute}.vclose{top:.4em;right:.4em}.vprev{top:50%;left:.4em;transform:translateY(-50%)}.vnext{top:50%;right:.4em;transform:translateY(-50%)}.proof-pending{border:1px dashed var(--todo);color:var(--todo);margin-top:1em;padding:.8em 1.5ch}.thumb{display:none}.noimg{border:1px dashed var(--line);width:160px;height:107px;color:var(--todo);justify-content:center;align-items:center;font-size:.8em;display:flex}.thumb img{object-fit:cover;border:1px solid var(--line);width:160px;height:107px;display:block}@media (width>=600px){.thumb{width:160px;padding:.3em 0 .3em 1ch;display:table-cell}}@media (width>=800px){.proof-head.has-portrait{grid-template-columns:minmax(0,1fr) 300px}.proof-head .hero.portrait{order:0;margin-top:1em}.strip img{height:320px}}@media (width<=799px){.stack td.thumb{grid-column:1/-1;padding-left:0}}
