@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-ext-wght-normal.okcGN4Nq.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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-wght-normal.BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-ext-wght-normal.DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-wght-normal.sS1B39LI.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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-vietnamese-wght-normal.TKKdAiBA.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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-ext-wght-normal.B4u9PlvR.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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-wght-normal.DX-nOvPD.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{--blue:#004aad;--blue-700:#003a88;--blue-50:#eef3fb;--coral:#ff5757;--coral-600:#e0403f;--good:#1d7a45;--warn:#a65f00;--ink:#0b1628;--ink-2:#33415c;--muted:#5d6b82;--line:#dfe3ea;--paper:#f7f7f4;--surface:#fff;--navy:#0a1a33;--font-sans:"Inter Tight Variable", "Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--wrap:1160px;--gutter:clamp(16px, 4vw, 40px);--radius:10px;--shadow:0 1px 2px #0b16280a, 0 8px 24px #0b16280f}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}img,svg{max-width:100%;display:block}a{color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--blue-700)}:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:4px}h1,h2,h3,h4{letter-spacing:-.022em;text-wrap:balance;margin:0 0 .5em;font-weight:650;line-height:1.12}h1{letter-spacing:-.035em;font-size:clamp(2.4rem,5.6vw,4.1rem);font-weight:680}h2{font-size:clamp(1.75rem,3.4vw,2.5rem)}h3{letter-spacing:-.012em;font-size:1.22rem}p{text-wrap:pretty;margin:0 0 1em}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.section{padding:clamp(64px,9vw,120px) 0}.section--tight{padding:clamp(48px,6vw,80px) 0}.section--white{background:var(--surface);border-block:1px solid var(--line)}.section--navy{background:var(--navy);color:#e8edf5}.section--navy h2,.section--navy h3{color:#fff}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);align-items:center;gap:10px;margin-bottom:18px;font-size:.78rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--coral);width:18px;height:2px}.section--navy .eyebrow{color:#9db8e6}.lede{color:var(--ink-2);max-width:38em;font-size:clamp(1.1rem,1.6vw,1.28rem);line-height:1.55}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.btn{cursor:pointer;border:1.5px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:13px 22px;font-family:inherit;font-size:.98rem;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--blue);color:#fff}.btn--primary:hover{background:var(--blue-700);color:#fff}.btn--ghost{border-color:var(--line);color:var(--ink);background:var(--surface)}.btn--ghost:hover{border-color:var(--ink);color:var(--ink)}.btn--light{color:var(--navy);background:#fff}.btn--light:hover{background:var(--blue-50);color:var(--navy)}.btn svg{flex:none;width:16px;height:16px}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.site-header{z-index:50;-webkit-backdrop-filter:saturate(1.4)blur(12px);background:#f7f7f4db;border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--line)}.site-header .wrap{justify-content:space-between;align-items:center;gap:16px;height:68px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand img{width:30px;height:30px}.brand span{letter-spacing:.14em;font-size:.92rem;font-weight:700}.nav{align-items:center;gap:4px;display:flex}.nav a{color:var(--ink-2);border-radius:8px;padding:8px 12px;font-size:.95rem;font-weight:520;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--ink);background:#0b16280d}.nav .btn{border-radius:999px;margin-left:8px;padding:10px 18px}.nav a.btn--primary,.nav a.btn--primary:hover{color:#fff;background:var(--blue)}.nav a.btn--primary:hover{background:var(--blue-700)}.nav-toggle{color:var(--ink);cursor:pointer;background:0 0;border:0;margin-right:-8px;padding:8px;display:none}.nav-toggle svg{width:24px;height:24px}@media (width<=760px){.nav-toggle{display:block}.nav{background:var(--paper);border-bottom:1px solid var(--line);padding:8px var(--gutter) 20px;flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:68px;left:0;right:0}.nav.is-open{display:flex}.nav a{border-bottom:1px solid var(--line);border-radius:0;padding:14px 4px}.nav a:hover,.nav a[aria-current=page]{background:0 0}.nav .btn{border-bottom:0;border-radius:999px;justify-content:center;margin:16px 0 0;padding:14px}}.site-footer{background:var(--navy);color:#aebbd0;padding:64px 0 36px;font-size:.94rem}.site-footer a{color:#dfe7f3;text-decoration:none}.site-footer a:hover{color:#fff;text-decoration:underline}.footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:40px;display:grid}.footer-grid h4{color:#fff;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;font-size:.74rem;font-weight:500}.footer-grid ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.footer-brand{color:#fff;letter-spacing:.14em;align-items:center;gap:10px;margin-bottom:14px;font-weight:700;display:flex}.footer-brand img{background:#fff;border-radius:6px;width:30px;height:30px;padding:3px}.footer-base{border-top:1px solid #ffffff1a;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:48px;padding-top:22px;font-size:.85rem;display:flex}@media (width<=760px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>:first-child{grid-column:1/-1}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.grid-3{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}@media (width<=900px){.grid-3{grid-template-columns:1fr}}@media (width<=760px){.grid-2{grid-template-columns:1fr}}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px;display:flex}.section-head h2{max-width:18em;margin:0}.section-head p{max-width:34em;margin:12px 0 0}.prose{max-width:42rem;color:var(--ink-2);font-size:1.06rem}.prose h2{color:var(--ink);border-top:1px solid var(--line);margin-top:2.2em;padding-top:1.2em;font-size:1.5rem}.prose h2:first-child{border-top:0;margin-top:0;padding-top:0}.prose strong{color:var(--ink);font-weight:620}.prose ol,.prose ul{margin:0 0 1.2em;padding-left:1.3em}.prose li{margin-bottom:.7em;padding-left:.3em}.prose li::marker{color:var(--blue);font-family:var(--font-mono);font-weight:500}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{background:var(--ink);color:#fff;z-index:100;border-radius:6px;padding:8px 14px;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.todo{font-family:var(--font-mono);color:var(--coral-600);outline:1.5px dashed var(--coral);background:#fff4f4;border-radius:4px;padding:1px 6px;font-size:.85em;font-style:normal;font-weight:500}
