@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-cyrillic-ext-wght-normal.d45eAU9y.woff2)format("woff2-variations");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 Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-cyrillic-wght-normal.BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-greek-wght-normal.CmyJS8uq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-vietnamese-wght-normal.Dg1JeJN0.woff2)format("woff2-variations");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 Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-latin-ext-wght-normal.CIII54If.woff2)format("woff2-variations");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 Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-latin-wght-normal.IvpUvPa2.woff2)format("woff2-variations");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: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:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.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:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.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:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.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:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.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:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.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:#161616;--bg2:#262626;--bg3:#393939;--ink:#f4f4f4;--soft:#c6c6c6;--line:#393939;--line2:#525252;--blue:#78a9ff;--cobalt:#4589ff;--magenta:#ff7eb6;--cyan:#33b1ff;--teal:#3ddbd9;--yellow:#f1c21b;--on-accent:#001141;--focus:#78a9ff;--margin-shade:#00000052;--shadow:0 18px 40px -22px #000000e6;--font:"IBM Plex Sans Variable", "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--maxw:1200px;--gutter:clamp(16px, 4vw, 40px);--hdr1:52px;--hdr2:2.75rem;--hdr:calc(var(--hdr1) + var(--hdr2));color-scheme:dark}:root[data-theme=light]{--bg:#fff;--bg2:#f4f4f4;--bg3:#e0e0e0;--ink:#161616;--soft:#525252;--line:#e0e0e0;--line2:#a8a8a8;--blue:#0f62fe;--cobalt:#0043ce;--magenta:#d02670;--cyan:#0072c3;--teal:#005d5d;--yellow:#8a6a00;--on-accent:#fff;--focus:#0f62fe;--margin-shade:#0000000d;--shadow:0 16px 34px -22px #141e2866;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px);-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{background:var(--bg);color:var(--ink);font:400 clamp(1rem, .96rem + .2vw, 1.12rem)/1.6 var(--font);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100dvh;margin:0;display:flex;position:relative;overflow-x:hidden}main{flex:1}body:after{--edge:max(6px, calc((100% - min(100% - 2 * var(--gutter), var(--maxw))) / 2 - clamp(8px, 2.5vw, 32px)));content:"";z-index:95;pointer-events:none;background:linear-gradient(90deg, var(--margin-shade) 0 var(--edge), var(--line) var(--edge) calc(var(--edge) + 1px), transparent calc(var(--edge) + 1px) calc(100% - var(--edge) - 1px), var(--line) calc(100% - var(--edge) - 1px) calc(100% - var(--edge)), var(--margin-shade) calc(100% - var(--edge)));position:fixed;inset:0}@media print{body:after{content:none}}img,svg,canvas{max-width:100%;display:block}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;margin:0 0 .5em;font-weight:640;line-height:1.08}h1{letter-spacing:-.035em;font-size:clamp(2.5rem,1.4rem + 5vw,5.2rem);font-weight:700}h2{font-size:clamp(1.7rem,1.3rem + 2vw,2.8rem)}h3{font-size:clamp(1.15rem,1.05rem + .5vw,1.45rem);line-height:1.2}p{text-wrap:pretty;margin:0 0 1em}a{color:var(--blue);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}::selection{background:var(--blue);color:var(--on-accent)}html{scrollbar-color:var(--line2) var(--bg);caret-color:var(--blue)}.icon{vertical-align:-.12em;flex:none;display:inline-block}code,kbd{font-family:var(--mono);font-size:.9em}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{background:var(--blue);color:var(--on-accent);z-index:300;padding:.6rem 1rem;font-weight:600;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.wrap{width:min(100% - 2 * var(--gutter), var(--maxw));margin-inline:auto}.narrow{width:min(100% - 2 * var(--gutter), 780px);margin-inline:auto}.block{padding-block:clamp(3rem,7vw,6.5rem);position:relative}.band{background:var(--bg2);border-block:1px solid var(--line)}.lead{color:var(--soft);max-width:52ch;font-size:clamp(1.1rem,1.05rem + .5vw,1.35rem);line-height:1.5}.sec-head{max-width:54rem;margin-bottom:clamp(1.8rem,4vw,3rem)}.sec-head p{color:var(--soft)}.grid{gap:clamp(1rem,2vw,1.5rem);display:grid}.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.split{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}.c-blue{--c:var(--blue)}.c-cobalt{--c:var(--cobalt)}.c-magenta{--c:var(--magenta)}.c-cyan{--c:var(--cyan)}.c-teal{--c:var(--teal)}.c-yellow{--c:var(--yellow)}.btn{--bg-b:var(--ink);--fg-b:var(--bg);--bd-b:var(--ink);cursor:pointer;min-height:46px;font:600 .95rem/1 var(--font);background:var(--bg-b);color:var(--fg-b);border:1px solid var(--bd-b);border-radius:2px;justify-content:center;align-items:center;gap:.5em;padding:.8em 1.25em;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{--bg-b:color-mix(in srgb, var(--ink) 82%, var(--bg));text-decoration:none}.btn.primary{--bg-b:var(--blue);--fg-b:var(--on-accent);--bd-b:var(--blue)}.btn.primary:hover{--bg-b:color-mix(in srgb, var(--blue) 80%, var(--ink));--bd-b:var(--bg-b)}.btn.ghost{--bg-b:transparent;--fg-b:var(--ink);--bd-b:var(--line2)}.btn.ghost:hover{--bg-b:var(--bg3);--bd-b:var(--blue)}.btn.sm{min-height:38px;padding:.55em .85em;font-size:.85rem}.tag{font:500 .78rem/1 var(--font);border:1px solid color-mix(in srgb, var(--c,var(--soft)) 60%, transparent);color:var(--c,var(--soft));white-space:nowrap;border-radius:2px;align-items:center;gap:.4em;padding:.4em .6em;display:inline-flex}.tag.lang{font:500 .72rem/1 var(--mono)}.tag.lang:before{content:"";background:currentColor;border-radius:50%;width:.6em;height:.6em}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.star{color:var(--yellow)}.prose{max-width:78ch}.prose h1{font-size:clamp(2rem,1.4rem + 3vw,3.2rem)}.prose h2{margin-top:2em;font-size:clamp(1.4rem,1.2rem + 1.2vw,2rem)}.prose h3{margin-top:1.6em}.prose pre{background:var(--bg2);border:1px solid var(--line);padding:1rem;overflow-x:auto}.prose code{background:var(--bg3);padding:.1em .35em}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:1px solid var(--line2);color:var(--soft);margin:1.5em 0;padding:.2em 0 .2em 1.4em;font-size:1.05em}.prose table{border-collapse:collapse;width:100%;font-size:.92rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.55rem .8rem}.prose th{background:var(--bg3);font-size:.9rem;font-weight:600}.prose img{max-width:100%;height:auto}.prose hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}.sky{z-index:-1;pointer-events:none;opacity:.26;background:top/cover no-repeat;height:min(78vh,720px);position:absolute;top:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000 0,#000000a6 38%,#0000 100%);mask-image:linear-gradient(#000 0,#000000a6 38%,#0000 100%)}:root[data-theme=light] .sky{opacity:.34}@media (width<=700px){.sky{background-size:auto 100%;height:min(60vh,520px)}}:root[data-theme=dark][data-sky="1"] .sky{background-image:url(/img/sky/dark-1.jpg)}:root[data-theme=dark][data-sky="2"] .sky{background-image:url(/img/sky/dark-2.jpg)}:root[data-theme=dark][data-sky="3"] .sky{background-image:url(/img/sky/dark-3.jpg)}:root[data-theme=dark][data-sky="4"] .sky{background-image:url(/img/sky/dark-4.jpg)}:root[data-theme=dark][data-sky="5"] .sky{background-image:url(/img/sky/dark-5.jpg)}:root[data-theme=dark][data-sky="6"] .sky{background-image:url(/img/sky/dark-6.jpg)}:root[data-theme=light][data-sky="1"] .sky{background-image:url(/img/sky/light-1.jpg)}:root[data-theme=light][data-sky="2"] .sky{background-image:url(/img/sky/light-2.jpg)}:root[data-theme=light][data-sky="3"] .sky{background-image:url(/img/sky/light-3.jpg)}:root[data-theme=light][data-sky="4"] .sky{background-image:url(/img/sky/light-4.jpg)}:root[data-theme=light][data-sky="5"] .sky{background-image:url(/img/sky/light-5.jpg)}:root[data-theme=light][data-sky="6"] .sky{background-image:url(/img/sky/light-6.jpg)}html:not([data-sky]) .sky{background-image:url(/img/sky/dark-1.jpg)}:root[data-theme=light]:not([data-sky]) .sky{background-image:url(/img/sky/light-1.jpg)}html.modal-open{overflow:hidden}img[data-zoom],a[data-zoom]{cursor:zoom-in}.logo[data-astro-cid-f7espo7c]{width:auto;color:var(--ink);display:block;overflow:visible}.vortex[data-astro-cid-f7espo7c]{transform-box:fill-box;transform-origin:50%;animation:14s linear infinite mael-spin}.vortex[data-astro-cid-f7espo7c].slow{animation-duration:22s;animation-direction:reverse}a:hover .vortex[data-astro-cid-f7espo7c]{animation-duration:3s}@keyframes mael-spin{to{transform:rotate(-360deg)}}.sb[data-astro-cid-mgub2ldv]{background:var(--bg3);border:1px solid var(--line);min-height:40px;color:var(--soft);cursor:pointer;font:400 .9rem var(--font);border-radius:2px;align-items:center;gap:.6rem;padding:0 .45rem 0 .7rem;transition:border-color .15s,color .15s,background-color .15s;display:inline-flex;box-shadow:inset 0 1px 2px #00000040}.sb[data-astro-cid-mgub2ldv]:hover{border-color:var(--blue);color:var(--ink);background:color-mix(in srgb, var(--bg3) 80%, var(--bg))}svg[data-astro-cid-mgub2ldv]{color:var(--blue);flex:none}.lbl[data-astro-cid-mgub2ldv]{text-align:left;flex:1}kbd[data-astro-cid-mgub2ldv]{font:500 .66rem var(--mono);background:var(--bg2);border:1px solid var(--line2);color:var(--soft);white-space:nowrap;border-bottom-width:2px;border-radius:2px;margin-left:auto;padding:.2em .45em .15em}.wide[data-astro-cid-mgub2ldv]{width:100%;max-width:20rem;min-height:44px}.compact[data-astro-cid-mgub2ldv]{min-width:13rem}.bar[data-astro-cid-mgub2ldv]{flex:1;max-width:34rem;min-height:42px;margin:0 auto}@media (width<=1060px){.compact[data-astro-cid-mgub2ldv]{justify-content:center;width:40px;min-width:0;padding:0}.compact[data-astro-cid-mgub2ldv] .lbl[data-astro-cid-mgub2ldv],.compact[data-astro-cid-mgub2ldv] kbd[data-astro-cid-mgub2ldv]{display:none}}@media (width<=640px){.bar[data-astro-cid-mgub2ldv] .lbl[data-astro-cid-mgub2ldv],.bar[data-astro-cid-mgub2ldv] kbd[data-astro-cid-mgub2ldv]{display:none}.bar[data-astro-cid-mgub2ldv]{justify-content:center;max-width:42px;padding:0}}@media (hover:none){kbd[data-astro-cid-mgub2ldv]{display:none}}.hdr[data-astro-cid-nen7h5rs]{z-index:91;height:var(--hdr1);background:var(--bg2);border-bottom:1px solid var(--line);position:sticky;top:0}.glass[data-astro-cid-nen7h5rs]{pointer-events:none;background:linear-gradient(180deg, color-mix(in srgb, var(--blue) 14%, transparent), color-mix(in srgb, var(--blue) 3%, transparent));backdrop-filter:blur(16px)saturate(1.3)brightness(.72);-webkit-mask-image:linear-gradient(180deg, #000 0, #000 calc(var(--hdr2) - 4px), transparent 100%);mask-image:linear-gradient(180deg, #000 0, #000 calc(var(--hdr2) - 4px), transparent 100%);position:absolute;inset:0 0 -22px}.glass[data-astro-cid-nen7h5rs]:after{content:"";background:color-mix(in srgb, var(--bg) 70%, transparent);position:absolute;inset:0}:root[data-theme=light] .glass[data-astro-cid-nen7h5rs]{background:linear-gradient(180deg, color-mix(in srgb, var(--blue) 14%, transparent), color-mix(in srgb, var(--blue) 3%, transparent));backdrop-filter:blur(16px)saturate(1.2)brightness(1.39)}.bar[data-astro-cid-nen7h5rs]{align-items:center;gap:1rem;height:100%;display:flex;position:relative}.brand[data-astro-cid-nen7h5rs]{color:var(--ink);flex:none;align-items:center;gap:.6rem;padding:.4rem 0;text-decoration:none;display:inline-flex}.tools[data-astro-cid-nen7h5rs]{flex:none;align-items:center;gap:.4rem;display:flex}.langs[data-astro-cid-nen7h5rs]{border:1px solid var(--line2);display:inline-flex}.langs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{font:500 .72rem var(--mono);color:var(--soft);padding:.45rem .55rem;text-decoration:none}.langs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=true]{background:var(--blue);color:var(--on-accent)}.icon-btn[data-astro-cid-nen7h5rs]{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;place-items:center;display:inline-grid}.icon-btn[data-astro-cid-nen7h5rs]:hover{border-color:var(--line2)}:root[data-theme=dark] .ic-sun[data-astro-cid-nen7h5rs],:root[data-theme=light] .ic-moon[data-astro-cid-nen7h5rs]{display:none}.tabs[data-astro-cid-nen7h5rs]{top:var(--hdr1);z-index:90;height:var(--hdr2);border-bottom:1px solid var(--line);position:sticky}.tabs-scroll[data-astro-cid-nen7h5rs]{scrollbar-width:none;-ms-overflow-style:none;align-items:stretch;height:100%;display:flex;position:relative;overflow-x:auto}.tabs-scroll[data-astro-cid-nen7h5rs]::-webkit-scrollbar{display:none}.tabs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--soft);font:500 .9rem var(--font);white-space:nowrap;flex:none;align-items:center;padding:0 1rem;text-decoration:none;display:flex;position:relative}.tabs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.tabs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink)}.tabs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]:after{content:"";background:var(--cobalt);height:2px;position:absolute;bottom:0;left:1rem;right:1rem}@media (width<=640px){.langs[data-astro-cid-nen7h5rs]{display:none}}.ftr[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);margin-top:clamp(2.5rem,5vw,4.5rem);padding:clamp(1.8rem,3.5vw,2.6rem) 0 1.2rem;font-size:.9rem;position:relative}.ftr[data-astro-cid-jo6i4kqk] .vortex{animation-play-state:paused}.top[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(220px,1fr) 3fr;gap:1.6rem;display:grid}.brand[data-astro-cid-jo6i4kqk]{color:var(--ink);text-decoration:none;display:inline-block}.search[data-astro-cid-jo6i4kqk]{margin:1.2rem 0 1rem}.who[data-astro-cid-jo6i4kqk]{color:var(--ink);margin:.6rem 0 .2rem;font-size:.95rem;font-weight:600}.role[data-astro-cid-jo6i4kqk]{color:var(--soft);margin:0 0 .8rem;font-size:.85rem}.small[data-astro-cid-jo6i4kqk]{color:var(--soft);max-width:34ch;font-size:.85rem}.mail[data-astro-cid-jo6i4kqk]{color:var(--ink)}.map[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.4rem 1.2rem;display:grid}h2[data-astro-cid-jo6i4kqk]{font:500 .9rem var(--font);color:var(--soft);margin:0 0 .55rem}ul[data-astro-cid-jo6i4kqk]{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--soft);text-decoration:none}.col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--blue);text-decoration:underline}.bottom[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--soft);flex-wrap:wrap;justify-content:space-between;gap:.4rem 2rem;margin-top:1.6rem;padding-top:1.2rem;font-size:.78rem;line-height:1.6;display:flex}.bottom[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{max-width:70ch;margin:0}.bottom[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--soft)}@media (width<=800px){.top[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr}}#search{border:1px solid var(--line2);background:var(--bg);color:var(--ink);width:min(640px,100% - 2rem);max-width:none;max-height:min(70dvh,560px);box-shadow:var(--shadow), 0 0 0 1px #0003;margin:12dvh auto auto;padding:0;overflow:hidden}#search[open]{flex-direction:column;animation:.16s ease-out srch-pop;display:flex}#search::backdrop{-webkit-backdrop-filter:blur(3px);background:#04080c9e}@keyframes srch-pop{0%{opacity:0;transform:translateY(-8px)}}#search .box{flex-direction:column;flex:1;min-height:0;margin:0;display:flex}#search .row{border-bottom:1px solid var(--line);color:var(--blue);background:var(--bg3);align-items:center;gap:.7rem;padding:0 .4rem 0 1rem;display:flex;box-shadow:inset 0 1px 2px #00000040}#search input{min-width:0;height:56px;color:var(--ink);font:400 1.05rem var(--font);-webkit-appearance:none;appearance:none;background:0 0;border:0;outline:none;flex:1}#search input::-webkit-search-cancel-button{display:none}#search input::placeholder{color:var(--soft);opacity:.8}#search .row:focus-within{border-bottom-color:var(--blue)}#search .x{min-width:44px;height:44px;color:var(--soft);cursor:pointer;font:500 .7rem var(--mono);background:0 0;border:0;justify-content:center;align-items:center;gap:.5rem;display:inline-flex}#search .x:hover{color:var(--ink)}#search .esc{border:1px solid var(--line2);border-radius:2px;padding:.2em .45em}#search ul{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;margin:0;padding:.3rem .4rem .4rem;list-style:none;overflow-y:auto}#search .grp{z-index:1;background:linear-gradient(var(--bg) 68%, transparent);font:500 .66rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.25rem;padding:.7rem .7rem .35rem;display:flex;position:sticky;top:0}#search .grp:first-child{margin-top:0}#search .grp .c{color:var(--line2);font-size:.64rem}#search .opt a{color:var(--ink);border-radius:3px;grid-template-columns:1.6rem 1fr auto;align-items:start;gap:.75rem;padding:.5rem .7rem;text-decoration:none;display:grid}#search .opt a>svg:first-child{color:var(--soft);margin-top:.2rem}#search .i-project{color:var(--cobalt)}#search .i-doc{color:var(--teal)}#search .i-page{color:var(--blue)}#search .opt .ext{color:var(--line2);align-self:center}#search .opt[aria-selected=true] a{background:var(--bg3)}#search .opt[aria-selected=true] a>svg:first-child,#search .opt[aria-selected=true] .b b{color:var(--blue)}#search .opt[aria-selected=true] .ext{color:var(--soft)}#search .b{gap:.08rem;min-width:0;display:grid}#search .b b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}#search .b .sub{color:var(--soft);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}#search .b .snip{color:var(--soft);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:.12rem;font-size:.8rem;line-height:1.45;display:-webkit-box;overflow:hidden}#search mark{background:color-mix(in srgb, var(--blue) 28%, transparent);color:inherit;border-radius:2px;padding:0 .08em}#search .b .snip mark{background:color-mix(in srgb, var(--blue) 20%, transparent)}#search .opt[aria-selected=true] mark{background:color-mix(in srgb, var(--blue) 42%, transparent)}#search .none{color:var(--soft);padding:1.4rem 1rem}#search .none p{margin:0}#search .keys{border-top:1px solid var(--line);font:400 .68rem var(--mono);color:var(--soft);gap:1.2rem;margin:0;padding:.55rem 1rem;display:flex}@media (hover:none),(width<=640px){#search .keys,#search .esc{display:none}}@media (width<=640px){#search{border:0;width:100%;height:100dvh;max-height:none;margin:0}#search input{font-size:16px}#search ul{padding-bottom:calc(.4rem + env(safe-area-inset-bottom))}#search .opt a{padding:.7rem}}.lb[data-astro-cid-utnzf2kr]{color:#f4f4f4;background:#000000f0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.lb[data-astro-cid-utnzf2kr][open]{animation:.18s ease-out fade;display:block}.lb[data-astro-cid-utnzf2kr]::backdrop{background:#000}@keyframes fade{0%{opacity:0}}.stage[data-astro-cid-utnzf2kr]{padding:calc(56px + env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) calc(64px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));touch-action:pan-x pan-y pinch-zoom;place-items:center;display:grid;position:absolute;inset:0}.stage[data-astro-cid-utnzf2kr] img[data-astro-cid-utnzf2kr]{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#ffffff08;width:auto;max-width:100%;height:auto;max-height:100%;transition:opacity .15s}.busy[data-astro-cid-utnzf2kr] .stage[data-astro-cid-utnzf2kr] img[data-astro-cid-utnzf2kr]{opacity:.25}.wait[data-astro-cid-utnzf2kr]{font:400 .8rem var(--mono);color:#c6c6c6;opacity:0;pointer-events:none;margin:0;position:absolute}.busy[data-astro-cid-utnzf2kr] .wait[data-astro-cid-utnzf2kr]{opacity:1}.b[data-astro-cid-utnzf2kr]{color:#f4f4f4;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;background:#393939d1;border:1px solid #ffffff38;border-radius:2px;place-items:center;width:48px;height:48px;display:grid;position:absolute}.b[data-astro-cid-utnzf2kr]:hover{border-color:var(--blue);color:var(--blue)}.b[data-astro-cid-utnzf2kr][hidden]{display:none}.close[data-astro-cid-utnzf2kr]{top:calc(8px + env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right))}.prev[data-astro-cid-utnzf2kr],.next[data-astro-cid-utnzf2kr]{top:50%;transform:translateY(-50%)}.prev[data-astro-cid-utnzf2kr]{left:max(8px, env(safe-area-inset-left))}.next[data-astro-cid-utnzf2kr]{right:max(8px, env(safe-area-inset-right))}.bar[data-astro-cid-utnzf2kr]{z-index:2;padding:.7rem max(1rem, env(safe-area-inset-right)) calc(.7rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));font:400 .8rem/1.4 var(--mono);background:linear-gradient(#0000,#030609eb);align-items:center;gap:1rem;display:flex;position:absolute;bottom:0;left:0;right:0}.cap[data-astro-cid-utnzf2kr]{-webkit-line-clamp:2;color:#d3dde4;-webkit-box-orient:vertical;flex:1;min-width:0;margin:0;display:-webkit-box;overflow:hidden}.n[data-astro-cid-utnzf2kr]{color:#c6c6c6;white-space:nowrap}.orig[data-astro-cid-utnzf2kr]{color:var(--blue);white-space:nowrap;padding:.6rem 0}@media (width<=640px){.prev[data-astro-cid-utnzf2kr],.next[data-astro-cid-utnzf2kr]{top:auto;bottom:calc(60px + env(safe-area-inset-bottom));opacity:.85;width:44px;height:44px;transform:none}.stage[data-astro-cid-utnzf2kr]{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.single[data-astro-cid-utnzf2kr] .stage[data-astro-cid-utnzf2kr]{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.bar[data-astro-cid-utnzf2kr]{flex-wrap:wrap;gap:.2rem 1rem}.cap[data-astro-cid-utnzf2kr]{flex-basis:100%}.orig[data-astro-cid-utnzf2kr]{margin-left:auto}}@media (height<=480px) and (orientation:landscape){.stage[data-astro-cid-utnzf2kr]{padding:8px 64px}.single[data-astro-cid-utnzf2kr] .stage[data-astro-cid-utnzf2kr]{padding:8px}.bar[data-astro-cid-utnzf2kr]{pointer-events:none;background:0 0;padding-bottom:.3rem}.cap[data-astro-cid-utnzf2kr],.orig[data-astro-cid-utnzf2kr]{display:none}.prev[data-astro-cid-utnzf2kr],.next[data-astro-cid-utnzf2kr]{top:50%;bottom:auto;transform:translateY(-50%)}}.crumbs[data-astro-cid-vx4iavld]{font:400 .78rem var(--mono);padding-block:1.2rem .4rem}ol[data-astro-cid-vx4iavld]{color:var(--soft);flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}li[data-astro-cid-vx4iavld]+li[data-astro-cid-vx4iavld]:before{content:"/";color:var(--cobalt);margin-right:.3rem}a[data-astro-cid-vx4iavld]{color:var(--soft)}a[data-astro-cid-vx4iavld]:hover{color:var(--blue)}[data-astro-cid-vx4iavld][aria-current]{color:var(--ink)}
