@font-face{font-family:Sora;src:url(../media/sora-latin-400-normal.31hahsa13_3n2.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Sora;src:url(../media/sora-latin-600-normal.0m9hhe9_r05oo.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Sora;src:url(../media/sora-latin-700-normal.2sw16g-99ruu-.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Geist Mono;src:url(../media/geist-mono-latin-400-normal.1pils9mz99gi8.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Geist Mono;src:url(../media/geist-mono-latin-500-normal.07nc5rf20ybdn.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Geist Mono;src:url(../media/geist-mono-latin-600-normal.299g1w2n42qca.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Geist Mono;src:url(../media/geist-mono-latin-700-normal.287_e30e1hlm5.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}html[data-product=portwing],[data-skin=portwing]{--disp-k:.78;--font-ui:"Sora",system-ui,sans-serif;--ui-size:13px;--ui-w:400;--ui-ls:0;--ui-size-sm:12px;--ui-ls-sm:0;--ui-tt:none;--ui-w-sm:600;--brand-w:700;--brand-size:21px;--brand-ls:-.01em;--display-w:600;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--serif:"Sora",system-ui,sans-serif;--dd-sticky-separator:var(--dd-text-secondary);--dd-success-muted:color-mix(in srgb,var(--dd-success) 15%,transparent);--dd-danger-muted:color-mix(in srgb,var(--dd-danger) 15%,transparent);--dd-warning-muted:color-mix(in srgb,var(--dd-warning) 15%,transparent);--dd-caution-muted:color-mix(in srgb,var(--dd-caution) 15%,transparent);--dd-info-muted:color-mix(in srgb,var(--dd-info) 15%,transparent);--dd-primary-muted:color-mix(in srgb,var(--dd-primary) 15%,transparent);--dd-alt-muted:color-mix(in srgb,var(--dd-alt) 15%,transparent);--dd-neutral-muted:color-mix(in srgb,var(--dd-neutral) 15%,transparent);--dd-shadow-tooltip:0 2px 8px #0000004d;--dd-shadow-modal:0 8px 24px #00000042;--dd-shadow-sm:var(--dd-shadow-tooltip);--dd-shadow-lg:var(--dd-shadow-modal);--dd-shadow-inset:inset 0 8px 16px -8px #0006;--dd-hover-overlay:color-mix(in srgb,var(--dd-text) 8%,transparent);--dd-log-text:var(--code-fg);--dd-log-text-muted:var(--code-dim);--dd-log-line:color-mix(in srgb,var(--dd-border) 55%,transparent);--dd-log-divider:color-mix(in srgb,var(--dd-border-strong) 70%,transparent);--dd-log-footer-bg:color-mix(in srgb,var(--dd-bg-code) 80%,var(--dd-bg-elevated) 20%);--dd-zebra-stripe:color-mix(in srgb,var(--dd-bg-card) 92%,var(--dd-text) 8%)}html[data-product=portwing][data-mode=dark],[data-skin=portwing][data-skin-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--dd-bg:#12151c;--dd-bg-sidebar:#0d1016;--dd-bg-card:#1a1f2a;--dd-bg-elevated:#222839;--dd-bg-inset:#0e1117;--dd-bg-code:#0a0d12;--dd-border:#232a38;--dd-border-strong:#3a4558;--dd-text:#e4e9f2;--dd-text-secondary:#aab5c7;--dd-text-muted:#8b97ab;--dd-scrollbar:#3a4558;--dd-success:#86d36b;--dd-danger:#ff7a8c;--dd-warning:#e8c15a;--dd-caution:#d9b04c;--dd-info:#7fb2ff;--dd-primary:#a58bff;--dd-primary-fg:#120a2a;--dd-alt:#2fd3c1;--dd-neutral:#aab5c7;--tx-mix:15%;--sec-mix:30%;--code-fg:#dfe6f2;--code-dim:#97a3b8;--code-key:#b9a6ff;--code-val:#63e0cf;--term-bar:#1c2230;--beak:#f08a3c;--hdr-bg:#23252c}html[data-product=portwing][data-mode=light],[data-skin=portwing][data-skin-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--dd-bg:#f1f4f9;--dd-bg-sidebar:#e8ecf3;--dd-bg-card:#fff;--dd-bg-elevated:#e2e8f1;--dd-bg-inset:#e8ecf3;--dd-bg-code:#12151c;--dd-border:#dce1ea;--dd-border-strong:#c2cad9;--dd-text:#1c2333;--dd-text-secondary:#515d76;--dd-text-muted:#7a869d;--dd-scrollbar:#c2cad9;--dd-success:#2f7d32;--dd-danger:#c2273f;--dd-warning:#8a5d00;--dd-caution:#7a5200;--dd-info:#2a5fb5;--dd-primary:#6d4aff;--dd-primary-fg:#fff;--dd-alt:#0d857b;--dd-neutral:#66728b;--tx-mix:45%;--sec-mix:40%;--code-fg:#dfe6f2;--code-dim:#97a3b8;--code-key:#b9a6ff;--code-val:#63e0cf;--term-bar:#1c2230;--beak:#f08a3c;--hdr-bg:#e5e8ed}
:root{--r:3px;--r-sm:2px;--r-lg:4px;--code-fg:#abb2bf;--code-dim:#8f97a8;--code-key:#72b8f1;--code-val:#98c379;--tx-primary:color-mix(in srgb,var(--dd-primary),var(--dd-text) var(--tx-mix));--tx-success:color-mix(in srgb,var(--dd-success),var(--dd-text) var(--tx-mix));--tx-danger:color-mix(in srgb,var(--dd-danger),var(--dd-text) var(--tx-mix));--tx-warning:color-mix(in srgb,var(--dd-warning),var(--dd-text) var(--tx-mix));--tx-caution:color-mix(in srgb,var(--dd-caution),var(--dd-text) var(--tx-mix));--tx-info:color-mix(in srgb,var(--dd-info),var(--dd-text) var(--tx-mix));--tx-alt:color-mix(in srgb,var(--dd-alt),var(--dd-text) var(--tx-mix));--tx-sec:color-mix(in srgb,var(--dd-text-secondary) calc(100% - var(--sec-mix)),var(--dd-text) var(--sec-mix));--tx-neutral:var(--tx-sec)}.t-primary{--tone:var(--dd-primary);--tx:var(--tx-primary)}.t-success{--tone:var(--dd-success);--tx:var(--tx-success)}.t-danger{--tone:var(--dd-danger);--tx:var(--tx-danger)}.t-warning{--tone:var(--dd-warning);--tx:var(--tx-warning)}.t-info{--tone:var(--dd-info);--tx:var(--tx-info)}.t-alt{--tone:var(--dd-alt);--tx:var(--tx-alt)}.t-neutral{--tone:var(--dd-neutral);--tx:var(--tx-neutral)}*{box-sizing:border-box}html{background:var(--dd-bg);scroll-behavior:smooth;scroll-padding-top:64px}body{background:var(--dd-bg);color:var(--dd-text);font-family:var(--mono);margin:0;font-size:15px;line-height:1.65;transition:background .25s,color .25s;overflow-x:hidden}a{color:var(--tx-primary);text-underline-offset:3px}button,input,select{font:inherit;color:inherit}img{max-width:100%}:focus-visible{outline:2px solid var(--dd-primary);outline-offset:2px}.ic{fill:currentColor;vertical-align:-.2em;flex:none;width:1.15em;height:1.15em}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{background:var(--dd-primary);color:var(--dd-primary-fg);border-radius:var(--r);z-index:100;padding:8px 12px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:8px}.skip:focus{top:8px}.wrap{max-width:1240px;margin:0 auto;padding:0 28px}.micro{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-sec);font-size:12px;font-weight:600}.chip.nocase{text-transform:none}.chip{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-sm);background:color-mix(in srgb,var(--tone,var(--dd-neutral)) 15%,transparent);color:var(--tx,var(--tx-neutral));white-space:nowrap;align-items:center;gap:5px;padding:4px 6px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.dot{background:var(--tone,var(--dd-neutral));border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.btn{border-radius:var(--r);border:1px solid var(--dd-border-strong);background:var(--dd-bg-elevated);color:var(--dd-text);letter-spacing:.03em;cursor:pointer;align-items:center;gap:8px;padding:9px 14px;font-size:12px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{background:color-mix(in srgb,var(--dd-bg-elevated) 90%,var(--dd-text) 10%)}.btn.primary{background:var(--dd-primary);border-color:var(--dd-primary);color:var(--dd-primary-fg)}.btn.primary:hover{background:var(--dd-primary);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--dd-primary-fg) 40%,transparent)}.btn.tone{background:color-mix(in srgb,var(--tone) 12%,transparent);border-color:var(--tone);color:var(--tx)}.btn.sm{padding:5px 9px;font-size:12px}.top{z-index:30;background:var(--hdr-bg,var(--dd-bg-sidebar));font-family:var(--font-ui,var(--mono));border-bottom:0;position:sticky;top:0}.top .wrap{align-items:center;gap:14px;height:56px;display:flex}.brand{color:var(--dd-text);font-family:var(--serif);font-weight:var(--brand-w,400);letter-spacing:var(--brand-ls,0);font-size:var(--brand-size,22px);align-items:center;gap:10px;line-height:1;text-decoration:none;display:flex}.brand img{width:auto;height:26px;display:block}.nav{align-items:center;gap:4px;margin-left:auto;display:flex}.nav a{border-radius:var(--r);color:var(--dd-text);font-family:var(--font-ui,var(--mono));font-size:var(--ui-size,12px);font-weight:var(--ui-w,400);letter-spacing:var(--ui-ls,.04em);align-items:center;gap:6px;padding:8px 10px;text-decoration:none;display:inline-flex}.nav a:hover{background:var(--dd-hover-overlay)}.spacer{flex:1}.nav+.themes,.top .themes{margin-left:0}details.themes,details.menu{position:relative}details.themes>summary,details.menu>summary{cursor:pointer;border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-card);font-family:var(--font-ui,var(--mono));font-size:var(--ui-size-sm,12px);letter-spacing:var(--ui-ls-sm,.06em);text-transform:var(--ui-tt,uppercase);font-weight:var(--ui-w-sm,600);align-items:center;gap:8px;min-height:34px;padding:7px 10px;list-style:none;display:inline-flex}details>summary::-webkit-details-marker{display:none}.panel{z-index:40;background:var(--dd-bg-card);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);box-shadow:var(--dd-shadow-modal);width:min(300px,100vw - 24px);padding:12px;position:absolute;top:calc(100% + 8px);right:0}.panel .panelh{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-sec);margin:0 0 8px;font-size:12px}.fam{grid-template-columns:1fr 1fr;gap:6px;display:grid}.fam button,.modes button{border-radius:var(--r);border:1px solid var(--dd-border-strong);background:var(--dd-bg);cursor:pointer;text-align:left;align-items:center;gap:8px;padding:8px;font-size:12px;display:flex}.fam button[aria-pressed=true],.modes button[aria-pressed=true]{border-color:var(--dd-primary);background:color-mix(in srgb,var(--dd-primary) 15%,transparent)}.sw{display:inline-flex}.sw i{width:9px;height:16px;display:block}.modes{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.modes button{justify-content:center}.menu{display:none}.menu .panel a{color:var(--dd-text);border-radius:var(--r);align-items:center;gap:8px;padding:10px 8px;text-decoration:none;display:flex}.menu .panel a:hover{background:var(--dd-hover-overlay)}.hero{padding:64px 0 36px}.hero .grid{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:center;gap:48px;display:grid}.ver{align-items:center;gap:8px;margin-bottom:22px;display:inline-flex}h1.display{font-family:var(--serif);font-weight:var(--display-w,400);font-size:calc(clamp(52px,6.4vw,100px) * var(--disp-k,1));letter-spacing:-.02em;margin:0;line-height:.95}h1.display span{display:block}h1.display .mut{color:var(--tx-sec)}.lede{color:var(--dd-text);max-width:34em;margin:22px 0 26px;font-size:15px;line-height:1.7}.ctas{flex-wrap:wrap;gap:10px;display:flex}.strip{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-card);flex-wrap:wrap;width:max-content;max-width:100%;margin:28px 0 0;padding:0;list-style:none;display:flex}.strip li{border-right:1px solid var(--dd-border-strong);align-items:baseline;gap:8px;padding:9px 14px;display:flex}.strip li:last-child{border-right:0}.strip b{font-size:15px}.lcol{position:relative}.mascot{filter:drop-shadow(0 12px 14px #00000059);pointer-events:none;width:150px;height:auto;margin:30px 0 0 auto;animation:5s ease-in-out infinite bob;display:block}@keyframes bob{50%{transform:translateY(-8px)rotate(-1.5deg)}}.heroobj{min-width:0;position:relative}.dashcap{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-sec);flex-wrap:wrap;justify-content:space-between;gap:10px;margin:10px 2px 0;font-size:12px;display:flex}.tiles{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px;display:grid}.tile{background:var(--dd-bg-card);border-radius:var(--r);min-height:76px;padding:12px 12px 10px;position:relative}.tile .micro{padding-right:26px;font-size:12px;display:block}.tile b{margin-top:6px;font-size:20px;line-height:1.1;display:block}.tile small{color:var(--tx-sec);margin-top:3px;font-size:12px;display:block}.tile .tn{border-radius:var(--r-sm);background:color-mix(in srgb,var(--tone) 15%,transparent);width:22px;height:22px;color:var(--tx);place-items:center;display:grid;position:absolute;top:8px;right:8px}.card{background:var(--dd-bg-card);border-radius:var(--r)}.cardh{align-items:center;gap:8px;padding:14px 14px 12px;display:flex}.cardh h3{letter-spacing:.01em;flex:1;margin:0;font-size:14px;font-weight:600}.cardh .lnk{color:var(--dd-text);font-size:12px;font-weight:600;text-decoration:none}table.dt{border-collapse:collapse;width:100%}.dt thead th{background:var(--dd-bg-inset);letter-spacing:.1em;text-transform:uppercase;text-align:center;color:var(--dd-text);padding:10px;font-size:12px;font-weight:600}.dt thead th:first-child{text-align:left}.dt td{height:68px;padding:0 10px;font-size:12px}.dt tbody tr:nth-child(odd){background:var(--dd-bg-card);background:color-mix(in srgb,var(--dd-bg-card) 100%,transparent)}.dt tbody tr:nth-child(2n){background:color-mix(in srgb,var(--dd-bg-card) 92%,var(--dd-text) 8%)}.ct{align-items:center;gap:12px;min-width:0;display:flex}.ct img{flex:none;width:28px;height:28px}.ct b{font-size:12px;font-weight:600;display:block}.ct small{color:var(--tx-sec);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.ver2{text-align:center;white-space:nowrap}.ver2 s{color:var(--tx-sec);text-decoration:none}.ver2 .ar{color:var(--tx-sec);margin:0 6px}.ver2 b{color:var(--tx);font-weight:700}.kind{color:var(--tx);align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.act{text-align:center;color:var(--tx-sec);white-space:nowrap}.act .ic{width:17px;height:17px;margin:0 8px}.keyrow{flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:12px;display:flex}.keyrow .k{color:var(--tx-sec);align-items:center;gap:6px;font-size:12px;display:flex}.proof{padding:6px 0 10px}.badges{flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.bdg{border-radius:var(--r-sm);border:1px solid var(--dd-border-strong);font-size:12px;line-height:1;text-decoration:none;display:inline-flex;overflow:hidden}.bdg span{background:var(--dd-bg-card);color:var(--tx-sec);padding:5px 8px}.bdg span+span{background:color-mix(in srgb,var(--dd-primary) 15%,transparent);color:var(--tx-primary);align-items:center;gap:4px;font-weight:600;display:inline-flex}.bdg:hover{border-color:var(--dd-primary)}.stats{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.stat{background:var(--dd-bg-card);border:1px solid var(--dd-border-strong);border-radius:var(--r);color:var(--dd-text);align-items:center;gap:8px;padding:8px 12px;font-size:12px;text-decoration:none;display:inline-flex}.stat:hover{border-color:var(--dd-primary)}.stat b{font-size:13px}.stat.sponsor{color:var(--tx-danger);border-color:color-mix(in srgb,var(--dd-danger) 50%,transparent);background:color-mix(in srgb,var(--dd-danger) 12%,transparent);font-weight:600}section{padding:84px 0 20px}.sec-h{max-width:46em;margin-bottom:32px}.split{grid-template-columns:minmax(260px,360px) minmax(0,1fr);align-items:start;gap:56px;display:grid}.split>.sec-h{margin:0;position:sticky;top:88px}.split>.main{min-width:0}.eyebrow{align-items:center;gap:10px;margin-bottom:12px;display:flex}.eyebrow:after{content:"";background:var(--dd-border-strong);flex:1;max-width:80px;height:1px}h2.title{font-family:var(--serif);font-weight:var(--display-w,400);font-size:calc(clamp(38px,4.6vw,64px) * var(--disp-k,1));letter-spacing:-.015em;margin:0 0 12px;line-height:1}.sub{color:var(--tx-sec);max-width:40em;margin:0;font-size:14px}.pal{background:var(--dd-bg-card);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);box-shadow:var(--dd-shadow-modal);overflow:hidden}.pal-in{border-bottom:1px solid var(--dd-border-strong);background:var(--dd-bg-elevated);align-items:center;gap:10px;padding:12px 14px;display:flex}.pal-in input{background:0 0;border:0;outline:0;flex:1;min-width:0;padding:4px 0;font-size:14px}.pal-in:focus-within{box-shadow:inset 0 -2px 0 var(--dd-primary)}kbd{font-family:var(--mono);border-radius:var(--r-sm);background:var(--dd-bg-inset);color:var(--tx-sec);border:1px solid var(--dd-border-strong);padding:3px 6px;font-size:12px}.pal ul{margin:0;padding:6px 0;list-style:none}.pal .gh{padding:12px 16px 6px}.pal li.it{border-radius:var(--r);align-items:flex-start;gap:14px;margin:0 6px;padding:10px 16px;display:flex}.pal li.it.sel,.pal li.it:hover{background:var(--dd-hover-overlay)}.pal li.it.sel{box-shadow:inset 2px 0 var(--dd-primary)}.pal .tn{border-radius:var(--r);background:color-mix(in srgb,var(--tone) 15%,transparent);width:30px;height:30px;color:var(--tx);flex:none;place-items:center;display:grid}.pal .tn .ic{width:18px;height:18px}.pal .it b{font-size:13px;font-weight:600;display:block}.pal .it span.d{color:var(--tx-sec);font-size:12px;line-height:1.55;display:block}.pal .ret{color:var(--tx-sec);opacity:0;align-self:center;margin-left:auto}.pal .it.sel .ret{opacity:1}.pal-f{border-top:1px solid var(--dd-border-strong);background:var(--dd-bg-elevated);color:var(--tx-sec);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 16px;font-size:12px;display:flex}.pal .empty{text-align:center;color:var(--tx-sec);padding:28px 16px}.claim{color:var(--tx-sec);margin:18px 0 0;font-size:12px}.tabs{background:var(--dd-bg-inset);border:1px solid var(--dd-border-strong);border-radius:var(--r);gap:2px;margin-bottom:14px;padding:3px;display:inline-flex}.tabs button{border-radius:var(--r-sm);cursor:pointer;letter-spacing:.04em;color:var(--tx-sec);background:0 0;border:0;align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-weight:600;display:inline-flex}.tabs button[aria-selected=true]{background:var(--dd-bg-elevated);color:var(--dd-text);box-shadow:inset 0 -2px var(--dd-primary)}.code{background:var(--dd-bg-code);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);max-width:880px}html[data-mode=light] .code{color:var(--code-fg)}.code .lab{letter-spacing:.12em;text-transform:uppercase;color:var(--code-dim);align-items:center;gap:8px;padding:12px 16px 0;font-size:12px;font-weight:600;display:flex}.code pre{font:13px/1.65 var(--mono);color:var(--code-fg);margin:0;padding:12px 16px 18px;overflow-x:auto}.y-k{color:var(--code-key)}.y-v{color:var(--code-val)}.y-c{color:var(--code-dim)}.note{color:var(--tx-sec);flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 0;font-size:12px;display:flex}.note .ic{width:18px;height:18px}.frame{border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);background:var(--dd-bg-sidebar);box-shadow:var(--dd-shadow-modal);overflow:hidden}.fbar{border-bottom:1px solid var(--dd-border-strong);background:var(--dd-bg-sidebar);align-items:center;gap:12px;padding:9px 12px;display:flex}.fbar i{background:var(--dd-border-strong);border-radius:50%;width:9px;height:9px;display:inline-block}.url{text-align:center;color:var(--tx-sec);background:var(--dd-bg-inset);border-radius:var(--r);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:4px 8px;font-size:12px;overflow:hidden}.poster{aspect-ratio:16/10;background:var(--dd-bg);position:relative}.poster img{object-fit:cover;object-position:top left;width:100%;height:100%;position:absolute;inset:0}html[data-mode=dark] .p-light,html[data-mode=light] .p-dark{display:none}.poster .go{box-shadow:var(--dd-shadow-modal);position:absolute;bottom:16px;right:16px}.dctl{border-top:1px solid var(--dd-border-strong);background:var(--dd-bg-sidebar);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.badge-ill{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-sec);margin-left:auto;font-size:12px}.fn{color:var(--tx-sec);margin:10px 2px 0;font-size:12px}dialog.full{background:var(--dd-bg);width:100vw;max-width:none;height:100vh;max-height:none;color:var(--dd-text);border:0;margin:0;padding:0}dialog.full::backdrop{background:#000}.fullh{border-bottom:1px solid var(--dd-border-strong);background:var(--dd-bg-sidebar);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.fullh h3{margin:0 auto 0 0;font-size:13px}.fullb{height:calc(100vh - 56px);overflow:auto}.fullb img{width:100%;display:block}.legend{color:var(--tx-sec);flex-wrap:wrap;gap:18px;margin:0 0 14px;font-size:12px;display:flex}.legend span{align-items:center;gap:8px;display:inline-flex}.node{box-sizing:border-box;border-radius:50%;flex:none;width:11px;height:11px;display:inline-block}.node.rel{background:var(--dd-success)}.node.head{background:var(--dd-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--dd-primary) 28%,transparent)}.node.plan{border:1.5px dashed var(--tx-sec);background:0 0}.log{background:var(--dd-bg-card);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);overflow:hidden}.logh{background:var(--dd-bg-elevated);border-bottom:1px solid var(--dd-border-strong);color:var(--tx-sec);align-items:center;gap:10px;padding:11px 16px;font-size:12px;display:flex}.logh b{color:var(--dd-text)}ol.rows{margin:0;padding:10px 0 4px;list-style:none}.row{grid-template-columns:44px minmax(0,1fr);display:grid;position:relative}.row .rail{justify-content:center;padding-top:15px;display:flex;position:relative}.row .rail:before{content:"";background:color-mix(in srgb,var(--tx-sec) 40%,transparent);width:1px;position:absolute;top:0;bottom:0;left:50%}.row .rail .node{z-index:1;margin-top:1px;position:relative}.row .rail:after{content:"";position:absolute;inset:0}.row.first .rail:before{top:15px}.row .body{min-width:0;padding:10px 16px 12px 0}.row .hd{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.row .v{font-size:13px;font-weight:700}.row.plannedrow .v,.row.plannedrow .tt{color:var(--tx-sec)}.row .tt{font-size:13px;font-weight:500}.row .it{color:var(--tx-sec);margin:3px 0 0;font-size:12px;line-height:1.55;display:block}.row .it:before{content:"│ ";color:var(--tx-sec);opacity:.6}.row details{margin:0}.row details summary{cursor:pointer;color:var(--tx-primary);margin-top:3px;font-size:12px;list-style:none;display:inline-block}.row details summary::-webkit-details-marker{display:none}.row details summary:after{content:"+" attr(data-n) " more"}.row details[open] summary:after{content:"show less"}.row.root .body{color:var(--tx-sec);padding-bottom:16px}.row.root .rail:before{height:16px;bottom:auto}.scroll{border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);background:var(--dd-bg-card);position:relative;overflow-x:auto}table.cmp{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}.cmp th,.cmp td{text-align:center;border-bottom:1px solid var(--dd-border);padding:14px 16px}.cmp thead th{background:var(--dd-bg-inset);letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:600}.cmp th:first-child,.cmp td:first-child{text-align:left}.cmp tbody th{font-weight:500}.cmp .me{background:color-mix(in srgb,var(--dd-primary) 10%,transparent)}.cmp thead .me{color:var(--tx-primary)}.cmp small{text-transform:none;letter-spacing:0;color:var(--tx-sec);font-size:12px;font-weight:400;display:block}.cmp tbody tr:nth-child(2n){background:color-mix(in srgb,var(--dd-bg-card) 92%,var(--dd-text) 8%)}.cmp td .ic{width:22px;height:22px}.yes{color:var(--tx-success)}.part{color:var(--tx-warning)}.no{color:var(--tx-danger)}.leg{color:var(--tx-sec);border-top:1px solid var(--dd-border);flex-wrap:wrap;gap:18px;padding:12px 16px;font-size:12px;display:flex}.leg span{align-items:center;gap:6px;display:inline-flex}.more{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.eco{background:var(--dd-border-strong);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.eco>*{background:var(--dd-bg-card);color:var(--dd-text);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 24px;text-decoration:none;display:flex}a.ec:hover{background:var(--dd-bg-elevated)}.eco img{object-fit:contain;width:96px;height:96px}.eco img.wh{width:132px;height:auto;max-height:96px}.eco h3{font-family:var(--serif);font-weight:var(--display-w,400);font-size:calc(30px * var(--disp-k,1));margin:6px 0 0;line-height:1}.eco p{color:var(--tx-sec);margin:0;font-size:12px}html[data-mode=dark] .lt,html[data-mode=light] .dk{display:none}.project{flex-wrap:wrap;align-items:center;gap:14px;margin-top:22px;display:flex}.pill{border:1px solid var(--dd-border-strong);background:var(--dd-bg-card);color:var(--dd-text);border-radius:999px;align-items:center;gap:10px;padding:8px 14px 8px 8px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.pill img{border-radius:50%;width:26px;height:26px}.pill:hover{border-color:var(--dd-primary)}.faq{border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);background:var(--dd-bg-card);overflow:hidden}.faq details{border-bottom:1px solid var(--dd-border)}.faq details:last-child{border-bottom:0}.faq summary{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;font-size:13px;font-weight:600;line-height:1.5;list-style:none;display:flex}.faq summary:hover{background:var(--dd-hover-overlay)}.faq .pm{flex:none;width:14px;height:14px;margin-top:3px;transition:transform .2s;position:relative}.faq .pm:before,.faq .pm:after{content:"";background:var(--tx-sec);height:2px;position:absolute;top:6px;left:0;right:0}.faq .pm:after{transform:rotate(90deg)}.faq details[open] .pm{transform:rotate(45deg)}.faq .a{color:var(--tx-sec);max-width:68em;padding:0 18px 18px;font-size:13px;line-height:1.75}.faq .a p{margin:0}footer{border-top:1px solid var(--dd-border-strong);background:var(--dd-bg-sidebar);margin-top:84px}.fgrid{grid-template-columns:1.5fr 1fr 1fr 1.2fr 1fr;gap:32px;padding:44px 0 30px;display:grid}.fgrid .fh{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-sec);margin:0 0 12px;font-size:12px}.fgrid ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fgrid a{color:var(--dd-text);font-size:12px;text-decoration:none}.fgrid a:hover{color:var(--tx-primary);text-decoration:underline}.fblurb{color:var(--tx-sec);max-width:26em;margin:12px 0;font-size:12px}.icons{gap:8px;display:flex}.icons a{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-card);place-items:center;width:34px;height:34px;display:grid}.icons .ic{width:18px;height:18px}.fbot{border-top:1px solid var(--dd-border-strong);color:var(--tx-sec);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 0 28px;font-size:12px;display:flex}@media (max-width:980px){.split{grid-template-columns:1fr;gap:0}.split>.sec-h{margin-bottom:28px;position:static}.hero .grid{grid-template-columns:1fr;gap:36px}.mascot{width:110px;margin-top:20px}.fgrid{grid-template-columns:1fr 1fr 1fr}.fgrid>div:first-child{grid-column:1/-1}}@media (max-width:720px){.wrap{padding:0 16px}.nav{display:none}.menu{display:block}.top .wrap{gap:8px}.spacer{display:none}.top .themes,.top .modetog{margin-left:auto}.tlabel{display:none}.hero{padding-top:42px}.tiles{grid-template-columns:1fr 1fr}.dt .c-act,.dt .c-kind{display:none}.dt td{padding:0 8px}.ver2{font-size:12px}section{padding-top:60px}.eco{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.strip li{padding:8px 10px}.badge-ill{width:100%;margin-left:0}}@media (max-width:420px){.ct small{display:none}.ct{gap:8px}.ct img{width:24px;height:24px}.dt td{padding:0 6px}.ver2{white-space:normal;font-size:12px}.dt thead th{padding:10px 6px}.brand span{display:none}.fgrid{grid-template-columns:1fr}.strip{width:100%}.strip li{flex:45%}}@media (prefers-reduced-motion:reduce){.mascot{animation:none}html{scroll-behavior:auto}*{transition:none!important}}code{font-family:var(--mono);background:var(--dd-bg-inset);border-radius:var(--r-sm);padding:1px 5px;font-size:max(12px,.94em)}pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}.pal code{background:color-mix(in srgb,var(--dd-bg-inset) 80%,transparent)}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn .ic{width:15px;height:15px}.fn code{font-size:max(12px,.95em)}.menu .panel{width:min(260px,100vw - 24px)}.ver{flex-wrap:wrap}.mascot{width:128px}.num{color:var(--tx-sec);margin-right:8px;font-weight:500}.pal li.it .pill2{align-self:center;margin-left:auto}.pal li.it>span:nth-child(2){flex:1;min-width:0}.pal .hd2{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.pal .hd2 .chip{margin-left:auto}.pal-t{border-bottom:1px solid var(--dd-border-strong);background:var(--dd-bg-sidebar);color:var(--tx-sec);align-items:center;gap:10px;padding:12px 16px;font-size:12px;display:flex}.pal-t b{color:var(--dd-text)}.pal-t span:last-child{margin-left:auto}.pal ul{max-height:640px;overflow:auto}.j{font:12px/1.6 var(--mono);white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere}.jk{color:var(--tx-info)}.jn{color:var(--tx-warning)}.jp{color:var(--tx-sec)}.jb{color:var(--tx-success)}.jr{color:var(--tx-danger)}.jt{color:var(--tx-alt)}.sec-note{color:var(--tx-sec);font-size:12px}.loop{background:var(--dd-bg-card);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);box-shadow:var(--dd-shadow-modal);min-width:0;overflow:hidden}.loop-h{background:var(--dd-bg-elevated);border-bottom:1px solid var(--dd-border-strong);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:11px 14px;display:flex}.loop-h b{letter-spacing:.04em;font-size:12px}.loop-h .grow{flex:1}.steps{flex-wrap:wrap;gap:6px;margin:0;padding:10px 14px 0;list-style:none;display:flex}.steps li{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-sec);border-radius:var(--r-sm);border:1px solid var(--dd-border-strong);align-items:center;gap:6px;padding:4px 7px;font-size:12px;font-weight:600;display:inline-flex}.steps li[data-on=true]{color:var(--tx-primary);border-color:var(--dd-primary);background:color-mix(in srgb,var(--dd-primary) 15%,transparent)}.steps li[data-done=true]{color:var(--tx-success);border-color:color-mix(in srgb,var(--dd-success) 60%,transparent)}.pnl{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-inset);margin:10px 14px 0;overflow:hidden}.pnl:last-of-type{margin-bottom:14px}.pnl-h{border-bottom:1px solid var(--dd-border-strong);background:color-mix(in srgb,var(--dd-bg-inset) 70%,var(--dd-bg-elevated));flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 10px;display:flex}.pnl-h .micro{flex:1;min-width:0}.pnl-b{min-width:0;max-height:300px;padding:8px 10px;overflow:auto}.pnl-b.tall{max-height:260px}.pnl-b pre{margin:0}.cfg{font:12px/1.6 var(--mono);border-bottom:1px solid var(--dd-border-strong);color:var(--dd-text);margin:0;padding:8px 10px}.cfg .k{color:var(--tx-info)}.cfg .m{color:var(--tx-primary);font-weight:700}.ev{border-bottom:1px solid var(--dd-border)}.ev:last-child{border-bottom:0}.ev>summary{cursor:pointer;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:5px 2px;font-size:12px;list-style:none;display:grid}.ev>summary::-webkit-details-marker{display:none}.ev>summary:hover{background:var(--dd-hover-overlay)}.ev .m{font-weight:700}.ev .pth{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ev .st{color:var(--tx-sec)}.ev .body403{color:var(--tx-danger);grid-column:1/-1;padding:0 0 2px 2px;font-size:12px}.ev pre.j{color:var(--dd-text);padding:6px 4px 8px}.ev.new{animation:.35s ease-out evin}@keyframes evin{0%{opacity:0;transform:translateY(4px)}}.pairs{font:12px/1.7 var(--mono);margin:0;padding:0;list-style:none}.cmdline{font:12px/1.6 var(--mono);color:var(--dd-text);white-space:pre-wrap;word-break:break-all;border-bottom:1px dashed var(--dd-border-strong);margin:0 0 8px;padding-bottom:8px}.cmdline .p{color:var(--tx-sec)}.empty2{color:var(--tx-sec);margin:0;font-size:12px}.swrow{letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}button.switch{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-card);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;min-height:32px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}button.switch .trk{background:var(--dd-bg-inset);border:1px solid var(--dd-border-strong);border-radius:9px;flex:none;width:34px;height:18px;position:relative}button.switch .trk:after{content:"";background:var(--tx-sec);border-radius:50%;width:12px;height:12px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}button.switch[aria-checked=true] .trk{background:color-mix(in srgb,var(--dd-danger) 25%,transparent);border-color:var(--dd-danger)}button.switch[aria-checked=true] .trk:after{background:var(--tx-danger);transform:translate(16px)}button.switch[aria-checked=false] .lbl-on,button.switch[aria-checked=true] .lbl-off{color:var(--tx-sec)}.hint{color:var(--tx-sec);margin:0;padding:8px 14px 12px;font-size:12px}.illus{letter-spacing:.08em;text-transform:uppercase;color:var(--tx-sec);flex-wrap:wrap;justify-content:space-between;gap:6px 12px;margin:10px 2px 0;font-size:12px;display:flex}.dry{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:16px;display:grid}.ctl{background:var(--dd-bg-card);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);gap:10px;padding:14px;display:grid}.ctl label{gap:4px;display:grid}.ctl select,.ctl input[type=text]{background:var(--dd-bg-inset);border:1px solid var(--dd-border-strong);border-radius:var(--r);color:var(--dd-text);font:inherit;width:100%;min-height:36px;padding:8px 10px;font-size:12.5px}.presets{gap:6px;display:grid}.presets button{text-align:left;border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.presets button[aria-pressed=true]{border-color:var(--dd-primary);background:color-mix(in srgb,var(--dd-primary) 15%,transparent)}.presets .m{min-width:5.2em;font-weight:700}.matchout{background:var(--dd-bg-inset);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);overflow:hidden}.matchout pre{font:12.5px/1.75 var(--mono);color:var(--dd-text);margin:0;padding:14px 16px;overflow-x:auto}.matchout .lb{color:var(--tx-sec)}.matchout .al{color:var(--tx-success);font-weight:700}.matchout .de{color:var(--tx-danger);font-weight:700}.matchcmd{border-bottom:1px solid var(--dd-border-strong);font:12px/1.5 var(--mono);color:var(--dd-text);background:var(--dd-bg-elevated);word-break:break-all;padding:10px 16px}details.valid{border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);background:var(--dd-bg-card);margin-top:16px}details.valid>summary{cursor:pointer;align-items:center;gap:10px;padding:12px 16px;font-size:12px;font-weight:600;list-style:none;display:flex}details.valid>summary::-webkit-details-marker{display:none}details.valid pre{font:12px/1.7 var(--mono);color:var(--dd-text);margin:0;padding:6px 16px 16px;overflow-x:auto}.valid .a{color:var(--tx-success)}.valid .d{color:var(--tx-danger)}.ruler{counter-reset:r}.hl{background:color-mix(in srgb,var(--dd-primary) 15%,transparent)}.dlist{color:var(--tx-sec);gap:4px;margin:14px 0 0;padding:0;font-size:12px;list-style:none;display:grid}.starcard{border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);background:var(--dd-bg-card);display:block;overflow:hidden}.starcard img{width:100%;height:auto;display:block}html[data-mode=dark] .starcard .sl,html[data-mode=light] .starcard .sd{display:none}.cmp .nd{color:var(--tx-sec)}.mono-sub{color:var(--tx-sec);font-size:12px}.canon{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-inset);margin:10px 14px 0;overflow:hidden}.canon-r{border-bottom:1px solid var(--dd-border);font:12px/1.55 var(--mono);grid-template-columns:6.4em minmax(0,1fr);gap:0 10px;padding:5px 10px;display:grid}.canon-r:last-child{border-bottom:0}.canon-r .lb{letter-spacing:.1em;text-transform:uppercase;color:var(--tx-sec);padding-top:2px;font-size:12px;font-weight:600}.canon-r .v{word-break:break-all;min-width:0}.canon-r .bad{color:var(--tx-danger);font-weight:700}.hdrs{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-inset);font:12px/1.6 var(--mono);word-break:break-all;margin:10px 14px 0;padding:8px 10px}.hdrs .h{color:var(--tx-info)}.tamper{flex-wrap:wrap;gap:8px;padding:10px 14px 0;display:flex}.resp{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-inset);margin:10px 14px 0;overflow:hidden}.resp-b{font:12px/1.6 var(--mono);padding:8px 10px}.resp .stl{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.audit{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-inset);margin:10px 14px 14px}.audit .pnl-b{max-height:210px}.audit .ln{border-bottom:1px solid var(--dd-border);padding:4px 0}.audit .ln:last-child{border-bottom:0}.topo{border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);background:var(--dd-bg-card);margin-top:34px;padding:16px 18px 14px}.topo h3{letter-spacing:.12em;text-transform:uppercase;color:var(--tx-sec);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 12px;font-size:12px;display:flex}.topo h3 .grow{flex:1}.flow{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:0;margin:0;padding:0;list-style:none;display:grid}.flow>li{padding:0 64px 0 0;position:relative}.flow>li:last-child{padding-right:0}.node-c{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg);color:var(--dd-text);align-items:center;gap:10px;height:100%;padding:10px 12px;text-decoration:none;display:flex}a.node-c:hover{border-color:var(--dd-primary)}.node-c img{object-fit:contain;flex:none;width:34px;height:34px}.node-c .ic{width:30px;height:30px;color:var(--tx-sec)}.node-c b{font-size:12.5px;display:block}.node-c small{color:var(--tx-sec);font-size:12px;line-height:1.4;display:block}.flow .arr{text-align:center;width:64px;color:var(--tx-sec);font-size:16px;line-height:1.2;position:absolute;top:50%;right:0;transform:translateY(-50%)}.flow .arr small{letter-spacing:.04em;text-transform:uppercase;color:var(--tx-sec);margin-bottom:2px;padding:0 4px;font-size:12px;display:block}.hs{border-top:1px dashed var(--dd-border-strong);margin:16px 0 0;padding:12px 0 0}.hs ol{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.hs li{border:1px solid var(--dd-border-strong);border-radius:var(--r-sm);color:var(--tx-sec);background:var(--dd-bg);align-items:center;gap:6px;padding:5px 9px;font-size:12px;transition:background .3s,border-color .3s,color .3s;display:inline-flex}.hs li[data-on=true]{color:var(--tx-primary);border-color:var(--dd-primary);background:color-mix(in srgb,var(--dd-primary) 15%,transparent)}.hs li[data-done=true]{color:var(--tx-success);border-color:color-mix(in srgb,var(--dd-success) 55%,transparent)}.hs .sep{color:var(--tx-sec);background:0 0;border:0;padding:0}.hs .dir{color:var(--tx-sec);margin:0;font-size:12px}.kg{background:var(--dd-bg-inset);border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);overflow:hidden}.kg .tabs{margin:10px 12px}.kg pre{font:12px/1.65 var(--mono);color:var(--dd-text);white-space:pre-wrap;word-break:break-all;min-height:220px;margin:0;padding:6px 16px 16px;overflow-x:auto}.kg .out{color:var(--tx-sec)}.kg .stderr{color:var(--tx-warning)}.kbar{border-bottom:1px solid var(--dd-border-strong);background:var(--dd-bg-elevated);color:var(--tx-sec);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;font-size:12px;display:flex}@media (max-width:980px){.dry{grid-template-columns:1fr}.flow{grid-template-columns:1fr 1fr;gap:26px 0}.flow>li:nth-child(2){padding-right:0}.flow>li:nth-child(2) .arr{display:none}}@media (max-width:560px){.flow{grid-template-columns:1fr}.flow>li{padding:0 0 22px}.flow>li:last-child{padding-bottom:0}.flow .arr{inset:auto auto -6px 50%;transform:translate(-50%)rotate(90deg)}.flow>li:nth-child(2) .arr{display:block}.flow .arr small{display:none}.ev>summary{grid-template-columns:auto auto minmax(0,1fr)}.ev .st{display:none}.canon-r{grid-template-columns:1fr}.loop-h .grow{display:none}}@media (prefers-reduced-motion:reduce){.ev.new{animation:none}button.switch .trk:after,.hs li{transition:none}}.hero .grid{align-items:start}.hero .lcol{position:sticky;top:84px}@media (max-width:980px){.hero .lcol{position:static}}.pal-in input:focus-visible{outline:2px solid var(--dd-primary);outline-offset:2px}.modetog{border:1px solid var(--dd-border-strong);border-radius:var(--r);background:var(--dd-bg-card);font-family:var(--font-ui,var(--mono));font-size:var(--ui-size-sm,12px);font-weight:var(--ui-w-sm,600);letter-spacing:var(--ui-ls-sm,.06em);text-transform:var(--ui-tt,uppercase);cursor:pointer;align-items:center;gap:8px;min-height:34px;padding:7px 10px;display:inline-flex}.modetog:hover{background:var(--dd-bg-elevated)}.modetog .ic{width:15px;height:15px}.modetog .i-sun{display:none}.modetog[aria-pressed=false] .i-sun{display:inline-block}.modetog[aria-pressed=false] .i-moon,html[data-product=drydock] .modetog,html:not([data-product=drydock]) details.themes{display:none}@media (max-width:720px){.modetog .ml{display:none}}:root{--term-red:#ff7b86;--term-green:#98c379;--term-amber:#e5c07b;--term-prompt:var(--code-key);--beak:var(--code-key)}.term{border:1px solid var(--dd-border-strong);border-radius:var(--r-lg);background:var(--dd-bg-code);box-shadow:var(--dd-shadow-modal);min-width:0;overflow:hidden}.term-bar{background:var(--term-bar,#2a2e38);color:#c9d0dc;border-bottom:1px solid #00000040;align-items:center;gap:10px;padding:9px 12px;font-size:12px;display:flex}.term-bar .dots{flex:none;gap:6px;display:inline-flex}.term-bar .dots i{background:#ffffff30;border-radius:50%;width:10px;height:10px;display:block}.term-bar .dots i:first-child{background:var(--term-red)}.term-bar .dots i:nth-child(2){background:var(--term-amber)}.term-bar .dots i:nth-child(3){background:var(--term-green)}.term-bar b{letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.term-bar .grow{flex:1}.term-bar button{color:#dfe5ef;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #ffffff30;min-height:26px;padding:3px 9px;font-size:12px}.term-bar button:hover{background:#ffffff14}.term-bar button:focus-visible,.tcmd:focus-visible{outline:2px solid var(--term-prompt);outline-offset:2px}.term-body{height:380px;max-height:380px;font:12px/1.55 var(--mono);color:var(--code-fg);overscroll-behavior:contain;padding:12px 14px 16px;overflow:auto}.term-body:focus-visible{outline:2px solid var(--term-prompt);outline-offset:-2px}.tl{white-space:pre-wrap;overflow-wrap:anywhere;min-height:1.55em}.tl.art{white-space:pre;overflow-wrap:normal;font-family:Menlo,DejaVu Sans Mono,Courier New,monospace;line-height:1.05}.tl.cmd{margin-top:8px}.tl.cmd:first-child{margin-top:0}.tl .ps{color:var(--term-prompt);-webkit-user-select:none;user-select:none;margin-right:8px;font-weight:700}.tl.cmd.client .ps,.tl.note,.tl .dim{color:var(--code-dim)}.tl .jk{color:var(--code-key)}.tl .jv{color:var(--code-val)}.tl .bad{color:var(--term-red);font-weight:600}.tl .ok{color:var(--term-green);font-weight:600}.tl .warn{color:var(--term-amber);font-weight:600}.tl .redact{color:var(--term-amber);font-style:italic}.caret{background:var(--beak);vertical-align:-.2em;width:.6em;height:1.1em;margin-left:1px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.term-cmds{background:var(--term-bar,#2a2e38);border-top:1px solid #ffffff1a;flex-wrap:nowrap;gap:6px;padding:10px 12px;display:flex;overflow-x:auto}.tcmd{border-radius:var(--r-sm);color:#e6ebf4;max-width:100%;font:12px/1.4 var(--mono);cursor:pointer;text-align:left;background:#0003;border:1px solid #ffffff2a;flex:none;align-items:baseline;gap:8px;min-height:32px;padding:6px 10px;display:inline-flex}.tcmd .ps{color:var(--term-prompt);font-weight:700}.tcmd span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tcmd:hover{background:#ffffff14}.tcmd[aria-pressed=true]{border-color:var(--term-prompt);background:#ffffff1c}.term-cap{color:#b4bccb;background:var(--term-bar,#2a2e38);border-top:1px solid #ffffff12;margin:0;padding:8px 12px;font-size:12px;line-height:1.5}.term-more{background:var(--term-bar,#2a2e38);color:#b4bccb;font-size:12px;line-height:1.6}.term-more summary{cursor:pointer;color:#d8def0;padding:6px 12px 8px;list-style:none}.term-more summary::-webkit-details-marker{display:none}.term-more summary:focus-visible{outline:2px solid var(--term-prompt);outline-offset:-2px}.term-more summary:before{content:"+ "}.term-more[open] summary:before{content:"- "}.term-more div{padding:0 12px 12px}.term-more code{color:#e6ebf4;background:#00000040}.term-cap a,.term-more a{color:#d8def0}@media (max-width:720px){.term-body{height:320px;max-height:320px;font-size:12px}.tcmd{font-size:12px}}@media (prefers-reduced-motion:reduce){.caret{animation:none}}.hero .grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:40px}.hero .heroobj{justify-content:center;align-items:center;display:flex}.hero .heroobj .mascot{width:clamp(320px,26vw,400px);height:auto;margin:0}@media (max-width:900px){.hero .grid{grid-template-columns:minmax(0,1fr);gap:20px}.hero .heroobj{order:-1;justify-content:flex-start}.hero .heroobj .mascot{width:clamp(150px,44vw,220px)}}.eyebrow.strike{text-decoration:line-through;text-decoration-thickness:1px}.rfold{list-style:none}.rfold details>summary{cursor:pointer;color:var(--tx-primary);grid-template-columns:44px minmax(0,1fr);font-size:12px;list-style:none;display:grid}.rfold summary::-webkit-details-marker{display:none}.rfold summary .rail{min-height:36px;display:block;position:relative}.rfold summary .rail:before{content:"";background:color-mix(in srgb,var(--tx-sec) 40%,transparent);width:1px;position:absolute;top:0;bottom:0;left:50%}.rfold summary:after{content:"Show " attr(data-n) " earlier releases";align-self:center;padding:8px 16px 12px 0}.rfold details[open]>summary:after{content:"Hide earlier releases"}.rfold summary:hover:after{text-underline-offset:3px;text-decoration:underline}.rfold summary:focus-visible{outline:2px solid var(--dd-primary);outline-offset:-2px}ol.rows.sub{padding:0}.proof2{text-align:center;justify-items:center;gap:20px;margin-top:56px;display:grid}.pstats{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px 0;margin:0;padding:0;list-style:none;display:flex}.pstats li{align-items:baseline;gap:8px;display:inline-flex}.pstats li:not(:last-child):after{content:"·";color:var(--tx-sec);margin:0 16px}.pstats b{font-family:var(--serif);font-weight:var(--display-w,400);font-size:calc(26px * var(--disp-k,1));letter-spacing:-.01em;line-height:1}.pstats a{color:inherit;align-items:baseline;gap:8px;text-decoration:none;display:inline-flex}.pstats .sp a{color:var(--tx-primary);gap:6px;font-size:12px;font-weight:600}.pstats .sp a:hover{text-underline-offset:3px;text-decoration:underline}.pstats .sp .ic{align-self:center;width:14px;height:14px}.proof2 .starcard{aspect-ratio:800/533;width:min(100%,640px)}.pbadges{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pbadges li{line-height:0}.pbadges img{width:auto;height:20px;display:block}.pbadges a{border-radius:3px;display:block}.pbadges a:focus-visible,.pstats a:focus-visible{outline:2px solid var(--dd-primary);outline-offset:3px}:where(a:not(.skip):not(.brand),button,summary,[role=tab],input:not([type=hidden]),select){min-height:24px}:where(.nav a,.fgrid a,.icons a,.menu .panel a,.pbadges a,.pstats a,.tcmd,.modetog,.row details summary,.pswitch button,.copy,.term-more summary,.rfold summary){min-width:24px}.fgrid a,.fgrid ul a{align-items:center;min-height:24px;display:inline-flex}.icons a{justify-content:center;align-items:center;min-width:32px;min-height:32px;display:inline-flex}.pbadges a{padding:2px 0}.pstats a{align-items:center;min-height:24px}.chip a,.kbd{min-height:0}@media (pointer:coarse){html button,html summary,html [role=tab],html select,html input:not([type=hidden]):not([type=checkbox]),html a.btn,html .nav a,html .menu .panel a,html .fgrid a,html .icons a,html .pbadges a,html .pstats a,html a.pill,html a.ec,html a.stat,html a.bdg,html .lnk,html .edit,html .pn a,html .brand,html .fam a,html .dnav a,html .tree a,html .toc a,html .nf-r a,html .cthumb,html details.themes>summary,html details.menu>summary,html .modetog,html .tcmd,html .fgrid ul a,html .fam button,html .modes button{min-width:44px;min-height:44px}html .nav a,html .fgrid a,html .pstats a,html a.btn,html .brand,html .menu .panel a{align-items:center;display:inline-flex}html .pbadges a{align-items:center;padding:0 2px;display:flex}html .pbadges{gap:0 6px}html .pstats a{padding:0 2px}html .fgrid ul,html .icons{gap:0}html .row details summary{align-items:center;display:inline-flex}html .rfold summary:after{padding:12px 16px 12px 0}}section[data-sv=b] .split{display:block}section[data-sv=b] .split>.sec-h,section[data-sv=b] .sec-h{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:end;gap:6px 48px;max-width:none;margin:0 0 28px;display:grid;position:static}section[data-sv=b] .eyebrow{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:0;position:absolute;overflow:hidden}section[data-sv=b] h2.title{font-size:calc(clamp(30px,3.4vw,46px) * var(--disp-k,1));margin:0}section[data-sv=b] .sub{max-width:none;margin:0;padding-bottom:4px}section[data-sv=c] .split{display:block}section[data-sv=c] .split>.sec-h,section[data-sv=c] .sec-h{text-align:center;max-width:40em;margin:0 auto 32px;position:static}section[data-sv=c] .eyebrow{justify-content:center}section[data-sv=c] .eyebrow:after{display:none}section[data-sv=c] .sub{margin-inline:auto}@media (max-width:900px){section[data-sv=b] .split>.sec-h,section[data-sv=b] .sec-h{grid-template-columns:minmax(0,1fr)}}@media (max-width:720px){.pstats li:not(:last-child):after{display:none}.pstats{gap:10px 22px}}small{font-size:12px}.crumbs a,.cmp a{align-items:center;min-height:24px;display:inline-flex}@media (pointer:coarse){html .pswitch button,html .crumbs a,html .cmp a,html .nf-r a,html .dnav a,html .tree a,html .toc a{min-width:44px;min-height:44px}html .prose :is(li,html p)>a:only-child,html .adv-prose :is(li,html p)>a:only-child{padding:12px 0}}.prose :is(h2,h3,h4)>a,.adv-prose :is(h2,h3,h4)>a{min-height:24px;display:inline-block}@media (pointer:coarse){html .prose :is(h2,h3,h4)>a,html .adv-prose :is(h2,h3,h4)>a{align-items:center;min-height:44px;display:inline-flex}html .dnav>summary,html .toc>summary,html .vsel>summary,html .sbtn,html .copy,html .frow-b,html .chev{min-width:44px;min-height:44px}}.prose ul>li>a:only-child,.adv-prose ul>li>a:only-child{padding:3px 0;display:inline-block}@media (pointer:coarse){html .prose ul>li>a:only-child,html .adv-prose ul>li>a:only-child{padding:12px 0}html .cb pre,html .adv-prose pre{min-height:44px}}
.top .brand{flex:none}.top .nav a[aria-current=page]{background:var(--dd-hover-overlay);box-shadow:inset 0 -2px var(--dd-primary)}.mascot{margin-left:auto}
