@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:400 500;src:url(/_astro/fraunces-normal.BzFIDkgo.woff2) format("woff2-variations")}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fraunces-italic.DrvAhEtV.woff2) format("woff2-variations")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-400.B9QXe2Za.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-500.ChjnRrp5.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-600.DOIdjTaz.woff2) format("woff2")}:root{--bg: #090A12;--bg-indigo: #0C0F2E;--bg-teal: #071A24;--bg-violet: #1A0A26;--surface: #0E1018;--surface-bar: #0B0D15;--line: #1F2333;--line-2: #2A2F45;--line-soft: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .25);--line-mid: rgba(255, 255, 255, .12);--head-bg: rgba(9, 10, 18, .86);--grid-line: rgba(255, 255, 255, .045);--stripe: #171B29;--ghost-word: #1A1E2E;--play-bg: rgba(9, 10, 18, .6);--hover-bg: rgba(255, 255, 255, .04);--text: #EDEFF7;--text-2: #C9CDDB;--muted: #8A90A6;--muted-2: #7A8098;--accent: #4F6BFF;--accent-text: #5C77FF;--accent-fill: #3B52E8;--on-accent-line: #C9D2FF;--cyan: #27E3FF;--green: #35F0B5;--red: #FF5E7E;--amber: #FFC857;--l-bg-a: #F2F4FA;--l-bg-b: #E6E9F3;--l-surface: #FFFFFF;--l-text: #0B0C14;--l-text-2: #4A5066;--l-muted: #5A6075;--l-placeholder: #6A7086;--l-line: #CFD4E3;--l-accent: #3B52E8;--l-green: #0E7A52;--l-red: #C8213F;--font-serif: "Fraunces Variable", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius: 2px;--radius-card: 4px;--gutter: clamp(20px, 5vw, 88px);--section: clamp(72px, 8vw, 128px);--max: 1440px;--head-h: 76px;--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--bg);overflow-x:hidden;overflow-x:clip}body{margin:0;min-height:100vh;background-color:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}img,svg,video{display:block;max-width:100%}a{color:var(--text);text-decoration:none}a:hover{color:var(--cyan)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.light :focus-visible{outline-color:var(--l-accent)}.skip-link{position:absolute;top:8px;left:8px;z-index:100;padding:12px 18px;background:var(--accent-fill);color:var(--text);border-radius:var(--radius);font-size:14px;transform:translateY(-200%)}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pad{padding-left:var(--gutter);padding-right:var(--gutter)}.sec{padding-top:var(--section);padding-bottom:var(--section)}.serif{font-family:var(--font-serif);font-weight:400;letter-spacing:-.02em;line-height:1.02}.serif em{font-style:italic;color:var(--accent)}.light .serif em{color:var(--l-accent)}.grid-bg{background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:48px 48px;background-position:center top}.light{background:linear-gradient(180deg,var(--l-bg-a) 0%,var(--l-bg-b) 100%);color:var(--l-text)}.light a{color:var(--l-text)}.light a:hover{color:var(--l-accent)}.g-2,.g-3,.g-4,.g-5,.g-6,.side{display:grid}.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-5{grid-template-columns:repeat(5,minmax(0,1fr))}.g-6{grid-template-columns:repeat(6,minmax(0,1fr))}.side{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}.sticky{position:sticky;top:112px}.btn,.ghost{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 18px;border-radius:var(--radius);font-size:14px;white-space:nowrap}.btn{background:var(--accent-fill);color:var(--text);font-weight:500;transition:background-color .2s,color .2s}.btn:hover,.light .btn:hover{background:var(--cyan);color:var(--bg)}.light .btn{color:var(--text)}.ghost{border:1px solid var(--line-2);color:var(--text);transition:border-color .2s,color .2s,background-color .2s}.ghost:hover{border-color:var(--cyan);color:var(--cyan)}.light .ghost{border-color:var(--l-text);color:var(--l-text)}.light .ghost:hover{background:var(--l-text);color:var(--l-bg-a);border-color:var(--l-text)}.btn.small,.ghost.small{font-size:13px}.row .arr{transition:transform .25s var(--ease)}a.row:hover{color:var(--cyan)}a.row:hover .num{color:var(--cyan);border-color:var(--cyan)}a.row:hover .arr{transform:translate(8px)}.light a.row:hover{color:var(--l-accent)}.light a.row:hover .num{color:var(--l-accent);border-color:var(--l-accent)}.card{position:relative;transition:transform .35s var(--ease),border-color .35s}.card:hover{transform:translateY(-6px);border-color:var(--accent)}.card:before,.card:after{content:"";position:absolute;width:12px;height:12px}.card:before{top:-1px;left:-1px;border-top:1px solid var(--cyan);border-left:1px solid var(--cyan)}.card:after{bottom:-1px;right:-1px;border-bottom:1px solid var(--cyan);border-right:1px solid var(--cyan)}.light .card{background:var(--l-surface);border-color:var(--l-line)}.light .card:hover{border-color:var(--l-accent)}.light .card:before,.light .card:after{border-color:var(--l-accent)}.h2{margin:0;font-size:clamp(32px,3.6vw,56px)}.sec-note{margin:0;max-width:40ch;font-size:14px;color:var(--muted)}.light .sec-note{color:var(--l-muted)}.dark-sec{border-bottom:1px solid var(--line-soft)}.cmd-link{font-size:13px;text-decoration:underline;text-underline-offset:4px}.code .k{color:var(--accent-text)}.code .f{color:var(--cyan)}.code .s{color:var(--green)}.code .c{color:var(--muted-2)}.del{color:var(--red)}.add{color:var(--green)}.light .del{color:var(--l-red)}.light .add{color:var(--l-green)}@media(max-width:1099px){.cw.no-mobile{display:none!important}.g-2:has(>.cw.no-mobile){grid-template-columns:minmax(0,1fr)}.side{grid-template-columns:minmax(0,1fr)}.sticky{position:static}.g-3,.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-5,.g-6{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.no-mobile{display:none!important}.g-2,.g-3,.g-4{grid-template-columns:minmax(0,1fr)}.g-5,.g-6{grid-template-columns:repeat(2,minmax(0,1fr))}}@keyframes rise{0%{transform:translateY(110%)}to{transform:none}}@keyframes up{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes rv-in{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes cue{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes par{0%{transform:translateY(-8%)}to{transform:translateY(8%)}}@keyframes draw{to{background-size:100% 2px}}@keyframes drift{to{transform:translate3d(72px,72px,0)}}@keyframes cycle{0%,4%{opacity:0;transform:translateY(-40%)}8%,22%{opacity:1;transform:translateY(-50%)}26%,to{opacity:0;transform:translateY(-60%)}}@keyframes prog{0%{width:0}to{width:100%}}@keyframes marq{to{transform:translate(-50%)}}.mask{display:block;overflow:hidden;padding:0 .12em .22em 0;margin:0 -.12em -.22em 0}.rise{display:block;animation:rise 1s var(--ease) both}.rise-s{display:block}.d1{animation-delay:.15s}.d2{animation-delay:.27s}.d3{animation-delay:.39s}.d4{animation-delay:.51s}.up{animation:up .9s var(--ease) both}.caret{display:inline-block;width:.6ch;height:1.05em;background:var(--cyan);vertical-align:-.15em;margin-left:2px;animation:blink 1s steps(1) infinite}.cue{display:inline-block;animation:cue 1.8s ease-in-out infinite}.line{transform-origin:left center}.draw{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% 2px;background-position:0 96%}.stripes{position:absolute;inset:-40%;background:repeating-linear-gradient(135deg,var(--stripe) 0 2px,transparent 2px 18px);animation:drift 24s linear infinite}.word{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;opacity:0;animation:cycle 12s infinite}.word:nth-child(2){animation-delay:3s}.word:nth-child(3){animation-delay:6s}.word:nth-child(4){animation-delay:9s}.bar{position:absolute;left:0;bottom:0;height:3px;background:var(--cyan);animation:prog 12s linear infinite}@supports (animation-timeline: view()){html:not(.no-sda) .rv{animation:rv-in linear both;animation-timeline:view();animation-range:entry 0% entry 35%}html:not(.no-sda) .rv-2{animation:rv-in linear both;animation-timeline:view();animation-range:entry 10% entry 45%}html:not(.no-sda) .rv-3{animation:rv-in linear both;animation-timeline:view();animation-range:entry 20% entry 55%}html:not(.no-sda) .rise-s{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 50%}html:not(.no-sda) .line{animation:fill linear both;animation-timeline:view();animation-range:entry 0% cover 55%}html:not(.no-sda) .wipe{animation:wipe linear both;animation-timeline:view();animation-range:entry 0% entry 70%}html:not(.no-sda) .par{animation:par linear both;animation-timeline:view();animation-range:cover 0% cover 100%}html:not(.no-sda) .draw{animation:draw linear both;animation-timeline:view();animation-range:entry 30% entry 80%}}@media(prefers-reduced-motion:no-preference){html.js.no-sda .rv,html.js.no-sda .rv-2,html.js.no-sda .rv-3{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease),transform .8s var(--ease)}html.js.no-sda .rv-2{transition-delay:.1s}html.js.no-sda .rv-3{transition-delay:.2s}html.js.no-sda .rise-s{transform:translateY(110%);transition:transform 1s var(--ease)}html.js.no-sda .line{transform:scaleX(0);transition:transform 1.2s var(--ease)}html.js.no-sda .wipe{clip-path:inset(0 100% 0 0);transition:clip-path 1s var(--ease)}html.js.no-sda .draw{transition:background-size .8s var(--ease) .2s}html.js.no-sda .is-in{opacity:1;transform:none;clip-path:inset(0 0 0 0)}html.js.no-sda .draw.is-in{background-size:100% 2px}}@media(prefers-reduced-motion:reduce){.rv,.rv-2,.rv-3,.line,.wipe,.par,.up,.cue,.stripes,.bar,.caret{animation:none;opacity:1;transform:none;clip-path:none}.rise,.rise-s{animation:none;transform:none}.draw{animation:none;background-size:100% 2px}.word{animation:none;opacity:0}.word:first-child{opacity:1}*,*:before,*:after{transition:none!important}}.head[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--head-h);background:var(--head-bg);border-bottom:1px solid var(--line-soft)}.logo[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:10px;font-size:22px;font-weight:500;letter-spacing:-.01em;white-space:nowrap}.square[data-astro-cid-3ef6ksr2]{display:inline-block;width:8px;height:8px;background:var(--cyan)}.nav[data-astro-cid-3ef6ksr2]{display:flex;gap:28px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{color:var(--text-2)}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover,.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=page]{color:var(--cyan)}.actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:12px;flex-shrink:0}.burger[data-astro-cid-3ef6ksr2]{display:none;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid var(--line-2);border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer}.burger[data-astro-cid-3ef6ksr2]:hover{border-color:var(--cyan);color:var(--cyan)}.i-close[data-astro-cid-3ef6ksr2],.burger[data-astro-cid-3ef6ksr2][aria-expanded=true] .i-open[data-astro-cid-3ef6ksr2]{display:none}.burger[data-astro-cid-3ef6ksr2][aria-expanded=true] .i-close[data-astro-cid-3ef6ksr2]{display:block}.menu[data-astro-cid-3ef6ksr2]{position:fixed;inset:var(--head-h) 0 0 0;z-index:4;display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding-top:24px;padding-bottom:32px;overflow-y:auto;background:var(--bg)}.menu[data-astro-cid-3ef6ksr2][hidden]{display:none}.menu[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-strong)}.menu[data-astro-cid-3ef6ksr2] li[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line-soft);font-size:clamp(32px,9vw,56px);letter-spacing:-.02em}.menu[data-astro-cid-3ef6ksr2] li[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=page]{color:var(--cyan)}.arr[data-astro-cid-3ef6ksr2]{font-family:var(--font-mono);font-size:20px;color:var(--cyan)}.menu-foot[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.mail[data-astro-cid-3ef6ksr2]{font-size:13px;color:var(--muted)}html.menu-open{overflow:hidden}@media(max-width:479px){.head[data-astro-cid-3ef6ksr2]{gap:10px}.logo[data-astro-cid-3ef6ksr2]{gap:8px;font-size:16px}.actions[data-astro-cid-3ef6ksr2]{gap:6px}.cta[data-astro-cid-3ef6ksr2]{padding:0 10px;font-size:11px;letter-spacing:0}}@media(max-width:379px){.head[data-astro-cid-3ef6ksr2]{padding-left:16px;padding-right:16px}}@media(max-width:349px){.logo-name[data-astro-cid-3ef6ksr2]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media(max-width:959px){.nav[data-astro-cid-3ef6ksr2]{display:none}.burger-nojs[data-astro-cid-3ef6ksr2]{display:flex}html.js .burger-nojs[data-astro-cid-3ef6ksr2]{display:none}html.js .burger-js[data-astro-cid-3ef6ksr2]{display:flex}}.foot[data-astro-cid-sz7xmlte]{padding-top:56px;padding-bottom:48px}.cols[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;font-size:13px}.col[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:10px}.col[data-astro-cid-sz7xmlte]:first-child{gap:8px}.logo[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:10px;font-size:22px}.square[data-astro-cid-sz7xmlte]{display:inline-block;width:8px;height:8px;background:var(--cyan)}.muted[data-astro-cid-sz7xmlte],.legal[data-astro-cid-sz7xmlte],.legal[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--muted)}.links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-2)}.links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover,.legal[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--cyan)}.copy[data-astro-cid-sz7xmlte]{margin:48px 0 0;font-size:12px;color:var(--muted-2)}@media(max-width:760px){.cols[data-astro-cid-sz7xmlte]{grid-template-columns:minmax(0,1fr)}}.cookie[data-astro-cid-fzbxxtek]{position:fixed;right:16px;bottom:16px;z-index:3;box-sizing:border-box;width:min(420px,calc(100vw - 32px));padding:20px 20px 18px;border:1px solid var(--line-2);border-radius:var(--radius-card);background:var(--surface);color:var(--text-2);font-size:13px;line-height:1.6}.cookie[data-astro-cid-fzbxxtek][hidden]{display:none}h2[data-astro-cid-fzbxxtek]{margin:0 32px 8px 0;font-weight:400;font-size:20px;color:var(--text)}p[data-astro-cid-fzbxxtek]{margin:0}a[data-astro-cid-fzbxxtek]{color:var(--text);text-decoration:underline}a[data-astro-cid-fzbxxtek]:hover{color:var(--cyan)}.actions[data-astro-cid-fzbxxtek]{display:flex;gap:12px;margin-top:16px}.actions[data-astro-cid-fzbxxtek] .ghost[data-astro-cid-fzbxxtek]{flex:1;background:none;cursor:pointer}.close[data-astro-cid-fzbxxtek]{border:0;background:none;cursor:pointer;position:absolute;top:6px;right:6px;width:44px;height:44px;font-size:22px;line-height:1;color:var(--muted)}.close[data-astro-cid-fzbxxtek]:hover{color:var(--cyan)}
