:root{--piranha-purple: #863bff;--piranha-purple-600: #7430e6;--piranha-red: #e53030;--water: #47bfff;--water-600: #1ea7f0;--bg: #ffffff;--bg-subtle: #f5f6fb;--bg-elevated: #ffffff;--surface: #ffffff;--border: #e4e6ef;--border-strong: #cfd2e3;--text: #15172b;--text-muted: #565a78;--text-faint: #7a7e9c;--accent: var(--piranha-purple);--accent-contrast: #ffffff;--link: var(--piranha-purple-600);--ring: color-mix(in srgb, var(--piranha-purple) 55%, transparent);--shadow-sm: 0 1px 2px rgba(21, 23, 43, .06), 0 1px 3px rgba(21, 23, 43, .08);--shadow-md: 0 6px 24px rgba(21, 23, 43, .1);--shadow-lg: 0 20px 60px rgba(21, 23, 43, .16);--diagram-bg: #f7f8ff;--diagram-node: #ffffff;--diagram-stroke: #cdd2ea;--diagram-ink: #2a2d4a;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;--maxw: 1120px;--radius: 14px;--radius-sm: 9px;--radius-lg: 22px;--space: clamp(3.5rem, 8vw, 6.5rem)}[data-theme=dark]{--bg: #0c0d18;--bg-subtle: #12142a;--bg-elevated: #171a32;--surface: #161930;--border: #272a47;--border-strong: #3a3e63;--text: #eceefb;--text-muted: #a9adce;--text-faint: #7e83a8;--accent: #a071ff;--accent-contrast: #14081f;--link: #b596ff;--ring: color-mix(in srgb, #a071ff 65%, transparent);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 30px rgba(0, 0, 0, .45);--shadow-lg: 0 24px 70px rgba(0, 0, 0, .55);--diagram-bg: #12152b;--diagram-node: #1b1f3b;--diagram-stroke: #3a3f66;--diagram-ink: #d6daf6}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}h1,h2,h3,h4{line-height:1.12;letter-spacing:-.02em;margin:0 0 .5em;font-weight:750}h1{font-size:clamp(2.3rem,5.5vw,3.9rem)}h2{font-size:clamp(1.7rem,3.6vw,2.6rem)}h3{font-size:clamp(1.2rem,2vw,1.45rem)}p{margin:0 0 1rem}a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}img,svg{max-width:100%}:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:1rem;top:-100px;z-index:200;background:var(--accent);color:var(--accent-contrast);padding:.65rem 1rem;border-radius:var(--radius-sm);font-weight:650;box-shadow:var(--shadow-md);transition:top .18s ease}.skip-link:focus{top:1rem}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2rem)}.section{padding-block:var(--space)}.section--subtle{background:var(--bg-subtle)}.section-head{max-width:56ch;margin-bottom:clamp(2rem,5vw,3.25rem)}.section-head--center{margin-inline:auto;text-align:center}.eyebrow{display:inline-block;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem}.lede{font-size:1.15rem;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:.5rem;font:inherit;font-weight:650;line-height:1;padding:.85rem 1.4rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .12s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn--primary{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow-sm)}.btn--primary:hover{box-shadow:var(--shadow-md)}.btn--ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.btn--lg{padding:1rem 1.7rem;font-size:1.05rem}.grid{display:grid;gap:clamp(1rem,2.4vw,1.6rem)}.grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(1.3rem,2.5vw,1.9rem);box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .18s ease,border-color .18s ease}.card--hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.card h3{margin-bottom:.4rem}.card p{color:var(--text-muted);margin:0}.card__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;margin-bottom:1rem;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.card__icon svg{width:24px;height:24px}.pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:650;padding:.3rem .7rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted)}.pill svg{width:15px;height:15px;color:var(--accent)}.muted{color:var(--text-muted)}.center{text-align:center}.stack-sm>*+*{margin-top:.5rem}.logo[data-astro-cid-tvrurpns]{display:inline-flex;align-items:center;gap:.5rem;line-height:1}.logo__mark[data-astro-cid-tvrurpns]{flex:none;overflow:visible}.logo__word[data-astro-cid-tvrurpns]{font-weight:800;font-size:1.28rem;letter-spacing:-.03em;color:var(--text)}.theme-toggle[data-astro-cid-x3pjskd3]{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle[data-astro-cid-x3pjskd3] svg{grid-area:1 / 1}.theme-toggle[data-astro-cid-x3pjskd3] .icon-moon,[data-theme=dark] .theme-toggle[data-astro-cid-x3pjskd3] .icon-sun{display:none}[data-theme=dark] .theme-toggle[data-astro-cid-x3pjskd3] .icon-moon{display:block}html:not(.has-js) .js-only[data-astro-cid-x3pjskd3]{display:none}.lang[data-astro-cid-a2mxz4y6]{position:relative}.lang[data-astro-cid-a2mxz4y6]>summary[data-astro-cid-a2mxz4y6]{display:inline-flex;align-items:center;gap:.4rem;height:40px;padding:0 .7rem;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;list-style:none;user-select:none;font-size:.92rem;font-weight:600}.lang[data-astro-cid-a2mxz4y6]>summary[data-astro-cid-a2mxz4y6]::-webkit-details-marker{display:none}.lang[data-astro-cid-a2mxz4y6]>summary[data-astro-cid-a2mxz4y6]:hover{color:var(--accent);border-color:var(--accent)}.lang__current[data-astro-cid-a2mxz4y6]{max-width:11ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lang__chev[data-astro-cid-a2mxz4y6]{transition:transform .18s ease}.lang[data-astro-cid-a2mxz4y6][open] .lang__chev[data-astro-cid-a2mxz4y6]{transform:rotate(180deg)}.lang__menu[data-astro-cid-a2mxz4y6]{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:80;width:260px;max-height:60vh;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:.5rem}.lang__heading[data-astro-cid-a2mxz4y6]{margin:.25rem .5rem .4rem;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint)}.lang__menu[data-astro-cid-a2mxz4y6] ul[data-astro-cid-a2mxz4y6]{list-style:none;margin:0;padding:0}.lang__menu[data-astro-cid-a2mxz4y6] a[data-astro-cid-a2mxz4y6]{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.5rem .6rem;border-radius:9px;text-decoration:none;color:var(--text)}.lang__menu[data-astro-cid-a2mxz4y6] a[data-astro-cid-a2mxz4y6]:hover{background:var(--bg-subtle)}.lang__menu[data-astro-cid-a2mxz4y6] a[data-astro-cid-a2mxz4y6].is-current{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:700}.lang__en[data-astro-cid-a2mxz4y6]{font-size:.78rem;color:var(--text-faint)}.hdr[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.hdr__inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1rem;height:68px}.hdr__brand[data-astro-cid-3ef6ksr2]{text-decoration:none;flex:none}.hdr__nav[data-astro-cid-3ef6ksr2]{margin-inline-start:.75rem;flex:1}.hdr__nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{display:flex;gap:.25rem;list-style:none;margin:0;padding:0}.hdr__nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:inline-block;padding:.5rem .85rem;border-radius:9px;color:var(--text-muted);text-decoration:none;font-weight:600;font-size:.96rem;transition:color .15s ease,background .15s ease}.hdr__nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--text);background:var(--bg-subtle)}.hdr__nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=page]{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.hdr__actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.55rem}.hdr__icon-link[data-astro-cid-3ef6ksr2]{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;color:var(--text-muted);border:1px solid transparent}.hdr__icon-link[data-astro-cid-3ef6ksr2]:hover{color:var(--accent);border-color:var(--border-strong)}.hdr__mobile[data-astro-cid-3ef6ksr2]{display:none;position:relative}.hdr__mobile[data-astro-cid-3ef6ksr2]>summary[data-astro-cid-3ef6ksr2]{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;list-style:none}.hdr__mobile[data-astro-cid-3ef6ksr2]>summary[data-astro-cid-3ef6ksr2]::-webkit-details-marker{display:none}.hdr__mobile[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{position:absolute;inset-inline-end:0;top:calc(100% + 8px);width:220px;list-style:none;margin:0;padding:.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.hdr__mobile[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:block;padding:.6rem .7rem;border-radius:9px;color:var(--text);text-decoration:none;font-weight:600}.hdr__mobile[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{background:var(--bg-subtle)}.hdr__mobile[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=page]{color:var(--accent)}@media(max-width:860px){.hdr__nav[data-astro-cid-3ef6ksr2]{display:none}.hdr__mobile[data-astro-cid-3ef6ksr2]{display:block}}@media(max-width:420px){.hdr__icon-link[data-astro-cid-3ef6ksr2]{display:none}}.ftr[data-astro-cid-sz7xmlte]{border-top:1px solid var(--border);background:var(--bg-subtle);padding-top:clamp(2.5rem,6vw,4rem)}.ftr__inner[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2rem;padding-bottom:2.5rem}.ftr__brand[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:1rem 0;max-width:38ch}.ftr__gh[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.5rem;font-weight:650;text-decoration:none;color:var(--text)}.ftr__gh[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.ftr__col[data-astro-cid-sz7xmlte] h2[data-astro-cid-sz7xmlte]{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin:.3rem 0 .9rem}.ftr__col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.ftr__col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-muted);text-decoration:none;font-weight:550}.ftr__col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.ftr__bar[data-astro-cid-sz7xmlte]{border-top:1px solid var(--border);padding-block:1.4rem 2rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-size:.9rem}.ftr__bar[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0}@media(max-width:720px){.ftr__inner[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr}.ftr__brand[data-astro-cid-sz7xmlte]{grid-column:1 / -1}}
