.site-footer[data-astro-cid-nns7i3if]{margin-top:var(--space-section);padding-block:var(--space-3xl) var(--space-2xl);border-top:1px solid var(--glass-edge);background-color:var(--glass-fill);color:var(--color-text-muted);font-size:var(--font-size-sm)}.site-footer__inner[data-astro-cid-nns7i3if]{gap:var(--space-2xl);flex-direction:column;display:flex}.site-footer__top[data-astro-cid-nns7i3if],.site-footer__bottom[data-astro-cid-nns7i3if]{align-items:center;gap:var(--space-l);text-align:center;flex-direction:column;display:flex}.site-footer__bottom[data-astro-cid-nns7i3if]{padding-top:var(--space-xl);gap:var(--space-s);border-top:1px solid var(--glass-edge);font-size:var(--font-size-s)}.site-footer__brand[data-astro-cid-nns7i3if]{align-items:center;gap:var(--space-s);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-l);letter-spacing:var(--letter-spacing-display);flex-shrink:0;display:flex}.site-footer__links[data-astro-cid-nns7i3if]{justify-content:center;gap:var(--space-2xs) var(--space-xs);flex-wrap:wrap;display:flex}.site-footer__link[data-astro-cid-nns7i3if]{padding:var(--space-2xs) var(--space-s);border-radius:var(--radius-s);color:var(--color-text-secondary);transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base);border:1px solid #0000}.site-footer__link[data-astro-cid-nns7i3if]:hover{border-color:var(--glass-soft-edge);background-color:var(--glass-soft);color:var(--color-text-primary)}.site-footer__credit[data-astro-cid-nns7i3if]{justify-content:center;align-items:center;gap:var(--space-2xs) var(--space-xs);flex-wrap:wrap;display:flex}.site-footer__credit-link[data-astro-cid-nns7i3if]{min-width:1.5rem;padding-block:var(--space-3xs);color:var(--color-text-secondary);text-align:center;text-decoration:underline;text-decoration-color:var(--glass-edge-strong);text-underline-offset:.2em;transition:color var(--transition-base), text-decoration-color var(--transition-base);display:inline-block}.site-footer__credit-link[data-astro-cid-nns7i3if]:hover{color:var(--color-text-primary);text-decoration-color:currentColor}@media (width>=48rem){.site-footer__top[data-astro-cid-nns7i3if],.site-footer__bottom[data-astro-cid-nns7i3if]{text-align:start;flex-direction:row;justify-content:space-between}.site-footer__links[data-astro-cid-nns7i3if]{justify-content:flex-end}}.lang-picker[data-astro-cid-zuwn24jx]{position:relative}.lang-picker__trigger[data-astro-cid-zuwn24jx]{--button-padding-inline:var(--space-s);gap:var(--space-xs);list-style:none}.lang-picker__trigger[data-astro-cid-zuwn24jx]::-webkit-details-marker{display:none}.lang-picker__icon[data-astro-cid-zuwn24jx]{width:var(--size-icon);height:var(--size-icon);fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.75px}.lang-picker__menu[data-astro-cid-zuwn24jx]{z-index:20;top:calc(100% + var(--space-xs));min-width:100%;display:grid;position:absolute;right:0}.lang-picker__link[data-astro-cid-zuwn24jx]{padding:var(--space-xs) var(--space-m);border-radius:var(--radius-s);color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap;transition:background-color var(--transition-base), color var(--transition-base);text-decoration:none;display:block}.lang-picker__link[data-astro-cid-zuwn24jx]:hover{background-color:var(--glass-soft);color:var(--color-text-primary)}.lang-picker__link[data-astro-cid-zuwn24jx][aria-current]{background-color:var(--wash-selected);color:var(--color-text-primary)}.site-header[data-astro-cid-fzpbxy5g]{z-index:30;background-color:color-mix(in srgb, var(--color-bg) 0%, transparent);transition:background-color var(--transition-base), backdrop-filter var(--transition-base), border-color var(--transition-base);border-bottom:1px solid #0000;position:sticky;top:0}.site-header[data-astro-cid-fzpbxy5g]:before{z-index:-1;height:env(safe-area-inset-top,0px);background-color:var(--color-bg);content:"";position:fixed;top:0;left:0;right:0}.site-header[data-astro-cid-fzpbxy5g].site-header--scrolled{border-bottom-color:var(--glass-edge);backdrop-filter:blur(12px);background-color:color-mix(in srgb, var(--color-bg) 60%, transparent)}.site-header__row[data-astro-cid-fzpbxy5g]{min-height:3.5rem;padding-block:var(--space-s);justify-content:space-between;align-items:center;gap:var(--space-l);display:flex}.site-header__brand[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-s);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-l);letter-spacing:var(--letter-spacing-display);flex-shrink:0;text-decoration:none;display:flex}.site-header__nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-2xs);display:flex}.site-header__brand-name[data-astro-cid-fzpbxy5g]{display:none}.site-header__link[data-astro-cid-fzpbxy5g]{min-height:var(--size-control-l);padding-inline:var(--space-m);border-radius:var(--radius-s);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);white-space:nowrap;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base);border:1px solid #0000;align-items:center;text-decoration:none;display:flex}.site-header__link[data-astro-cid-fzpbxy5g]:hover{border-color:var(--glass-soft-edge);background-color:var(--glass-soft);color:var(--color-text-primary)}.site-header__link--version[data-astro-cid-fzpbxy5g]{min-height:var(--size-control-s);margin-inline:var(--space-2xs);padding-inline:var(--space-s);border-radius:var(--radius-max);border-color:var(--glass-edge);background-color:var(--glass-fill);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);font-family:var(--font-family-mono)}.site-header__resources[data-astro-cid-fzpbxy5g]{position:relative}.site-header__resources-trigger[data-astro-cid-fzpbxy5g]{cursor:pointer;list-style:none}.site-header__resources-trigger[data-astro-cid-fzpbxy5g]::-webkit-details-marker{display:none}.site-header__chevron[data-astro-cid-fzpbxy5g]{width:14px;height:14px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;transition:transform var(--transition-base);margin-inline-start:var(--space-2xs)}.site-header__resources[data-astro-cid-fzpbxy5g][open] .site-header__chevron[data-astro-cid-fzpbxy5g]{transform:rotate(180deg)}.site-header__resources[data-astro-cid-fzpbxy5g][data-active] .site-header__resources-trigger[data-astro-cid-fzpbxy5g],.site-header__resources[data-astro-cid-fzpbxy5g][open] .site-header__resources-trigger[data-astro-cid-fzpbxy5g]{color:var(--color-text-primary)}.site-header__resources-link[data-astro-cid-fzpbxy5g]{padding:var(--space-xs) var(--space-m);border-radius:var(--radius-s);color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap;transition:background-color var(--transition-base), color var(--transition-base);text-decoration:none;display:block}.site-header__resources-link[data-astro-cid-fzpbxy5g]:hover{background-color:var(--glass-soft);color:var(--color-text-primary)}.site-header__resources-link[data-astro-cid-fzpbxy5g][aria-current]{background-color:var(--wash-selected);color:var(--color-text-primary)}@media (width<64rem){.site-header__resources[data-astro-cid-fzpbxy5g]::details-content{content-visibility:visible}.site-header__resources-trigger[data-astro-cid-fzpbxy5g]{min-height:auto;padding-block:var(--space-xs);color:var(--color-text-muted);font-size:var(--font-size-xs);pointer-events:none}.site-header__chevron[data-astro-cid-fzpbxy5g]{display:none}.site-header__resources[data-astro-cid-fzpbxy5g]>.site-header__resources-menu[data-astro-cid-fzpbxy5g]{box-shadow:none;background:0 0;border:0;padding:0;display:grid}.site-header__resources-link[data-astro-cid-fzpbxy5g]{padding-inline-start:var(--space-l)}}.site-header__install[data-astro-cid-fzpbxy5g]{margin-inline:var(--space-2xs);display:none}.site-header__disclosure[data-astro-cid-fzpbxy5g]{order:1;position:relative}.site-header__burger[data-astro-cid-fzpbxy5g]{width:var(--size-control-l);height:var(--size-control-l);border-radius:var(--radius-s);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base);border:1px solid #0000;justify-content:center;align-items:center;list-style:none;display:flex}.site-header__burger[data-astro-cid-fzpbxy5g]::-webkit-details-marker{display:none}.site-header__burger[data-astro-cid-fzpbxy5g]:hover{border-color:var(--glass-soft-edge);background-color:var(--glass-soft);color:var(--color-text-primary)}.site-header__burger[data-astro-cid-fzpbxy5g] svg[data-astro-cid-fzpbxy5g]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:18px;height:18px}.site-header__disclosure[data-astro-cid-fzpbxy5g][open] .site-header__burger[data-astro-cid-fzpbxy5g]{border-color:var(--glass-edge-hover);background-color:var(--glass-soft-pressed);color:var(--color-text-primary)}.site-header__menu[data-astro-cid-fzpbxy5g]{z-index:20;top:calc(100% + var(--space-xs));min-width:11rem;display:grid;position:absolute;right:0}@media (width>=48rem){.site-header__brand-name[data-astro-cid-fzpbxy5g]{display:inline}.site-header__install[data-astro-cid-fzpbxy5g]{display:flex}}@media (width>=64rem){.site-header__burger[data-astro-cid-fzpbxy5g]{display:none}.site-header__disclosure[data-astro-cid-fzpbxy5g]{display:contents}.site-header__disclosure[data-astro-cid-fzpbxy5g]::details-content{content-visibility:visible}.site-header__disclosure[data-astro-cid-fzpbxy5g]>.site-header__menu[data-astro-cid-fzpbxy5g]{min-width:0;box-shadow:none;background:0 0;border:0;gap:0;padding:0;display:flex;position:static}.site-header__resources-menu[data-astro-cid-fzpbxy5g]{z-index:20;top:calc(100% + var(--space-xs));min-width:11rem;display:grid;position:absolute;left:0}}:root{--native-color-scheme:dark;--dimmed-opacity:.6;--glass-blur:8px;--glass-tint:35%;--glass-tint-raised:82%;--glass-tint-light:25%;--scheme-light-pct:0%;--base-bg:#161618;--fill-l-min:.14;--fill-l-max:.3;--base-surface:#1e1e1e;--base-surface-raised:#1b1b1b;--base-border:#272729;--base-surface-hover:#2d2d2d;--base-surface-sunken:#202020;--base-field-bg:#16161899;--color-bg:color-mix(in srgb, var(--color-accent) var(--surface-tint), var(--base-bg));--color-surface:color-mix(in srgb, var(--color-accent) var(--surface-tint), var(--base-surface));--color-surface-raised:color-mix(in srgb, var(--color-accent) var(--surface-tint), var(--base-surface-raised));--color-border:color-mix(in srgb, var(--color-accent) calc(var(--surface-tint) * 2), var(--base-border));--color-surface-hover:color-mix(in srgb, var(--color-accent) calc(var(--surface-tint) * 2), var(--base-surface-hover));--color-surface-sunken:color-mix(in srgb, var(--color-accent) var(--surface-tint), var(--base-surface-sunken));--color-field-bg:color-mix(in srgb, var(--color-accent) var(--surface-tint), var(--base-field-bg));--color-text-primary:#d8d8d8;--color-text-secondary:#a1a1a1;--color-text-muted:#8e8e93;--favicon-plate-for-light-ink:transparent;--favicon-plate-radius-for-light-ink:initial;--favicon-plate-for-dark-ink:#d8d8d899;--favicon-plate-radius-for-dark-ink:var(--radius-max);--accent-light:#2563eb;--accent-dark:#2563eb;--tint-light:0%;--tint-dark:0%;--color-accent:var(--accent-dark);--surface-tint:var(--tint-dark);--color-accent-soft:color-mix(in srgb, var(--color-accent) 30%, transparent);--on-accent-light:#fff;--on-accent-dark:#fff;--color-on-accent:var(--on-accent-dark);--item-accent:var(--color-accent);--color-error:#ff5252;--color-success:#4caf50;--color-on-danger:#1a1a1a;--color-on-success:#1a1a1a;--status-solid-shade:#fff;--fill-selected-mix:15%;--fill-subtle-mix:28%;--color-fill-subtle:color-mix(in srgb, #000 var(--fill-subtle-mix), var(--color-surface));--shadow-raised:0 1px 0 #0006;--color-fill-hover:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface-hover));--color-fill-pressed:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface-hover));--color-fill-selected:color-mix(in srgb, var(--color-accent) var(--fill-selected-mix), var(--color-surface));--wash-selected:color-mix(in srgb, var(--color-accent) var(--fill-selected-mix), transparent);--wash-selected-hover:color-mix(in srgb, var(--color-accent) calc(var(--fill-selected-mix) + 8%), transparent);--wash-danger:color-mix(in srgb, var(--color-error) 12%, transparent);--wash-danger-hover:color-mix(in srgb, var(--color-error) 20%, transparent);--wash-success:color-mix(in srgb, var(--color-success) 12%, transparent);--wash-success-hover:color-mix(in srgb, var(--color-success) 20%, transparent);--z-popover-lift:800;--opacity-dragging:.4;--glass-fill:color-mix(in srgb, var(--color-text-primary) 3%, transparent);--glass-fill-hover:color-mix(in srgb, var(--color-text-primary) 8%, color-mix(in srgb, var(--color-accent) 2%, transparent));--glass-fill-pressed:color-mix(in srgb, var(--color-text-primary) 11%, color-mix(in srgb, var(--color-accent) 4%, transparent));--glass-soft:var(--glass-edge);--glass-soft-pressed:var(--glass-edge-hover);--glass-soft-edge:color-mix(in srgb, var(--color-text-primary) 8%, transparent);--glass-edge:color-mix(in srgb, var(--color-text-primary) 10%, transparent);--glass-edge-hover:color-mix(in srgb, var(--color-text-primary) 16%, transparent);--wash-accent-strong:color-mix(in srgb, var(--color-accent) 40%, transparent);--glass-edge-strong:color-mix(in srgb, var(--color-text-primary) 24%, transparent);--glass-sunken:#0003;--edge-selected:color-mix(in srgb, var(--color-accent) 38%, transparent);--edge-selected-strong:color-mix(in srgb, var(--color-accent) 50%, transparent);--color-border-subtle:var(--color-border);--color-border-strong:color-mix(in srgb, var(--color-accent) 30%, var(--color-border));--accent-text-mix:75%;--accent-text-toward:#fff;--color-accent-text:color-mix(in srgb, var(--color-accent) var(--accent-text-mix), var(--accent-text-toward));--color-label-red:#dc2626;--color-label-orange:#ea580c;--color-label-yellow:#eab308;--color-label-lime:#65a30d;--color-label-green:#16a34a;--color-label-teal:#0d9488;--color-label-blue:#2563eb;--color-label-violet:#7c3aed;--color-label-pink:#db2777;--color-tag-spring:#059669;--color-tag-sky:#0284c7;--color-tag-indigo:#5850ec;--color-tag-magenta:#c026d3;--color-tag-rose:#f43f5e;--color-scrim:color-mix(in srgb, var(--color-bg) 85%, transparent);--shadow-elevation:0 2px 10px #0f0f0f4d;--elevation-2:0 6px 20px #0f0f0fb3;--elevation-3:0 16px 48px #0009;--focus-ring-color:var(--color-accent);--focus-ring-width:2px;--focus-ring-offset:0;--focus-outline:0 0 0 var(--focus-ring-width) var(--focus-ring-color);--transition-duration-base:.2s;--transition-base:var(--transition-duration-base) ease;--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.375rem;--space-s:.5rem;--space-sm:.625rem;--space-m:.75rem;--space-l:1rem;--space-xl:1.25rem;--space-2xl:1.5rem;--space-3xl:2rem;--radius-2xs:.125rem;--radius-xs:.25rem;--radius-s:.4375rem;--radius-m:.5625rem;--radius-l:.75rem;--radius-xl:1rem;--radius-max:50rem;--font-family-sans:"Google Sans", system-ui, sans-serif;--font-family-mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--font-family-serif:"Noto Serif", Georgia, serif;--font-family-base:var(--font-family-sans);--font-size-xs:.6875rem;--line-height-xs:14px;--font-size-s:.75rem;--line-height-s:16px;--font-size-sm:.875rem;--line-height-sm:20px;--font-size-m:.9375rem;--line-height-m:22px;--font-size-l:1rem;--line-height-l:22px;--font-size-xl:1.5rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--letter-spacing-caps:.06em;--size-dot:6px;--size-control-s:24px;--size-control-m:28px;--size-control-l:32px;--size-target-min:24px;--size-icon:16px;--row-height:36px;--row-gap:10px;--row-gap-compact:4px;--row-height-compact:30px;--row-height-active:var(--row-height);--row-gap-active:var(--row-gap);--size-header-height:2.5625rem;--size-toolbar-height:2.4375rem;--board-toolbar-inset-top:0px;--board-toolbar-inset-bottom:0px;--gallery-sidebar-top:calc(var(--size-header-height) + var(--board-toolbar-inset-top));--gallery-sidebar-header-padding-top:calc(var(--space-m) + var(--space-3xs));--gallery-sidebar-toggle-top:calc(var(--gallery-sidebar-top) + var(--gallery-sidebar-header-padding-top));--size-selection-bar-height:2.5rem;--selection-bar-bottom:calc(var(--board-toolbar-inset-bottom) + var(--space-m));--selection-bar-inset-bottom:0px;--size-card-min:17rem;interpolate-size:allow-keywords;--label-tint:4%;--label-mix:9%;--label-ink-mix:62%;--hover-bg-mix:25%;--bookmark-border-darken:32%;--bookmark-base:var(--color-surface-sunken);--surface-sunken-darkened:color-mix(in srgb, var(--color-surface-sunken), black var(--bookmark-border-darken));--bookmark-glass-fill:var(--glass-fill);--bookmark-glass-edge:var(--glass-soft-edge);--card-bg-base:var(--color-surface-raised);--shadow-card:0 10px 24px -14px #0000008c;--item-tint-rest:8%;--item-tint-hover:18%;--item-tint-selected:24%;--item-edge-label:30%;--item-edge-hover:46%;--item-edge-selected:60%;--board-card-inset:var(--space-s);--row-radius:calc(var(--radius-xl) - var(--board-card-inset));--tag-chip-ink:55%}@media (prefers-color-scheme:light){:root:not([data-theme]){--native-color-scheme:light;--scheme-light-pct:100%;--fill-l-min:.86;--fill-l-max:.97;--base-bg:#f4f4f5;--base-surface:#fff;--base-surface-raised:#fff;--base-border:#e2e2e5;--base-surface-hover:#e3e3e6;--base-surface-sunken:#ececef;--base-field-bg:#fff9;--color-text-primary:#222;--color-text-secondary:#4a4a4a;--color-text-muted:#595959;--color-accent:var(--accent-light);--surface-tint:var(--tint-light);--color-on-accent:var(--on-accent-light);--color-error:#bb2020;--color-success:#2e7d32;--color-on-danger:#fff;--color-on-success:#fff;--status-solid-shade:#000;--fill-selected-mix:25%;--fill-subtle-mix:6%;--glass-sunken:#0000000d;--shadow-raised:0 1px 1px #0f0f0f0f;--accent-text-mix:85%;--accent-text-toward:#000;--color-scrim:#17171766;--shadow-elevation:0 2px 10px #1e1e1f14;--elevation-2:0 6px 24px #0f0f0f2e;--elevation-3:0 16px 48px #0f0f0f33;--label-tint:8%;--label-mix:12%;--label-ink-mix:50%;--bookmark-border-darken:8%;--bookmark-base:color-mix(in srgb, #fff 20%, var(--color-surface-sunken));--shadow-card:0 10px 24px -14px #14141e38;--item-tint-rest:12%;--item-tint-hover:22%;--item-tint-selected:26%;--tag-chip-ink:40%;--favicon-plate-for-light-ink:#2229;--favicon-plate-radius-for-light-ink:var(--radius-max);--favicon-plate-for-dark-ink:transparent;--favicon-plate-radius-for-dark-ink:initial}}:root[data-theme=light]{--native-color-scheme:light;--scheme-light-pct:100%;--fill-l-min:.86;--fill-l-max:.97;--base-bg:#f4f4f5;--base-surface:#fff;--base-surface-raised:#fff;--base-border:#e2e2e5;--base-surface-hover:#e3e3e6;--base-surface-sunken:#ececef;--base-field-bg:#fff9;--color-text-primary:#222;--color-text-secondary:#4a4a4a;--color-text-muted:#595959;--color-accent:var(--accent-light);--surface-tint:var(--tint-light);--color-on-accent:var(--on-accent-light);--color-error:#bb2020;--color-success:#2e7d32;--color-on-danger:#fff;--color-on-success:#fff;--status-solid-shade:#000;--fill-selected-mix:25%;--fill-subtle-mix:6%;--glass-sunken:#0000000d;--shadow-raised:0 1px 1px #0f0f0f0f;--accent-text-mix:85%;--accent-text-toward:#000;--color-scrim:#17171766;--shadow-elevation:0 2px 10px #1e1e1f14;--elevation-2:0 6px 24px #0f0f0f2e;--elevation-3:0 16px 48px #0f0f0f33;--label-tint:8%;--label-mix:12%;--label-ink-mix:50%;--bookmark-border-darken:8%;--bookmark-base:color-mix(in srgb, #fff 20%, var(--color-surface-sunken));--shadow-card:0 10px 24px -14px #14141e38;--item-tint-rest:12%;--item-tint-hover:22%;--item-tint-selected:26%;--tag-chip-ink:40%;--favicon-plate-for-light-ink:#2229;--favicon-plate-radius-for-light-ink:var(--radius-max);--favicon-plate-for-dark-ink:transparent;--favicon-plate-radius-for-dark-ink:initial}:root[data-preset=indigo]{--accent-light:#4f46e5;--accent-dark:#6366f1;--tint-light:10%;--tint-dark:5%;--on-accent-light:#fff;--on-accent-dark:#fff}:root[data-preset=emerald]{--accent-light:#059669;--accent-dark:#10b981;--tint-light:10%;--tint-dark:5%;--on-accent-light:#1a1a1a;--on-accent-dark:#1a1a1a}:root[data-preset=amber]{--accent-light:#c56705;--accent-dark:#f59e0b;--tint-light:10%;--tint-dark:4%;--on-accent-light:#1a1a1a;--on-accent-dark:#1a1a1a}:root[data-preset=rose]{--accent-light:#e11d48;--accent-dark:#fb7185;--tint-light:10%;--tint-dark:7%;--on-accent-light:#fff;--on-accent-dark:#1a1a1a}:root[data-preset=violet]{--accent-light:#7c3aed;--accent-dark:#a78bfa;--tint-light:15%;--tint-dark:8%;--on-accent-light:#fff;--on-accent-dark:#1a1a1a}:root[data-surface=pitch-black]{--fill-l-min:.06;--fill-l-max:.2;--base-bg:#000;--base-surface:#0a0a0a;--base-surface-raised:#080808;--base-border:#1a1a1a;--base-surface-hover:#161616;--base-surface-sunken:#050505;--base-field-bg:#0009}:root[data-compact-rows]{--row-height-active:var(--row-height-compact);--row-gap-active:var(--row-gap-compact)}:root[data-toolbar-placement=top]{--board-toolbar-inset-top:var(--size-toolbar-height)}:root[data-toolbar-placement=bottom]{--board-toolbar-inset-bottom:calc(var(--size-toolbar-height) + var(--space-l))}:root.has-workspaces-bar,:root.has-board-toolbar{--selection-bar-bottom:3.75rem}:root.has-selection-bar{--selection-bar-inset-bottom:calc(var(--selection-bar-bottom) + var(--size-selection-bar-height) + var(--space-s))}:root[data-font=jetbrains-mono]{--font-family-base:var(--font-family-mono)}:root[data-font=google-sans]{--font-family-base:var(--font-family-sans)}:root[data-font=noto-serif]{--font-family-base:var(--font-family-serif)}:root[data-font=google-sans]{--font-size-xs:12px;--font-size-s:13px;--font-size-sm:15px;--font-size-m:16px;--font-size-l:17px;--bookmark-font-size:1rem}:root[data-font=jetbrains-mono]{--letter-spacing-caps:.04em;--bookmark-font-size:var(--font-size-m)}@font-face{font-style:normal;font-weight:400;src:url(/_astro/google-sans-latin-400-normal.gBg6aEjr.woff2)format("woff2");font-family:Google Sans;font-display:swap;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-style:normal;font-weight:400;src:url(/_astro/google-sans-latin-ext-400-normal.CBcBFvVe.woff2)format("woff2");font-family:Google Sans;font-display:swap;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-style:normal;font-weight:400;src:url(/_astro/google-sans-cyrillic-400-normal.CHc2gp4H.woff2)format("woff2");font-family:Google Sans;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-style:normal;font-weight:500;src:url(/_astro/google-sans-latin-500-normal.C94wcUG3.woff2)format("woff2");font-family:Google Sans;font-display:swap;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-style:normal;font-weight:500;src:url(/_astro/google-sans-latin-ext-500-normal.BnnOEq0M.woff2)format("woff2");font-family:Google Sans;font-display:swap;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-style:normal;font-weight:500;src:url(/_astro/google-sans-cyrillic-500-normal.Cp6_ZxD7.woff2)format("woff2");font-family:Google Sans;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-style:normal;font-weight:600;src:url(/_astro/google-sans-latin-600-normal.opt7x0vn.woff2)format("woff2");font-family:Google Sans;font-display:swap;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-style:normal;font-weight:600;src:url(/_astro/google-sans-latin-ext-600-normal.BHyqiOKM.woff2)format("woff2");font-family:Google Sans;font-display:swap;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-style:normal;font-weight:600;src:url(/_astro/google-sans-cyrillic-600-normal.BnCiAsGK.woff2)format("woff2");font-family:Google Sans;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-style:normal;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2");font-family:JetBrains Mono;font-display:swap;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-style:normal;font-weight:500;src:url(/_astro/jetbrains-mono-latin-ext-500-normal.Cut-4mMH.woff2)format("woff2");font-family:JetBrains Mono;font-display:swap;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-style:normal;font-weight:500;src:url(/_astro/jetbrains-mono-cyrillic-500-normal.DmUKJPL_.woff2)format("woff2");font-family:JetBrains Mono;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}:root{--font-size-display-l:clamp(2rem, .9rem + 3.9vw, 4rem);--font-size-display-m:clamp(1.375rem, .95rem + 1.9vw, 2.25rem);--font-size-display-s:clamp(1.0625rem, 1rem + .4vw, 1.25rem);--font-size-display-xs:clamp(.5rem, .7rem + .5vw, 1rem);--font-size-body-l:1.0625rem;--letter-spacing-display:-.025em;--letter-spacing-eyebrow:.08em;--space-section:clamp(3rem, 1.5rem + 5vw, 5.25rem);--space-section-head:clamp(var(--space-2xl), 1rem + 2vw, var(--space-3xl));--landing-max-width:64rem;--landing-prose-width:46rem;--button-primary-mix:22%;--page-glow:radial-gradient(60rem 28rem at 50% -6rem, color-mix(in srgb, var(--color-accent) 22%, transparent) 0%, transparent 70%)}.article{--article-measure:48rem;max-width:calc(var(--article-measure) + var(--space-xl) * 2);padding-bottom:var(--space-section)}.article-toc{margin-bottom:var(--space-3xl);padding:var(--space-xl) var(--space-2xl);border:1px solid var(--color-border);border-radius:var(--radius-l);background-color:var(--color-surface)}.article-toc__label{margin-bottom:var(--space-l);color:var(--color-text-muted);font-weight:var(--font-weight-medium);font-size:var(--font-size-s);font-family:var(--font-family-mono);letter-spacing:var(--letter-spacing-eyebrow);text-transform:uppercase}.article-toc__list{gap:var(--space-s) var(--space-xl);counter-reset:toc;grid-template-columns:repeat(auto-fit,minmax(13.5rem,1fr));margin:0;padding:0;list-style:none;display:grid}.article-toc__item{counter-increment:toc}.article-toc__link{gap:var(--space-s);color:var(--color-text-primary);font-size:var(--font-size-m);line-height:1.5;text-decoration:none;display:flex}.article-toc__link:before{content:counter(toc, decimal-leading-zero);color:var(--color-accent-text);font-family:var(--font-family-mono);font-variant-numeric:tabular-nums}.article-toc__link:hover{color:var(--color-accent-text)}.article__body{--article-text:color-mix(in srgb, var(--color-text-primary) 50%, var(--color-text-secondary));color:var(--article-text);font-weight:300;font-size:var(--font-size-l);counter-reset:section;line-height:1.75}.article__body>p{margin-bottom:var(--space-l)}.article__body>h2+p{color:var(--color-text-primary)}.article__body h2{margin-top:var(--space-3xl);margin-bottom:var(--space-l);padding-top:var(--space-3xl);border-top:1px dashed var(--color-border);color:var(--color-text-primary);font-size:var(--font-size-display-m);counter-increment:section}.article__body h2:before{margin-bottom:var(--space-2xs);content:counter(section, decimal-leading-zero);color:var(--color-accent-text);font-weight:400;font-size:var(--font-size-m);font-family:var(--font-family-mono);letter-spacing:var(--letter-spacing-eyebrow);display:block}.article__body h2:first-of-type{border-top:none;margin-top:0;padding-top:0}.article__body h3{margin-top:var(--space-2xl);margin-bottom:var(--space-s);color:var(--color-text-primary);font-size:var(--font-size-body-l)}.article__body ul,.article__body ol{margin:0 0 var(--space-l);padding-left:var(--space-xl);list-style:none}.article__body li{margin-bottom:var(--space-l);position:relative}.article__body li:before{left:calc(var(--space-xl) * -1);content:"–";color:var(--color-text-muted);position:absolute}.article__body li:last-child{margin-bottom:0}.article__body strong{color:var(--color-text-primary);font-weight:600}.article__body em{color:var(--color-text-primary)}.article__body a{color:var(--color-accent-text);text-underline-offset:.15em;text-decoration:underline}.article__body img{max-width:min(100%,34rem);height:auto;margin:var(--space-xl) 0;border:1px solid var(--color-border);border-radius:var(--radius-l);box-shadow:var(--shadow-elevation);display:block}.article__body img:is([src*=\/M01-],[src*=\/M04-],[src*=\/M06-]){max-width:min(100%,22rem)}.article__body code{border:1px solid var(--color-border);border-radius:var(--radius-s);background-color:var(--color-surface);color:var(--color-text-primary);font-size:.85em;font-family:var(--font-family-mono);overflow-wrap:anywhere;padding:.15em .4em}.article__body table{width:100%;margin:0 0 var(--space-l);border-collapse:collapse;font-size:var(--font-size-m);line-height:1.5}@media (width<40rem){.article__body table{font-size:var(--font-size-sm)}}.article__body th,.article__body td{padding:var(--space-s) var(--space-m);border-bottom:1px dashed var(--color-border);hyphens:auto;text-align:start;vertical-align:top;overflow-wrap:break-word}@media (width<40rem){.article__body th,.article__body td{padding-inline:var(--space-xs);overflow-wrap:anywhere}}.article__body th:first-child,.article__body td:first-child{padding-inline-start:0}.article__body th:last-child,.article__body td:last-child{padding-inline-end:0}.article__body th{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.article__body td:first-child{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}@layer base{*,:before,:after{box-sizing:border-box}:root{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent;scroll-padding-top:5rem}body{background-color:var(--color-bg);color:var(--color-text-primary);font-size:var(--font-size-body-l);line-height:1.55;font-family:var(--font-family-base);margin:0;position:relative}body:before{z-index:-1;background:var(--page-glow);content:"";position:absolute;inset:0}main{overflow-x:clip}h1,h2,h3{font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-display);margin:0;line-height:1.15}p{margin:0}a{color:var(--color-text-secondary);transition:color var(--transition-base);text-decoration:none}a:hover{color:var(--color-text-primary)}img{max-width:100%;height:auto;display:block}code,kbd{border-radius:var(--radius-xs);background-color:var(--glass-fill);font-size:.875em;font-family:var(--font-family-mono);padding:.1em .35em}:where(a,button,summary,[tabindex]):focus-visible{border-radius:var(--radius-s);box-shadow:var(--focus-outline);outline:none}.container{max-width:var(--landing-max-width);padding-inline:var(--space-l);margin:0 auto}.skip-link{z-index:100;top:var(--space-s);left:var(--space-s);padding:var(--space-s) var(--space-m);border:1px solid var(--color-border);border-radius:var(--radius-m);background-color:var(--color-surface);font-size:var(--font-size-m);transition:transform var(--transition-base);text-decoration:none;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.sr-only{white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.theme-toggle{width:var(--size-control-l);height:var(--size-control-l);border-radius:var(--radius-s);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base);background-color:#0000;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle:hover{border-color:var(--glass-soft-edge);background-color:var(--glass-soft);color:var(--color-text-primary)}.theme-toggle:active{border-color:var(--glass-edge-hover);background-color:var(--glass-soft-pressed)}.theme-toggle__icon{width:var(--size-icon);height:var(--size-icon);fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px}.theme-toggle__icon--light{display:none}.eyebrow{color:var(--eyebrow-color,var(--color-accent-text));font-weight:var(--font-weight-medium);font-size:var(--font-size-s);font-family:var(--font-family-mono);letter-spacing:var(--letter-spacing-eyebrow);text-transform:uppercase}.card{border:1px solid var(--color-border);border-radius:var(--radius-l);background-color:var(--color-surface);box-shadow:var(--shadow-elevation)}.card--dashed{border-style:dashed;border-color:var(--glass-edge-strong);background-color:var(--glass-fill);box-shadow:none}.popover{padding:var(--space-2xs);gap:var(--space-3xs);border:1px solid var(--color-border);border-radius:var(--radius-l);background-color:var(--color-surface-raised);box-shadow:var(--elevation-2);margin:0;list-style:none}.badge{border-radius:var(--radius-max);flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:flex}.badge svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.375rem;height:1.375rem}.badge--blue{background:color-mix(in srgb, var(--color-label-blue) 16%, transparent);color:var(--color-label-blue)}.badge--teal{background:color-mix(in srgb, var(--color-label-teal) 16%, transparent);color:var(--color-label-teal)}.badge--violet{background:color-mix(in srgb, var(--color-label-violet) 16%, transparent);color:var(--color-label-violet)}.button{--button-bg:transparent;--button-color:var(--color-text-secondary);--button-edge:transparent;--button-hover-color:var(--color-text-primary);--button-pressed-bg:var(--glass-soft-pressed);min-height:var(--button-height,2.5rem);padding:0 var(--button-padding-inline,var(--space-l));justify-content:center;align-items:center;gap:var(--space-s);border:1px solid var(--button-ring,var(--button-edge));border-radius:var(--button-radius,var(--radius-m));background-color:var(--button-fill,var(--button-bg));color:var(--button-ink,var(--button-color));font:inherit;font-weight:var(--font-weight-medium);font-size:var(--button-font-size,var(--font-size-m));white-space:nowrap;cursor:pointer;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base);flex-shrink:0;line-height:1.25;text-decoration:none;display:inline-flex}.button:hover{--button-fill:var(--button-hover-bg,var(--glass-soft));--button-ink:var(--button-hover-color);--button-ring:var(--button-hover-ring);color:var(--button-ink)}.button:active,details[open]>.button{--button-fill:var(--button-pressed-bg);--button-ink:var(--button-hover-color);--button-ring:var(--button-pressed-ring,var(--button-hover-ring))}.button--s{--button-height:var(--size-control-l);--button-padding-inline:var(--space-m);--button-font-size:var(--font-size-sm);--button-radius:var(--radius-s)}.button--l{--button-height:3rem;--button-padding-inline:var(--space-xl);--button-font-size:var(--font-size-body-l)}.button--ghost{--button-hover-ring:var(--glass-soft-edge);--button-pressed-ring:var(--glass-edge-hover)}.button--secondary{--button-bg:var(--glass-fill);--button-hover-bg:var(--glass-fill-hover);--button-pressed-bg:var(--glass-fill-pressed);--button-hover-ring:var(--glass-edge-hover);--button-color:var(--color-text-primary);--button-ring:var(--glass-edge)}.button--primary{--button-bg:color-mix(in srgb, var(--color-accent) var(--button-primary-mix), transparent);--button-color:var(--color-text-primary);--button-hover-bg:color-mix(in srgb, var(--color-accent) calc(var(--button-primary-mix) + 10%), transparent);--button-pressed-bg:color-mix(in srgb, var(--color-accent) calc(var(--button-primary-mix) + 18%), transparent);--button-ring:color-mix(in srgb, var(--color-accent) 48%, transparent);--button-hover-ring:color-mix(in srgb, var(--color-accent) 60%, transparent)}.scroll-hint{background:linear-gradient(to right, var(--color-bg) 30%, transparent) left center/2rem 100% no-repeat local, linear-gradient(to left, var(--color-bg) 30%, transparent) right center/2rem 100% no-repeat local, linear-gradient(to right, var(--glass-edge-strong), transparent) left center/.75rem 100% no-repeat scroll, linear-gradient(to left, var(--glass-edge-strong), transparent) right center/.75rem 100% no-repeat scroll}.btn-icon{flex-shrink:0;width:1.25rem;height:1.25rem}}@media (prefers-color-scheme:light){:root:not([data-theme]) .theme-toggle__icon--dark{display:none}:root:not([data-theme]) .theme-toggle__icon--light{display:block}}:root[data-theme=light] .theme-toggle__icon--dark{display:none}:root[data-theme=light] .theme-toggle__icon--light,:root[data-theme=dark] .theme-toggle__icon--dark{display:block}:root[data-theme=dark] .theme-toggle__icon--light,:root .screenshot.screenshot--dark,:root .lightbox__image.lightbox__image--dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme]) .screenshot.screenshot--light,:root:not([data-theme]) .lightbox__image.lightbox__image--light{display:none}:root:not([data-theme]) .screenshot.screenshot--dark,:root:not([data-theme]) .lightbox__image.lightbox__image--dark{display:block}}:root[data-theme=dark] .screenshot.screenshot--light,:root[data-theme=dark] .lightbox__image.lightbox__image--light{display:none}:root[data-theme=dark] .screenshot.screenshot--dark,:root[data-theme=dark] .lightbox__image.lightbox__image--dark,:root[data-theme=light] .screenshot.screenshot--light,:root[data-theme=light] .lightbox__image.lightbox__image--light{display:block}:root[data-theme=light] .screenshot.screenshot--dark,:root[data-theme=light] .lightbox__image.lightbox__image--dark{display:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root[data-browser=chrome] .install-row .button[data-install-browser]:not([data-install-browser=chrome]),:root[data-browser=mobile] .install-row .button[data-install-browser]:not([data-install-browser=chrome]),:root[data-browser=edge] .install-row .button[data-install-browser]:not([data-install-browser=edge]),:root[data-browser=firefox] .install-row .button[data-install-browser]:not([data-install-browser=firefox]){--button-bg:var(--glass-fill);--button-hover-bg:var(--glass-fill-hover);--button-pressed-bg:var(--glass-fill-pressed);--button-hover-ring:var(--glass-edge-hover);--button-color:var(--color-text-primary);--button-ring:var(--glass-edge)}.hero{isolation:isolate;position:relative}.hero:before{z-index:-1;background:radial-gradient(34rem 18rem at 28% 22%, color-mix(in srgb, var(--color-accent) 16%, transparent), transparent 70%), radial-gradient(30rem 16rem at 74% 30%, color-mix(in srgb, var(--color-label-violet) 14%, transparent), transparent 70%);content:"";pointer-events:none;height:42rem;position:absolute;inset:-4rem 0 auto}.bento__card{transition:transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base)}@media (hover:hover){.bento__card:hover{border-color:var(--glass-edge-hover);box-shadow:var(--elevation-2);transform:translateY(-3px)}}.chapter .screenshot:hover{transform:none}.bento__card--lead{background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-accent) 9%, transparent), transparent 55%)}@media (prefers-reduced-motion:no-preference){@keyframes landing-glow-drift{0%{transform:translate(-3%)scale(1)}to{transform:translate(3%,1.5rem)scale(1.08)}}.hero:before{animation:24s ease-in-out infinite alternate landing-glow-drift}@supports (animation-timeline:view()){@keyframes landing-reveal{0%{opacity:0;translate:0 1.5rem}}.how__step,.chapter,.bento__card,.strip,.teaser,.faq,.reviews{animation:linear both landing-reveal view();animation-range:entry entry 35%}}}
