.logo-mark{width:1.5rem;height:auto;display:block}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/fonts/ibm-plex-sans-cyrillic-ext-wght-normal.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(/fonts/ibm-plex-sans-cyrillic-wght-normal.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(/fonts/ibm-plex-sans-greek-wght-normal.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(/fonts/ibm-plex-sans-vietnamese-wght-normal.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(/fonts/ibm-plex-sans-latin-ext-wght-normal.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(/fonts/ibm-plex-sans-latin-wght-normal.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:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fira-code-cyrillic-ext-wght-normal.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:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fira-code-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fira-code-greek-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fira-code-greek-wght-normal.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:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fira-code-symbols2-wght-normal.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fira-code-latin-ext-wght-normal.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:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fira-code-latin-wght-normal.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}:root{--paper:#0b0910;--paper-raised:#1b1725;--surface:#14111c;--surface-soft:#181420;--text:#f5f2f8;--text-body:#e5e0ea;--muted:#b8b1c2;--violet:#a87cff;--violet-dark:#c3a7ff;--cyan:#66d0ff;--lilac:#34274a;--lilac-soft:#241c33;--danger:#ff8496;--line:#3b3448;--line-strong:#6b6078;--font-sans:"IBM Plex Sans Variable", system-ui, sans-serif;--font-code:"Fira Code Variable", ui-monospace, monospace;color:var(--text);background:var(--paper);font-family:var(--font-sans);font-synthesis:none;color-scheme:dark;text-rendering:optimizelegibility}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:20rem}body{background:var(--paper);min-height:100vh;margin:0;overflow-x:clip}::selection{color:var(--paper);background:var(--cyan)}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}img,svg{max-width:100%}.shell{width:min(100% - 3rem,72rem);margin-inline:auto}.reading-shell{width:min(100% - 3rem,43rem);margin-inline:auto}.grid-header{isolation:isolate;position:relative}.grid-header:before{content:"";pointer-events:none;z-index:-1;background:linear-gradient(#a87cff16 1px,#0000 1px) 0 0/3.5rem 3.5rem,linear-gradient(90deg,#66d0ff12 1px,#0000 1px) 0 0/3.5rem 3.5rem,linear-gradient(#f5f2f809 1px,#0000 1px) 0 0/14rem 14rem,linear-gradient(90deg,#f5f2f809 1px,#0000 1px) 0 0/14rem 14rem;width:100vw;position:absolute;inset:0 auto 0 50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}.skip-link{z-index:100;border:1px solid var(--line-strong);color:var(--text);background:var(--paper-raised);border-radius:.35rem;padding:.65rem .85rem;position:fixed;top:.7rem;left:.7rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.eyebrow{color:var(--violet-dark);font-family:var(--font-code);letter-spacing:.035em;text-transform:uppercase;align-items:center;gap:.55rem;margin:0 0 1rem;font-size:.8125rem;font-weight:600;display:flex}.eyebrow:before{background:linear-gradient(90deg, var(--violet), var(--cyan));content:"";width:1.5rem;height:1px}.button-row{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.button{border:1px solid var(--line-strong);min-height:2.85rem;color:var(--text);background:var(--paper-raised);border-radius:.5rem;justify-content:center;align-items:center;padding:.7rem 1rem;font-size:.9375rem;font-weight:600;text-decoration:none;transition:border-color .16s,transform .16s,background .16s;display:inline-flex}.button:hover{border-color:var(--cyan);background:#231e2f;transform:translateY(-2px)}.button.primary{border-color:var(--violet);color:var(--paper);background:var(--violet);box-shadow:4px 4px #4d2d79}.button.primary:hover{border-color:var(--cyan);box-shadow:3px 3px 0 var(--cyan);background:#ba96ff}.section-heading{max-width:46rem}.section-heading h2{letter-spacing:-.055em;margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.08}.section-heading p:not(.eyebrow){color:var(--text-body);margin:1.25rem 0 0;font-size:1.0625rem;line-height:1.7}.prose{color:var(--text-body);font-size:1.125rem;line-height:1.78}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{color:var(--text);letter-spacing:-.035em;scroll-margin-top:2rem;line-height:1.2}.prose h2{border-top:1px solid var(--line-strong);margin:3.5rem 0 1.1rem;padding-top:1.3rem;font-size:2rem}.prose h3{margin:2.5rem 0 .85rem;font-size:1.35rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin-block:1.25rem}.prose a{color:var(--violet-dark);text-decoration-color:color-mix(in srgb, var(--violet) 65%, transparent);text-underline-offset:.18em;text-decoration-thickness:.08em}.prose a:hover{text-decoration-color:var(--violet)}.prose :not(pre)>code{border:1px solid var(--line-strong);color:var(--violet-dark);background:var(--lilac-soft);font-family:var(--font-code);border-radius:.3rem;padding:.12rem .3rem;font-size:.84em}.prose pre{border:1px solid var(--line);color:var(--text);font-family:var(--font-code);border-radius:.65rem;padding:1.15rem 1.25rem;font-size:.86rem;line-height:1.7;overflow-x:auto;background:var(--surface)!important}.prose pre code{font-family:inherit}.prose blockquote{border-left:3px solid var(--violet);color:var(--text-body);margin-inline:0;padding:.15rem 0 .15rem 1.25rem}.prose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;padding:.7rem .85rem}.prose th{color:var(--text);font-family:var(--font-code);font-size:.8125rem}@media (width<=42rem){.shell,.reading-shell{width:min(100% - 2rem,72rem)}.button{flex:auto;min-height:3rem}.section-heading h2{font-size:clamp(2rem,10vw,2.75rem)}.prose{font-size:1.0625rem;line-height:1.75}.prose h2{margin-top:3rem;font-size:1.75rem}.prose h3{font-size:1.3rem}.prose pre{margin-inline:-.25rem;padding:1rem;font-size:.8125rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
