:root{--color-paper:#fafbf8;--color-pure-white:#fff;--color-ink:#121715;--color-graphite:#2c3330;--color-inverse:#121715;--color-ash:#9aa09c;--color-dim:#5e6562;--color-bone:#dcdfdb;--color-mist:#d9ddd9;--color-line:#1217151f;--color-line-strong:#12171538;--color-tint:#12171508;--font-sans:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs:12px;--leading-xs:1.5;--tracking-xs:.1em;--weight-xs:400;--family-xs:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs-2:12px;--leading-xs-2:1.5;--tracking-xs-2:.1em;--weight-xs-2:700;--family-xs-2:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-sm:14px;--leading-sm:1.5;--tracking-sm:0em;--weight-sm:400;--family-sm:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-base:15px;--leading-base:1.5;--tracking-base:0em;--weight-base:400;--family-base:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-lg:17px;--leading-lg:1.5;--tracking-lg:0em;--weight-lg:400;--family-lg:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-xl:20px;--leading-xl:1.4;--tracking-xl:0em;--weight-xl:400;--family-xl:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-2xl:28px;--leading-2xl:1.3;--tracking-2xl:-.02em;--weight-2xl:500;--family-2xl:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-3xl:32px;--leading-3xl:1.2;--tracking-3xl:-.02em;--weight-3xl:500;--family-3xl:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-4xl:40px;--leading-4xl:1.1;--tracking-4xl:-.03em;--weight-4xl:500;--family-4xl:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-5xl:48px;--leading-5xl:1.1;--tracking-5xl:-.02em;--weight-5xl:500;--family-5xl:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--text-hero:clamp(34px, 4.6vw, 64px);--leading-hero:1.02;--tracking-hero:-.04em;--weight-hero:500;--family-hero:"ABCfavorit Book", "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Noto Sans SC", sans-serif;--spacing-8:8px;--spacing-16:16px;--spacing-24:24px;--spacing-32:32px;--spacing-48:48px;--spacing-64:64px;--spacing-80:80px;--spacing-96:96px;--spacing-112:112px;--spacing-160:160px;--spacing-unit:8px;--radius-sm:3px;--radius-md:4px;--radius-lg:8px;--radius-full:100px;--frame-max-width:1520px;--page-max-width:1200px;--nav-height:54px;--gutter-start:40px;--gutter-end:24px;--section-gap:64px;--rule-gap:72px;--card-padding:24px;--element-gap:8px;--surface-canvas:#fafbf8;--surface-card:#fff;--surface-inverse:#121715;--motion-ease-out:cubic-bezier(.22, 1, .36, 1);--motion-ease-reveal:cubic-bezier(.16, 1, .3, 1);--motion-duration-reveal:1s;--motion-stagger-reveal:90ms;--motion-duration-tray:.42s;--motion-duration-pulse:1.35s;--shadow-card:0 1px 2px #1217151a, 0 18px 40px -28px #12171580;--shadow-glass:0 4px 20px #00000026}[data-theme=dark]{--color-paper:#0c0f0e;--color-pure-white:#141917;--color-ink:#edf0ec;--color-graphite:#c4cac6;--color-inverse:#171d1b;--color-ash:#6c7470;--color-dim:#9ba29e;--color-bone:#252c29;--color-mist:#fff;--color-line:#edf0ec1f;--color-line-strong:#edf0ec3d;--color-tint:#edf0ec0a}.type-xs{font-family:var(--family-xs);font-size:var(--text-xs);font-weight:var(--weight-xs);line-height:var(--leading-xs);letter-spacing:var(--tracking-xs)}.type-xs-2{font-family:var(--family-xs-2);font-size:var(--text-xs-2);font-weight:var(--weight-xs-2);line-height:var(--leading-xs-2);letter-spacing:var(--tracking-xs-2)}.type-sm{font-family:var(--family-sm);font-size:var(--text-sm);font-weight:var(--weight-sm);line-height:var(--leading-sm);letter-spacing:var(--tracking-sm)}.type-base{font-family:var(--family-base);font-size:var(--text-base);font-weight:var(--weight-base);line-height:var(--leading-base);letter-spacing:var(--tracking-base)}.type-lg{font-family:var(--family-lg);font-size:var(--text-lg);font-weight:var(--weight-lg);line-height:var(--leading-lg);letter-spacing:var(--tracking-lg)}.type-xl{font-family:var(--family-xl);font-size:var(--text-xl);font-weight:var(--weight-xl);line-height:var(--leading-xl);letter-spacing:var(--tracking-xl)}.type-2xl{font-family:var(--family-2xl);font-size:var(--text-2xl);font-weight:var(--weight-2xl);line-height:var(--leading-2xl);letter-spacing:var(--tracking-2xl)}.type-3xl{font-family:var(--family-3xl);font-size:var(--text-3xl);font-weight:var(--weight-3xl);line-height:var(--leading-3xl);letter-spacing:var(--tracking-3xl)}.type-4xl{font-family:var(--family-4xl);font-size:var(--text-4xl);font-weight:var(--weight-4xl);line-height:var(--leading-4xl);letter-spacing:var(--tracking-4xl)}.type-5xl{font-family:var(--family-5xl);font-size:var(--text-5xl);font-weight:var(--weight-5xl);line-height:var(--leading-5xl);letter-spacing:var(--tracking-5xl)}.type-hero{font-family:var(--family-hero);font-size:var(--text-hero);font-weight:var(--weight-hero);line-height:var(--leading-hero);letter-spacing:var(--tracking-hero)}[data-scene] [data-at]{opacity:0;transition:opacity .45s var(--motion-ease-out), transform .6s cubic-bezier(.34, 1.56, .64, 1);transform:translateY(6px)scale(.97)}[data-scene] [data-at].is-on{opacity:1;transform:none}[data-scene] svg [data-at]{transform-box:fill-box;transform-origin:50%}[data-scene] .pop[data-at]{transform:scale(.94)}[data-scene] .ring[data-at]{transform-box:fill-box;transform-origin:50%;transform:scale(.4)}[data-scene] .ring[data-at].is-on{transform:none}[data-scene]>*{transition:opacity .6s}[data-scene].is-ending [data-at],[data-scene].is-ending [data-type-at]{opacity:0;transition-duration:.6s}.caret.is-typing:after{content:"";vertical-align:-.15em;background:currentColor;width:7px;height:1.05em;margin-left:2px;animation:.9s step-end infinite kBlink;display:inline-block}@keyframes kBlink{50%{opacity:0}}.flow-line{stroke-dasharray:3 7;animation:1.2s linear infinite kFlow}@keyframes kFlow{to{stroke-dashoffset:-20px}}.halo{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-in-out infinite kHalo}@keyframes kHalo{0%,to{opacity:.16;transform:scale(1)}50%{opacity:.05;transform:scale(1.35)}}.ticker{border-top:1px solid var(--line);display:flex;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.ticker__track{flex:none;gap:40px;padding:10px 20px;animation:36s linear infinite kTicker;display:flex}.ticker__track span{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:10.5px}@keyframes kTicker{to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.flow-line,.halo,.ticker__track,.caret.is-typing:after{animation:none}}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff");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:Switzer;src:url(/fonts/switzer-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-500.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-600.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:ABCfavorit Book;src:local(ABCfavorit Book),local(ABCFavorit-Book);font-feature-settings:"ss04" on, "ss11" on}:root{--bg:var(--color-paper);--fg:var(--color-ink);--fg-2:var(--color-graphite);--muted:var(--color-dim);--faint:var(--color-ash);--surface:var(--color-pure-white);--line:var(--color-line);--line-strong:var(--color-line-strong);--tint:var(--color-tint);--btn-bg:var(--color-ink);--btn-fg:var(--color-paper);--btn-hover-bg:var(--color-mist);--btn-hover-fg:var(--color-ink);--inverse-bg:var(--color-inverse);--inverse-fg:var(--color-paper);--inverse-muted:#fafbf894;--inverse-line:#fafbf824;color-scheme:light}[data-theme=dark]{--btn-hover-fg:var(--color-paper);--inverse-fg:var(--color-ink);--inverse-muted:#edf0ec94;--inverse-line:#edf0ec1f;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:clip}::selection{background:var(--fg);color:var(--bg)}a{color:inherit;text-decoration:none}img,svg,canvas{max-width:100%;display:block}code,pre,kbd{font-family:var(--font-mono);font-size:13px}h1,h2,h3,h4{margin:0;font-weight:500}p{margin:0}.frame{max-width:var(--frame-max-width);border-left:1px solid var(--line);border-right:1px solid var(--line);margin:0 auto}.pad{padding-left:var(--gutter-start);padding-right:var(--gutter-end)}.rule{background:var(--line);height:1px;margin:var(--rule-gap) 0}.rule--flush{margin:0}.split{background:var(--line);align-self:stretch;width:1px}@media (width<=860px){.pad{padding-left:20px;padding-right:20px}.rule{margin:48px 0}.split{display:none}}.hero-h{font-size:var(--text-hero);font-weight:var(--weight-hero);line-height:var(--leading-hero);letter-spacing:var(--tracking-hero);text-wrap:balance;max-width:17ch;display:block}.section-h{letter-spacing:-.034em;text-wrap:balance;font-size:clamp(28px,3.4vw,42px);font-weight:500;line-height:1.04;display:block}.row-h{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(22px,2.2vw,28px);font-weight:500;line-height:1.12}.lede{color:var(--fg-2);max-width:60ch;font-size:18px;line-height:1.6}.body-muted{color:var(--muted);text-wrap:pretty;max-width:40ch;font-size:15px;line-height:1.62}.muted{color:var(--muted)}.faint{color:var(--faint)}.tag{border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--fg);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;align-self:flex-start;align-items:center;gap:8px;padding:7px 11px;font-size:11px;line-height:1;display:inline-flex}.tag--solid{background:var(--fg);border-color:var(--fg);color:var(--bg)}.mono-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px;line-height:1.8}.pulse-dot{width:7px;height:7px;animation:kPulse var(--motion-duration-pulse) ease-in-out infinite;background:currentColor;border-radius:50%;display:inline-block}@keyframes kPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.78)}}.btn{border:1px solid var(--btn-bg);border-radius:var(--radius-full);background:var(--btn-bg);color:var(--btn-fg);font:500 14px / 1 var(--font-sans);cursor:pointer;justify-content:center;align-items:center;gap:7px;padding:10px 18px;transition:background-color .18s,color .18s,border-color .18s;display:inline-flex}.btn:hover{background:var(--btn-hover-bg);border-color:var(--btn-hover-bg);color:var(--btn-hover-fg)}.btn:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.btn--line{color:var(--fg);border-color:var(--line-strong);background:0 0}.btn--line:hover{background:var(--tint);border-color:var(--fg);color:var(--fg)}.btn--sm{padding:8px 15px;font-size:13px}.btn .arrow{transition:transform .18s}.btn:hover .arrow{transform:translate(2px)}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.text-link{border-bottom:1px solid;gap:6px;padding-bottom:1px;display:inline-flex}.product-row{grid-template-columns:minmax(0,400px) minmax(0,1fr);align-items:start;gap:48px;display:grid}.product-row--flip{grid-template-columns:minmax(0,1fr) minmax(0,400px)}.product-copy{flex-direction:column;align-items:flex-start;gap:16px;min-width:0;display:flex}.product-media{min-width:0}@media (width<=860px){.product-row,.product-row--flip{grid-template-columns:minmax(0,1fr)}.product-row>.product-copy{order:-1}}.shot{border:1px solid var(--line-strong);background:var(--bg);width:100%}.shot-nav{border-bottom:1px solid var(--line);align-items:stretch;min-height:36px;display:flex}.shot-tag{border-right:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;flex:none;align-items:center;gap:8px;padding:0 14px;font-size:10.5px;display:inline-flex}.shot-modes{border-left:1px solid var(--line);margin-left:auto;display:flex}.shot-mode{border-right:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;padding:0 14px;font-size:10.5px;transition:color .3s,background-color .3s;display:inline-flex}.shot-mode:last-child{border-right:0}.shot-mode.is-on{color:var(--fg);background:var(--tint)}.shot-body{aspect-ratio:16/9;width:100%;position:relative;overflow:hidden}.action-card{background:var(--surface);box-shadow:var(--shadow-card);white-space:nowrap;border-radius:5px;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.action-card .mono-label{margin-left:auto;padding-left:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--card-padding)}.inverse{background:var(--inverse-bg);color:var(--inverse-fg);--muted:var(--inverse-muted);--line:var(--inverse-line);--line-strong:var(--inverse-line);--fg:var(--inverse-fg);--fg-2:var(--inverse-muted)}.grid{gap:16px;display:grid}.grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.page-head{border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:20px;padding-top:88px;padding-bottom:56px;display:flex}.page-head h1{font-size:clamp(34px, 4vw, var(--text-5xl));line-height:var(--leading-5xl);letter-spacing:-.035em;text-wrap:balance;max-width:20ch}.page-head .intro{color:var(--faint)}.table-wrap{border:1px solid var(--line-strong);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 16px}th{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:400}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background-color .15s}tbody tr:hover td{background:var(--tint)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.wrap{white-space:normal}td a{border-bottom:1px solid var(--line-strong)}.code{background:var(--surface);border:1px solid var(--line-strong);color:var(--fg);margin:0;padding:24px;line-height:1.7;overflow-x:auto}.code .c{color:var(--faint)}.code .s{color:var(--muted)}.form{gap:16px;max-width:560px;display:grid}.form label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);gap:8px;font-size:10.5px;display:grid}.form input,.form textarea{font:15px var(--font-sans);letter-spacing:0;text-transform:none;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);padding:11px 12px}.form input:focus,.form textarea:focus{border-color:var(--fg);outline:none}.form textarea{resize:vertical;min-height:110px}.prose{max-width:760px;color:var(--fg-2)}.prose h1{letter-spacing:-.03em;color:var(--fg);margin-bottom:20px;font-size:clamp(30px,3.4vw,40px);line-height:1.1}.prose h2{letter-spacing:-.015em;color:var(--fg);margin:48px 0 12px;scroll-margin-top:80px;font-size:20px}.prose h3{color:var(--fg);margin:28px 0 8px;scroll-margin-top:80px;font-size:16px}.prose p,.prose li{line-height:1.7}.prose p{margin:0 0 14px}.prose ul,.prose ol{margin:0 0 14px;padding-left:1.3em}.prose a{border-bottom:1px solid var(--line-strong)}.prose a:hover{border-bottom-color:var(--fg)}.prose table{border:1px solid var(--line-strong);background:var(--surface);margin:20px 0;display:block;overflow-x:auto}.prose th,.prose td{white-space:normal;vertical-align:top}.prose blockquote{border-left:1px solid var(--fg);background:var(--surface);margin:20px 0;padding:12px 16px}.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.prose code{font-size:12.5px}.notice{border:1px solid var(--line-strong);background:var(--surface);align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}[data-reveal]{--reveal-delay:0s;opacity:0;filter:blur(4px);transition:opacity var(--motion-duration-reveal) var(--motion-ease-reveal) var(--reveal-delay), transform calc(var(--motion-duration-reveal) * 1.2) var(--motion-ease-reveal) var(--reveal-delay), filter var(--motion-duration-reveal) var(--motion-ease-reveal) var(--reveal-delay);transform:translateY(24px)}[data-reveal].is-in{opacity:1;filter:none;transform:none}.shot[data-reveal]{filter:none;clip-path:inset(0 0 14%);transition:opacity var(--motion-duration-reveal) var(--motion-ease-reveal) var(--reveal-delay), transform calc(var(--motion-duration-reveal) * 1.3) var(--motion-ease-reveal) var(--reveal-delay), clip-path calc(var(--motion-duration-reveal) * 1.3) var(--motion-ease-reveal) var(--reveal-delay);transform:translateY(40px)scale(.985)}.shot[data-reveal].is-in{clip-path:inset(0)}[data-reveal].is-split{opacity:1;filter:none;transform:none}.rw{vertical-align:top;margin-bottom:-.12em;padding-bottom:.12em;display:inline-block;overflow:hidden}.rw>span{transition:transform calc(var(--motion-duration-reveal) * 1.1) var(--motion-ease-reveal);transition-delay:calc(var(--reveal-delay) + var(--ci,0) * var(--motion-stagger-reveal) + var(--wi) * 40ms);display:inline-block;transform:translateY(108%)}.is-in .rw>span{transform:none}[data-reveal=stagger]{opacity:1;filter:none;transform:none}[data-reveal=stagger]>*{opacity:0;transition:opacity var(--motion-duration-reveal) var(--motion-ease-reveal), transform calc(var(--motion-duration-reveal) * 1.2) var(--motion-ease-reveal);transition-delay:calc(var(--reveal-delay) + var(--ci) * var(--motion-stagger-reveal));transform:translateY(18px)}[data-reveal=stagger].is-in>*{opacity:1;transform:none}.rule{transform-origin:0;transition:transform 1.4s var(--motion-ease-reveal);transform:scaleX(0)}.rule.is-in{transform:none}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal],[data-reveal=stagger]>*,.rw>span,.rule{opacity:1;filter:none;clip-path:none;transition:none;transform:none}.pulse-dot{animation:none}}.inner{padding-top:48px;padding-bottom:88px}.inner+.inner{padding-top:0}.crumbs{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.crumbs a:hover{color:var(--fg)}.astro-code,.astro-code span{color:var(--shiki-light);font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight)}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--shiki-dark);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight)}.logo[data-astro-cid-f7espo7c]{line-height:0;display:inline-flex}.bar[data-astro-cid-nen7h5rs]{z-index:60;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);position:sticky;top:0}.bar__inner[data-astro-cid-nen7h5rs]{min-height:var(--nav-height);align-items:stretch;display:flex}.bar__brand[data-astro-cid-nen7h5rs]{border-right:1px solid var(--line);color:var(--fg);flex:none;align-items:center;padding:0 24px;display:flex}.bar__links[data-astro-cid-nen7h5rs]{flex:auto;align-items:stretch;display:flex}.bar__link[data-astro-cid-nen7h5rs],.bar__cell[data-astro-cid-nen7h5rs]{color:var(--muted);border-right:1px solid var(--line);align-items:center;gap:8px;padding:0 20px;font-size:13px;transition:color .15s,background-color .15s;display:inline-flex}.bar__link[data-astro-cid-nen7h5rs]:hover,.bar__link[data-astro-cid-nen7h5rs].is-active,.bar__cell[data-astro-cid-nen7h5rs]:hover{color:var(--fg);background:var(--tint)}.bar__new[data-astro-cid-nen7h5rs]{width:6px;height:6px;color:var(--fg)}.bar__cell[data-astro-cid-nen7h5rs]{border-right:0;border-left:1px solid var(--line)}.bar__theme[data-astro-cid-nen7h5rs]{cursor:pointer;color:var(--fg);background:0 0;border-top:0;border-bottom:0}.bar__cta[data-astro-cid-nen7h5rs]{background:var(--btn-bg);color:var(--btn-fg);flex:none;align-items:center;padding:0 22px;font-size:13px;font-weight:500;transition:background-color .18s,color .18s;display:inline-flex}.bar__cta[data-astro-cid-nen7h5rs]:hover{background:var(--btn-hover-bg);color:var(--btn-hover-fg)}.bar__tray-btn[data-astro-cid-nen7h5rs]{border:0;border-left:1px solid var(--line-strong);background:var(--bg);width:54px;color:var(--fg);cursor:pointer;justify-content:center;align-items:center;margin-left:auto;padding:0;display:none}.bars[data-astro-cid-nen7h5rs]{width:20px;height:14px;display:block;position:relative}.bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]{background:currentColor;width:100%;height:2px;transition:transform .22s,opacity .16s;position:absolute;left:0}.bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]:first-child{top:0}.bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]:nth-child(2){top:6px}.bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]:nth-child(3){top:12px}.bar__tray-btn[data-astro-cid-nen7h5rs][aria-expanded=true]{background:var(--fg);color:var(--bg)}.bar__tray-btn[data-astro-cid-nen7h5rs][aria-expanded=true] .bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]:first-child{transform:translateY(6px)rotate(45deg)}.bar__tray-btn[data-astro-cid-nen7h5rs][aria-expanded=true] .bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]:nth-child(2){opacity:0}.bar__tray-btn[data-astro-cid-nen7h5rs][aria-expanded=true] .bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.tray[data-astro-cid-nen7h5rs]{display:none}@media (width<=860px){.bar__links[data-astro-cid-nen7h5rs],.bar__cta[data-astro-cid-nen7h5rs],.bar__theme[data-astro-cid-nen7h5rs]{display:none}.bar__brand[data-astro-cid-nen7h5rs]{border-right:0;padding:0 16px}.bar__tray-btn[data-astro-cid-nen7h5rs]{display:inline-flex}.tray[data-astro-cid-nen7h5rs]{z-index:70;background:var(--bg);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;pointer-events:none;max-height:0;transition:max-height var(--motion-duration-tray) var(--motion-ease-out), opacity .2s ease;flex-direction:column;display:flex;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 24px 48px -28px #12171573}.tray[data-astro-cid-nen7h5rs][data-open="1"]{opacity:1;visibility:visible;pointer-events:auto;max-height:90vh}.tray[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs],.tray__theme[data-astro-cid-nen7h5rs]{border:0;border-bottom:1px solid var(--line);min-height:52px;color:var(--fg);font:15px var(--font-sans);letter-spacing:-.02em;text-align:left;cursor:pointer;background:0 0;align-items:center;padding:0 20px;display:flex}.tray[data-astro-cid-nen7h5rs] .tray__cta[data-astro-cid-nen7h5rs]{background:var(--btn-bg);min-height:54px;color:var(--btn-fg);border-bottom:0;justify-content:center;font-size:14px;font-weight:500}}@media (prefers-reduced-motion:reduce){.tray[data-astro-cid-nen7h5rs],.bars[data-astro-cid-nen7h5rs]>span[data-astro-cid-nen7h5rs]{transition:none}}.foot[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);font-size:14px}.foot__frame[data-astro-cid-jo6i4kqk]{border-color:var(--inverse-line);overflow:hidden}.foot__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1.3fr 1fr 1fr 1fr 1.3fr;display:grid}.foot__col[data-astro-cid-jo6i4kqk]{border-right:1px solid var(--line);flex-direction:column;gap:18px;padding:48px 24px 40px;display:flex}.foot__col[data-astro-cid-jo6i4kqk]:first-child{padding-left:var(--gutter-start)}.foot__col[data-astro-cid-jo6i4kqk]:last-child{border-right:0}.foot__brand[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{font-size:14px;line-height:1.6}.foot[data-astro-cid-jo6i4kqk] .foot__social[data-astro-cid-jo6i4kqk]{gap:18px;margin-top:auto;padding-top:24px;display:flex}.foot[data-astro-cid-jo6i4kqk] .foot__social[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.foot[data-astro-cid-jo6i4kqk] .foot__social[data-astro-cid-jo6i4kqk] span[data-astro-cid-jo6i4kqk]{color:var(--inverse-fg);opacity:.7;transition:opacity .15s;display:inline-flex}.foot[data-astro-cid-jo6i4kqk] .foot__social[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{opacity:1;text-decoration:none}.foot[data-astro-cid-jo6i4kqk] .foot__social[data-astro-cid-jo6i4kqk] span[data-astro-cid-jo6i4kqk]{opacity:.35}.foot[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:10px;margin:0;padding:0;list-style:none;display:grid}.foot[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.foot__btn[data-astro-cid-jo6i4kqk]{color:var(--inverse-fg);opacity:.86;transition:opacity .15s}.foot[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.foot__btn[data-astro-cid-jo6i4kqk]:hover{opacity:1;text-underline-offset:3px;text-decoration:underline}.foot__bottom[data-astro-cid-jo6i4kqk]{padding:18px var(--gutter-end) 18px var(--gutter-start);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);flex-wrap:wrap;gap:12px 28px;font-size:11px;display:flex}.foot__btn[data-astro-cid-jo6i4kqk]{font:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;padding:0}.foot__mark[data-astro-cid-jo6i4kqk]{padding:clamp(56px, 7vw, 104px) var(--gutter-start) 0;color:var(--inverse-fg);opacity:.09;pointer-events:none;user-select:none;justify-content:center;display:flex;-webkit-mask-image:linear-gradient(#000 35%,#0000 100%);mask-image:linear-gradient(#000 35%,#0000 100%)}.foot__mark[data-astro-cid-jo6i4kqk] .logo{width:100%;margin-bottom:-5.8%;transform:translate(.35%)}.foot__mark[data-astro-cid-jo6i4kqk] svg{height:auto;width:100%!important}@media (width<=1100px){.foot__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(3,1fr)}.foot__brand[data-astro-cid-jo6i4kqk]{border-right:0;border-bottom:1px solid var(--line);grid-column:1/-1}.foot__col[data-astro-cid-jo6i4kqk]:nth-child(4){border-right:0}.foot__legal[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);padding-left:var(--gutter-start);grid-column:1/-1}.foot__legal[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (width<=640px){.foot__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}.foot__col[data-astro-cid-jo6i4kqk]{padding:32px 20px}.foot__col[data-astro-cid-jo6i4kqk]:first-child,.foot__legal[data-astro-cid-jo6i4kqk]{padding-left:20px}.foot__col[data-astro-cid-jo6i4kqk]:nth-child(3){border-right:0}.foot__col[data-astro-cid-jo6i4kqk]:nth-child(4){border-right:1px solid var(--line);border-top:1px solid var(--line)}.foot__bottom[data-astro-cid-jo6i4kqk]{padding:18px 20px}}.cookie[data-astro-cid-hq3mgpmn]{z-index:80;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(380px,100vw - 32px);box-shadow:var(--shadow-glass);justify-items:start;gap:12px;padding:16px;font-size:14px;display:grid;position:fixed;bottom:16px;left:16px}.cookie[data-astro-cid-hq3mgpmn] a[data-astro-cid-hq3mgpmn]{border-bottom:1px solid var(--line-strong)}.preview-bar[data-astro-cid-hkbrpulz]{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;text-align:center;justify-content:center;gap:12px;padding:7px 16px;font-size:10.5px;display:flex}.preview-bar[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{border-bottom:1px solid}@media (width<=640px){.preview-bar[data-astro-cid-hkbrpulz] .muted[data-astro-cid-hkbrpulz]{display:none}}
