@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/sora-latin-ext-wght-normal.CawQDOvP.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:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/sora-latin-wght-normal.DdqRvwsR.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.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: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}:root{color-scheme:light;--paper:#eef2f6;--panel:#fff;--panel-2:#e2e9f0;--ink:#0b1624;--ink-2:#425366;--rule:#c7d2dd;--signal:#086b60;--signal-ink:#fff;--signal-soft:#d4ece6;--warn:#b45309;--font-display:"Sora Variable", "Segoe UI", system-ui, sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;--text:1.0625rem;--text-sm:.9375rem;--text-xs:.8125rem;--label:.75rem;--h1:clamp(2.4rem, 1.6rem + 3.2vw, 4.4rem);--h2:clamp(1.6rem, 1.25rem + 1.2vw, 2.3rem);--h3:1.2rem;--lead:clamp(1.1rem, 1rem + .45vw, 1.3rem);--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4.5rem;--s9:6.5rem;--radius:4px;--measure:62ch;--wide:74rem;--ease:cubic-bezier(.2, 0, 0, 1);--t:.16s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#070d14;--panel:#0d1620;--panel-2:#122030;--ink:#e6edf5;--ink-2:#9fb0c3;--rule:#22303f;--signal:#3fd1bd;--signal-ink:#04201c;--signal-soft:#0f2f2b;--warn:#f5b041}}:root[data-theme=dark]{color-scheme:dark;--paper:#070d14;--panel:#0d1620;--panel-2:#122030;--ink:#e6edf5;--ink-2:#9fb0c3;--rule:#22303f;--signal:#3fd1bd;--signal-ink:#04201c;--signal-soft:#0f2f2b;--warn:#f5b041}@media (prefers-reduced-motion:reduce){:root{--t:0s}html{scroll-behavior:auto}}*,:before,:after{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text);margin:0;line-height:1.6}h1,h2,h3{font-family:var(--font-display);color:var(--ink);text-wrap:balance;margin:0 0 var(--s4);font-weight:600;line-height:1.12}h1{font-size:var(--h1);letter-spacing:-.03em;line-height:1.04}h2{font-size:var(--h2);letter-spacing:-.02em}h3{font-size:var(--h3);letter-spacing:-.01em}p,ul,ol,dl,address{margin:0 0 var(--s4)}p,li,dd,address{max-width:var(--measure)}address{font-style:normal}a{color:var(--signal);text-underline-offset:.2em;transition:text-decoration-thickness var(--t) var(--ease);text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}img,svg{max-width:100%;height:auto}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}::selection{background:var(--signal);color:var(--signal-ink)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{width:min(100% - 2rem, var(--wide));margin-inline:auto}.narrow{max-width:var(--measure)}.lead{font-size:var(--lead);color:var(--ink-2);line-height:1.5}.label{font-family:var(--font-mono);font-size:var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--signal);margin:0 0 var(--s3)}.skip-link{z-index:100;padding:var(--s2) var(--s4);background:var(--signal);color:var(--signal-ink);border-radius:var(--radius);position:absolute;top:0;left:-999px}.skip-link:focus{left:var(--s4);top:var(--s4)}.site-header{background:var(--paper);border-bottom:1px solid var(--rule)}.site-header__inner{align-items:center;gap:var(--s3) var(--s6);padding-block:var(--s4);flex-wrap:wrap;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-size:1.3rem;font-weight:700;text-decoration:none}.wordmark:hover{color:var(--ink);text-decoration:none}.site-nav{margin-left:auto}.site-nav ul{gap:var(--s2) var(--s5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-nav a{padding:var(--s1) 0;color:var(--ink-2);font-size:var(--text-sm);text-decoration:none;display:inline-block}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--signal)}.theme-toggle{align-items:center;gap:var(--s2);min-height:2.25rem;padding:0 var(--s3);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);background:0 0;display:inline-flex}.theme-toggle:hover{border-color:var(--ink-2)}.theme-toggle__icons{display:grid}.theme-toggle .icon{grid-area:1/1;display:block}.theme-toggle .icon-moon,:root[data-theme=dark] .theme-toggle .icon-sun{opacity:0}:root[data-theme=dark] .theme-toggle .icon-moon{opacity:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{opacity:0}:root:not([data-theme=light]) .theme-toggle .icon-moon{opacity:1}}@media (width<=47.99rem){.theme-toggle__label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.theme-toggle{justify-content:center;width:2.25rem;padding:0}.site-nav{flex-basis:100%;margin-left:0}}main{padding-block:0 var(--s9)}.section{padding-block:var(--s8);border-top:1px solid var(--rule)}.section--tight{padding-block:var(--s7)}.section__head{gap:var(--s2);margin-bottom:var(--s6);display:grid}.section__head h2{margin:0}.section__head p{color:var(--ink-2);margin:0}.hero{padding-block:var(--s8) var(--s8);position:relative;overflow:hidden}.hero:before{content:"";background-image:radial-gradient(var(--rule) 1px, transparent 1.2px);pointer-events:none;background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000e6,#0000 85%);mask-image:linear-gradient(#000000e6,#0000 85%)}.hero>*{position:relative}.hero__grid{gap:var(--s7);grid-template-columns:1fr;align-items:center;display:grid}.hero h1{max-width:16ch}.hero .lead{margin-bottom:var(--s6)}.actions{gap:var(--s3) var(--s5);flex-wrap:wrap;align-items:center;margin:0;display:flex}.actions .button{text-align:center;width:100%}@media (width>=48rem){.hero__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.actions .button{width:auto}}.button{border-radius:var(--radius);font-weight:600;font-family:var(--font-body);transition:background var(--t) var(--ease), border-color var(--t) var(--ease);cursor:pointer;border:1px solid #0000;padding:.8em 1.3em;text-decoration:none;display:inline-block}.button--primary{background:var(--signal);color:var(--signal-ink)}.button--primary:hover{background:var(--ink);color:var(--paper);text-decoration:none}.button--secondary{color:var(--ink);border-color:var(--rule);background:0 0}.button--secondary:hover{border-color:var(--ink);color:var(--ink);text-decoration:none}.text-link{font-weight:600}.grid-rule{background:var(--rule);border:1px solid var(--rule);grid-template-columns:1fr;gap:1px;margin:0;padding:0;list-style:none;display:grid}.grid-rule>li{background:var(--panel);padding:var(--s5)}.grid-rule h3{margin-bottom:var(--s2)}.grid-rule p{color:var(--ink-2);font-size:var(--text-sm);margin:0}.grid-rule .label{margin-bottom:var(--s2)}@media (width>=48rem){.grid-rule--2,.grid-rule--4{grid-template-columns:repeat(2,1fr)}.grid-rule--3{grid-template-columns:repeat(3,1fr)}}@media (width>=64rem){.grid-rule--4{grid-template-columns:repeat(4,1fr)}}.cards{gap:var(--s4);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s5);gap:var(--s2);align-content:start;display:grid}.card h3{margin:0}.card p{color:var(--ink-2);font-size:var(--text-sm);margin:0}.card .detail{margin:var(--s2) 0 0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-2)}.card .detail dt{color:var(--signal);letter-spacing:.08em;text-transform:uppercase;font-size:var(--label)}.card .detail dd{margin:var(--s1) 0 0;line-height:1.7}@media (width>=48rem){.cards--2{grid-template-columns:repeat(2,1fr)}.cards--3{grid-template-columns:repeat(3,1fr)}}.split{gap:var(--s5) var(--s7);grid-template-columns:1fr;align-items:start;display:grid}.split ul{padding-left:1.1em}.split li{margin-bottom:var(--s2)}@media (width>=48rem){.split{grid-template-columns:1fr 1fr}}.steps{counter-reset:step;gap:var(--s3);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.steps>li{counter-increment:step;gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--rule);grid-template-columns:auto 1fr;align-items:baseline;display:grid}.steps>li:before{content:counter(step, decimal-leading-zero);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--signal)}.steps strong{font-family:var(--font-display);font-weight:600;display:block}.steps p{margin:var(--s1) 0 0;color:var(--ink-2);font-size:var(--text-sm)}@media (width>=48rem){.steps--grid{column-gap:var(--s7);grid-template-columns:repeat(2,1fr)}}.stack{border-top:1px solid var(--rule);grid-template-columns:1fr;gap:0;margin:0;display:grid}.stack>div{gap:var(--s1);padding:var(--s4) 0;border-bottom:1px solid var(--rule);display:grid}.stack dt{font-family:var(--font-display);font-weight:600}.stack dd{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-2);margin:0;line-height:1.7}@media (width>=48rem){.stack>div{gap:var(--s5);grid-template-columns:14rem 1fr;align-items:baseline}}.band{border:1px solid var(--rule);background:var(--panel);padding:var(--s6);gap:var(--s5);border-radius:var(--radius);grid-template-columns:1fr;align-items:center;display:grid}.band h2{margin-bottom:var(--s2)}.band p{color:var(--ink-2);margin:0}@media (width>=48rem){.band{grid-template-columns:1.4fr 1fr}.band .actions{justify-content:flex-end}}.notice{border-left:3px solid var(--warn);background:var(--panel);padding:var(--s4) var(--s5)}.notice h2{font-size:var(--h3);margin-bottom:var(--s2)}.notice p{color:var(--ink-2);margin:0}.dl{gap:var(--s2) var(--s6);grid-template-columns:1fr;margin:0;display:grid}.dl dt{font-family:var(--font-mono);font-size:var(--label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.dl dd{margin:0 0 var(--s3)}@media (width>=48rem){.dl{grid-template-columns:max-content 1fr;align-items:baseline}.dl dd{margin-bottom:var(--s2)}}.diagram{width:100%;max-width:30rem;color:var(--ink);margin-inline:auto}.diagram text{font-family:var(--font-mono);fill:currentColor;letter-spacing:.02em;font-size:13px}.diagram rect{fill:var(--panel);stroke:var(--rule);stroke-width:1px}.diagram .line{stroke:var(--signal);stroke-width:1.5px;fill:none;stroke-dasharray:4 4}.diagram .dot{fill:var(--signal)}.diagram .tag{fill:var(--signal);letter-spacing:.12em;font-size:10px}.form{gap:var(--s4);max-width:40rem;display:grid}.form__row{gap:var(--s4);grid-template-columns:1fr;display:grid}@media (width>=40rem){.form__row{grid-template-columns:1fr 1fr}}.field{gap:var(--s1);display:grid}.field label{font-weight:600;font-size:var(--text-sm)}.field .hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-2);margin:0}.field input,.field select,.field textarea{width:100%;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:.65em .8em}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--signal);outline-offset:0;border-color:var(--signal)}.field textarea{resize:vertical;min-height:9rem}.field--check{align-items:start;gap:var(--s3);grid-template-columns:auto 1fr}.field--check input{width:1.1rem;height:1.1rem;margin-top:.3rem}.field--check label{font-weight:400}.form__status{border-left:3px solid var(--warn);background:var(--panel);padding:var(--s3) var(--s4);font-size:var(--text-sm)}.form__status[hidden]{display:none}.form__status ul{margin:var(--s2) 0 0;padding-left:1.1em}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.site-footer{border-top:1px solid var(--rule);background:var(--panel-2);padding-block:var(--s7);font-size:var(--text-sm);color:var(--ink-2)}.site-footer__inner{gap:var(--s5);grid-template-columns:1fr;display:grid}.site-footer__name{font-family:var(--font-display);color:var(--ink);margin-bottom:var(--s1);font-weight:600}.site-footer nav ul{gap:var(--s2) var(--s4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-footer a{color:var(--ink-2)}.site-footer a:hover{color:var(--ink)}.site-footer__legal{font-family:var(--font-mono);font-size:var(--text-xs);margin:0}@media (width>=48rem){.site-footer__inner{grid-template-columns:1.5fr 1fr 1fr}.site-footer__legal{grid-column:1/-1}}
