:root{color-scheme:light;--bg:#f6f4ee;--bg-dot:#dad5c8;--surface:#fff;--surface-2:#faf8f3;--sunken:#efece4;--line:#e2ddd1;--line-soft:#ede9e0;--line-faint:#f0ede6;--line-strong:#cfc9bb;--seg-on-ring:#d8d2c4;--text:#1b1a17;--text-2:#2e2c27;--text-3:#3a3832;--lede:#4a4740;--muted:#5b574e;--placeholder:#6e695e;--gutter:#7a7568;--current-line:#f4f1e9;--accent:#3f3ac2;--accent-hover:#312da0;--on-accent:#fff;--ok:#1d6b45;--code-bg:#ede9e0;--disabled-bg:#e4e0d6;--info-bg:#faf8f3;--info-text:#2e2c27;--warn-bg:#fbf4e2;--warn-line:#eedfb6;--warn-text:#5a3b00;--err-bg:#fdf3f1;--err-line:#e8c3bc;--err-icon:#a3321f;--err-text:#3a2a26;--err-title:#1b1a17;--err-tag:#7d2e22;--err-tag-bg:#fff;--err-row:#fbe9e5;--err-gutter:#a3321f;--shadow-card:0 1px 0 #e2ddd1, 0 18px 40px -24px #28221459;--shadow-seg:0 1px 2px #28221429, 0 0 0 1px var(--seg-on-ring);--selection:#dad8fb;--editor-selection:#3f3ac238;--syn-key:#1b1a17;--syn-str:#0e6b5e;--syn-num:#a04a0a;--syn-kw:#7a3fa8;--syn-punc:#736e62;--block-bg:#1e1d1a;--block-line:#34322d;--block-text:#ede9de;--block-dim:#8a8578;--block-tab-on:#34322d;--mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, "Liberation Mono", monospace;--sans:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--gutter-x:clamp(16px, 5.6vw, 80px);--pane-h:clamp(320px, 48vh, 560px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0e0e18;--bg-dot:#1f1f33;--surface:#14141f;--surface-2:#171724;--sunken:#0f0f19;--line:#26263a;--line-soft:#1f1f30;--line-faint:#1c1c2c;--line-strong:#34344e;--seg-on-ring:#34344e;--text:#e7e7f3;--text-2:#d8d8e8;--text-3:#d8d8e8;--lede:#b4b4cc;--muted:#a3a3bd;--placeholder:#a3a3bd;--gutter:#7f7f9e;--current-line:#1b1b2a;--accent:#c0c1ff;--accent-hover:#d4d5ff;--on-accent:#15153a;--ok:#7fd6a8;--code-bg:#1f1f30;--disabled-bg:#22222f;--info-bg:#181828;--info-text:#d8d8e8;--warn-bg:#221c0f;--warn-line:#4a3b18;--warn-text:#f0d9a6;--err-bg:#1c1419;--err-line:#5c2b2e;--err-icon:#ff9e8f;--err-text:#d8d8e8;--err-title:#f4f4fa;--err-tag:#d9b3ae;--err-tag-bg:transparent;--err-row:#2a1719;--err-gutter:#ff9e8f;--shadow-card:0 24px 48px -28px #000c;--shadow-seg:0 0 0 1px var(--seg-on-ring);--selection:#34346a;--editor-selection:#c0c1ff47;--syn-key:#e7e7f3;--syn-str:#86d4c2;--syn-num:#f0b37e;--syn-kw:#d7a6f2;--syn-punc:#8686a6;--block-bg:#0a0a12;--block-line:#26263a;--block-text:#e7e7f3;--block-dim:#8a8aa8;--block-tab-on:#26263a}}:root[data-theme=dark]{color-scheme:dark;--bg:#0e0e18;--bg-dot:#1f1f33;--surface:#14141f;--surface-2:#171724;--sunken:#0f0f19;--line:#26263a;--line-soft:#1f1f30;--line-faint:#1c1c2c;--line-strong:#34344e;--seg-on-ring:#34344e;--text:#e7e7f3;--text-2:#d8d8e8;--text-3:#d8d8e8;--lede:#b4b4cc;--muted:#a3a3bd;--placeholder:#a3a3bd;--gutter:#7f7f9e;--current-line:#1b1b2a;--accent:#c0c1ff;--accent-hover:#d4d5ff;--on-accent:#15153a;--ok:#7fd6a8;--code-bg:#1f1f30;--disabled-bg:#22222f;--info-bg:#181828;--info-text:#d8d8e8;--warn-bg:#221c0f;--warn-line:#4a3b18;--warn-text:#f0d9a6;--err-bg:#1c1419;--err-line:#5c2b2e;--err-icon:#ff9e8f;--err-text:#d8d8e8;--err-title:#f4f4fa;--err-tag:#d9b3ae;--err-tag-bg:transparent;--err-row:#2a1719;--err-gutter:#ff9e8f;--shadow-card:0 24px 48px -28px #000c;--shadow-seg:0 0 0 1px var(--seg-on-ring);--selection:#34346a;--editor-selection:#c0c1ff47;--syn-key:#e7e7f3;--syn-str:#86d4c2;--syn-num:#f0b37e;--syn-kw:#d7a6f2;--syn-punc:#8686a6;--block-bg:#0a0a12;--block-line:#26263a;--block-text:#e7e7f3;--block-dim:#8a8aa8;--block-tab-on:#26263a}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg);color:var(--text);scroll-behavior:smooth;scroll-padding-top:24px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100vh;font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:16px;line-height:1.5;display:flex}a{color:var(--text)}a:hover{color:var(--accent)}button,select,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--selection)}code,kbd,pre{font-family:var(--mono)}svg{flex-shrink:0}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:50;background:var(--text);color:var(--bg);border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;position:absolute;top:-64px;left:16px}.skip-link:focus{color:var(--bg);top:12px}[hidden]{display:none!important}.site-header{height:64px;padding:0 var(--gutter-x);border-bottom:1px solid var(--line);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.brand{min-height:44px;color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand:hover{color:var(--text)}.brand-mark{background:var(--text);width:30px;height:30px;color:var(--bg);font-family:var(--mono);letter-spacing:-.06em;border-radius:7px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.brand-name{letter-spacing:-.01em;font-size:16px;font-weight:650}.header-right{align-items:center;gap:24px;display:flex}.site-nav{align-items:center;gap:4px;display:flex}.site-nav a,.footer-nav a{height:44px;color:var(--muted);border-radius:8px;align-items:center;padding:0 12px;font-size:14px;text-decoration:none;display:flex}.site-nav a:hover{color:var(--text)}.theme-group{border:1px solid var(--line);background:var(--sunken);border-radius:10px;align-items:center;gap:2px;padding:3px;display:flex}.theme-btn{width:38px;height:38px;color:var(--muted);background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;display:flex}.theme-btn:hover{color:var(--text)}.theme-btn[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-seg)}:root[data-theme=dark] .theme-btn[aria-pressed=true]{background:#26263a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-btn[aria-pressed=true]{background:#26263a}}.theme-cycle{width:44px;height:44px;color:var(--text);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;display:none}.theme-cycle svg{display:none}.theme-cycle[data-mode=light] .i-light,.theme-cycle[data-mode=dark] .i-dark,.theme-cycle[data-mode=system] .i-system{display:block}.hero{padding:56px var(--gutter-x) 48px;background-color:var(--bg);background-image:radial-gradient(var(--bg-dot) 1px, transparent 1.3px);border-bottom:1px solid var(--line);background-size:22px 22px;flex-shrink:0}.hero-inner{flex-direction:column;gap:28px;max-width:1280px;margin:0 auto;display:flex}.hero-top{justify-content:space-between;align-items:flex-end;gap:40px;display:flex}.hero-copy{flex-direction:column;gap:12px;max-width:820px;display:flex}.hero h1{letter-spacing:-.028em;margin:0;font-size:46px;font-weight:680;line-height:1.05}.lede{color:var(--lede);margin:0;font-size:19px;line-height:1.5}.privacy-line{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 0;font-size:15px;display:flex}.privacy-line strong{font-weight:560}.privacy-line a{color:var(--muted);text-underline-offset:4px;margin:-12px 0;padding:12px 0;text-decoration:underline dotted}.kbd-hint{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.kbd-hint span{gap:4px;display:flex}kbd{border:1px solid var(--line-strong);background:var(--surface);color:var(--text);border-bottom-width:2px;border-radius:6px;padding:3px 7px;font-size:12px}.tool{background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-card);border-radius:12px;flex-direction:column;display:flex;position:relative;overflow:hidden}:root[data-theme=dark] .tool{border-color:#2e2e46}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tool{border-color:#2e2e46}}.toolbar{background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:64px;padding:10px 12px;display:flex}.tb-group{align-items:center;gap:4px;display:flex}.btn{height:44px;color:var(--text);white-space:nowrap;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:520;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--sunken);color:var(--text)}.btn-muted{color:var(--muted)}.btn-outline{border:1px solid var(--line-strong);background:var(--surface);padding:0 14px;font-weight:540}:root[data-theme=dark] .btn-outline{background:#1b1b2a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-outline{background:#1b1b2a}}.btn-dark{background:var(--text);color:var(--bg);padding:0 16px;font-weight:600}.btn-dark:hover:not(:disabled){background:var(--text-3);color:var(--bg)}.btn-primary{background:var(--accent);min-width:132px;color:var(--on-accent);margin-left:4px;padding:0 16px;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent)}.btn-primary:disabled{background:var(--disabled-bg);color:var(--placeholder)}.btn .i-done{display:none}.btn[data-copied] .i-done{display:block}.btn[data-copied] .i-copy{display:none}.divider-v{background:var(--line);width:1px;height:24px;margin:0 10px}.tb-label{color:var(--muted);margin-right:8px;font-size:14px}.seg{background:var(--sunken);border:1px solid var(--line);border-radius:10px;align-items:center;gap:2px;padding:3px;display:flex}.seg button{white-space:nowrap;height:36px;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:0 12px;font-size:13px;font-weight:540}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-seg)}:root[data-theme=dark] .seg button[aria-pressed=true]{background:#26263a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .seg button[aria-pressed=true]{background:#26263a}}.select-wrap{align-items:center;display:flex;position:relative}.select-wrap select{-webkit-appearance:none;appearance:none;border:1px solid var(--line-strong);background:var(--surface);height:44px;color:var(--text);border-radius:8px;padding:0 30px 0 12px;font-size:14px;font-weight:540}.select-wrap svg{pointer-events:none;color:var(--muted);position:absolute;right:10px}.m-only{display:none}.panes{grid-template-columns:minmax(0, var(--split,50%)) minmax(0, 1fr);display:grid;position:relative}.splitter{top:0;bottom:0;left:var(--split,50%);z-index:2;cursor:col-resize;touch-action:none;outline:none;width:16px;margin-left:-8px;position:absolute}.splitter:before{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:7px}.splitter .grip{border:1px solid var(--line-strong);background:var(--surface);border-radius:3px;width:6px;height:36px;margin-top:-18px;position:absolute;top:50%;left:5px}.splitter:hover:before,.splitter[data-dragging]:before{background:var(--line-strong)}.splitter:focus-visible:before{background:var(--accent)}.splitter:hover .grip,.splitter[data-dragging] .grip,.splitter:focus-visible .grip{border-color:var(--accent);background:var(--accent)}.tool[data-resizing],.tool[data-resizing] *{cursor:col-resize!important;user-select:none!important}.pane{flex-direction:column;min-width:0;display:flex;position:relative}.pane-in{border-right:1px solid var(--line)}.pane-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:10px;height:44px;padding:0 16px;display:flex}.pane-out .pane-head{padding-left:28px}.pane-head-left{align-items:center;gap:10px;min-width:0;display:flex}.pane-label{letter-spacing:.02em;color:var(--text);align-items:center;gap:8px;font-size:13px;font-weight:680;display:flex}.pane-label .i-down{display:none}.chip{font-family:var(--mono);color:var(--muted);border:1px solid var(--line);background:var(--surface-2);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:260px;padding:2px 8px;font-size:12px;overflow:hidden}.pane-meta{color:var(--muted);white-space:nowrap;font-size:13px}.status{white-space:nowrap;color:var(--muted);align-items:center;gap:6px;font-size:13px;font-weight:540;display:flex}.status[data-state=valid]{color:var(--ok)}.status[data-state=error]{color:var(--err-icon);font-weight:560}.status .dot{background:currentColor;border-radius:4px;width:7px;height:7px}.status svg,.status .dot,.status .spinner{display:none}.status[data-state=valid] .i-check,.status[data-state=error] .dot,.status[data-state=busy] .spinner{display:block}.spinner{border:2px solid var(--line-strong);border-top-color:var(--text);border-radius:7px;width:14px;height:14px}@media (prefers-reduced-motion:no-preference){.spinner{animation:.8s linear infinite spin}}@keyframes spin{to{transform:rotate(360deg)}}.arrow-badge{left:var(--split,50%);pointer-events:none;background:var(--surface);border:1px solid var(--line-strong);width:26px;height:26px;color:var(--text);z-index:2;border-radius:13px;justify-content:center;align-items:center;margin-left:-13px;display:flex;position:absolute;top:9px}.arrow-badge .i-x{display:none}.tool[data-error] .arrow-badge{color:var(--err-icon)}.tool[data-error] .arrow-badge .i-x{display:block}.tool[data-error] .arrow-badge .i-arrow{display:none}.code-area{height:var(--pane-h);font-family:var(--mono);tab-size:4;background:var(--surface);font-size:14px;line-height:22px;display:flex;position:relative;overflow:hidden}.gutter{border-right:1px solid var(--line-faint);width:52px;color:var(--gutter);text-align:right;user-select:none;flex-shrink:0;font-size:13px;position:relative;overflow:hidden}.gutter-inner{white-space:pre;will-change:transform;padding:14px 12px 14px 0}.gutter-inner .cur{color:var(--text)}.gutter-inner .err{color:var(--err-gutter);font-weight:700}.code-wrap{flex:1;min-width:0;position:relative;overflow:hidden}.editor-hl,.editor-input{font:inherit;line-height:inherit;letter-spacing:normal;tab-size:inherit;white-space:pre;word-wrap:normal;overflow-wrap:normal;border:0;margin:0;padding:14px 16px}.editor-hl{min-width:100%;color:var(--text);pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.line-hl{background:var(--current-line);pointer-events:none;will-change:transform;height:22px;position:absolute;top:14px;left:0;right:0}.line-hl.err{background:var(--err-row)}.editor-input{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--accent);-webkit-text-fill-color:transparent;background:0 0;outline:none;position:absolute;inset:0;overflow:auto}.editor-input::placeholder{color:var(--placeholder);-webkit-text-fill-color:var(--placeholder);font-size:13px}.editor-input::selection{background:var(--editor-selection);-webkit-text-fill-color:transparent}.editor[data-plain] .editor-input{color:var(--text);-webkit-text-fill-color:var(--text)}.editor[data-plain] .editor-hl{display:none}.editor[data-plain] .editor-input::selection{-webkit-text-fill-color:var(--text)}.pane-in:focus-within .code-area{box-shadow:inset 0 0 0 2px var(--accent)}.empty-hint{font-family:var(--sans);color:var(--muted);pointer-events:none;align-items:center;gap:8px;font-size:13px;display:flex;position:absolute;bottom:14px;left:16px}.drop-overlay{z-index:3;text-align:center;border:2px dashed var(--text);background:var(--sunken);font-family:var(--sans);pointer-events:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:none;position:absolute;inset:8px}.drop-overlay strong{font-size:17px;font-weight:640}.drop-overlay span{color:var(--muted);font-size:14px}.pane-in[data-dragging] .drop-overlay{display:flex}.output-scroll{outline:none;flex:1;min-width:0;overflow:auto}.output-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.output-pre{font:inherit;white-space:pre;color:var(--text);min-height:100%;margin:0;padding:14px 16px}.output-pre.wrap{white-space:pre-wrap;word-break:break-all}.output-empty{font-family:var(--sans);color:var(--placeholder);pointer-events:none;padding:14px 16px;font-size:13px;line-height:1.5;position:absolute;inset:0 0 auto 52px}.pane-out[data-stale] .code-area>:not(.output-empty){opacity:.34}@media (prefers-reduced-motion:no-preference){.pane-out .code-area>*{transition:opacity .15s}}.t-key{color:var(--syn-key)}.t-str{color:var(--syn-str)}.t-num{color:var(--syn-num)}.t-kw{color:var(--syn-kw)}.t-punc{color:var(--syn-punc)}.t-com{color:var(--syn-punc);font-style:italic}.error-card{z-index:3;border:1px solid var(--err-line);background:var(--err-bg);border-radius:10px;flex-direction:column;gap:12px;padding:20px 20px 18px;display:flex;position:absolute;bottom:20px;left:20px;right:20px;box-shadow:0 18px 40px -20px #28221459}.card-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card-title-row svg{color:var(--err-icon)}.error-where{color:var(--err-title);font-size:16px;font-weight:650}.err-tag{color:var(--err-tag);border:1px solid var(--err-line);background:var(--err-tag-bg);border-radius:6px;padding:2px 8px;font-size:12px}.error-card p{color:var(--err-text);margin:0;font-size:15px;line-height:1.55}.error-card code{color:var(--err-title);font-size:14px}.error-card .fix-label{color:var(--err-title);font-weight:620}.error-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:4px;display:flex}.error-actions .note{color:var(--muted);font-size:13px}.dialog-card{z-index:4;border:1px solid var(--line-strong);background:var(--surface);border-radius:10px;flex-direction:column;gap:10px;padding:20px;display:flex;position:absolute;top:20px;left:20px;right:20px;box-shadow:0 18px 40px -24px #28221459}.dialog-card h3{overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:650}.dialog-card p{color:var(--text-3);margin:0;font-size:15px;line-height:1.5}.dialog-actions{gap:8px;padding-top:6px;display:flex}@media (prefers-reduced-motion:no-preference){.error-card:not([hidden]),.dialog-card:not([hidden]),.notice:not([hidden]),.toast:not([hidden]){animation:.16s ease-out rise}}@keyframes rise{0%{opacity:0;transform:translateY(4px)}}.notices{flex-direction:column;display:flex}.notice{border-top:1px solid var(--line);background:var(--info-bg);min-height:48px;color:var(--info-text);justify-content:space-between;align-items:center;gap:16px;margin:0;padding:6px 8px 6px 16px;font-size:14px;line-height:1.45;display:flex}.notice-text{align-items:flex-start;gap:10px;padding:6px 0;display:flex}.notice-text svg{margin-top:2px}.notice code{font-size:13px}.notice.warn{background:var(--warn-bg);color:var(--warn-text);border-top-color:var(--warn-line)}.link-btn{height:44px;color:var(--text);text-underline-offset:4px;white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:0 12px;font-size:14px;font-weight:540;text-decoration:underline}.link-btn:hover{color:var(--accent)}.statusbar{border-top:1px solid var(--line);background:var(--surface-2);min-height:36px;font-family:var(--mono);color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding:0 16px;font-size:12px;display:flex}.statusbar>div{align-items:center;gap:20px;display:flex}.live-dot{align-items:center;gap:6px;display:flex}.live-dot:before{content:"";background:var(--ok);border-radius:3px;width:6px;height:6px}.mobile-actions,.m-meta{display:none}.toast{z-index:5;border:1px solid var(--line-strong);background:var(--surface);max-width:420px;color:var(--text);border-radius:10px;flex-direction:column;gap:12px;padding:14px 16px;font-size:14px;line-height:1.45;display:flex;position:absolute;top:72px;right:12px;box-shadow:0 18px 40px -24px #28221459}.toast.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-text)}.toast-row{align-items:flex-start;gap:10px;display:flex}.toast-row svg{margin-top:2px}.toast .ok-icon{color:var(--ok)}.toast .btn{align-self:flex-start}.content{width:100%;max-width:1440px;padding:96px var(--gutter-x) 120px;flex-grow:1;align-items:flex-start;gap:96px;margin:0 auto;display:flex}.toc{flex-direction:column;flex-shrink:0;gap:14px;width:220px;padding-top:6px;display:flex;position:sticky;top:24px}.toc-title{font-size:13px;font-weight:620}.toc nav{flex-direction:column;gap:2px;display:flex}.toc a{color:var(--muted);align-items:baseline;gap:12px;padding:7px 0;font-size:14px;text-decoration:none;display:flex}.toc a span{font-family:var(--mono);font-size:12px}.toc a:hover,.toc a[aria-current=true]{color:var(--text)}.toc a[aria-current=true]{font-weight:600}.article{width:680px;min-width:0;max-width:100%;color:var(--text-2);flex-direction:column;gap:72px;font-size:17px;line-height:1.65;display:flex}.section{border-bottom:1px solid var(--line);flex-direction:column;gap:20px;padding-bottom:72px;display:flex}.section:last-child{border-bottom:0;padding-bottom:0}.section-head{flex-direction:column;gap:6px;display:flex}.kicker{font-family:var(--mono);color:var(--muted);font-size:13px}.section h2{letter-spacing:-.018em;color:var(--text);margin:0;font-size:28px;font-weight:660;line-height:1.2}.article p{text-wrap:pretty;margin:0}.article :not(pre)>code{background:var(--code-bg);color:var(--text);border-radius:4px;padding:1px 5px;font-size:.88em}.steps{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.steps li{border-top:1px solid var(--line);gap:20px;padding:16px 0;display:flex}.steps li:last-child{border-bottom:1px solid var(--line)}.step-n{width:28px;font-family:var(--mono);color:var(--text);flex-shrink:0;font-size:15px;font-weight:600}.steps strong,.article strong{color:var(--text);font-weight:620}.handles{flex-direction:column;margin:0;display:flex}.handles>div{border-top:1px solid var(--line);grid-template-columns:200px minmax(0,1fr);gap:24px;padding:14px 0;display:grid}.handles dt{flex-direction:column;gap:4px;display:flex}.handles dt span{color:var(--text);font-size:15px;font-weight:620}.article .handles dt code{color:var(--muted);white-space:pre;background:0 0;padding:0;font-size:13px}.handles dd{text-wrap:pretty;margin:0;font-size:16px;line-height:1.6}.table-scroll{overflow-x:auto}.vs{border-collapse:collapse;width:100%;font-size:15px;line-height:1.5}.vs th,.vs td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px 16px 12px 0}.vs thead th{color:var(--muted);border-bottom-color:var(--line-strong);padding-top:10px;padding-bottom:10px;font-size:13px;font-weight:600}.vs thead th:first-child{width:32%}.vs tbody th{color:var(--text);font-weight:600}.vs td:last-child,.vs th:last-child{padding-right:0}.code-block{background:var(--block-bg);border:1px solid var(--block-bg);border-radius:10px;margin:0;overflow:hidden}.code-block figcaption{border-bottom:1px solid var(--block-line);justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:0 6px 0 16px;display:flex}.code-block .file{font-family:var(--mono);color:#c9c3b4;font-size:13px}.code-block pre{color:var(--block-text);white-space:pre;margin:0;padding:18px 20px;font-size:14px;line-height:23px;overflow-x:auto}.code-block pre.wrap{white-space:pre-wrap;word-break:break-word}.code-block .p-kw{color:#d7a6f2}.code-block .p-str{color:#86d4c2}.code-block .p-num{color:#f0b37e}.code-block .prompt{color:var(--block-dim);user-select:none}.copy-btn{color:#e9e5da;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;height:44px;padding:0 10px;font-size:13px;display:flex}.copy-btn:hover{background:var(--block-line)}.code-block :focus-visible{outline-color:#c0c1ff}.cli-block figcaption{padding-left:6px}.tabs{align-items:center;gap:2px;display:flex}.tabs button{color:#b3ad9f;background:0 0;border:0;border-radius:6px;height:44px;padding:0 12px;font-size:13px;font-weight:560}.tabs button:hover{color:#f4f1e8}.tabs button[aria-selected=true]{background:var(--block-tab-on);color:#f4f1e8}.tested{font-family:var(--mono);color:var(--muted);font-size:12px}.note-block{flex-direction:column;gap:6px;display:flex}.article .note-block p:first-child{font-size:16px}.url-figure{border:1px solid var(--line);background:var(--surface);font-family:var(--mono);border-radius:10px;flex-wrap:wrap;align-items:flex-start;margin:0;padding:28px 28px 24px;font-size:15px;line-height:1.4;display:flex}.url-part{flex-direction:column;gap:8px;min-width:0;display:flex}.url-part.hash{color:var(--ok);flex-grow:1;font-weight:600}.url-part .brace{border:1.5px solid var(--gutter);border-top:0;border-radius:0 0 4px 4px;height:8px}.url-part.hash .brace{border-color:var(--ok)}.url-part .cap{font-family:var(--sans);color:var(--muted);text-align:center;font-size:13px;font-weight:400}.url-part.hash .cap{color:var(--ok);font-weight:600}.url-part .txt{overflow-wrap:anywhere;padding-right:2px}.faq{border-top:1px solid var(--line);flex-direction:column;display:flex}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:60px;padding:14px 0;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq h3{color:var(--text);margin:0;font-size:17px;font-weight:600;line-height:1.4}.faq summary svg{color:var(--muted)}.faq details[open] summary svg{transform:rotate(180deg)}.faq summary:hover h3{color:var(--accent)}.faq .answer{padding:0 48px 22px 0;font-size:16px;line-height:1.65}.page{width:100%;max-width:760px;padding:72px var(--gutter-x) 120px;color:var(--text-2);flex-grow:1;margin:0 auto;font-size:17px;line-height:1.65}.page h1{letter-spacing:-.025em;color:var(--text);margin:0 0 12px;font-size:40px;font-weight:680;line-height:1.1}.page .updated{font-family:var(--mono);color:var(--muted);margin:0 0 40px;font-size:13px}.page h2{letter-spacing:-.015em;color:var(--text);margin:48px 0 12px;font-size:24px;font-weight:660;line-height:1.25}.page p,.page ul{margin:0 0 16px}.page ul{padding-left:22px}.page li{margin-bottom:8px}.page a{text-underline-offset:3px}.page code{background:var(--code-bg);border-radius:4px;padding:1px 5px;font-size:.88em}.page .cta{margin-top:8px}.page .cta a{background:var(--accent);height:44px;color:var(--on-accent);border-radius:8px;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.site-footer{border-top:1px solid var(--line);padding:36px var(--gutter-x) 44px;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:24px;margin-top:auto;display:flex}.footer-brand{flex-direction:column;gap:10px;display:flex}.footer-brand .brand-mark{border-radius:6px;width:24px;height:24px;font-size:11px}.footer-brand .brand-name{font-size:15px}.footer-brand .row{align-items:center;gap:10px;display:flex}.footer-brand small{color:var(--muted);font-size:14px}.footer-nav{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.footer-nav a{color:var(--text-3);text-underline-offset:3px;text-decoration:underline}.footer-nav a:hover{color:var(--accent)}@media (width<=1180px){.content{gap:56px}.toc{width:180px}}@media (width<=1400px){.toolbar .tb-label,.toolbar .divider-v,.btn-share-label,.btn-clear-label{display:none}}@media (width<=1100px){.toolbar>.tb-group+.tb-group{margin-left:auto}}@media (width<=1000px){.toc{display:none}.content{justify-content:center}}@media (width<=899px){:root{--pane-h:clamp(220px, 40vh, 320px)}.site-header{height:56px;padding:0 8px 0 16px}.brand-mark{width:28px;height:28px;font-size:12px}.site-nav,.theme-group{display:none}.theme-cycle{display:flex}.hero{background-size:20px 20px;padding:22px 16px 24px}.hero-inner{gap:18px}.hero-copy{gap:8px}.hero h1{letter-spacing:-.025em;font-size:30px;line-height:1.1}.lede{font-size:16px;line-height:1.45}.privacy-line{flex-wrap:nowrap;align-items:flex-start;margin-top:2px;font-size:14px;line-height:1.4}.privacy-line svg{margin-top:2px}.privacy-line a,.kbd-hint{display:none}.tool{box-shadow:0 14px 30px -22px #28221459}.toolbar{min-height:56px;padding:0 6px}.tb-group{gap:0}.toolbar .btn{gap:6px;padding:0 10px}.d-only{display:none!important}.m-only{display:flex}.m-indent{align-items:center;gap:6px;padding-right:4px;display:flex}.m-indent label{color:var(--muted);font-size:13px}.panes{grid-template-columns:minmax(0,1fr)}.pane-in{border-right:0}.pane-head{height:40px;padding:0 14px}.pane-out .pane-head{border-top:1px solid var(--line);padding-left:14px}.pane-in .pane-meta,.arrow-badge,.splitter{display:none}.chip{background:0 0;border:0;padding:0}.pane-label .i-down{display:block}.code-area{font-size:13px;line-height:20px}.gutter{width:36px;font-size:12px}.gutter-inner{padding:12px 8px 12px 0}.editor-hl,.editor-input,.output-pre{padding:12px}.line-hl{height:20px;top:12px}.output-empty{padding:12px;left:36px}.empty-hint{bottom:12px;left:12px}.error-card{padding:16px;bottom:10px;left:10px;right:10px}.dialog-card{top:10px;left:10px;right:10px}.error-actions .note,.statusbar{display:none}.mobile-actions{border-top:1px solid var(--line);background:var(--surface-2);align-items:center;gap:6px;padding:10px;display:flex}.mobile-actions .btn-primary{border-radius:9px;flex-grow:1;height:48px;margin:0;font-size:15px}.icon-btn{border-radius:9px;justify-content:center;align-items:center;width:48px;height:48px;padding:0;display:flex}.m-meta{font-family:var(--mono);color:var(--muted);justify-content:space-between;gap:12px;margin:0;font-size:12px;display:flex}.toast{max-width:none;inset:auto 10px 78px}.notice{padding:4px 6px 4px 14px}.content{padding:48px 16px 40px}.article{gap:48px;font-size:16px}.section{gap:18px;padding-bottom:48px}.section h2{letter-spacing:-.015em;font-size:24px}.steps li{gap:14px;padding:14px 0}.step-n{width:18px;font-size:14px}.handles>div{grid-template-columns:minmax(0,1fr);gap:6px}.url-figure{padding:20px 16px;font-size:13px}.url-part{width:100%}.url-part+.url-part{margin-top:16px}.faq .answer{padding-right:0}.site-footer{flex-direction:column;padding:32px 16px 40px}.footer-nav{margin-left:-12px}.page{padding:48px 16px 64px}.page h1{font-size:32px}}@media (prefers-reduced-motion:no-preference){.btn,.seg button,.theme-btn,.theme-cycle,.copy-btn,.tabs button,.link-btn{transition:transform .12s ease-out,background-color .12s ease-out,color .12s ease-out}.btn:active:not(:disabled),.theme-btn:active,.theme-cycle:active,.copy-btn:active,.link-btn:active{transform:scale(.96)}.seg button:active,.tabs button:active{transform:scale(.94)}.btn-primary:hover:not(:disabled){transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.97)}.btn[data-copied] .i-done,.status[data-state=valid] .i-check,.toast .ok-icon{animation:.26s cubic-bezier(.34,1.56,.64,1) pop}.tool[data-error] .arrow-badge .i-x{animation:.22s ease-out turn-in}.drop-overlay{animation:.16s ease-out zoom-in}.faq summary svg{transition:transform .2s ease-out}.faq details[open] .answer{animation:.2s ease-out rise}.faq summary h3{transition:transform .15s ease-out,color .15s ease-out}.faq summary:hover h3{transform:translate(3px)}.toc a{transition:transform .15s ease-out,color .15s ease-out}.toc a:hover{transform:translate(3px)}.theme-btn[aria-pressed=true] svg,.theme-cycle svg{transition:transform .3s ease-out}.theme-btn:active svg,.theme-cycle:active svg{transform:rotate(-25deg)}.toast:not([hidden]){animation:.2s ease-out rise-more}}@keyframes pop{0%{opacity:0;transform:scale(.5)}}@keyframes turn-in{0%{opacity:0;transform:rotate(-90deg)scale(.6)}}@keyframes zoom-in{0%{opacity:0;transform:scale(.97)}}@keyframes rise-more{0%{opacity:0;transform:translateY(8px)}}
