.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--ink:#0f1e26;--surface:#152530;--surface-2:#1c303b;--line:#22343e;--line-strong:#566b76;--muted:#8fa3ad;--mist:#e8eef1;--paper:#f5f3ef;--paper-2:#fff;--line-light:#e2ded6;--line-strong-light:#74828a;--muted-light:#5b6a72;--vermilion:#f04e23;--vermilion-deep:#c2410c;--crimson:#a4161a;--crimson-hover:#b91c1c;--crimson-pressed:#8a1216;--success:#2fbf8f;--warning:#f5b83d;--error:#f2555a;--info:#5aa9e6;--success-deep:#0f7a57;--warning-deep:#8a5a00;--error-deep:#b42318;--info-deep:#1f6fb2;--grad-ember:linear-gradient(135deg, #a4161a 0%, #f04e23 100%);--grad-ember-ui:linear-gradient(135deg, #a4161a 0%, #c62f1e 100%);--grad-glow:radial-gradient(60% 60% at 50% 40%, #f04e2347 0%, #a4161a24 45%, #0f1e2600 75%);--grad-depth:linear-gradient(180deg, #152530 0%, #0f1e26 100%);--grad-edge:linear-gradient(135deg, #f04e23 0%, #a4161a 45%, #22343e 100%);--grad-pulse:linear-gradient(90deg, #a4161a 0%, #f04e23 35%, #ff8a5c 50%, #f04e23 65%, #a4161a 100%);--font-sans:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--text-4xl:48px;--text-display:clamp(56px, 9vw, 96px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--elev-1:0 0 0 1px var(--line);--elev-2:0 0 0 1px var(--line), 0 8px 24px #00000047;--elev-3:0 0 0 1px var(--line-strong), 0 20px 48px #0000006b;--elev-glow:0 0 0 1px #f04e2380, 0 0 32px #f04e232e;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--dur-draw:.6s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--bg:var(--ink);--bg-raised:var(--surface);--bg-overlay:var(--surface-2);--fg:var(--mist);--fg-muted:var(--muted);--border:var(--line);--border-strong:var(--line-strong);--brand:var(--vermilion);--link:var(--vermilion);--action:var(--crimson);--action-hover:var(--crimson-hover);--action-pressed:var(--crimson-pressed);--on-action:#fff;--focus:var(--vermilion);--ok:var(--success);--warn:var(--warning);--bad:var(--error);--note:var(--info)}[data-theme=light]{--bg:var(--paper);--bg-raised:var(--paper-2);--bg-overlay:var(--paper-2);--fg:var(--ink);--fg-muted:var(--muted-light);--border:var(--line-light);--border-strong:var(--line-strong-light);--brand:var(--vermilion);--link:var(--crimson);--action:var(--crimson);--action-hover:var(--crimson-pressed);--action-pressed:#6e0e11;--on-action:#fff;--focus:var(--crimson);--ok:var(--success-deep);--warn:var(--warning-deep);--bad:var(--error-deep);--note:var(--info-deep);--elev-1:0 0 0 1px var(--line-light);--elev-2:0 0 0 1px var(--line-light), 0 8px 24px #0f1e2614;--elev-3:0 0 0 1px var(--line-light), 0 20px 48px #0f1e2624}:root{--font-sans:var(--font-manrope), system-ui, sans-serif;--font-mono:var(--font-jetbrains), ui-monospace, monospace}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:clip}img,svg{max-width:100%;display:block}a{color:var(--link);text-decoration:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}h1,h2,h3{text-wrap:balance;line-height:1.15}h2{font-size:clamp(var(--text-2xl), 4vw, var(--text-3xl));letter-spacing:-.02em;font-weight:800}h3{font-size:var(--text-xl);font-weight:700}p{text-wrap:pretty}.wrap{width:min(1120px, 100% - 2 * var(--space-5));margin-inline:auto}.section{padding-block:var(--space-9);border-top:1px solid var(--border)}.section-head{max-width:640px;margin-bottom:var(--space-7)}.section-head .sub{margin-top:var(--space-3);color:var(--fg-muted);font-size:var(--text-lg)}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--brand);margin-bottom:var(--space-3)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);font-weight:700;line-height:1;display:inline-flex}.btn-primary{background:var(--action);color:var(--on-action)}.btn-primary:hover{background:var(--action-hover)}.btn-primary:active{background:var(--action-pressed)}.btn-secondary{color:var(--fg);box-shadow:inset 0 0 0 1px var(--border-strong);background:0 0}.btn-secondary:hover{box-shadow:inset 0 0 0 1px var(--fg-muted)}@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;animation-delay:0s!important}}.s[data-astro-cid-4pt2nqzy]{stroke:currentColor}.c[data-astro-cid-4pt2nqzy]{stroke:var(--vermilion)}.draw[data-astro-cid-4pt2nqzy] .s[data-astro-cid-4pt2nqzy]{stroke-dasharray:110;stroke-dashoffset:110px;animation:draw var(--dur-draw) var(--ease-out) calc(var(--draw-delay,0s) + .15s) forwards}.draw[data-astro-cid-4pt2nqzy] .c[data-astro-cid-4pt2nqzy]{stroke-dasharray:90;stroke-dashoffset:90px;animation:draw var(--dur-draw) var(--ease-out) calc(var(--draw-delay,0s) + .6s) forwards}@keyframes draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.draw[data-astro-cid-4pt2nqzy] .s[data-astro-cid-4pt2nqzy],.draw[data-astro-cid-4pt2nqzy] .c[data-astro-cid-4pt2nqzy]{stroke-dashoffset:0;animation:none}}.lockup[data-astro-cid-f7espo7c]{color:var(--fg);align-items:center;gap:.25em;font-size:24px;display:inline-flex}.lockup[data-astro-cid-f7espo7c] .mark{flex:none;width:1.1em;height:1.1em}.wm[data-astro-cid-f7espo7c]{letter-spacing:-.03em;white-space:nowrap;font-weight:700;line-height:1}.i[data-astro-cid-f7espo7c]{display:inline-block;position:relative}.i[data-astro-cid-f7espo7c]:after{content:"";background:var(--vermilion);width:.14em;height:.14em;position:absolute;top:.1em;left:50%;transform:translate(-50%)}.topics[data-astro-cid-dweupaz6]{gap:2px;padding:0;list-style:none;display:grid}a[data-astro-cid-dweupaz6]{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);color:var(--fg);transition:background var(--dur-fast) var(--ease-out);display:flex}a[data-astro-cid-dweupaz6]:hover,a[data-astro-cid-dweupaz6]:focus-visible{background:var(--bg-overlay)}a[data-astro-cid-dweupaz6][aria-current=page]{background:var(--bg-overlay);box-shadow:inset 2px 0 0 var(--vermilion)}.icon[data-astro-cid-dweupaz6]{border-radius:var(--radius-sm);background:var(--bg-overlay);width:36px;height:36px;color:var(--brand);flex:none;place-items:center;display:inline-grid}a[data-astro-cid-dweupaz6]:hover .icon[data-astro-cid-dweupaz6],a[data-astro-cid-dweupaz6][aria-current=page] .icon[data-astro-cid-dweupaz6]{background:var(--surface)}.text[data-astro-cid-dweupaz6]{gap:2px;min-width:0;display:grid}b[data-astro-cid-dweupaz6]{font-size:var(--text-sm);font-weight:700}small[data-astro-cid-dweupaz6]{color:var(--fg-muted);font-size:var(--text-xs);line-height:1.4}.header[data-astro-cid-nen7h5rs]{z-index:10;background:color-mix(in srgb, var(--ink) 82%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-5);min-height:68px;display:flex}.home[data-astro-cid-nen7h5rs]{flex:none;display:inline-flex}.nav[data-astro-cid-nen7h5rs]{margin-left:auto}.nav-list[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2);padding:0;list-style:none;display:flex}.trigger[data-astro-cid-nen7h5rs],.burger[data-astro-cid-nen7h5rs]{cursor:pointer;background:0 0;border:0}.trigger[data-astro-cid-nen7h5rs]{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--fg-muted);font:inherit;font-size:var(--text-sm);transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);align-items:center;gap:4px;font-weight:600;display:inline-flex}.trigger[data-astro-cid-nen7h5rs]:hover,.trigger[data-astro-cid-nen7h5rs][aria-expanded=true]{color:var(--fg)}.trigger[data-astro-cid-nen7h5rs][aria-expanded=true]{background:var(--bg-overlay)}.trigger[data-astro-cid-nen7h5rs][data-active]{color:var(--fg);box-shadow:inset 0 -2px 0 var(--vermilion)}.trigger[data-astro-cid-nen7h5rs] svg{transition:transform var(--dur-base) var(--ease-out)}.trigger[data-astro-cid-nen7h5rs][aria-expanded=true] svg{transform:rotate(180deg)}.dropdown[data-astro-cid-nen7h5rs]{position:relative}.panel[data-astro-cid-nen7h5rs]{width:340px;padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--elev-2);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base);position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%,-6px)}.panel[data-astro-cid-nen7h5rs]:before{content:"";height:12px;position:absolute;inset:-12px 0 auto}[data-astro-cid-nen7h5rs][data-dropdown][data-open] .panel[data-astro-cid-nen7h5rs]{opacity:1;visibility:visible;transition-delay:0s;transform:translate(-50%)}.all[data-astro-cid-nen7h5rs]{margin-top:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border);color:var(--fg-muted);font-size:var(--text-sm);justify-content:space-between;align-items:center;font-weight:600;display:flex}.all[data-astro-cid-nen7h5rs]:hover{color:var(--fg)}.lang[data-astro-cid-nen7h5rs]{border-radius:var(--radius-pill);box-shadow:inset 0 0 0 1px var(--border);padding:3px;display:inline-flex}.lang[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-radius:var(--radius-pill);min-width:36px;color:var(--fg-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);padding:6px 8px;font-weight:500}.lang[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--fg)}.lang[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{background:var(--bg-overlay);color:var(--fg)}.burger[data-astro-cid-nen7h5rs]{border-radius:var(--radius-md);width:44px;height:44px;color:var(--fg);box-shadow:inset 0 0 0 1px var(--border-strong);flex:none;place-items:center;display:none}.sheet[data-astro-cid-nen7h5rs]{background:var(--ink);width:100%;max-width:none;height:100%;max-height:none;color:var(--fg);border:0;margin:0;padding:0}.sheet[data-astro-cid-nen7h5rs][open]{animation:nav-sheet-in var(--dur-base) var(--ease-out);flex-direction:column;display:flex}.sheet[data-astro-cid-nen7h5rs]::backdrop{background:var(--ink)}.sheet-bar[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:68px;display:flex}.sheet[data-astro-cid-nen7h5rs] .burger[data-astro-cid-nen7h5rs]{display:inline-grid}.sheet-body[data-astro-cid-nen7h5rs]{align-content:start;gap:var(--space-6);padding-block:var(--space-5) var(--space-6);flex:1;display:grid;overflow-y:auto}.sheet-title[data-astro-cid-nen7h5rs]{margin-bottom:var(--space-2);color:var(--fg-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase}.sheet-anchors[data-astro-cid-nen7h5rs]{border-top:1px solid var(--border);padding:0;list-style:none;display:grid}.sheet-anchors[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--border);min-height:52px;color:var(--fg);justify-content:space-between;align-items:center;font-weight:700;display:flex}.sheet-anchors[data-astro-cid-nen7h5rs] svg{color:var(--brand)}.sheet-lang[data-astro-cid-nen7h5rs]{justify-self:start}.sheet-foot[data-astro-cid-nen7h5rs]{padding-block:var(--space-4);border-top:1px solid var(--border)}.sheet-foot[data-astro-cid-nen7h5rs] .btn[data-astro-cid-nen7h5rs]{justify-content:center;width:100%}@keyframes nav-sheet-in{0%{opacity:0;transform:translateY(-8px)}}@media (width<=880px){.nav[data-astro-cid-nen7h5rs],.bar[data-astro-cid-nen7h5rs]>.lang[data-astro-cid-nen7h5rs]{display:none}.cta[data-astro-cid-nen7h5rs]{margin-left:auto}.burger[data-astro-cid-nen7h5rs]{display:inline-grid}}@media (width<=420px){.bar[data-astro-cid-nen7h5rs]{gap:var(--space-2)}.home[data-astro-cid-nen7h5rs] .lockup{font-size:20px}.cta[data-astro-cid-nen7h5rs]{padding-inline:var(--space-3);font-size:13px}}.footer[data-astro-cid-jo6i4kqk]{padding-block:var(--space-8) var(--space-6);border-top:1px solid var(--border);color:var(--fg-muted);font-size:var(--text-sm)}.grid[data-astro-cid-jo6i4kqk]{gap:var(--space-6);grid-template-columns:1.2fr 1fr 1fr .6fr;display:grid}.brand[data-astro-cid-jo6i4kqk]{align-content:start;gap:var(--space-3);display:grid}.brand[data-astro-cid-jo6i4kqk] .lockup{font-size:22px}.title[data-astro-cid-jo6i4kqk]{margin-bottom:var(--space-3);color:var(--fg);font-weight:700}ul[data-astro-cid-jo6i4kqk]{gap:var(--space-2);padding:0;list-style:none;display:grid}a[data-astro-cid-jo6i4kqk]{color:var(--fg-muted);transition:color var(--dur-fast) var(--ease-out)}a[data-astro-cid-jo6i4kqk]:hover,a[data-astro-cid-jo6i4kqk][aria-current=page]{color:var(--fg)}.bottom[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}small[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);font-size:var(--text-xs)}.langs[data-astro-cid-jo6i4kqk]{gap:var(--space-4);display:flex}@media (width<=720px){.grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}.brand[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}
