@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-ext-wght-normal.DdQaqQDo.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-wght-normal.Bc-8i84L.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/caveat-latin-600-normal.zlTlWIYU.woff2)format("woff2"),url(/_astro/caveat-latin-600-normal.DUjB8dgm.woff)format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-latin-700-normal.D8_1Nw6V.woff2)format("woff2"),url(/_astro/caveat-latin-700-normal.cPyBTTZN.woff)format("woff")}:root{color-scheme:light;--bg:#f5f4fa;--surface:#fff;--surface2:#efedf7;--ink:#272536;--muted:#68657e;--primary:#5b57d9;--primaryHover:#4a46c8;--primarySoft:#e6e4ff;--primaryInk:#4a46c8;--onPrimary:#fff;--ctaPanel:#18155429;--line:#2725361a;--shadow:0 1px 2px #2725360d, 0 14px 34px -16px #3c348c40;--shadowLg:0 2px 6px #2725360d, 0 50px 100px -40px #3c348c66;--focus:#5b57d9;--rec:#c93a55;--ok:#227a5b;--okSoft:#ddf3e9;--warn:#8a5a00;--warnSoft:#fbebc9;--dim:#1c1b297a;--sketch:#e0533d;--show-moon:block;--show-sun:none;--font-sans:"Outfit Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--font-hand:"Caveat", "Comic Sans MS", cursive}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#1c1b29;--surface:#262538;--surface2:#2f2d44;--ink:#efedf8;--muted:#a7a4bf;--primary:#b4b1ff;--primaryHover:#c9c7ff;--primarySoft:#36345c;--primaryInk:#c4c2ff;--onPrimary:#1c1b29;--ctaPanel:#1c1b291f;--line:#efedf817;--shadow:0 1px 2px #0000004d, 0 18px 40px -18px #000000b3;--shadowLg:0 2px 8px #0000004d, 0 50px 110px -40px #000000d9;--focus:#b4b1ff;--rec:#ff8a9c;--ok:#76d9ae;--okSoft:#1f3b33;--warn:#f5c977;--warnSoft:#3d3222;--dim:#08080e8c;--sketch:#ff8a6b;--show-moon:none;--show-sun:block}}:root[data-theme=dusk]{color-scheme:dark;--bg:#1c1b29;--surface:#262538;--surface2:#2f2d44;--ink:#efedf8;--muted:#a7a4bf;--primary:#b4b1ff;--primaryHover:#c9c7ff;--primarySoft:#36345c;--primaryInk:#c4c2ff;--onPrimary:#1c1b29;--ctaPanel:#1c1b291f;--line:#efedf817;--shadow:0 1px 2px #0000004d, 0 18px 40px -18px #000000b3;--shadowLg:0 2px 8px #0000004d, 0 50px 110px -40px #000000d9;--focus:#b4b1ff;--rec:#ff8a9c;--ok:#76d9ae;--okSoft:#1f3b33;--warn:#f5c977;--warnSoft:#3d3222;--dim:#08080e8c;--sketch:#ff8a6b;--show-moon:none;--show-sun:block}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.55;overflow-x:clip}a{color:var(--primaryInk)}a:hover{color:var(--ink)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}a:not([class]):focus-visible{border-radius:4px}.wrap{max-width:1200px;margin:0 auto;padding:0 32px}.wrap.narrow{max-width:1040px}.sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:50;background:var(--surface);color:var(--ink);box-shadow:var(--shadow), inset 0 0 0 1px var(--line);border-radius:12px;padding:12px 18px;font-weight:600;position:absolute;top:-100px;left:16px}.skip:focus{top:12px}.mono{font-family:var(--font-mono)}.hand{font-family:var(--font-hand)}html:not(.js) .js-only,:root[data-os=windows] .when-mac,:root:not([data-os=windows]) .when-win{display:none!important}.btn{min-height:48px;font:inherit;cursor:pointer;white-space:nowrap;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:16px;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s,transform .1s;display:inline-flex}.btn:active{transform:translateY(1px)}a.btn-primary,.btn-primary{background:var(--primary);color:var(--onPrimary);box-shadow:0 10px 24px -10px color-mix(in srgb, var(--primary) 80%, transparent)}a.btn-primary:hover,.btn-primary:hover{background:var(--primaryHover);color:var(--onPrimary)}.btn-primary:active{background:var(--primaryHover);box-shadow:none}a.btn-soft,.btn-soft{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line), var(--shadow)}a.btn-soft:hover,.btn-soft:hover{background:var(--surface2);color:var(--ink)}.btn-sm{border-radius:12px;min-height:44px;padding:0 18px;font-size:15px}.icon-btn{background:var(--surface);width:44px;height:44px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.icon-btn:hover{background:var(--surface2)}.theme-toggle .ic-moon{display:var(--show-moon)}.theme-toggle .ic-sun{display:var(--show-sun)}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(12px);position:sticky;top:0}.topbar-in{align-items:center;gap:20px;height:76px;display:flex}.brand{letter-spacing:-.01em;border-radius:10px;align-items:center;gap:10px;font-size:20px;font-weight:650;text-decoration:none;display:flex}a.brand,a.brand:hover{color:var(--ink)}.logo rect{fill:var(--primary)}.logo path{stroke:var(--onPrimary)}.nav-links{align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-links a{min-height:44px;color:var(--muted);border-radius:12px;align-items:center;padding:0 12px;font-size:16px;font-weight:500;text-decoration:none;display:inline-flex}.nav-links a:hover{color:var(--ink);background:var(--surface2)}.nav-links a[aria-current=page]{color:var(--ink);background:var(--surface)}.top-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.menu-btn{display:none}.mob-menu{background:color-mix(in srgb, var(--bg) 96%, transparent);width:auto;max-width:none;color:var(--ink);border:0;margin:0;padding:4px 0 16px;position:fixed;inset:76px 0 auto;box-shadow:0 24px 40px -24px #00000059}.mob-menu ul{flex-direction:column;gap:6px;margin:0 auto;list-style:none;display:flex}.mob-menu .btn{justify-content:flex-start;width:100%}.keys{flex-wrap:wrap;align-items:center;gap:6px;display:flex}kbd{font-family:var(--font-mono);background:var(--surface);min-width:34px;height:34px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line), inset 0 -3px 0 var(--line), 0 1px 2px #0000000f;border-radius:9px;justify-content:center;align-items:center;padding:0 9px;font-size:14px;font-weight:500;display:inline-flex}kbd.sym,.sym{font-family:system-ui,-apple-system,Segoe UI Symbol,sans-serif;font-size:16px}.switch{background:var(--surface2);border-radius:14px;gap:4px;padding:4px;display:flex}.switch button{min-height:40px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 16px;font-size:15px;font-weight:600}.switch button:hover{color:var(--ink)}.switch button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}@media (width<=1100px){.nav-links a{padding:0 8px}}@media (width<=900px){.nav-links{display:none}.menu-btn{display:inline-flex}}@media (width>=901px){.mob-menu{display:none}}@media (width<=720px){.wrap{padding:0 20px}body{font-size:16px}.top-dl{display:none!important}kbd{min-width:30px;height:30px;padding:0 7px;font-size:13px}kbd.sym{font-size:15px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
