@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/public-sans-vietnamese-wght-normal.CtlIRbEm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/public-sans-latin-ext-wght-normal.MQgHevqp.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/public-sans-latin-wght-normal.DdeTHZLK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink-950: #05090d;--ink-900: #081018;--ink-800: #0d1722;--panel: rgba(20, 33, 46, .45);--text: #e9eef2;--text-dim: #93a4b2;--text-faint: #5d6f7d;--blue: #46b1e1;--blue-deep: #1f7fb0;--amber: #e0a458;--line: rgba(233, 238, 242, .09);--line-strong: rgba(70, 177, 225, .35);--font-display: "Bricolage Grotesque Variable", Georgia, serif;--font-body: "Public Sans Variable", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--maxw: 62rem;--gutter: clamp(1.4rem, 5vw, 3.5rem)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:repeating-linear-gradient(0deg,transparent 0 47px,rgba(233,238,242,.025) 47px 48px),repeating-linear-gradient(90deg,transparent 0 47px,rgba(233,238,242,.025) 47px 48px),radial-gradient(120% 90% at 75% -10%,var(--ink-800) 0%,var(--ink-900) 45%,var(--ink-950) 100%);color:var(--text);font-family:var(--font-body);font-size:16.5px;line-height:1.65;min-height:100svh;overflow-x:hidden}a{color:var(--blue);text-decoration:none}.mono{font-family:var(--font-mono)}.atmosphere{position:fixed;inset:0;pointer-events:none;z-index:0}.glow{position:absolute;top:-30vh;right:-18vw;width:62vw;height:62vw;background:radial-gradient(closest-side,rgba(70,177,225,.13),transparent 70%)}.hex{position:absolute;color:var(--blue)}.hex-a{width:clamp(340px,44vw,660px);top:-8%;right:-12%;opacity:.16;animation:drift 26s ease-in-out infinite alternate}.hex-b{width:clamp(120px,14vw,200px);bottom:10%;left:-4%;opacity:.1;animation:drift 34s ease-in-out infinite alternate-reverse}@keyframes drift{0%{transform:translateY(-1.5%) rotate(-2deg)}to{transform:translateY(2.5%) rotate(3deg)}}.grain{position:absolute;inset:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.topbar,main,.foot-inner{position:relative;z-index:1;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.topbar{display:flex;align-items:center;justify-content:space-between;padding-top:clamp(1.4rem,3.5vw,2.4rem)}.brand img{display:block;height:clamp(34px,4.5vw,44px);width:auto}.topnav{display:flex;gap:1.8rem;font-size:.82rem;letter-spacing:.02em}.topnav a{color:var(--text-dim);transition:color .2s ease}.topnav a:hover{color:var(--blue)}.topnav .up{margin-left:.4ch;color:var(--text-faint)}.hero{padding-top:clamp(4rem,11vw,8.5rem);padding-bottom:clamp(3.5rem,8vw,6rem)}.kicker{display:flex;align-items:center;gap:.7rem;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);margin:0}.tick{width:8px;height:8px;flex:none;background:var(--blue);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);box-shadow:0 0 12px #46b1e1cc}h1{font-family:var(--font-display);font-size:clamp(2.9rem,1.6rem + 7.4vw,6.4rem);font-weight:620;font-variation-settings:"opsz" 60,"wdth" 88;line-height:.99;letter-spacing:-.028em;margin:1.4rem 0 0}.grad{background:linear-gradient(94deg,var(--blue) 8%,#7fd0f2 55%,var(--blue-deep) 110%);-webkit-background-clip:text;background-clip:text;color:transparent}.lead{max-width:46ch;margin:2rem 0 0;font-size:clamp(1.02rem,.95rem + .45vw,1.22rem);color:var(--text-dim)}.lead a{color:var(--text);border-bottom:1px solid var(--line-strong);transition:color .2s ease,border-color .2s ease}.lead a:hover{color:var(--blue);border-color:var(--blue)}.block{padding-block:clamp(1.6rem,4vw,2.8rem)}.block-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:clamp(1.3rem,3vw,2rem)}.index{color:var(--blue);font-size:.8rem}.block-head h2{font-size:.8rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin:0}.rule{flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent);transform:translateY(-.2em)}.scope{list-style:none;margin:0;padding:0;counter-reset:none}.scope li{display:flex;align-items:baseline;gap:clamp(1rem,3vw,2rem);padding:clamp(1.1rem,2.6vw,1.6rem) clamp(.4rem,1.5vw,1.2rem);border-top:1px solid var(--line);position:relative;transition:background .25s ease}.scope li:last-child{border-bottom:1px solid var(--line)}.scope li:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--blue);transform:scaleY(0);transform-origin:top;transition:transform .28s ease}.scope li:hover{background:var(--panel)}.scope li:hover:before{transform:scaleY(1)}.scope .n{color:var(--text-faint);font-size:.82rem;flex:none}.scope-text{display:flex;flex-direction:column;gap:.15rem}.scope strong{font-family:var(--font-display);font-variation-settings:"opsz" 30;font-size:clamp(1.15rem,1rem + .9vw,1.55rem);font-weight:560;letter-spacing:-.01em}.scope .detail{color:var(--text-dim);font-size:.98rem}.hexdot{margin-left:auto;flex:none;width:10px;height:10px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--text-faint);opacity:.5;transition:background .25s ease,opacity .25s ease,transform .25s ease}.scope li:hover .hexdot{background:var(--blue);opacity:1;transform:rotate(90deg)}.method{border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(6px);border-radius:14px;padding:clamp(1.4rem,3.5vw,2.2rem) clamp(1.4rem,3.5vw,2.4rem)}.method p{margin:0;max-width:58ch;font-size:clamp(1rem,.95rem + .35vw,1.15rem)}.proof{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:1.5rem 0 0;padding:1.2rem 0 0;border-top:1px dashed var(--line);font-size:.78rem;letter-spacing:.04em;color:var(--text-dim)}.proof .check{color:var(--amber);margin-right:.7ch}footer{position:relative;z-index:1;margin-top:clamp(2.5rem,7vw,5rem);border-top:1px solid var(--line)}.foot-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;padding-block:1.6rem 2rem;font-size:.8rem}.foot-inner a{color:var(--text-dim);transition:color .2s ease}.foot-inner a:hover{color:var(--blue)}.sep{color:var(--text-faint);margin-inline:.8ch}.fine{color:var(--text-faint);margin:0}[data-in]{animation:rise .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d, 0ms)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){[data-in],.hex-a,.hex-b{animation:none!important}}@media(max-width:640px){.scope li{flex-wrap:wrap;row-gap:.2rem}.hexdot{display:none}.scope-text{flex-direction:column}}
