@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-ext-400-italic.C9HzH3YL.woff2)format("woff2"),url(/_astro/instrument-serif-latin-ext-400-italic.D7-lnxEk.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:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-italic.DKMiL14s.woff2)format("woff2"),url(/_astro/instrument-serif-latin-400-italic.u__WvvIK.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{--paper:#f7f5ff;--paper-2:#efebfe;--card:#fff;--ink:#15102c;--ink-2:#4a4368;--ink-3:#7a7396;--line:#15102c17;--line-strong:#15102c29;--violet-50:#f3f0ff;--violet-100:#e6e0fd;--violet-200:#d2c8ff;--violet-300:#b7a9ff;--violet-400:#9c8cf0;--violet-500:#7b66f0;--violet-600:#5b47d6;--violet-700:#4533b0;--violet-800:#2c1f7a;--violet-900:#1a1250;--mint:#8fe9c5;--mint-2:#c6f5e2;--mint-ink:#1d5a43;--night:#0d0920;--night-2:#17122f;--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Instrument Serif", ui-serif, Georgia, serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--spring:cubic-bezier(.34, 1.4, .64, 1);--gutter:clamp(16px, 4vw, 40px);--maxw:1200px;--radius:22px;--shadow-lg:0 1px 0 #fff9 inset, 0 40px 80px -30px #2c1f7a73, 0 18px 36px -18px #15102c4d;color-scheme:light}@supports (transition-timing-function:linear(0, 1)){:root{--spring:linear(0, .009, .035 2.1%, .141 4.4%, .281 6.7%, .723 12.9%, .938 16.7%, 1.017, 1.077 20.4%, 1.121, 1.149 24.3%, 1.159, 1.163 27%, 1.154, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.55;overflow-x:clip}img,svg{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit}::selection{background:var(--violet-200);color:var(--violet-900)}:focus-visible{outline:2px solid var(--violet-600);outline-offset:3px;border-radius:6px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:#fff;transition:top .2s var(--ease-out);border-radius:999px;padding:10px 16px;text-decoration:none;position:absolute;top:-60px;left:16px}.skip-link:focus{top:16px}.wrap{width:min(var(--maxw), 100% - 2 * var(--gutter));margin-inline:auto}.serif{font-family:var(--font-serif);letter-spacing:-.01em;font-style:italic;font-weight:400}.mono{font-family:var(--font-mono)}.vf{--vf-c:currentColor;--vf-l:9px;--vf-w:1.5px;background:linear-gradient(var(--vf-c), var(--vf-c)) top left / var(--vf-l) var(--vf-w), linear-gradient(var(--vf-c), var(--vf-c)) top left / var(--vf-w) var(--vf-l), linear-gradient(var(--vf-c), var(--vf-c)) top right / var(--vf-l) var(--vf-w), linear-gradient(var(--vf-c), var(--vf-c)) top right / var(--vf-w) var(--vf-l), linear-gradient(var(--vf-c), var(--vf-c)) bottom left / var(--vf-l) var(--vf-w), linear-gradient(var(--vf-c), var(--vf-c)) bottom left / var(--vf-w) var(--vf-l), linear-gradient(var(--vf-c), var(--vf-c)) bottom right / var(--vf-l) var(--vf-w), linear-gradient(var(--vf-c), var(--vf-c)) bottom right / var(--vf-w) var(--vf-l);background-repeat:no-repeat}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--violet-700);align-items:center;gap:10px;padding:7px 14px;font-size:12.5px;font-weight:500;display:inline-flex}.eyebrow .dot{background:var(--mint);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #8fe9c559}.btn{--btn-bg:var(--ink);--btn-fg:#fff;background:var(--btn-bg);height:52px;color:var(--btn-fg);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;transition:transform .4s var(--spring), box-shadow .3s var(--ease-out), background-color .2s;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:16px;font-weight:560;text-decoration:none;display:inline-flex;position:relative}.btn:hover{transform:translateY(-2px)}.btn:active{transition-duration:80ms;transform:translateY(0)scale(.98)}.btn-primary{--btn-bg:linear-gradient(180deg, #6d59e8 0%, var(--violet-600) 55%, var(--violet-700) 100%);background:var(--btn-bg);box-shadow:inset 0 1px #ffffff59,inset 0 -1px #0000002e,0 10px 24px -8px #5b47d6b3,0 2px 4px #2c1f7a40}.btn-primary:hover{box-shadow:inset 0 1px #ffffff59,inset 0 -1px #0000002e,0 16px 32px -10px #5b47d6cc,0 2px 4px #2c1f7a40}.btn-ghost{--btn-bg:#ffffffb3;--btn-fg:var(--ink);box-shadow:0 0 0 1px var(--line-strong) inset, 0 6px 16px -10px #15102c4d;backdrop-filter:blur(10px)}.btn-sm{height:38px;padding:0 16px;font-size:14.5px}.btn svg{flex:none;width:18px;height:18px}.site-header{z-index:50;padding:14px var(--gutter);pointer-events:none;position:sticky;top:0}.nav{pointer-events:auto;-webkit-backdrop-filter:saturate(1.6)blur(18px);width:min(1040px,100%);transition:background-color .4s var(--ease-out), box-shadow .4s var(--ease-out);background:#f7f5ff8c;border-radius:999px;justify-content:space-between;align-items:center;gap:16px;margin-inline:auto;padding:7px 7px 7px 14px;display:flex;box-shadow:0 0 0 1px #0000}.is-scrolled .nav{box-shadow:0 0 0 1px var(--line), 0 12px 32px -18px #2c1f7a59;background:#ffffffc7}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:650;text-decoration:none;display:inline-flex}.brand img{filter:drop-shadow(0 3px 6px #5b47d659);width:30px;height:30px}.nav-links{gap:4px;margin:0;padding:0;list-style:none;display:flex}.nav-links a{color:var(--ink-2);border-radius:999px;padding:8px 14px;font-size:15px;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s;display:block}.nav-links a:hover{color:var(--ink);background:#5b47d614}@media (width<=760px){.nav-links{display:none}}.section{padding-block:clamp(88px,12vw,168px);position:relative}.section-head{gap:18px;max-width:760px;margin-bottom:clamp(40px,6vw,72px);display:grid}.section-head.center{text-align:center;justify-items:center;margin-inline:auto}.h2{letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(38px,5.6vw,72px);font-weight:620;line-height:1}.h2 .serif{letter-spacing:-.02em;color:var(--violet-600);font-size:1.08em}.lede{max-width:600px;color:var(--ink-2);text-wrap:pretty;margin:0;font-size:clamp(17px,1.6vw,20px);line-height:1.55}.js [data-reveal]{opacity:0;transition:opacity .9s var(--ease-out), transform 1.1s var(--ease-out);transition-delay:calc(var(--d,0) * 90ms);transform:translateY(28px)}.js [data-reveal].is-in{opacity:1;transform:none}.kbd{--k-top:#fff;--k-bot:#eeeaf8;--k-edge:#cfc8e3;--k-fg:var(--ink);background:linear-gradient(180deg, var(--k-top), var(--k-bot));min-width:1.9em;height:1.9em;color:var(--k-fg);font-family:var(--font-sans);vertical-align:.08em;box-shadow:0 0 0 1px #15102c14, 0 .14em 0 var(--k-edge), 0 .2em .5em -.1em #15102c40;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out), background .2s;border-radius:.42em;place-items:center;padding:0 .5em;font-size:.82em;font-weight:560;line-height:1;display:inline-grid}.kbd+.kbd{margin-left:.25em}.kbd.is-down{box-shadow:0 0 0 1px #15102c14, 0 .02em 0 var(--k-edge), 0 .05em .2em #15102c33;transform:translateY(.12em)}.site-footer{border-top:1px solid var(--line);color:var(--ink-2);padding:72px 0 48px;font-size:15px}.footer-grid{grid-template-columns:1.4fr repeat(2,1fr);gap:40px;display:grid}.footer-grid h3{color:var(--ink);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;font-size:12px;font-weight:500}.footer-grid ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.footer-grid a{text-decoration:none}.footer-grid a:hover{color:var(--violet-600)}.footer-note{max-width:320px;margin:16px 0 0}.footer-base{border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:56px;padding-top:24px;font-size:14px;display:flex}.rsg{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.rsg img{opacity:.85;width:34px;height:auto}@media (width<=720px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>:first-child{grid-column:1/-1}}.page-hero{padding:clamp(56px,9vw,120px) 0 clamp(32px,5vw,56px)}.page-hero h1{letter-spacing:-.05em;margin:18px 0 16px;font-size:clamp(44px,7vw,88px);font-weight:620;line-height:.98}.prose{max-width:720px;color:var(--ink-2);padding-bottom:120px}.prose h2{color:var(--ink);letter-spacing:-.03em;margin:56px 0 12px;font-size:26px;font-weight:620}.prose p,.prose li{text-wrap:pretty}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--violet-600);text-underline-offset:3px;text-decoration-thickness:1px}.prose ul{padding-left:20px}.prose li+li{margin-top:6px}.prose .updated{font-family:var(--font-mono);color:var(--ink-3);font-size:13px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.section-head>.eyebrow{justify-self:start}.section-head.center>.eyebrow{justify-self:center}
