﻿:root{accent-color:var(--brand-primary);color-scheme:light;--font:"Brown",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Source Code Pro",ui-monospace,monospace;--color-primary:var(--brand-primary);--color-primary-inverse:#fff;--color-secondary:var(--brand-teal);--color-secondary-inverse:#fff;--brand-primary:#e10e3c;--brand-primary-dark:#b80b30;--brand-primary-soft:#fff0f4;--brand-primary-20:#ffd6e2;--brand-primary-rgb:225,14,60;--brand-teal:#0d7c6b;--brand-teal-soft:#e6f7f4;--brand-green:#a4b83b;--brand-blue:#5ba3e6;--brand-ink:#262625;--brand-ink-2:#1f1f1f;--brand-text:#131313;--brand-sub:#4a4a4a;--brand-muted:#6f6f6f;--brand-surface:#fff;--brand-soft:#f7f7f8;--brand-border:#e8e8e8;--brand-background:#fff;--text:var(--brand-text);--sub:var(--brand-sub);--muted:var(--brand-muted);--bg:var(--brand-surface);--soft:var(--brand-soft);--border:var(--brand-border);--red:var(--brand-primary);--red-dark:var(--brand-primary-dark);--red-h:var(--brand-primary-dark);--red-10:var(--brand-primary-soft);--red-20:var(--brand-primary-20);--teal:var(--brand-teal);--teal-10:var(--brand-teal-soft);--dark:var(--brand-ink);--accent-text:#c80b34;--teal-text:#0a6358;--border-strong:#c8c8c8;--faint:#c4c4c4;--concept:#6366f1;--concept-bg:#eef2ff;--tutorial:#0d7c6b;--tutorial-bg:#e6f7f4;--howto:#d97706;--howto-bg:#fffbeb;--reference:#5c5c5c;--reference-bg:#f4f4f5;--ok:#22c55e;--ok-soft:#ecfdf5;--ok-text:#059669;--mw:1160px;--r:50px;--rc:16px;--rs:10px;--sidebar-w:260px;--toc-w:220px;--nav-h:76px;--s1:0 1px 3px rgba(0,0,0,.05),0 4px 14px rgba(0,0,0,.05);--s2:0 4px 24px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.04);--s3:0 12px 48px rgba(0,0,0,.11),0 2px 8px rgba(0,0,0,.05);--ring-cream:hsla(38,33%,76%,.45);--ref-fe:var(--teal-text);--ref-fe-bg:var(--teal-10);--ref-api:#4f46e5;--ref-api-bg:#eef2ff;--ref-be:#b45309;--ref-be-bg:#fff7e6;--ref-seg-on:#fff;--api-get:#0a6358;--api-get-bg:#e6f7f4;--api-post:#1d4ed8;--api-post-bg:#eef3ff;--api-put:#8a4b08;--api-put-bg:#fff6e5;--api-patch:#6d28d9;--api-patch-bg:#f4f0ff;--api-delete:#c80b34;--api-delete-bg:#fff0f4;--api-ok:#0d7c6b;--api-warn:#b45309;--api-err:#c80b34;--x-guide:#0d7c6b;--x-guide-bg:#e6f7f4;--x-howto:#b45309;--x-howto-bg:#fff6e5;--x-faq:#c80b34;--x-faq-bg:#fff0f4;--x-ref:#4f46e5;--x-ref-bg:#eef0ff;--x-on:#fff;--code-bg:#f6f8fa;--code-border:#e8e8e8;--code-text:#1f2328;--code-btn-bg:#fff;--code-btn-hover:#f0f2f4;--code-btn-line:#d0d7de;--code-btn-text:#424a53;--syn-comment:#59636e;--syn-punct:#424a53;--syn-keyword:#cf222e;--syn-string:#0a3069;--syn-number:#0550ae;--syn-property:#0550ae;--syn-function:#8250df;--syn-tag:#116329;--syn-variable:#953800;--syn-smarty:#c80b34;--syn-twig:#0a6358}body.dark{--bg-page:#111315;--bg-surface:#171a1e;--bg-elevated:#1d2126;--text-primary:#e6edf3;--text-secondary:#b4bbc6;--text-muted:#868e9b;--border-subtle:#303740;--border-default:#444c56;--brand-text:var(--text-primary);--brand-sub:var(--text-secondary);--brand-muted:var(--text-muted);--brand-surface:var(--bg-surface);--brand-soft:var(--bg-elevated);--brand-border:var(--border-subtle);--brand-background:var(--bg-page);--border-strong:var(--border-default);--faint:#6b727c;--text:var(--text-primary);--sub:var(--text-secondary);--muted:var(--text-muted);--bg:var(--bg-surface);--soft:var(--bg-elevated);--border:var(--border-subtle);--red-10:var(--brand-primary-soft);--red-20:var(--brand-primary-20);--teal-10:var(--brand-teal-soft);--accent-text:#ff7a94;--teal-text:#2dd4bf;--brand-primary-soft:#3d1822;--brand-primary-20:#521e2d;--brand-teal-soft:#10332c;--concept:#a5b4fc;--tutorial:#5eead4;--howto:#fbbf24;--reference:#c4c4c4;--concept-bg:rgba(99,102,241,.14);--tutorial-bg:rgba(13,124,107,.16);--howto-bg:rgba(217,119,6,.14);--reference-bg:#232323;--ok-soft:#0a1f17;--ok-text:#34d399;--s1:0 1px 3px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3);--s2:0 4px 24px rgba(0,0,0,.45),0 1px 4px rgba(0,0,0,.3);--s3:0 12px 48px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.35);--ring-cream:rgba(255,248,235,.13);--ref-fe:var(--teal-text);--ref-fe-bg:var(--teal-10);--ref-api:#a5b4fc;--ref-api-bg:rgba(99,102,241,.16);--ref-be:#fcd34d;--ref-be-bg:rgba(217,119,6,.16);--ref-seg-on:#2a3038;--api-get:#2dd4bf;--api-get-bg:rgba(13,124,107,.2);--api-post:#93b4ff;--api-post-bg:rgba(59,104,235,.2);--api-put:#fbbf24;--api-put-bg:rgba(217,119,6,.18);--api-patch:#c4b5fd;--api-patch-bg:rgba(124,58,237,.2);--api-delete:#ff7a94;--api-delete-bg:rgba(225,14,60,.18);--api-ok:#34d399;--api-warn:#fbbf24;--api-err:#ff7a94;--x-guide:#5eead4;--x-guide-bg:rgba(13,124,107,.18);--x-howto:#fbbf24;--x-howto-bg:rgba(217,119,6,.16);--x-faq:#ff8fa8;--x-faq-bg:rgba(225,14,60,.16);--x-ref:#a5b4fc;--x-ref-bg:rgba(99,102,241,.18);--x-on:#111315;--code-bg:#0d0f12;--code-border:#303740;--code-text:#e6e6e6;--code-btn-bg:#24282f;--code-btn-hover:#30353d;--code-btn-line:#3a3f47;--code-btn-text:#c9d1d9;--syn-comment:#8b949e;--syn-punct:#8b949e;--syn-keyword:#ff7b72;--syn-string:#a5d6ff;--syn-number:#f2cc60;--syn-property:#79c0ff;--syn-function:#d2a8ff;--syn-tag:#7ee787;--syn-variable:#ffa657;--syn-smarty:#ff8fa8;--syn-twig:#5eead4}html[data-theme=dark]{background:#111315;color-scheme:dark}@font-face{font-display:swap;font-family:Brown;font-style:normal;font-weight:300;src:url(fonts/Brown-Light.woff2) format("woff2"),url(fonts/Brown-Light.woff) format("woff")}@font-face{font-display:swap;font-family:Brown;font-style:normal;font-weight:400;src:url(fonts/Brown-Regular.woff2) format("woff2"),url(fonts/Brown-Regular.woff) format("woff")}@font-face{font-display:swap;font-family:Brown;font-style:normal;font-weight:700;src:url(fonts/Brown-Bold.woff2) format("woff2"),url(fonts/Brown-Bold.woff) format("woff")}@font-face{font-display:swap;font-family:Source Code Pro;font-style:normal;font-weight:400;src:url(fonts/SourceCodePro-Regular.woff2) format("woff2"),url(fonts/SourceCodePro-Regular.woff) format("woff")}@font-face{font-display:swap;font-family:Source Code Pro;font-style:normal;font-weight:500;src:url(fonts/SourceCodePro-Medium.woff2) format("woff2"),url(fonts/SourceCodePro-Medium.woff) format("woff")}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,html{font-size:15px}body{background:var(--brand-background);color:var(--text);font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}a{text-decoration:none}a,button{color:inherit}button{background:none;border:none;cursor:pointer;font-family:var(--font)}img,svg{max-width:100%}:focus-visible{border-radius:4px;outline:2px solid var(--red);outline-offset:2px}.page-mount{display:flex;flex-direction:column;min-height:100vh}.wrap{margin:0 auto;max-width:var(--mw);padding:0 28px}.section{padding:3rem 0}.section+.section{padding-top:0}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);border:0;white-space:nowrap}.skip-link{background:var(--red);border-radius:0 0 10px 0;color:#fff;font-size:13.5px;font-weight:600;left:-9999px;padding:10px 18px;position:absolute;top:0;z-index:500}.skip-link:focus{left:0}.eyebrow{color:var(--accent-text);font-size:11px;font-weight:700;letter-spacing:2px;margin-bottom:8px;text-transform:uppercase}.sec-title{color:var(--text);font-size:28px;font-weight:800;letter-spacing:-.5px;margin-bottom:8px}.sec-desc{color:var(--sub);font-size:15px;line-height:1.6;max-width:460px}.cd-logo svg{display:block}.cd-logo .st0{fill:var(--brand-primary)}.cd-logo .st1{fill:currentColor}.nav-wrap{display:flex;justify-content:center;padding:0 20px;pointer-events:none;position:sticky;top:14px;z-index:200}.nav-wrap nav{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:hsla(0,0%,100%,.62);border:2px solid hsla(0,0%,70%,.2);border-radius:60px;box-shadow:0 2px 20px rgba(0,0,0,.04);display:flex;flex-wrap:nowrap;gap:2px;max-width:var(--mw);min-height:56px;padding:9px 12px 9px 22px;pointer-events:all;transition:background .3s,border-color .3s,box-shadow .3s;width:100%}.nav-wrap nav:focus-within,.nav-wrap nav:hover{background:hsla(0,0%,100%,.92);box-shadow:0 4px 30px rgba(0,0,0,.1)}body.dark .nav-wrap nav{background:rgba(23,26,30,.66);border-color:hsla(0,0%,100%,.08);box-shadow:0 2px 20px rgba(0,0,0,.4)}body.dark .nav-wrap nav:focus-within,body.dark .nav-wrap nav:hover{background:rgba(23,26,30,.95);box-shadow:0 4px 30px rgba(0,0,0,.55)}.nav-logo{align-items:center;color:var(--brand-ink);display:inline-flex;flex-shrink:0;gap:9px;padding:4px 8px 4px 0}body.dark .nav-logo{color:#f0f0f0}.nav-logo svg{height:29px;width:104px}.nav-docs{color:var(--muted);font-size:13px;font-weight:700;letter-spacing:.3px}.n-div{background:var(--border-strong);flex-shrink:0;height:26px;margin:0 16px;width:1px}.nav-links{display:flex;flex:0 1 auto;flex-wrap:nowrap;gap:2px;overflow:hidden}.nl{color:var(--brand-ink);font-size:15.5px;font-weight:700;padding:8px 12px;position:relative;transition:color .2s;white-space:nowrap}.nl:after{background:currentColor;bottom:3px;content:"";height:1.5px;left:12px;position:absolute;right:12px;transform:scaleX(0);transform-origin:left center;transition:transform .25s}.nl:focus-visible,.nl:hover{color:var(--brand-ink-2)}.nl.active:after,.nl:focus-visible:after,.nl:hover:after{transform:scaleX(1)}.nl.active{color:var(--accent-text)}body.dark .nl{color:#f0f0f0}body.dark .nl:focus-visible,body.dark .nl:hover{color:#fff}body.dark .nl.active{color:var(--accent-text)}.nav-right{display:flex;gap:10px;margin-left:auto}.nav-right,.nav-search{align-items:center;flex-shrink:0}.nav-search{background:var(--soft);border:1px solid var(--border);border-radius:50px;color:var(--muted);display:inline-flex;font-family:var(--font);font-size:12.5px;gap:9px;height:34px;justify-content:center;line-height:1;min-width:190px;padding:0 16px;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;white-space:nowrap}.nav-search:focus-visible,.nav-search:hover{background:var(--bg);border-color:var(--border-strong);box-shadow:0 0 0 3px var(--ring-cream);color:var(--text)}.nav-search svg{flex-shrink:0;height:15px;width:15px}.nav-theme-wrap{position:relative}.nav-theme,.nav-theme-wrap{display:inline-flex;flex-shrink:0}.nav-theme{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:50%;color:var(--sub);height:34px;justify-content:center;padding:0;transition:background .2s,border-color .2s,color .2s;width:34px}.nav-theme:hover,.nav-theme[aria-expanded=true]{background:var(--bg);border-color:var(--border-strong);color:var(--text)}.nav-theme svg{height:16px;width:16px}.nav-theme .ico-moon,.nav-theme .ico-sun{display:none}.nav-theme .ico-auto{display:block}:root[data-theme-mode=dark] .nav-theme .ico-auto,:root[data-theme-mode=light] .nav-theme .ico-auto{display:none}:root[data-theme-mode=dark] .nav-theme .ico-moon,:root[data-theme-mode=light] .nav-theme .ico-sun{display:block}.theme-menu{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;box-shadow:var(--s3);min-width:208px;opacity:0;padding:6px;position:absolute;right:0;top:calc(100% + 10px);transform:translateY(-6px);transition:opacity .16s ease,transform .18s ease;z-index:201}.theme-menu[hidden]{display:none}.theme-menu.open{opacity:1;transform:translateY(0)}.theme-menu:before{content:"";height:14px;left:0;position:absolute;right:0;top:-14px}.theme-opt{align-items:center;background:none;border:0;border-radius:11px;color:var(--text);cursor:pointer;display:flex;font:inherit;font-size:14px;font-weight:600;gap:10px;padding:8px 10px;text-align:left;transition:background .15s;width:100%}.theme-opt:focus-visible,.theme-opt:hover{background:var(--soft)}.theme-opt svg{flex-shrink:0;height:16px;width:16px}.theme-opt-ico{color:var(--sub)}.theme-opt-label{flex:1;min-width:0}.theme-opt-tick{color:var(--accent-text);opacity:0}:root:not([data-theme-mode=light]):not([data-theme-mode=dark]) .theme-opt[data-theme-choice=system] .theme-opt-tick,:root[data-theme-mode=dark] .theme-opt[data-theme-choice=dark] .theme-opt-tick,:root[data-theme-mode=light] .theme-opt[data-theme-choice=light] .theme-opt-tick{opacity:1}.nav-burger{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:50%;color:var(--sub);display:none;flex-shrink:0;height:34px;justify-content:center;padding:0;transition:background .2s,border-color .2s,color .2s;width:34px}.nav-burger:hover{background:var(--bg);border-color:var(--border-strong);color:var(--text)}.burger-bars{display:block;height:12px;position:relative;width:16px}.burger-bars span{background:currentColor;border-radius:2px;height:2px;left:0;position:absolute;right:0;transition:top .2s,transform .2s,opacity .15s}.burger-bars span:first-child{top:0}.burger-bars span:nth-child(2){top:5px}.burger-bars span:nth-child(3){top:10px}.nav-burger[aria-expanded=true] .burger-bars span:first-child{top:5px;transform:rotate(45deg)}.nav-burger[aria-expanded=true] .burger-bars span:nth-child(2){opacity:0}.nav-burger[aria-expanded=true] .burger-bars span:nth-child(3){top:5px;transform:rotate(-45deg)}.nav-mobile{background:var(--bg);border:1.5px solid var(--border);border-radius:20px;box-shadow:var(--s3);left:20px;margin:0 auto;max-width:var(--mw);opacity:0;padding:10px;pointer-events:auto;position:absolute;right:20px;top:calc(100% + 8px);transform:translateY(-8px);transition:opacity .18s ease,transform .2s ease;z-index:199}.nav-mobile[hidden]{display:none}.nav-mobile.open{opacity:1;transform:translateY(0)}.nav-mobile-inner{display:flex;flex-direction:column;gap:2px}.nav-mobile .nl{border-radius:12px;color:var(--text);display:block;font-size:15px;padding:11px 14px}.nav-mobile .nl:after{display:none}.nav-mobile .nl:hover{background:var(--soft)}.nav-mobile .nl.active{background:var(--red-10);color:var(--accent-text)}.nav-mobile-cta{align-items:center;background:var(--brand-ink);border-radius:50px;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;margin-top:8px;padding:12px 18px}.nav-mobile-cta:hover{background:var(--brand-ink-2);color:#fff}body.dark .nav-mobile-cta{background:#f0f0f0;color:#17191d}body.dark .nav-mobile-cta:hover{background:#fff;color:#17191d}.nav-cta{align-items:center;background:var(--brand-ink);border-radius:50px;color:#fff;display:inline-flex;flex-shrink:0;font-size:13.5px;font-weight:600;gap:8px;padding:9px 18px;transition:background .2s,transform .2s,box-shadow .2s;white-space:nowrap}.nav-cta:hover{background:var(--brand-ink-2);box-shadow:0 4px 14px rgba(0,0,0,.14);color:#fff;transform:translateY(-1px)}.nav-cta-arrow{height:14px;transition:transform .2s;width:14px}.nav-cta:hover .nav-cta-arrow{transform:translateX(3px)}body.dark .nav-cta{background:#f0f0f0;color:#17191d}body.dark .nav-cta:hover{background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.5);color:#17191d}@media(max-width:1100px){.nl{font-size:14px;padding:8px 9px}.nl:after{left:9px;right:9px}.n-div{margin:0 10px}.nav-logo svg{height:26px;width:92px}.nav-cta{font-size:13px;padding:8px 14px}}@media(max-width:1000px){.nl{font-size:13.5px;padding:8px 7px}.nl:after{left:7px;right:7px}.nav-docs{display:none}.n-div{margin:0 8px}.nav-search{min-width:150px}}@media(max-width:880px){.n-div,.nav-links{display:none}.nav-burger{display:inline-flex}}@media(max-width:600px){.nav-logo svg{height:24px;width:84px}.nav-right{gap:8px}.nav-burger,.nav-search,.nav-theme{height:32px;width:32px}.nav-search{border-radius:50%;justify-content:center;min-width:0;padding:0}.nav-cta,.nav-search-label{display:none}.nav-mobile{left:14px;right:14px}}.hero,.ud-hero{background:var(--red-10);margin-top:calc(var(--nav-h)*-1);overflow:hidden;padding-top:calc(var(--nav-h) + 60px);position:relative;z-index:0}body.dark .hero,body.dark .ud-hero{background:#1a1013}.bc-wrap+main>.hero,.bc-wrap+main>.ud-hero{margin-top:0;padding-top:60px}.hero{padding-bottom:64px;padding-left:28px;padding-right:28px;text-align:center}.hero:before{background:radial-gradient(ellipse,rgba(var(--brand-primary-rgb),.07) 0,transparent 65%);content:"";height:360px;left:50%;pointer-events:none;position:absolute;top:-100px;transform:translateX(-50%);width:700px}.hero-inner{margin:0 auto;max-width:780px;position:relative}.announce,.hero-pill{align-items:center;background:var(--bg);border:1px solid var(--red-20);border-radius:var(--r);color:var(--accent-text);display:inline-flex;font-size:11px;font-weight:700;gap:6px;letter-spacing:.8px;margin-bottom:24px;padding:5px 14px;text-transform:uppercase}.announce .spark,.hero-pill:before{animation:blink 2.5s ease-in-out infinite;content:"✦";font-size:11px;line-height:1}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.hero-title,h1.hero-title{color:var(--text);font-size:50px;font-weight:800;letter-spacing:-2px;line-height:1.07;margin-bottom:14px}.hero-title em{color:var(--accent-text);font-style:normal}.hero-sub{color:var(--sub);font-size:17px;font-weight:400;line-height:1.55;margin:0 auto 34px;max-width:440px}.hero-search{align-items:center;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r);box-shadow:var(--s3);display:flex;gap:10px;margin:0 auto 18px;max-width:560px;padding:6px 8px 6px 22px;transition:border-color .2s,box-shadow .2s}.hero-search:focus-within{border-color:var(--accent-text);box-shadow:0 0 0 4px rgba(var(--brand-primary-rgb),.08),var(--s3)}.hero-search:hover{border-color:var(--border-strong);box-shadow:0 0 0 4px var(--ring-cream),var(--s3)}.hero-search .search-ico{color:var(--faint);flex-shrink:0;height:18px;width:18px}.hero-search input{background:transparent;border:none;color:var(--text);flex:1;font-family:var(--font);font-size:15.5px;min-width:0;outline:none;padding:9px 0}.hero-search input::-moz-placeholder{color:var(--faint)}.hero-search input::placeholder{color:var(--faint)}.hero-ask{background:var(--red);border-radius:var(--r);color:#fff;flex-shrink:0;font-size:14px;font-weight:600;padding:9px 22px;transition:background .15s;white-space:nowrap}.hero-ask:hover{background:var(--red-dark)}.chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chip-row .ql-label{color:var(--muted);font-size:12.5px;margin-right:2px}.chip{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);color:var(--sub);font-size:12.5px;padding:4px 13px;transition:border-color .14s,color .14s,background .14s}.chip:hover{background:var(--red-10);border-color:var(--accent-text);color:var(--accent-text)}.ud-hero{padding-bottom:48px;padding-left:28px;padding-right:28px}.ud-hero:before{background:radial-gradient(circle,rgba(var(--brand-primary-rgb),.06) 0,transparent 65%);content:"";height:500px;pointer-events:none;position:absolute;right:-100px;top:-80px;width:500px}.ud-hero-inner{align-items:center;display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;margin:0 auto;max-width:var(--mw);position:relative}.ud-badge{align-items:center;background:var(--bg);border:1px solid var(--red-20);border-radius:var(--r);color:var(--accent-text);display:inline-flex;font-size:11px;font-weight:700;gap:6px;letter-spacing:.8px;margin-bottom:18px;padding:4px 12px;text-transform:uppercase}.ud-hero h1{color:var(--text);font-size:40px;font-weight:800;letter-spacing:-1.5px;line-height:1.1;margin-bottom:12px}.ud-hero h1 span{color:var(--accent-text)}.ud-hero-sub{color:var(--sub);font-size:16px;line-height:1.6;margin-bottom:22px;max-width:460px}.ud-hero-chips{display:flex;flex-wrap:wrap;gap:8px}.ud-chip{background:var(--bg);border:1px solid var(--red-20);border-radius:var(--r);color:var(--sub);font-size:12px;font-weight:600;padding:4px 12px}.ud-stats{display:flex;flex-wrap:wrap;gap:28px}.ud-stat{text-align:center}.ud-stat-num{color:var(--accent-text);font-size:32px;font-weight:800;letter-spacing:-1px;line-height:1}.ud-stat-label{color:var(--muted);font-size:12px;font-weight:500;margin-top:4px}.path-dev .ud-hero,.ud-hero.dev{background:var(--teal-10)}body.dark .path-dev .ud-hero,body.dark .ud-hero.dev{background:#0e1a17}.ud-hero.dev .ud-badge,.ud-hero.dev .ud-stat-num,.ud-hero.dev h1 span{border-color:rgba(13,124,107,.25);color:var(--teal-text)}.ud-hero.dev .ud-chip{border-color:rgba(13,124,107,.25)}.ud-hero-meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px 18px}.ud-hero-sub+.ud-hero-meta{margin-top:-6px}main>.ud-hero.ud-hero--compact{padding-bottom:20px;padding-top:22px}.ud-hero--compact .ud-badge{margin-bottom:8px}.ud-hero-title{color:var(--text);font-size:22px;font-weight:800;letter-spacing:-.5px;line-height:1.2;margin:0 0 6px}.ud-hero-title a{color:inherit}.ud-hero-title a:hover{color:var(--teal-text)}.ud-hero--compact .ud-hero-sub{display:-webkit-box;font-size:14.5px;-webkit-line-clamp:2;margin-bottom:0;max-width:90ch;-webkit-box-orient:vertical;overflow:hidden}.ud-hero--compact .ud-hero-meta{margin-top:10px}.hero-noscript{color:var(--sub);font-size:14px;margin:10px auto 0;max-width:560px;text-align:center}.hero-noscript a{color:var(--accent-text);text-decoration:underline}.path-grid{display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-top:36px}.path-card{background:var(--bg);border:1.5px solid var(--border);border-radius:18px;display:flex;flex-direction:column;overflow:hidden;transition:transform .22s,box-shadow .22s,border-color .22s}.path-card:hover{border-color:transparent;box-shadow:var(--s3);transform:translateY(-4px)}.pc-bar{height:4px;width:100%}.pc-user .pc-bar{background:var(--red)}.pc-dev .pc-bar{background:var(--teal)}.pc-top{flex:1;padding:30px 30px 24px}.pc-icon{align-items:center;border-radius:13px;display:flex;font-size:22px;height:48px;justify-content:center;margin-bottom:18px;width:48px}.pc-user .pc-icon{background:var(--red-10)}.pc-dev .pc-icon{background:var(--teal-10)}.path-card h2{color:var(--text);font-size:20px;font-weight:800;letter-spacing:-.4px;margin-bottom:7px}.path-card .pc-top>p{color:var(--sub);font-size:14px;line-height:1.6;margin-bottom:20px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}.aud-chip{border-radius:var(--r);font-size:11.5px;font-weight:600;letter-spacing:.2px;padding:3px 11px}.pc-user .aud-chip{background:var(--red-10);color:var(--accent-text)}.pc-dev .aud-chip{background:var(--teal-10);color:var(--teal-text)}.pc-sections{display:flex;flex-direction:column;gap:13px;margin-bottom:8px}.pc-section-item{color:var(--sub);display:flex;font-size:13.5px;gap:8px}.pc-section-item:before{color:var(--faint);content:"›";font-size:12px;line-height:1.45}.pc-si-body{display:flex;flex-direction:column;gap:2px;min-width:0}.pc-si-title{color:var(--text);font-weight:600;line-height:1.45}.pc-si-desc{line-height:1.55}.pc-more,.pc-si-desc{color:var(--muted);font-size:12.5px}.pc-more{margin-top:2px;padding-left:16px}.pc-footer{align-items:center;background:var(--soft);border-top:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:18px 30px}.pc-stat{color:var(--muted);font-size:12px;font-weight:500}.pc-cta{align-items:center;border-radius:var(--r);color:#fff;display:inline-flex;font-size:13.5px;font-weight:600;gap:7px;padding:9px 20px;transition:opacity .15s,transform .15s}.pc-cta:hover{opacity:.88;transform:translateX(2px)}.pc-user .pc-cta{background:var(--red)}.pc-dev .pc-cta{background:var(--teal)}.pc-browse-btn{align-items:center;border-top:1px solid var(--border);display:flex;font-size:12.5px;font-weight:600;gap:6px;justify-content:space-between;padding:10px 30px;transition:background .12s;width:100%}.pc-user .pc-browse-btn{color:var(--accent-text)}.pc-dev .pc-browse-btn{color:var(--teal-text)}.pc-browse-btn:hover{background:var(--soft)}.pc-browse-arrow{font-size:11px;transition:transform .22s}.pc-browse-btn[aria-expanded=true] .pc-browse-arrow{transform:rotate(180deg)}.pc-all-sections{max-height:0;overflow:hidden;padding:0 30px;transition:max-height .32s ease,padding .22s}.pc-all-sections.open{border-top:1px solid var(--border);max-height:700px;padding:14px 30px 20px}.pc-all-grid{display:grid;gap:6px 20px;grid-template-columns:1fr 1fr}.pc-all-item{align-items:center;color:var(--sub);display:flex;font-size:12.5px;gap:7px;padding:3px 0;transition:color .12s}.pc-all-item:before{color:var(--faint);content:"›";font-size:11px}.pc-user .pc-all-item:hover{color:var(--accent-text)}.pc-dev .pc-all-item:hover{color:var(--teal-text)}.pc-all-count{color:var(--muted);font-size:11px;margin-left:auto}.gs-strip{align-items:center;background:var(--brand-ink);border-radius:20px;display:flex;gap:40px;justify-content:space-between;padding:44px 52px}body.dark .gs-strip{background:var(--bg-elevated);border:1px solid var(--border-subtle)}.gs-left h2{color:#fff;font-size:24px;font-weight:800;letter-spacing:-.4px;margin-bottom:8px}.gs-left p{color:hsla(0,0%,100%,.5);font-size:14px;line-height:1.6}.gs-steps{align-items:center;display:flex;flex-wrap:wrap;gap:5px;margin-top:22px}.gs-step{background:hsla(0,0%,100%,.07);border:1px solid hsla(0,0%,100%,.1);border-radius:var(--r);color:hsla(0,0%,100%,.65);font-size:12px;font-weight:600;padding:5px 12px;white-space:nowrap}.gs-step.s1{background:var(--red);border-color:var(--accent-text);color:#fff}.gs-arrow{color:hsla(0,0%,100%,.2);font-size:11px}.gs-steps .gs-step:first-child{background:var(--red);border-color:var(--accent-text);color:#fff}.gs-steps .gs-step+.gs-step{margin-left:14px;position:relative}.gs-steps .gs-step+.gs-step:before{color:hsla(0,0%,100%,.2);content:"→";font-size:11px;left:-14px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.gs-cta{align-items:center;background:#fff;border-radius:var(--r);box-shadow:var(--s1);color:var(--brand-ink);display:inline-flex;font-size:14px;font-weight:700;gap:8px;padding:13px 26px;transition:opacity .15s;white-space:nowrap}.gs-cta:hover{opacity:.9}.articles-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:36px}.article-row{align-items:center;background:var(--bg);border:1.5px solid var(--border);border-radius:12px;display:flex;gap:13px;padding:14px 16px;transition:border-color .14s,box-shadow .14s}.article-row:hover{border-color:var(--border-strong);box-shadow:var(--s1)}.ar-icon{flex-shrink:0;font-size:18px;line-height:1}.ar-body{flex:1;min-width:0}.ar-title{color:var(--text);font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ar-path{color:var(--muted);font-size:12px;margin-top:2px}.ar-badge{border-radius:4px;flex-shrink:0;font-size:10.5px;font-weight:700;padding:2px 8px;white-space:nowrap}.ab-u{background:var(--red-10);color:var(--accent-text)}.ab-d{background:var(--teal-10);color:var(--teal-text)}.lu-list{border:1.5px solid var(--border);border-radius:16px;display:flex;flex-direction:column;margin-top:28px;overflow:hidden}.lu-item{align-items:flex-start;background:var(--bg);border-bottom:1px solid var(--border);display:flex;gap:16px;padding:18px 22px;transition:background .12s}.lu-item:last-child{border-bottom:none}.lu-item:hover{background:var(--soft)}.lu-badge{border-radius:20px;flex-shrink:0;font-size:10.5px;font-weight:700;letter-spacing:.2px;margin-top:2px;padding:3px 10px;white-space:nowrap}.lu-new{background:var(--ok-soft);color:var(--ok-text)}.lu-updated{background:#fffbeb;color:#d97706}.lu-breaking{background:var(--red-10);color:var(--accent-text)}.lu-depr{background:var(--soft);border:1px solid var(--border);color:var(--muted)}body.dark .lu-updated{background:#1f1500;color:#fbbf24}.lu-body{flex:1;min-width:0}.lu-title{color:var(--text);font-size:14px;font-weight:700;margin-bottom:4px}.lu-desc{color:var(--sub);font-size:13px;line-height:1.55}.lu-date{color:var(--muted);flex-shrink:0;font-size:12px;margin-top:2px;white-space:nowrap}.lu-more-link{align-items:center;color:var(--accent-text);display:inline-flex;font-size:13.5px;font-weight:600;gap:6px;margin-top:16px}.lu-more-link:hover{text-decoration:underline}.layout{align-items:start;display:grid;gap:40px;grid-template-columns:220px 1fr;margin:0 auto;max-width:var(--mw);padding:36px 28px 80px}.layout.single{grid-template-columns:1fr}.layout.two-col{grid-template-columns:1fr 1fr}.sec-nav{background:var(--bg);border:1.5px solid var(--border);border-radius:14px;height:-moz-fit-content;height:fit-content;overflow:hidden;padding:16px 0;position:sticky;top:80px}.sn-head{border-bottom:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1.5px;margin-bottom:8px;padding:0 16px 12px;text-transform:uppercase}.sn-item{align-items:center;border-left:2px solid transparent;color:var(--sub);display:flex;font-size:13px;gap:6px;justify-content:space-between;padding:7px 16px;transition:color .12s,background .12s}.sn-item:hover{background:var(--soft);color:var(--text)}.sn-item.active{background:var(--red-10);border-left-color:var(--accent-text);color:var(--accent-text);font-weight:600}.sn-count{background:var(--soft);border-radius:10px;color:var(--muted);flex-shrink:0;font-size:11px;padding:1px 6px}.sn-item.active .sn-count{background:var(--red-20);color:var(--accent-text)}.filter-bar{align-items:center;background:var(--soft);border:1.5px solid var(--border);border-radius:12px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;padding:14px 18px}.filter-label{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:1px;margin-right:4px;text-transform:uppercase;white-space:nowrap}.flt-btn{background:var(--bg);border:1.5px solid var(--border);border-radius:20px;color:var(--sub);font-size:12.5px;font-weight:600;padding:5px 13px;transition:all .14s;white-space:nowrap}.flt-btn:hover{border-color:var(--border-strong);color:var(--text)}.flt-btn.active{background:var(--red);border-color:var(--accent-text);color:#fff}.flt-btn.concept.active{background:var(--concept);border-color:var(--concept)}.flt-btn.tutorial.active{background:var(--tutorial);border-color:var(--tutorial)}.flt-btn.howto.active{background:var(--howto);border-color:var(--howto)}.flt-btn.reference.active{background:var(--reference);border-color:var(--reference)}body.dark .flt-btn.concept.active,body.dark .flt-btn.howto.active,body.dark .flt-btn.reference.active,body.dark .flt-btn.tutorial.active{color:var(--bg-page)}.flt-sep{background:var(--border);flex-shrink:0;height:20px;width:1px}.filter-bar .flt-btn+.flt-btn:last-child{margin-left:17px;position:relative}.filter-bar .flt-btn+.flt-btn:last-child:before{background:var(--border);content:"";height:20px;left:-9px;position:absolute;top:50%;transform:translateY(-50%);width:1px}.sections-grid{display:flex;flex-direction:column;gap:16px}.sec-card{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;overflow:hidden;transition:border-color .18s,box-shadow .18s}.sec-card:hover{border-color:rgba(var(--brand-primary-rgb),.3);box-shadow:var(--s2)}.sec-card-top{align-items:flex-start;display:flex;gap:14px;padding:22px 24px 16px}.sc-meta{flex:1;min-width:0}.sc-eyebrow{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:11px;font-weight:700;gap:6px 12px;letter-spacing:.8px;margin:0 0 8px;text-transform:uppercase}.sc-title{color:var(--text);font-size:16px;font-weight:800;letter-spacing:-.3px;margin-bottom:5px}.sc-desc{color:var(--sub);font-size:13.5px;line-height:1.55;margin-bottom:12px}.sc-diataxis{display:flex;flex-wrap:wrap;gap:5px}.dt-pill{border-radius:10px;font-size:10.5px;font-weight:700;letter-spacing:.3px;padding:2px 9px}.dt-concept{background:var(--concept-bg);color:var(--concept)}.dt-tutorial{background:var(--tutorial-bg);color:var(--tutorial)}.dt-howto{background:var(--howto-bg);color:var(--howto)}.dt-reference{background:var(--reference-bg);color:var(--reference)}.sc-arts{border-top:1px solid var(--border);padding:0 24px}.sc-art{align-items:center;border-bottom:1px solid var(--border);border-radius:8px;color:var(--sub);display:flex;font-size:13.5px;gap:10px;padding:10px 4px;transition:color .12s,background .12s,padding .12s}.sc-art:last-child{border-bottom:none}.sc-art:hover{background:var(--red-10);color:var(--accent-text);margin:0 -6px;padding-left:10px;padding-right:10px}.sc-art-title{flex:1;font-weight:500}.sc-art-arrow{color:var(--faint);flex-shrink:0;font-size:12px}.sc-foot{align-items:center;background:var(--soft);border-top:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:12px 24px}.sc-count{color:var(--muted);font-size:12px;font-weight:500}.sc-all-link{align-items:center;color:var(--accent-text);display:inline-flex;font-size:12.5px;font-weight:700;gap:5px;transition:gap .14s}.sc-all-link:hover{gap:8px}.path-label{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1.8px;margin-bottom:18px;text-transform:uppercase}.path-track{display:flex;flex-direction:column}.path-item{display:flex;gap:18px;padding-bottom:22px;position:relative}.pi-left{flex-direction:column;flex-shrink:0}.pi-left,.pi-num{align-items:center;display:flex}.pi-num{background:var(--red-10);border:1.5px solid var(--red-20);border-radius:50%;color:var(--accent-text);font-size:13.5px;font-weight:800;height:34px;justify-content:center;transition:all .18s;width:34px}.path-item.done .pi-num,.path-item:hover .pi-num{background:var(--red);border-color:var(--accent-text);color:#fff}.pi-line{background:var(--border);flex:1;margin:6px 0 -6px;width:2px}.path-item:last-child .pi-line{display:none}.pi-body{flex:1;min-width:0;padding-top:4px}.pi-body h3{color:var(--text);font-size:15.5px;font-weight:700;margin-bottom:4px}.pi-body p{color:var(--sub);font-size:13.5px;line-height:1.6}.pi-meta{color:var(--muted);display:flex;flex-wrap:wrap;font-size:12px;gap:12px;margin-top:8px}.bc-wrap{background:var(--brand-background);border-bottom:1px solid var(--border);margin-top:20px;padding:0 20px}.bc-inner{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12.5px;gap:6px;margin:0 auto;max-width:var(--mw);padding:12px 8px}.bc-inner a{color:var(--muted);transition:color .12s}.bc-inner a:hover{color:var(--accent-text)}.bc-sep{color:#d0d0d0;font-size:11px}body.dark .bc-sep{color:var(--border-default)}.bc-current{color:var(--text);font-weight:500}.bc-role{align-items:center;background:var(--red-10);border-radius:var(--r);color:var(--accent-text);display:inline-flex;font-size:11px;font-weight:700;gap:5px;margin-left:6px;padding:2px 9px}.bc-role.dev{background:var(--teal-10);color:var(--teal-text)}.page-layout{display:grid;gap:0 44px;grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--toc-w);margin:0 auto;max-width:1440px;min-height:calc(100vh - 200px);padding:0 36px}.page-layout.no-toc{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.page-layout.no-sidebar{grid-template-columns:minmax(0,1fr) var(--toc-w)}.sidebar{height:-moz-fit-content;height:fit-content;max-height:calc(100vh - 96px);overflow-y:auto;padding:32px 0 40px;position:sticky;top:80px}.sidebar::-webkit-scrollbar{width:3px}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sidebar-label{color:var(--muted);display:block;font-size:10.5px;font-weight:700;letter-spacing:1.8px;margin-bottom:10px;padding:0 10px;text-transform:uppercase}.sb-divider{background:var(--border);height:1px;margin:12px 10px}.sb-tree,.sb-tree ul{list-style:none;margin:0;padding:0}.sb-tree ul{margin-left:10px}.sb-row{align-items:center;display:flex;gap:2px}.sb-item{border-left:2px solid transparent;border-radius:0 6px 6px 0;color:var(--sub);display:block;flex:1;font-size:13px;line-height:1.5;min-width:0;padding:5px 10px;transition:color .12s,background .12s,border-color .12s}.sb-item:hover{background:var(--soft);border-left-color:var(--border-strong);color:var(--text)}.sb-item.active{background:var(--red-10);border-left-color:var(--accent-text);color:var(--accent-text);font-weight:600}body.dark .sb-item.active{background:rgba(var(--brand-primary-rgb),.12)}.sb-item.lvl-0{color:var(--text);font-size:13.5px;font-weight:700}.sb-toggle{align-items:center;border-radius:4px;color:var(--faint);display:inline-flex;flex-shrink:0;font-size:9px;height:20px;justify-content:center;transition:transform .2s,background .12s;width:20px}.sb-toggle:hover{background:var(--soft);color:var(--text)}.sb-toggle[aria-expanded=true]{transform:rotate(90deg)}.sb-children[hidden]{display:none}.article-wrap{border-radius:var(--rc);margin-block:2rem;min-width:0;padding:32px 36px 60px}body.dark .article-wrap{background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--s1)}.article-header{border-bottom:1px solid var(--border);margin-bottom:32px;padding-bottom:28px}.article-meta-top{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.art-role{align-items:center;background:var(--red-10);border-radius:var(--r);color:var(--accent-text);display:inline-flex;font-size:11px;font-weight:700;gap:5px;padding:3px 11px}.art-role.dev{background:var(--teal-10);color:var(--teal-text)}.art-tag{background:var(--soft);border:1px solid var(--border);border-radius:var(--r);color:var(--muted);font-size:11px;font-weight:500;padding:2px 9px}.art-tag.concept{background:var(--concept-bg);border-color:transparent;color:var(--concept)}.art-tag.tutorial{background:var(--tutorial-bg);border-color:transparent;color:var(--tutorial)}.art-tag.howto{background:var(--howto-bg);border-color:transparent;color:var(--howto)}.art-tag.reference{background:var(--reference-bg);border-color:transparent;color:var(--reference)}.article-header h1{color:var(--text);font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1.15;margin-bottom:12px}.article-byline{color:var(--muted);flex-wrap:wrap;font-size:12.5px;gap:16px}.article-byline,.byline-item{align-items:center;display:flex}.byline-item{gap:5px}.article-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.btn-quiet{align-items:center;background:var(--soft);border:1.5px solid var(--border);border-radius:var(--r);color:var(--text);display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:7px 16px;transition:all .15s}.btn-quiet:hover{background:var(--red-10);border-color:var(--accent-text);color:var(--accent-text)}.article-body{color:var(--text);font-size:15.5px;line-height:1.78;min-width:0;overflow-wrap:break-word}.article-body>*{max-width:720px}.article-body h2{color:var(--text);font-size:22px;font-weight:800;letter-spacing:-.4px;margin:32px 0 14px;padding-top:8px;scroll-margin-top:96px}.article-body h2:first-child{margin-top:0}.article-body h3{color:var(--text);font-size:17px;letter-spacing:-.2px;margin:28px 0 10px}.article-body h3,.article-body h4{font-weight:700;scroll-margin-top:96px}.article-body h4{font-size:15px;margin:22px 0 8px}.article-body p{margin-bottom:18px}.article-body p:last-child{margin-bottom:0}.article-body ol,.article-body ul{margin-bottom:18px;padding-left:22px}.article-body li{line-height:1.7;margin-bottom:6px}.article-body strong{font-weight:700}.article-body a{color:var(--accent-text);text-decoration:underline;text-decoration-color:var(--red-20);text-underline-offset:2px;transition:text-decoration-color .15s}.article-body a:hover{text-decoration-color:var(--accent-text)}.article-body hr{border:none;border-top:1px solid var(--border);margin:32px 0}.article-body img{border:1px solid var(--border);border-radius:12px;height:auto;max-width:100%}.article-body blockquote{border-left:3px solid var(--red-20);color:var(--sub);margin:20px 0;padding:4px 0 4px 18px}.article-body .table-wrap,.article-body table{background:linear-gradient(to top,var(--bg) 45%,transparent) bottom/100% 26px no-repeat local,linear-gradient(to top,rgba(0,0,0,.13),transparent) bottom/100% 13px no-repeat scroll;border-collapse:collapse;display:block;font-size:14px;margin:20px 0;max-height:70vh;max-width:100%;overflow-x:auto;overflow-y:auto;padding-bottom:1px;width:100%}body.dark .article-body .table-wrap,body.dark .article-body table{background:linear-gradient(to top,var(--bg) 45%,transparent) bottom/100% 26px no-repeat local,linear-gradient(to top,hsla(0,0%,100%,.16),transparent) bottom/100% 13px no-repeat scroll}.article-body .table-wrap>table,body.dark .article-body .table-wrap>table{background:none;display:table;margin:0;max-height:none;overflow:visible;padding-bottom:0}.article-body table table{background:none;max-height:none;overflow:visible}.article-body td,.article-body th{border:1px solid var(--border);padding:9px 12px;text-align:left;vertical-align:top}.article-body th{background:var(--soft);font-weight:700}.article-body thead th{box-shadow:inset 0 -1px 0 var(--border);position:sticky;top:0;z-index:1}.article-body code{background:var(--soft);border:1px solid var(--border);border-radius:5px;color:#c2410c;font-family:var(--mono);font-size:13px;padding:1px 6px}body.dark .article-body code{color:#ff9a6c}.article-body pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:12px;font-size:13px;line-height:1.6;margin:20px 0;max-width:100%;overflow-x:auto;padding:18px 20px;position:relative}.article-body pre code,body.dark .article-body pre code{background:none;border:none;color:var(--code-text);font-size:13px;line-height:inherit;padding:0}.code-copy{background:var(--code-btn-bg);border:1px solid var(--code-btn-line);border-radius:6px;color:var(--code-btn-text);font-size:11px;font-weight:600;opacity:0;padding:3px 10px;position:absolute;right:10px;top:10px;transition:opacity .15s,background .15s;-moz-user-select:none;user-select:none;-webkit-user-select:none}.article-body pre:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{background:var(--code-btn-hover)}.callout{border-radius:12px;display:flex;font-size:14px;gap:12px;line-height:1.6;margin:20px 0;padding:16px 18px}.callout.tip{background:#f0fff4;border:1px solid #a7f3d0}.callout.warning{background:#fffbeb;border:1px solid #fcd34d}.callout.info{background:#eff6ff;border:1px solid #bfdbfe}body.dark .callout.tip{background:#0a1f10;border-color:#1a4a28}body.dark .callout.warning{background:#1a1500;border-color:#4a3800}body.dark .callout.info{background:#0a1020;border-color:#1a2a50}.callout-body>strong:first-child{display:block;margin-bottom:3px}.term-grid{border:1px solid var(--border);border-radius:14px;display:grid;margin:20px 0;overflow:hidden}.term-item{border-bottom:1px solid var(--border);padding:18px 20px}.term-item:last-child{border-bottom:none}.term-item:hover{background:var(--soft)}.term-name{align-items:center;color:var(--text);display:flex;font-size:14px;font-weight:700;gap:8px;margin-bottom:6px}.term-def{color:var(--sub);font-size:14px;line-height:1.55}.go-deeper .eyebrow-row{margin-bottom:1.75rem}.go-deeper .xref-list{align-items:flex-start;flex-direction:column;margin-top:0}.article-nav{display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-top:40px;max-width:720px}.anav-card{background:var(--bg);border:1.5px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:4px;padding:16px 20px;transition:all .18s}.anav-card:hover{border-color:var(--red-20);box-shadow:var(--s1)}.anav-card.next{text-align:right}.anav-dir{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.anav-title{color:var(--text);font-size:14px;font-weight:600}.toc-wrap{border-left:1px solid var(--border);height:-moz-fit-content;height:fit-content;max-height:calc(100vh - 96px);overflow-y:auto;padding:32px 0 40px 28px;position:sticky;top:80px}.toc-wrap::-webkit-scrollbar{width:3px}.toc-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.toc-label{color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:1.2px;margin-bottom:12px;text-transform:uppercase}.toc-item{border-left:2px solid transparent;color:var(--muted);display:block;font-size:13px;line-height:1.4;padding:4px 0 4px 12px;transition:color .15s,border-color .15s}.toc-item:hover{border-left-color:var(--border-strong);color:var(--text)}.toc-item.active{color:var(--accent-text);font-weight:600}.toc-item.sub{font-size:12.5px;padding-left:24px}.toc-empty{color:var(--muted);font-size:12.5px}.ai-summary{background:var(--bg);border:1px solid var(--border);border-radius:14px;margin-top:24px;padding:14px 16px}.ai-sum-head{gap:8px;margin-bottom:10px}.ai-sum-head,.ai-sum-orb{align-items:center;display:flex}.ai-sum-orb{background:linear-gradient(135deg,var(--red),#ff4d7d);border-radius:50%;color:#fff;flex-shrink:0;font-size:10px;height:22px;justify-content:center;width:22px}.ai-sum-title{color:var(--text);font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.ai-sum-body{color:var(--sub);font-size:13px;line-height:1.6;margin-bottom:12px}.ai-sum-ask{background:transparent;border:1px solid var(--red-20);border-radius:var(--r);color:var(--accent-text);font-size:12.5px;font-weight:600;padding:7px 14px;text-align:left;transition:background .15s,color .15s;width:100%}.ai-sum-ask:hover{background:var(--red);color:#fff}.fb-strip{border-top:1px solid var(--border);margin-top:48px;max-width:720px;padding:44px 0}.fb-inner{align-items:center;display:flex;flex-direction:column;gap:14px;text-align:center}.fb-heading{color:var(--text);font-size:18px;font-weight:700;letter-spacing:-.3px}.fb-sub{color:var(--muted);font-size:13.5px;margin-top:-8px}.fb-btns{display:flex;gap:10px}.fb-btn{align-items:center;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r);color:var(--text);display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:9px 26px;transition:all .18s}.fb-btn:hover{border-color:var(--accent-text);box-shadow:var(--s1);color:var(--accent-text)}.fb-thanks{color:var(--ok-text);font-size:13.5px;font-weight:600}.fb-form{display:none;flex-direction:column;gap:10px;max-width:480px;width:100%}.fb-form.open{display:flex}.fb-textarea{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--rc);color:var(--text);font-family:var(--font);font-size:13.5px;min-height:80px;outline:none;padding:12px 16px;resize:vertical;transition:border-color .15s;width:100%}.fb-textarea:focus{border-color:var(--accent-text)}.fb-submit{align-self:flex-end;background:var(--red);border-radius:var(--r);color:#fff;font-size:13.5px;font-weight:600;padding:8px 22px;transition:background .15s}.fb-submit:hover{background:var(--red-dark)}.doc-comments{margin-top:48px;max-width:720px}.doc-comments h2{font-size:18px;font-weight:800;margin-bottom:16px}body.dark .article-body [style*=color]{color:var(--text)!important}body.dark .article-body a[style*=color]{color:var(--accent-text)!important}body.dark .article-body [style*=background-color]{background-color:transparent!important}.article-body [style*=font-family i]{font-family:var(--font)!important}.article-body [style*=courier i],.article-body [style*=monospace i],.article-body code [style*=font-family i],.article-body p.code [style*=font-family i],.article-body pre [style*=font-family i]{font-family:var(--mono)!important}.article-body [style*="font-size: 10pt" i],.article-body [style*="font-size: 11pt" i],.article-body [style*="font-size:10pt" i],.article-body [style*="font-size:11pt" i],.article-body [style*="font-size:13.999999999999998pt" i]{font-size:inherit!important}.article-body [style*="line-height: 1.38" i],.article-body [style*="line-height:1.38" i]{line-height:inherit!important}.article-body h2[style]{font-size:22px!important;font-weight:800!important}.article-body h3[style]{font-size:17px!important;font-weight:700!important}.article-body h4[style]{font-size:15px!important;font-weight:700!important}.article-body li[style*=white-space i]:not([style*=pre-wrap i]){white-space:normal!important}.article-body pre li[style*=white-space i]{white-space:pre!important}.article-body{counter-reset:line}.article-body p.code{background:#16181d;color:#e6e6e6;counter-increment:line;font-family:var(--mono);font-size:13px;line-height:1.55;margin:0;max-width:100%;overflow-x:auto;padding:8px 12px 8px 2rem;white-space:pre-wrap}.article-body p.code:before{color:#6b7280;content:counter(line) ": ";display:inline-block;margin-left:-2rem;padding-right:.6rem;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:2.2rem}.article-body p.code:first-of-type{border-radius:12px 12px 0 0;padding-top:14px}.article-body p.code+:not(.code){counter-reset:line;margin-top:20px}.article-body p.code:not(:has(+p.code)){border-radius:0 0 12px 12px;margin-bottom:20px;padding-bottom:14px}.article-body p.code-file,.code-head{background:var(--soft);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;font-size:12.5px;font-weight:600;margin:20px 0 0;max-width:100%;padding:7px 12px}.article-body p.code-file+p.code{border-radius:0}.article-body span.variable:not(.token){background:rgba(153,97,88,.09);color:#c2410c;display:inline;font-family:var(--mono);font-size:.9em;outline:1px solid hsla(0,0%,78%,.5);overflow-wrap:break-word}body.dark .article-body span.variable:not(.token){background:hsla(0,0%,100%,.06);color:#ff9a6c;outline-color:hsla(0,0%,100%,.12)}.article-body span.variable:not(.token) span.accessor,.article-body span.variable:not(.token) span.bracket{color:var(--text)}.article-body span.variable:not(.token) span.property{color:#036503}.article-body span.variable:not(.token) span.method{color:#a25c00}.article-body span.variable:not(.token) span.parameters{color:#139100}.article-body span.variable:not(.token) span.parameter{color:#000aab}body.dark .article-body span.variable:not(.token) span.property{color:#86efac}body.dark .article-body span.variable:not(.token) span.method{color:#fdba74}body.dark .article-body span.variable:not(.token) span.parameters{color:#4ade80}body.dark .article-body span.variable:not(.token) span.parameter{color:#93c5fd}.article-body span.code-comment{color:var(--muted)}.article-body p.code span.variable{background:none;color:#f88;font-size:inherit;outline:0;white-space:normal}.article-body p.code span.variable span.accessor,.article-body p.code span.variable span.bracket{color:#fff}.article-body p.code span.variable span.property{color:#e1f5e1}.article-body p.code span.variable span.method{color:#ee9300}.article-body p.code span.variable span.parameters{color:#18cd00}.article-body p.code span.variable span.parameter{color:#00e9f5}.article-body .fr-video,.article-body .fr-video.fr-dvb,.article-body .fr-video.fr-dvi{display:block;margin:20px 0;max-width:720px}.article-body .fr-video.fr-dvb{margin-left:auto;margin-right:auto}.article-body iframe{aspect-ratio:16/9;background:var(--soft);border:0;border-radius:12px;display:block;height:auto;max-width:100%;width:100%}.article-body img.fr-dib{display:block;margin:20px auto}.article-body img.fr-dii{display:inline-block;margin:12px 6px;vertical-align:middle}.article-body img.fr-fil{float:left;margin:8px 20px 12px 0}.article-body img.fr-fir{float:right;margin:8px 0 12px 20px}.article-body img.fr-fic{height:auto;max-width:100%}.article-body .fr-img-caption{max-width:100%}.article-body .fr-img-caption .fr-inner{color:var(--muted);display:block;font-size:12.5px;padding-top:6px}.article-body .img-missing{background:var(--soft);border:1px dashed var(--border);border-radius:12px;color:var(--muted);display:block;font-size:13px;font-style:italic;margin:20px 0;padding:22px 18px;text-align:center}.article-body .img-missing:before{content:"🖼";display:block;font-size:20px;font-style:normal;line-height:1;margin-bottom:8px;opacity:.5}.article-body h2.section-title{border-bottom:1px solid var(--border);padding-bottom:8px}.article-body ul.popular-links{display:grid;gap:2px 20px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));list-style:none;max-width:720px;padding-left:0}.article-body ul.popular-links li{margin-bottom:0}.article-body ul.popular-links a{font-weight:500;text-decoration:none}.article-body ul.popular-links a:before{color:var(--faint);content:"›";margin-right:7px}.article-body table.methods,.article-body table.routes{font-size:13.5px}.article-body table table{border:none;margin:0}.article-body table table td{border:none;padding:2px 6px}.child-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:24px}.child-card{background:var(--bg);border:1.5px solid var(--border);border-radius:14px;display:flex;flex-direction:column;gap:6px;padding:18px 20px;transition:transform .18s,box-shadow .18s,border-color .18s}.child-card:hover{border-color:var(--red-20);box-shadow:var(--s2);transform:translateY(-2px)}.child-title{color:var(--text);font-size:14.5px;font-weight:700}.child-meta{color:var(--muted);font-size:12px}.child-arrow{color:var(--accent-text);font-size:13px;margin-top:4px}.entries{display:flex;flex-direction:column}.entry{border-bottom:1px solid var(--border);margin-bottom:44px;padding-bottom:44px}.entry:last-child{border-bottom:none;margin-bottom:0}.entry-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}.ver-pill{background:var(--red);border-radius:6px;color:#fff;font-family:var(--mono);font-size:13px;font-weight:600;padding:4px 12px;white-space:nowrap}.entry-ico{align-items:center;border-radius:11px;display:inline-flex;flex-shrink:0;height:38px;justify-content:center;width:38px}.entry-ico svg{height:21px;width:21px}.entry-date{color:var(--muted);font-size:13.5px;margin-top:4px}.entry-title{color:var(--text);font-size:22px;font-weight:800;margin-bottom:6px}.entry-desc{color:var(--sub);font-size:15px;margin-bottom:18px}.badge-feature{background:#dcfce7;color:#15803d}.badge-improvement{background:var(--concept-bg);color:var(--concept)}.badge-bugfix{background:#fef2f2;color:#dc2626}.badge-api{background:var(--teal-10);color:var(--teal-text)}.badge-breaking{background:#fff7ed;color:#c2410c}body.dark .badge-feature{background:#14532d;color:#4ade80}body.dark .badge-bugfix{background:#450a0a;color:#f87171}body.dark .badge-api{background:#0d2e29;color:#2dd4bf}body.dark .badge-breaking{background:#431407;color:#fb923c}.change-group{margin-bottom:18px}.change-group-header{align-items:center;display:flex;gap:8px;margin-bottom:10px}.change-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin-left:4px}.change-item{align-items:flex-start;color:var(--sub);display:flex;font-size:14.5px;gap:10px}.change-item:before{color:var(--muted);content:"–";flex-shrink:0;margin-top:1px}.change-item a{color:var(--accent-text);text-decoration:underline;text-decoration-color:var(--red-20);text-underline-offset:2px}.change-item a:hover{text-decoration-color:var(--accent-text)}.entry-footer{align-items:center;display:flex;flex-wrap:wrap;gap:18px 22px;margin-top:20px}.sb-ver{font-family:var(--mono);font-size:12px}.sb-date{color:var(--muted);font-size:11px}.support-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:32px}.support-card{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;display:flex;flex-direction:column;gap:8px;padding:24px;transition:transform .18s,box-shadow .18s,border-color .18s}.support-card:hover{border-color:var(--red-20);box-shadow:var(--s2);transform:translateY(-3px)}.support-icon{align-items:center;background:var(--red-10);border-radius:12px;color:var(--accent-text);display:flex;font-size:19px;height:42px;justify-content:center;margin-bottom:6px;width:42px}.support-card h3{color:var(--text);font-size:16px;font-weight:800}.support-card p{color:var(--sub);font-size:13.5px;line-height:1.6}.support-meta{color:var(--muted);font-size:12px;margin-top:auto;padding-top:10px}.support-link{align-items:center;color:var(--accent-text);display:inline-flex;font-size:13px;font-weight:700;gap:5px}.faq-list{border:1.5px solid var(--border);border-radius:16px;display:flex;flex-direction:column;margin-top:28px;overflow:hidden}.faq-item{background:var(--bg);border-bottom:1px solid var(--border)}.faq-item:last-child{border-bottom:none}.faq-q{align-items:center;color:var(--text);display:flex;font-size:14.5px;font-weight:600;gap:12px;padding:16px 20px;text-align:left;transition:background .12s;width:100%}.faq-q:hover{background:var(--soft)}.faq-q .tag{border-radius:var(--r);flex-shrink:0;font-size:10.5px;font-weight:700;margin-left:auto;padding:2px 8px}.tag-user{background:var(--red-10);color:var(--accent-text)}.tag-dev{background:var(--teal-10);color:var(--teal-text)}.tag-both{background:var(--soft);border:1px solid var(--border);color:var(--muted)}.faq-arrow{color:var(--muted);flex-shrink:0;font-size:11px;transition:transform .2s}.faq-q[aria-expanded=true] .faq-arrow{transform:rotate(180deg)}.faq-a{color:var(--sub);font-size:14px;line-height:1.7;max-width:760px;padding:0 20px 18px}.faq-a[hidden]{display:none}.ticket-form{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;margin-top:28px;padding:24px}.form-row{display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{color:var(--sub);font-size:12.5px;font-weight:700}.form-field input,.form-field select,.form-field textarea{background:var(--bg);border:1.5px solid var(--border);border-radius:10px;color:var(--text);font-family:var(--font);font-size:14px;outline:none;padding:10px 14px;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent-text)}.form-field textarea{min-height:120px;resize:vertical}.form-hint{color:var(--muted);font-size:12px}.btn-primary{align-items:center;background:var(--red);border-radius:var(--r);color:#fff;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:11px 26px;transition:background .15s}.btn-primary:hover{background:var(--red-dark)}.cd-footer{--footer-bg:#2b2a28;--text:#f4f3f1;--sub:#c7c4bf;--muted:#9b9791;--border:hsla(0,0%,100%,.14);--soft:hsla(0,0%,100%,.06);--accent-text:#ff8fa4;background:var(--footer-bg);border-top:1px solid rgba(0,0,0,.25);color:var(--text);margin-top:auto;padding:48px 20px 32px}body.dark .cd-footer{border-top-color:hsla(0,0%,100%,.08)}.footer-inner{margin:0 auto;max-width:var(--mw)}.foot-grid{align-items:start;display:grid;gap:32px 28px;grid-template-columns:minmax(220px,1.4fr) repeat(auto-fit,minmax(150px,1fr))}.foot-brand{max-width:320px}.foot-tagline{color:var(--sub);font-size:13px;line-height:1.6;margin-top:12px}.foot-col-title{color:var(--text);font-size:11px;font-weight:700;letter-spacing:1.2px;margin-bottom:12px;text-transform:uppercase}.foot-col-list{list-style:none;margin:0;padding:0}.foot-col-list li{margin-bottom:8px}.foot-col-list a{color:var(--sub);font-size:13.5px;transition:color .12s}.foot-col-list a:hover{color:var(--accent-text)}.foot-top{align-items:center;display:flex;flex-wrap:wrap;gap:18px 28px}.foot-logo{align-items:center;color:var(--text);display:inline-flex;gap:8px}.foot-logo svg{height:22px;width:78px}.foot-links{display:flex;flex-wrap:wrap;gap:18px}.foot-links a{color:var(--sub);font-size:13.5px}.foot-links a:hover{color:var(--accent-text)}.foot-status{align-items:center;color:var(--muted);display:flex;font-size:12.5px;gap:8px;margin-top:16px}.foot-status .dot{background:var(--ok);border-radius:50%;display:inline-block;height:8px;width:8px}.foot-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.foot-social a{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:50%;color:var(--sub);display:inline-flex;height:34px;justify-content:center;transition:background .18s,color .18s,border-color .18s,transform .18s;width:34px}.foot-social a:hover{border-color:transparent;color:#fff;transform:translateY(-2px)}.foot-social a svg{height:16px;width:16px}.fs-facebook:hover{background:#3b5a9a}.fs-x:hover{background:#151719}.fs-linkedin:hover{background:#0073b2}.fs-instagram:hover{background:#7c4a3a}.foot-cta{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;padding-top:24px}.foot-cta-label{color:var(--sub);font-size:13.5px;margin-right:4px}.foot-cta a{background:var(--soft);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:12.5px;padding:6px 14px;transition:all .15s}.foot-cta a:hover{border-color:var(--accent-text);color:var(--accent-text)}.foot-bottom{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:24px;padding-top:18px}.foot-built,.foot-copy{color:var(--muted);font-size:12px}.cd-footer--compact .footer-inner{padding-bottom:20px;padding-top:20px}.foot-bottom--compact{border-top:0;gap:16px;margin-top:0;padding-top:0}.foot-bottom--compact .foot-logo{margin-right:auto}.foot-bottom--compact .foot-links{display:flex;flex-wrap:wrap;gap:14px}.foot-bottom--compact .foot-links a{color:var(--muted);font-size:12px}.foot-bottom--compact .foot-links a:hover{color:var(--accent-text)}@media(max-width:640px){.foot-bottom--compact{align-items:flex-start;flex-direction:column}.foot-bottom--compact .foot-logo{margin-right:0}}.hub-form{margin-top:28px}.hub-form-el{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;padding:24px}.hub-form-el fieldset{border:0;margin:0;min-width:0;padding:0}.hub-form-el fieldset>*{margin-bottom:16px}.hub-form-el fieldset>:last-child,.hub-form-el fieldset>input[type=hidden]{margin-bottom:0}.hub-form label{color:var(--sub);display:block;font-size:12.5px;font-weight:700;margin-bottom:6px}.hub-form input[type=date],.hub-form input[type=datetime-local],.hub-form input[type=email],.hub-form input[type=file],.hub-form input[type=number],.hub-form input[type=password],.hub-form input[type=search],.hub-form input[type=tel],.hub-form input[type=text],.hub-form input[type=time],.hub-form input[type=url],.hub-form select,.hub-form textarea{background:var(--bg);border:1.5px solid var(--border);border-radius:10px;color:var(--text);font-family:var(--font);font-size:14px;outline:none;padding:10px 14px;transition:border-color .15s;width:100%}.hub-form input:focus,.hub-form select:focus,.hub-form textarea:focus{border-color:var(--accent-text)}.hub-form textarea{min-height:120px;resize:vertical}.hub-form input[type=checkbox],.hub-form input[type=radio]{margin-right:8px;width:auto}.hub-form input[type=checkbox]+label,.hub-form input[type=radio]+label{display:inline-block}.hub-form-status{border:1.5px solid var(--border);border-radius:10px;color:var(--sub);font-size:13px;line-height:1.5;padding:10px 12px}.hub-form-status[hidden]{display:none}.hub-form-status.is-error{background:var(--red-10);border-color:var(--accent-text);color:var(--accent-text)}.hub-form-status.is-ok{border-color:var(--ok);color:var(--ok)}.hub-form-done{color:var(--ok);font-size:14px;font-weight:600}.hub-form-el.is-busy{opacity:.6}.hub-form-el.is-busy .hub-form-submit{cursor:progress}.btn-ghost{align-items:center;background:none;border:0;color:var(--accent-text);display:inline-flex;font-size:14px;font-weight:600;gap:6px;padding:7px 4px;transition:color .15s}.btn-ghost:hover{color:var(--red-dark);text-decoration:underline}.btn-ghost.btn-sm,.btn-primary.btn-sm,.btn-quiet.btn-sm{font-size:12.5px;padding:6px 14px}.btn-ghost.btn-lg,.btn-primary.btn-lg,.btn-quiet.btn-lg{font-size:15px;padding:13px 30px}.btn-ghost.btn-lg,.btn-ghost.btn-sm{padding-left:4px;padding-right:4px}.btn-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.hub-acc{background:var(--bg);border:1px solid var(--border);border-radius:var(--rs);margin:14px 0}.hub-acc-summary{align-items:center;color:var(--text);cursor:pointer;display:flex;font-size:14.5px;font-weight:600;gap:10px;list-style:none;padding:14px 18px}.hub-acc-summary::-webkit-details-marker{display:none}.hub-acc-summary:before{border-bottom:2px solid var(--muted);border-right:2px solid var(--muted);content:"";flex:none;height:7px;transform:rotate(-45deg);transition:transform .18s;width:7px}.hub-acc[open]>.hub-acc-summary:before{transform:rotate(45deg)}.hub-acc-summary:hover{color:var(--accent-text)}.hub-acc-summary:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}.hub-acc-body{padding:0 18px 16px 35px}.hub-acc-body>:first-child{margin-top:0}.hub-acc-body>:last-child{margin-bottom:0}.hub-checklist{background:var(--soft);border:1px solid var(--border);border-left:3px solid var(--ok);border-radius:var(--rs);margin:18px 0;padding:16px 20px}.hub-checklist-heading{color:var(--text);font-size:13px;font-weight:700;margin:0 0 8px}.hub-checklist-items ul{list-style:none;margin:0;padding:0}.hub-checklist-items li{color:var(--sub);font-size:14px;line-height:1.6;margin:7px 0;padding-left:26px;position:relative}.hub-checklist-items li:before{border-bottom:2px solid var(--ok-text);border-right:2px solid var(--ok-text);content:"";height:10px;left:4px;position:absolute;top:.45em;transform:rotate(45deg);width:5px}.spec-list{border:1px solid var(--border);border-radius:var(--rs);overflow:hidden}.spec-row{background:var(--bg);border-top:1px solid var(--border);padding:14px 18px}.spec-list>.spec-row:first-child{border-top:0}.spec-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:9px}.spec-name{color:var(--text);font-size:13.5px;font-weight:600}.spec-name,.spec-type{font-family:var(--mono)}.spec-type{color:var(--muted);font-size:12px}.spec-req{background:var(--red-10);border-radius:4px;color:var(--accent-text);font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;text-transform:uppercase}.spec-desc{color:var(--sub);font-size:13.5px;line-height:1.65;margin-top:6px}.spec-desc>:first-child{margin-top:0}.spec-desc>:last-child{margin-bottom:0}.hub-figure{margin:22px 0}.hub-figure img{border:1px solid var(--border);border-radius:var(--rs);display:block;height:auto;max-width:100%}.hub-figure figcaption{color:var(--muted);font-size:12.5px;line-height:1.55;margin-top:9px}.hub-figure.is-wide{margin-left:calc(min(80px,4vw)*-1);margin-right:calc(min(80px,4vw)*-1)}.hub-divider{border:0;border-top:1px solid var(--border);margin:30px 0}.hub-divider.sp-sm{margin:18px 0}.hub-divider.sp-lg{margin:48px 0}.hub-divider.has-label{align-items:center;border-top:0;color:var(--muted);display:flex;font-size:12px;font-weight:700;gap:14px;letter-spacing:.06em;text-transform:uppercase}.hub-divider.has-label:after,.hub-divider.has-label:before{background:var(--border);content:"";flex:1;height:1px}.hub-video{margin:22px 0}.hub-video-frame{aspect-ratio:16/9;background:var(--dark);border:1px solid var(--border);border-radius:var(--rs);overflow:hidden;position:relative}.hub-video-frame iframe{border:0;height:100%;inset:0;position:absolute;width:100%}.hub-video figcaption{color:var(--muted);font-size:12.5px;line-height:1.55;margin-top:9px}body.dark .hub-acc,body.dark .spec-row{background:var(--bg-surface)}body.dark .hub-checklist{background:var(--bg-elevated)}body.dark .hub-figure img{border-color:var(--border-default)}.nl-sub-wrap{position:relative}.nl-sub-wrap,.nl-sub-wrap>.nl{align-items:center;display:inline-flex}.nl-sub-wrap>.nl{gap:5px}.nl-sub-chev{flex-shrink:0;height:11px;opacity:.7;transition:transform .18s ease,opacity .18s ease;width:11px}.nl-sub-wrap:focus-within .nl-sub-chev,.nl-sub-wrap:hover .nl-sub-chev{opacity:1;transform:rotate(180deg)}.dropdown-panel{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;box-shadow:var(--s3);left:50%;min-width:232px;opacity:0;padding:6px;pointer-events:none;position:absolute;top:calc(100% + 10px);transform:translateX(-50%) translateY(-6px);transition:opacity .16s ease,transform .18s ease,visibility .18s;visibility:hidden;z-index:201}.dropdown-panel:before{content:"";height:14px;left:0;position:absolute;right:0;top:-14px}.nl-sub-wrap:focus-within .dropdown-panel,.nl-sub-wrap:hover .dropdown-panel{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);visibility:visible}.dropdown-panel__col{display:block}.dropdown-panel__list{list-style:none;margin:0;padding:0}.dropdown-panel__list>li{margin:0}.dropdown-panel__item{align-items:center;border-radius:11px;color:var(--text);display:flex;gap:9px;padding:9px 22px 9px 12px;transition:background .15s ease,color .15s ease}.dropdown-panel__item:hover{background:var(--soft)}.dropdown-panel__item.active{background:var(--red-10)}.dropdown-panel__item.active .dropdown-panel__item-title{color:var(--accent-text)}.dropdown-panel__item-ico{color:var(--teal-text);display:inline-flex;flex:none}.dropdown-panel__item-title{color:inherit;line-height:1.3}.dropdown-panel__item-title,.nl-sub-item{font-size:14.5px;font-weight:600;white-space:nowrap}.nl-sub-item{border-radius:11px;color:var(--text);display:block;padding:9px 12px;transition:background .15s ease,color .15s ease}.nl-sub-item:hover{background:var(--soft)}.nl-sub-item.active{background:var(--red-10);color:var(--accent-text)}.nav-links:has(.nl-sub-wrap:focus-within),.nav-links:has(.nl-sub-wrap:hover){overflow:visible}.nav-mobile .nl-sub-mobile{font-size:14.5px;padding-left:30px}.nl-sub-wrap--mega{position:static}.nl-sub-wrap--mega>.nl:before{content:"";height:24px;left:0;position:absolute;right:0;top:100%}.nl-sub-wrap--mega .mega-panel{background:var(--bg);border:1.5px solid var(--border);border-radius:20px;box-shadow:var(--s3);left:20px;margin:0 auto;max-width:var(--mw);opacity:0;pointer-events:none;position:absolute;right:20px;top:calc(100% + 10px);transform:translateY(-6px);transition:opacity .16s ease .18s,transform .18s ease .18s,visibility .18s .18s;visibility:hidden;z-index:201}.nl-sub-wrap--mega .mega-panel:before{content:"";height:14px;left:0;position:absolute;right:0;top:-14px}.nav-wrap:not([data-mega-js=on]) .nl-sub-wrap--mega:focus-within .mega-panel,.nl-sub-wrap--mega.is-open .mega-panel,.nl-sub-wrap--mega:hover .mega-panel{opacity:1;pointer-events:auto;transform:translateY(0);transition-delay:0s;visibility:visible}.nl-sub-wrap--mega.is-open .nl-sub-chev{opacity:1;transform:rotate(180deg)}.mega-panel{max-height:calc(100vh - 118px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(max-height:660px){.mega-panel{max-height:calc(100vh - 92px)}}.mega-group{min-width:0}.mega-group__h{border-bottom:1px solid var(--border);color:var(--accent-text);font-size:12px;font-weight:var(--fw-strong);letter-spacing:.085em;line-height:1.3;margin:0 0 10px;padding-bottom:9px;text-transform:uppercase}.mega-group__h a{color:inherit;text-decoration:none}.mega-group__h a:hover{text-decoration:underline}.mega-group__h small{color:var(--muted);display:block;font-size:13px;font-weight:400;letter-spacing:0;margin-top:5px;text-transform:none}.mega-group__list{display:grid;gap:2px;list-style:none;margin:0;padding:0}.mega-item{border-radius:10px;color:inherit;display:flex;gap:11px;margin:0 -10px;padding:8px 10px;text-decoration:none}.mega-item:focus-visible,.mega-item:hover{background:var(--soft);outline:none}.mega-item:focus-visible{box-shadow:0 0 0 2px var(--accent-text)}.mega-item__ico{color:var(--accent-text);flex:none;height:18px;margin-top:2px;width:18px}.mega-item__ico svg{display:block;height:18px;width:18px}.mega-item__txt{min-width:0}.mega-item__txt b{display:block;font-size:15px;font-weight:var(--fw-strong);line-height:1.3}.mega-item__txt span{color:var(--muted);display:block;font-size:13px;line-height:1.35;margin-top:1px}.mega-item--muted .mega-item__ico{color:var(--muted)}.mega-item--dev .mega-item__ico{color:var(--teal-text)}.mega-foot{background:var(--soft);border-radius:0 0 18.5px 18.5px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px 26px;padding:13px 26px}.mega-foot__link{align-items:center;color:var(--text);display:inline-flex;font-size:14px;font-weight:var(--fw-strong);gap:6px;text-decoration:none}.mega-foot__link svg{color:var(--accent-text);flex:none;height:14px;transition:transform .2s;width:14px}.mega-foot__link:hover{color:var(--accent-text);text-decoration:underline}.mega-foot__link:hover svg{transform:translateX(3px)}.mega-dev{display:grid;grid-template-columns:minmax(0,1fr) 380px}.mega-dev--no-guide{grid-template-columns:minmax(0,1fr)}.mega-dev__main{display:flex;flex-direction:column;min-width:0}.mega-dev__cols{display:grid;gap:0 30px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);padding:24px 26px 18px}.mega-dev__cols:not(.mega-dev__strip){grid-template-rows:auto 1fr}.mega-dev__cols:not(.mega-dev__strip)>.mega-group{display:grid;grid-row:span 2;grid-template-rows:subgrid}.mega-dev__strip{border-top:1px solid var(--border);margin-top:auto;padding-bottom:18px;padding-top:14px}.mega-group__h--ref{color:var(--x-ref)}.mega-item--tile{gap:12px;padding:9px 10px}.mega-item--tile .mega-item__ico{align-items:center;background:var(--x-ref-bg);border-radius:9px;color:var(--x-ref);display:flex;height:34px;justify-content:center;margin-top:0;width:34px}.mega-item--tile .mega-item__txt b{font-size:16px}.mega-item--tile .mega-item__txt span{line-height:1.4;margin-top:2px}.mega-answers{min-width:0}.mega-answers--howto{--mega-kind:var(--x-howto)}.mega-answers--faq{--mega-kind:var(--x-faq)}.mega-answers__h{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:4px}.mega-answers__h a{color:var(--mega-kind,var(--accent-text));font-size:12px;font-weight:var(--fw-strong);text-decoration:none}.mega-answers__h a:first-child{letter-spacing:.085em;text-transform:uppercase}.mega-answers__list{list-style:none;margin:0;padding:0}.mega-answers__list a{color:var(--text);display:block;font-size:13px;padding:3px 0;text-decoration:none}.mega-answers__h a:hover,.mega-answers__list a:hover{text-decoration:underline}.mega-guide{background:var(--x-guide-bg);border-radius:16px;display:flex;flex-direction:column;gap:10px;margin:18px 18px 18px 0;min-width:0;padding:24px}.mega-guide__top{align-items:center;display:flex;gap:10px;justify-content:space-between}.mega-guide__kicker{color:var(--accent-text);font-size:12px;font-weight:var(--fw-strong);letter-spacing:.08em;text-transform:uppercase}.mega-guide__meta{align-items:center;display:inline-flex;gap:10px}.mega-guide__no{color:var(--teal-text);font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.mega-guide__ico{align-items:center;background:var(--bg);border-radius:20px;color:var(--teal-text);display:flex;height:84px;justify-content:center;margin:4px 0 2px;width:84px}.mega-guide__ico svg{height:50px;stroke-width:1.3;width:50px}.mega-guide__title{color:var(--text);font-size:26px;font-weight:var(--fw-strong);letter-spacing:-.01em;line-height:1.15;text-decoration:none}.mega-guide__title:hover{text-decoration:underline}.mega-guide__intro{-webkit-box-orient:vertical;color:var(--muted);display:-webkit-box;font-size:14px;-webkit-line-clamp:4;line-clamp:4;line-height:1.5;margin:0;overflow:hidden}.mega-guide__units{display:grid;gap:1px;list-style:none;margin:2px 0 0;padding:0}.mega-guide__units a{color:var(--text);display:flex;font-size:13px;gap:10px;padding:3px 0;text-decoration:none}.mega-guide__units a:hover{text-decoration:underline}.mega-guide__num,.mega-start__num{color:var(--teal-text);flex:none;font-family:var(--mono);font-size:11px;padding-top:2px}.mega-guide__actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:auto;padding-top:6px}.mega-guide__all{color:var(--teal-text);font-size:14px;font-weight:var(--fw-strong);text-decoration:none}.mega-guide__all:hover{text-decoration:underline}.mega-user{display:grid;grid-template-columns:300px minmax(0,1fr) 230px}.mega-start{background:var(--x-faq-bg);border-radius:16px;display:flex;flex-direction:column;gap:10px;margin:22px 0 22px 22px;min-width:0;padding:20px}.mega-start__kicker{color:var(--accent-text);font-size:12px;font-weight:var(--fw-strong);letter-spacing:.08em;text-transform:uppercase}.mega-start__title{color:var(--text);font-size:21px;font-weight:var(--fw-strong);line-height:1.2;text-decoration:none}.mega-start__title:hover{text-decoration:underline}.mega-start__sub{color:var(--muted);font-size:13px;line-height:1.5;margin:0}.mega-start__list{display:grid;gap:2px;list-style:none;margin:4px 0 0;padding:0}.mega-start__list a{align-items:baseline;border-radius:8px;color:var(--text);display:flex;font-size:14px;gap:10px;margin:0 -8px;padding:6px 8px;text-decoration:none}.mega-start__list a:focus-visible,.mega-start__list a:hover{background:var(--bg)}.mega-start__num{color:var(--accent-text)}.mega-start .btn-primary{align-self:flex-start;margin-top:auto}.mega-index{min-width:0;padding:26px 24px 22px}.mega-index__h{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.mega-index__h small{font-size:12px;margin-top:0}.mega-index__grid{display:grid;gap:18px 20px;grid-template-columns:repeat(3,minmax(0,1fr))}.mega-area{min-width:0}.mega-area__h{align-items:center;color:var(--text);display:flex;font-size:14px;font-weight:var(--fw-strong);gap:8px;text-decoration:none}.mega-area__h:hover{text-decoration:underline}.mega-area__ico{color:var(--accent-text);flex:none;height:17px;width:17px}.mega-area__ico svg{display:block;height:17px;width:17px}.mega-area__list{display:grid;gap:3px;list-style:none;margin:6px 0 0 25px;padding:0}.mega-area__list a{color:var(--muted);font-size:13px;text-decoration:none}.mega-area__list a:hover{color:var(--accent-text);text-decoration:underline}.mega-help{min-width:0;padding:26px 22px 22px 0}.mega-help__h{color:var(--muted)}@media(max-width:1100px){.mega-dev{grid-template-columns:minmax(0,1fr)}.mega-guide{margin:0 18px 18px}.mega-guide__ico,.mega-guide__units{display:none}.mega-user{grid-template-columns:300px minmax(0,1fr)}.mega-index__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mega-help{grid-column:1/-1;padding:0 22px 22px}.mega-help .mega-group__list{grid-template-columns:repeat(2,minmax(0,1fr))}}.search-layout .main-content{margin:0 auto;max-width:860px;width:100%}.search-layout .sec-title{text-align:center}.search-layout .search-form{margin-left:auto;margin-right:auto}.search-layout .sec-desc{text-align:center}.search-layout .child-card,.search-layout .child-grid{text-align:left}.search-layout .child-title{transition:color .12s}.search-layout .search-snippet{color:var(--sub);line-height:1.55}.search-layout .search-path{color:var(--muted);opacity:.7;transition:color .12s,opacity .12s}.search-layout .child-card:hover .child-title{color:var(--accent-text)}.search-layout .child-card:hover .search-path{color:var(--accent-text);opacity:1}.search-scope-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:0;border-left:1px solid var(--border);border-radius:0;color:var(--sub);cursor:pointer;flex:0 0 auto;font:inherit;margin-right:4px;max-width:190px;padding:9px 12px}.search-scope-select:focus{box-shadow:none;color:var(--text);outline:none}.search-scope-select option{background:var(--bg);color:var(--text)}@media(max-width:640px){.search-scope-select{max-width:120px;padding:9px 8px}}.sm-empty{color:var(--muted);font-size:14px;padding:34px 20px;text-align:center}.rb{border-radius:var(--r);flex-shrink:0;font-size:11px;font-weight:700;padding:2px 9px;white-space:nowrap}.rb-user{background:var(--red-10);color:var(--accent-text)}.rb-dev{background:var(--teal-10);color:var(--teal-text)}.ref-page [hidden]{display:none!important}html[data-ref-view=Api] .ref-multi [data-view]:not([data-view=Api]),html[data-ref-view=Backend] .ref-multi [data-view]:not([data-view=Backend]),html[data-ref-view=Frontend] .ref-multi [data-view]:not([data-view=Frontend]){display:none}.ref-wrap{min-width:0}.ref-head{margin-bottom:18px}.ref-eyebrow{align-items:center;color:var(--teal-text);display:flex;flex-wrap:wrap;font-size:11.5px;font-weight:700;gap:0 8px;letter-spacing:1.4px;margin:0;text-transform:uppercase}.ref-eyebrow a{color:inherit}.ref-eyebrow a:hover{text-decoration:underline}.ref-sep{color:var(--faint)}.ref-h1{color:var(--text);font-size:34px;font-weight:700;letter-spacing:-.8px;line-height:1.15;margin:8px 0 10px;overflow-wrap:anywhere;text-wrap:balance}.ref-lede{color:var(--sub);font-size:16px;line-height:1.6;margin:0 0 12px;max-width:70ch}.ref-lede strong{color:var(--text);font-weight:700}.ref-card-text code,.ref-desc code,.ref-lede code,.ref-vars-ds code{background:var(--soft);border:1px solid var(--border);border-radius:4px;font-family:var(--mono);font-size:.86em;padding:0 4px}.ref-meta{align-items:flex-start;color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:10px 18px;margin-top:6px}.ref-fqcn{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:8px;display:inline-flex;gap:6px;max-width:100%;padding:4px 4px 4px 10px}.ref-fqcn code{color:var(--sub);font-family:var(--mono);font-size:12.5px;overflow-wrap:anywhere}.ref-copy{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--sub);cursor:pointer;flex-shrink:0;font:inherit;font-size:11px;padding:2px 8px}.ref-copy:hover{border-color:var(--border-strong);color:var(--text)}.ref-siblings{align-items:baseline;display:flex;flex:1 1 280px;flex-wrap:wrap;gap:2px 10px;line-height:1.7;min-width:0;padding-top:5px}.ref-siblings a{border-bottom:1px dotted var(--border-strong);color:var(--sub)}.ref-siblings a:hover{color:var(--accent-text)}.ref-sib-more{background:none;border:0;color:var(--teal-text);cursor:pointer;font:inherit;font-weight:600;padding:0}.ref-sib-more:hover{color:var(--accent-text);text-decoration:underline}.ref-toolbar{align-items:flex-start;background:var(--bg);border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px 20px;margin-bottom:6px;padding:12px 0;position:sticky;top:84px;z-index:5}.ref-label{color:var(--muted);display:block;font-size:10.5px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}.ref-sw-wrap{display:flex;flex-direction:column;gap:6px;min-width:0}.ref-sw{background:var(--soft);border:1px solid var(--border);border-radius:var(--r);flex-wrap:wrap;gap:4px;padding:4px}.ref-seg,.ref-sw{display:inline-flex}.ref-seg{align-items:center;background:transparent;border:0;border-radius:var(--r);color:var(--sub);cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;gap:8px;padding:6px 14px 6px 12px;transition:color .12s,background .12s;white-space:nowrap}.ref-seg:hover{color:var(--text)}.ref-dot{background:var(--faint);border-radius:50%;height:8px;width:8px}.ref-seg .ref-n{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);color:var(--muted);font-size:11.5px;font-weight:600;line-height:18px;padding:0 7px}.ref-seg.is-off{cursor:not-allowed;opacity:.55}.ref-seg.is-off:hover{color:var(--sub)}.ref-seg[aria-current=page],.ref-single .ref-seg[aria-selected=true],html:not([data-ref-view]) .ref-multi .ref-seg[aria-selected=true],html[data-ref-view=Api] .ref-multi .ref-seg[data-ab=Api],html[data-ref-view=Backend] .ref-multi .ref-seg[data-ab=Backend],html[data-ref-view=Frontend] .ref-multi .ref-seg[data-ab=Frontend]{background:var(--ref-seg-on);box-shadow:var(--s1);color:var(--text)}.ref-seg[data-ab=Frontend]:is([aria-current=page],[aria-selected=true]) .ref-dot,html[data-ref-view=Frontend] .ref-multi .ref-seg[data-ab=Frontend] .ref-dot{background:var(--ref-fe)}.ref-seg[data-ab=Api]:is([aria-current=page],[aria-selected=true]) .ref-dot,html[data-ref-view=Api] .ref-multi .ref-seg[data-ab=Api] .ref-dot{background:var(--ref-api)}.ref-seg[data-ab=Backend]:is([aria-current=page],[aria-selected=true]) .ref-dot,html[data-ref-view=Backend] .ref-multi .ref-seg[data-ab=Backend] .ref-dot{background:var(--ref-be)}html[data-ref-view=Frontend] .ref-multi .ref-seg[data-ab=Frontend] .ref-n{background:var(--ref-fe-bg);border-color:transparent;color:var(--ref-fe)}html[data-ref-view=Api] .ref-multi .ref-seg[data-ab=Api] .ref-n{background:var(--ref-api-bg);border-color:transparent;color:var(--ref-api)}html[data-ref-view=Backend] .ref-multi .ref-seg[data-ab=Backend] .ref-n{background:var(--ref-be-bg);border-color:transparent;color:var(--ref-be)}.ref-sw-cap{color:var(--muted);font-size:12.5px;padding-left:6px}.ref-mfilter{display:flex;flex-direction:column;gap:6px;margin-left:auto;min-width:min(260px,100%)}.ref-filter input,.ref-mfilter input{background:var(--bg);border:1px solid var(--border);border-radius:var(--rs);color:var(--text);font:inherit;font-size:13.5px;padding:8px 12px;width:100%}.ref-filter input::-moz-placeholder,.ref-mfilter input::-moz-placeholder{color:var(--muted)}.ref-filter input::placeholder,.ref-mfilter input::placeholder{color:var(--muted)}.ref-mfilter input:focus{outline:2px solid var(--accent-text);outline-offset:1px}.ref-filter input:focus{border-color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent-text);outline:none}.ref-mcount{color:var(--muted);font-size:12px;min-height:18px;padding-left:2px}.ref-panel-title{color:var(--text);font-size:20px;letter-spacing:-.2px;margin:28px 0 0}.ref-single .ref-panel-title,html[data-ref-view] .ref-multi .ref-panel-title{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);border:0;white-space:nowrap}.ref-intro{align-items:flex-start;background:var(--soft);border:1px solid var(--border);border-radius:12px;color:var(--sub);display:flex;font-size:13.5px;gap:10px;line-height:1.55;margin:18px 0 4px;padding:12px 14px}.ref-intro code{font-family:var(--mono);font-size:.9em}.ref-grp{margin-top:26px;scroll-margin-top:170px}.ref-grp-h{align-items:baseline;color:var(--text);display:flex;font-size:19px;gap:10px;letter-spacing:-.2px;margin:0 0 4px}.ref-n{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;font-weight:500}.ref-grp-cap{color:var(--muted);font-size:13px;margin:0 0 10px}.ref-members{border-top:1px solid var(--border);margin:0}.ref-mem{border-bottom:1px solid var(--border);display:grid;gap:2px 16px;grid-template-columns:minmax(0,1fr) auto;padding:11px 10px 12px;position:relative;scroll-margin-top:170px}.ref-mem:hover{background:var(--soft)}.ref-mem:target{background:var(--red-10)}.ref-sig{color:var(--sub);font-family:var(--mono);font-size:13.5px;margin:0;min-width:0;overflow-wrap:anywhere}.ref-sig code{font-family:inherit}.ref-fn{color:var(--text);font-weight:600}.ref-pt{color:var(--teal-text)}.ref-pn{color:var(--muted)}.ref-ret{font-family:var(--mono);font-size:13px;padding-top:1px;text-align:right;white-space:nowrap}.ref-desc,.ref-ret{color:var(--sub);margin:0}.ref-desc{font-size:14px;grid-column:1/-1;line-height:1.55;max-width:78ch}.ref-anchor{color:var(--faint);font-family:var(--mono);font-size:13px;left:-18px;opacity:0;position:absolute;top:11px}.ref-anchor:focus,.ref-mem:hover .ref-anchor{opacity:1}.ref-anchor:hover{color:var(--accent-text)}.ref-nores{border-bottom:1px solid var(--border);color:var(--muted);font-size:14px;margin:0;padding:18px 10px}.ref-t-link{border-bottom:1px dotted;color:var(--teal-text)}.ref-t-link:hover{color:var(--accent-text)}.ref-t-plain{color:var(--sub)}.ref-t-q,.ref-t-scalar{color:var(--muted)}.ref-t-op{color:var(--faint)}.ref-tag{align-items:center;border-radius:var(--r);display:inline-flex;font-family:var(--font);font-size:11px;font-weight:600;margin-left:8px;padding:1px 8px;vertical-align:1px;white-space:nowrap}.ref-intro .ref-tag{flex-shrink:0;margin:1px 0 0}.ref-tag-only{background:var(--red-10);color:var(--accent-text)}.ref-tag-not{background:var(--soft);border:1px solid var(--border);color:var(--muted)}.ref-tag-api{background:var(--ref-api-bg);color:var(--ref-api)}.ref-tag-admin{background:var(--ref-be-bg);color:var(--ref-be)}.ref-cards{display:flex;flex-direction:column;gap:14px;margin-top:20px}.ref-card{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:16px 18px;scroll-margin-top:170px}.ref-card-h{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ref-verb{border:1px solid;border-radius:6px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.3px;padding:2px 8px}.ref-verb-get{color:var(--ref-fe)}.ref-verb-post{color:var(--ref-api)}.ref-verb-patch,.ref-verb-put{color:var(--ref-be)}.ref-verb-delete{color:var(--accent-text)}.ref-path{color:var(--text);font-family:var(--mono);font-size:14.5px;font-weight:600;overflow-wrap:anywhere}.ref-path i{color:var(--teal-text);font-style:normal}.ref-rname{color:var(--muted);font-family:var(--mono);font-size:12px;margin-left:auto}.ref-card-text{color:var(--sub);font-size:14px;margin:8px 0 0}.ref-kv{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12.5px;gap:8px;margin:10px 0 0}.ref-kv code{background:var(--soft);border:1px solid var(--border);border-radius:5px;color:var(--sub);font-family:var(--mono);font-size:12px;padding:1px 6px}.ref-vars-wrap{margin-top:12px;overflow-x:auto}.ref-vars{border-collapse:collapse;font-size:13.5px;width:100%}.ref-vars caption{color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:1.2px;padding-bottom:6px;text-align:left;text-transform:uppercase}.ref-vars td,.ref-vars th{border-top:1px solid var(--border);padding:7px 10px 7px 0;text-align:left;vertical-align:top}.ref-vars thead th{color:var(--muted);font-size:11.5px;font-weight:600}.ref-vars tbody th code{color:var(--text);font-size:13px;font-weight:600}.ref-vars tbody th code,.ref-vars-ty code{font-family:var(--mono);white-space:nowrap}.ref-vars-ty code{font-size:12.5px}.ref-vars-ds{color:var(--sub)}.ref-common{color:var(--muted);font-size:12.5px;margin:8px 0 0}.ref-common code{font-family:var(--mono);font-size:12px}.ref-common a{border-bottom:1px dotted var(--border-strong);color:var(--sub)}.ref-common a:hover{color:var(--accent-text)}.ref-override{border-top:1px dashed var(--border);color:var(--muted);font-size:12.5px;margin:12px 0 0;padding-top:10px}.ref-override code{color:var(--text);font-family:var(--mono);font-size:12px}.ref-empty{border:1px dashed var(--border-strong);border-radius:14px;color:var(--sub);font-size:14px;margin-top:20px;padding:22px}.ref-empty p{margin:0}.ref-empty a{border-bottom:1px solid;color:var(--accent-text)}.ref-note{color:var(--muted);font-size:13px;margin:16px 0 0;max-width:78ch}.ref-landing .page-layout{align-items:start;grid-template-columns:minmax(0,1fr);max-width:1080px;min-height:0}.ref-landing .ref-head{margin-bottom:26px}.ref-landing-body{margin-bottom:30px}.ref-landing-body h2{scroll-margin-top:110px}.ref-sections{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.ref-sec-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--rc);display:flex;flex-direction:column;gap:12px;min-width:0;padding:22px 22px 20px;scroll-margin-top:110px}.ref-sec-title{color:var(--text);font-size:20px;font-weight:700;letter-spacing:-.3px;margin:0}.ref-sec-title a{color:inherit}.ref-sec-title a:hover{color:var(--accent-text)}.ref-sec-desc{color:var(--sub);font-size:14.5px;line-height:1.6;margin:0}.ref-sec-start{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}.ref-sec-start-label{color:var(--muted);font-size:12.5px;margin-right:2px}.ref-chip{background:var(--soft);border:1px solid var(--border);border-radius:6px;color:var(--sub);font-family:var(--mono);font-size:12.5px;padding:1px 8px}.ref-chip:hover{border-color:var(--border-strong);color:var(--accent-text)}.ref-toc .toc-label.ref-toc-gap{margin-top:22px}.ref-toc-rel{-moz-column-gap:8px;column-gap:8px;display:flex;flex-wrap:wrap;justify-content:space-between}.ref-toc-rel .ref-n{font-size:11px;margin-left:auto}.ref-toc-path,.ref-toc-route{font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}.ref-toc-route .ref-n{font-family:var(--font);font-size:10.5px;margin-left:6px}.ref-sidebar{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}.ref-filter{flex:none;margin:0 0 14px}.ref-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:40px}.ref-scroll::-webkit-scrollbar{width:3px}.ref-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.ref-filter-box{display:block;position:relative}.ref-filter input{font-size:13px;padding-right:34px}.ref-filter kbd{background:var(--soft);border:1px solid var(--border);border-radius:5px;font-family:var(--mono);font-size:11px;padding:0 5px;position:absolute;right:9px;top:50%;transform:translateY(-50%)}.ref-filter kbd,.ref-home{color:var(--muted)}.ref-home:hover{color:var(--accent-text)}.ref-tree .sb-item{align-items:baseline;display:flex;gap:8px;justify-content:space-between}.ref-tree .ref-n{font-size:11px}.ref-top .sb-item{padding-left:10px}.ref-tg{color:var(--muted)}.ref-tg svg{display:block}.ref-tree ul.ref-l1{margin:0 0 6px}.ref-tree ul.ref-l2{margin-left:22px}.ref-mod{background:none;border-bottom:0;border-right:0;border-top:0;cursor:pointer;font:inherit;font-size:13px;font-weight:500;text-align:left;width:100%}.ref-mod.is-path{color:var(--text);font-weight:600}.ref-tree .ref-l1>li>.sb-row,.ref-tree .ref-top{border-radius:8px;transition:background .12s}.ref-tree .ref-l1>li>.sb-row:hover,.ref-tree .ref-top:hover{background:var(--soft)}.ref-tree .ref-l1>li>.sb-row>.sb-item,.ref-tree .ref-top>.sb-item{border-left-color:transparent;border-radius:8px}.ref-tree .ref-l1>li>.sb-row>.sb-item:hover,.ref-tree .ref-top>.sb-item:hover{background:transparent;border-left-color:transparent;color:var(--text)}.ref-tree .ref-l1>li>.sb-row>.sb-toggle:hover,.ref-tree .ref-top>.sb-toggle:hover{background:transparent}.ref-tree .ref-l1>li>.sb-row:hover>.sb-toggle,.ref-tree .ref-top:hover>.sb-toggle{color:var(--text)}.ref-tree .ref-top>.sb-item.active{background:var(--red-10);border-left-color:var(--accent-text);border-radius:0 8px 8px 0;color:var(--accent-text)}.ref-leaf{margin-left:22px}.ref-filter-empty{color:var(--muted);font-size:12.5px;margin:4px 10px}.ref-tree mark{background:var(--red-10);border-radius:3px;color:var(--accent-text)}.ref-bc-plain{color:var(--muted)}@media(max-width:900px){.ref-toolbar{position:static}.ref-mfilter{margin-left:0;width:100%}.ref-anchor,.ref-sw-cap{display:none}}@media(max-width:760px){.ref-sections{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.ref-h1{font-size:28px}.ref-seg{padding:6px 10px}.ref-mem{grid-template-columns:minmax(0,1fr)}.ref-ret{text-align:left;white-space:normal}.ref-rname{margin-left:0;width:100%}}.code-head{align-items:center;display:flex;flex-wrap:wrap;gap:6px 12px;min-height:40px;padding-bottom:5px;padding-top:5px}.code-head-title{color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}.code-head-file{color:var(--text);font-family:var(--mono);font-size:12.5px;font-weight:500}.code-head-note{color:var(--muted);font-size:12.5px;margin-left:auto}.article-body pre{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.code-head+.tpl-panel+.tpl-panel>pre,.code-head+.tpl-panel>pre,.code-head+pre{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.tpl-sw{background:var(--soft);border:1px solid var(--border);border-radius:var(--r);flex-wrap:wrap;gap:4px;margin-left:auto;padding:3px}.tpl-seg,.tpl-sw{display:inline-flex}.tpl-seg{align-items:center;background:transparent;border:0;border-radius:var(--r);color:var(--sub);cursor:pointer;font:inherit;font-size:13.5px;font-size:12.5px;font-weight:600;gap:8px;padding:4px 12px 4px 10px;transition:color .12s,background .12s;white-space:nowrap}.tpl-seg:hover{color:var(--text)}.tpl-dot{background:var(--faint);border-radius:50%;height:8px;width:8px}html[data-tpl-engine=smarty] .tpl-seg[data-engine=smarty],html[data-tpl-engine=twig] .tpl-seg[data-engine=twig]{background:var(--ref-seg-on);box-shadow:var(--s1);color:var(--text)}html[data-tpl-engine=smarty] .tpl-seg[data-engine=smarty] .tpl-dot{background:var(--accent-text)}html[data-tpl-engine=twig] .tpl-seg[data-engine=twig] .tpl-dot{background:var(--teal-text)}.tpl-code>.tpl-panel{max-width:100%}.tpl-panel{display:none}.tpl-single .tpl-panel,html:not([data-tpl-engine]) .tpl-panel,html[data-tpl-engine=smarty] .tpl-panel[data-engine=smarty],html[data-tpl-engine=twig] .tpl-panel[data-engine=twig]{display:block}html:not([data-tpl-engine]) .tpl-sw{display:none}html:not([data-tpl-engine]) .tpl-code:not(.tpl-single) .tpl-panel:before{color:var(--muted);content:attr(data-label);display:block;font-size:12px;font-weight:700;margin:12px 0 -12px}.article-body pre .token.punctuation{color:var(--syn-punct)}.article-body pre .token.property{color:var(--syn-property)}.article-body pre .token.string{color:var(--syn-string)}.article-body pre .token.number{color:var(--syn-number)}.article-body pre .token.boolean,.article-body pre .token.operator{color:var(--syn-keyword)}.article-body pre .token.comment{color:var(--syn-comment);font-style:italic}.article-body pre .token.tag{color:var(--syn-tag)}.article-body pre .token.attr-name{color:var(--syn-function)}.article-body pre .token.attr-value{color:var(--syn-string)}.article-body pre .token.atrule,.article-body pre .token.important,.article-body pre .token.keyword{color:var(--syn-keyword)}.article-body pre .token.class-name,.article-body pre .token.function{color:var(--syn-function)}.article-body pre .token.variable{color:var(--syn-variable)}.article-body pre .token.regex,.article-body pre .token.selector{color:var(--syn-tag)}.article-body pre .token.smarty .token.delimiter{color:var(--syn-smarty)}.article-body pre .token.twig .token.delimiter,.article-body pre .token.twig .token.tag-name{color:var(--syn-twig)}.lvl{align-items:center;display:inline-flex;gap:8px;white-space:nowrap}.lvl-bars{display:inline-grid;gap:3px;grid-template-columns:repeat(4,10px)}.lvl-bars i{background:var(--border-strong);border-radius:2px;display:block;height:8px}.lvl-bars i.on{background:var(--teal)}.lvl-text{color:var(--sub);font-family:var(--mono);font-size:12px;font-weight:500}.bk-nav-label{color:var(--muted);display:block;font-size:11px;font-weight:700;letter-spacing:.9px;margin:0 0 10px 10px;text-transform:uppercase}.bk-overview{align-items:center;border-radius:8px;color:var(--text);display:flex;font-size:14px;font-weight:600;gap:8px;margin-bottom:6px;padding:7px 10px;text-decoration:none}.bk-overview:hover{background:var(--soft)}.bk-pages,.bk-tree{list-style:none;margin:0;padding:0}.bk-unit{margin:2px 0 6px}.bk-unit-link{align-items:baseline;border-radius:8px;color:var(--text);display:grid;font-size:13.5px;font-weight:700;gap:6px;grid-template-columns:22px minmax(0,1fr);line-height:1.35;padding:6px 10px;text-decoration:none}.bk-unit-link:hover{background:var(--soft)}.bk-num{color:var(--muted);font-family:var(--mono);font-size:11.5px;font-variant-numeric:tabular-nums;font-weight:500}.bk-pages{border-left:1px solid var(--border);margin:2px 0 4px 26px}.bk-page-link{border-left:2px solid transparent;color:var(--sub);display:block;font-size:13.5px;line-height:1.4;margin-left:-1px;padding:5px 10px 5px 14px;text-decoration:none}.bk-page-link:hover{color:var(--text)}.bk-overview.active,.bk-unit-link.active{background:var(--teal-10);color:var(--teal-text)}.bk-overview.active .bk-num,.bk-page-link.active,.bk-unit-link.active .bk-num{color:var(--teal-text)}.bk-page-link.active{border-left-color:var(--teal);font-weight:700}.ts-groups{list-style:none;margin:0 0 6px;padding:0}.ts-groups a{border-radius:8px;color:var(--sub);display:flex;font-size:13.5px;gap:10px;justify-content:space-between;padding:7px 10px;text-decoration:none}.ts-groups a:hover{background:var(--soft);color:var(--text)}.ts-groups a.active{background:var(--teal-10);color:var(--teal-text);font-weight:700}.ts-groups span{color:var(--muted);font-family:var(--mono);font-size:12px}.guide-toc .toc-item{color:var(--sub);padding:5px 0 5px 12px}.guide-toc .toc-item:hover{color:var(--text)}.guide-toc .toc-item.active{border-left-color:var(--teal);color:var(--teal-text);font-weight:600}.doc-eyebrow{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;margin-bottom:12px}.doc-eyebrow a{color:var(--teal-text);font-weight:600;text-decoration:none}.doc-eyebrow a:hover{text-decoration:underline}.doc-tag{background:var(--teal-10);border-radius:var(--r);color:var(--teal-text);font-size:10.5px;font-weight:700;padding:2px 8px}.doc-tag.howto{background:var(--howto-bg);color:var(--howto)}.doc-lede{color:var(--sub);font-size:18px;line-height:1.6;margin:4px 0 26px;max-width:68ch}.ht-block{margin:0 0 30px}.article-body h2.ht-h{align-items:center;color:var(--muted);display:flex;font-size:13px;font-weight:700;gap:10px;letter-spacing:.9px;margin:0 0 12px;padding:0;text-transform:uppercase}.article-body h2.ht-h:after{background:var(--border);content:"";flex:1;height:1px}.ht-context .article-body{font-size:16.5px;line-height:1.7}.ht-context .article-body>h2.ht-h+p>strong:first-child{display:none}.ht-steps .article-body ol{counter-reset:ht-step;display:grid;gap:10px;list-style:none;margin:0;padding:0}.ht-steps .article-body ol>li{counter-increment:ht-step;line-height:1.6;margin:0;min-height:28px;padding-left:42px;position:relative}.ht-steps .article-body ol>li:before{background:var(--howto-bg);border-radius:50%;color:var(--howto);content:counter(ht-step);display:grid;font:600 13px var(--mono);height:28px;left:0;place-items:center;position:absolute;top:-1px;width:28px}.ht-why{background:var(--soft);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.ht-why .article-body h2.ht-h{margin-bottom:8px}.contents{border-top:1px solid var(--border);margin-top:44px;padding-top:30px}.contents-head{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:18px}.contents-head h2{color:var(--text);font-size:22px;font-weight:700;letter-spacing:-.4px;margin:0}.contents-head span{color:var(--muted);font-size:13px}.unit-pages{display:grid;gap:12px;margin-top:8px}.unit-page{align-items:start;background:var(--bg);border:1.5px solid var(--border);border-radius:14px;display:grid;gap:4px 14px;grid-template-columns:36px minmax(0,1fr) auto;padding:16px 18px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.unit-page:hover{border-color:rgba(13,124,107,.35);box-shadow:var(--s1)}.unit-page .bk-num{font-size:14px;padding-top:2px}.unit-page b{color:var(--text);font-size:15.5px}.unit-page small{color:var(--sub);font-size:13.5px;grid-column:2;line-height:1.55}.unit-page .arr{align-self:center;color:var(--teal-text);grid-column:3;grid-row:1/span 2}.ctx-meta{color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:6px 18px;margin-top:16px}.ctx-meta b{color:var(--text);font-weight:700}.ts-search{display:flex;gap:8px;margin-top:20px;max-width:560px}.ts-search input{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r);color:var(--text);flex:1;font:15px var(--font);min-width:0;padding:12px 16px}.ts-search input:focus{outline:2px solid var(--teal);outline-offset:1px}.ud-hero-meta .ctx-meta,.ud-hero-meta .ts-search{flex:0 0 100%}.ud-hero-meta .ctx-meta{margin-top:0}.ud-hero-meta .ts-search{margin-top:4px}.ud-hero-left:has(.ts-search){flex:1 1 0;min-width:0}.ts-first{margin:28px auto 0;max-width:calc(var(--mw) + 56px);padding:0 28px}.ts-first>div{align-items:start;background:var(--soft);border:1px solid var(--border);border-radius:14px;color:var(--sub);display:grid;font-size:14.5px;gap:14px;grid-template-columns:auto minmax(0,1fr);line-height:1.6;padding:16px 20px}.ts-first .k{color:var(--teal-text);font-size:11px;letter-spacing:.9px;padding-top:3px;text-transform:uppercase}.ts-first p{margin:0}.ts-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 auto;max-width:calc(var(--mw) + 56px);padding:28px 28px 72px}.ud-hero+.ts-grid{padding-top:32px}.ts-grid:has(+.ts-after){padding-bottom:40px}.ts-after{margin:0 auto;max-width:calc(var(--mw) + 56px);padding:0 28px 72px}.ts-after .child-grid{margin-top:20px}.ts-card{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;display:flex;flex-direction:column;padding:20px 20px 16px}.ts-card h2{font-size:18px;font-weight:700;letter-spacing:-.3px;margin:0 0 6px}.ts-card h2 a{color:var(--text);text-decoration:none}.ts-card h2 a:hover{color:var(--teal-text)}.ts-card>p{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 12px}.ts-card ul{align-content:start;display:grid;flex:1;gap:2px;list-style:none;margin:0 0 12px;padding:0}.ts-card li a{border-top:1px solid var(--border);color:var(--sub);display:block;font-size:14px;line-height:1.4;padding:6px 0;text-decoration:none}.ts-card li a:hover{color:var(--accent-text)}.ts-card .ts-all{color:var(--teal-text);font-size:13px;font-weight:700;text-decoration:none}.ht-rows{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.ht-rows.single{grid-template-columns:minmax(0,1fr)}.ht-row{background:var(--bg);border:1.5px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none}.ht-row:hover{border-color:rgba(217,119,6,.45);box-shadow:var(--s1)}.ht-row b{color:var(--text);font-size:14.5px;line-height:1.35}.ht-row small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--sub);font-size:13px;line-height:1.5;overflow:hidden}.article-body+.ts-q,.doc-lede+.ts-q{margin-top:22px}.ts-q{background:var(--bg);border:1.5px solid var(--border);border-radius:12px;margin-bottom:10px}.ts-q[open]{border-color:rgba(13,124,107,.35);box-shadow:var(--s1)}.ts-q summary{align-items:center;color:var(--text);cursor:pointer;display:grid;font-size:15.5px;font-weight:700;gap:12px;grid-template-columns:minmax(0,1fr) 22px;list-style:none;padding:14px 18px}.ts-q summary::-webkit-details-marker{display:none}.ts-q summary:after{color:var(--muted);content:"+";font:400 22px/1 var(--mono);text-align:center}.ts-q[open] summary:after{content:"−"}.ts-q-body{border-top:1px solid var(--border);padding:14px 18px}.ts-q-link{color:var(--teal-text);display:inline-block;font-size:13px;font-weight:700;margin-top:4px;text-decoration:none}.bk-pages.flat{margin-left:0}.bk-nav .bk-overview.foot{margin-top:14px}.ct-pages{display:grid;gap:2px;list-style:none;margin:6px 0 0;padding:0}.ct-pages a{border-radius:10px;display:grid;gap:2px;padding:8px 12px;text-decoration:none}.ct-pages a:hover{background:var(--soft)}.ct-pages b{color:var(--text);font-size:14.5px;font-weight:600}@media(max-width:1024px){.ts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.ht-rows,.ts-grid{grid-template-columns:minmax(0,1fr)}.ts-after,.ts-first,.ts-grid{padding-left:16px;padding-right:16px}}.dd-wrap{margin:0 auto;max-width:calc(var(--mw) + 56px);padding:0 28px}.dd-jump{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 8px}.dd-jump a{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);color:var(--sub);font-size:13px;font-weight:600;padding:6px 14px;text-decoration:none}.dd-jump a:hover{border-color:var(--border-strong);color:var(--text)}.dd-sec{padding:34px 0 8px;scroll-margin-top:90px}.dd-sec:last-child{padding-bottom:64px}.dd-sec-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:space-between;margin-bottom:16px}.dd-sec-head h2{color:var(--text);font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0}.dd-sec-head p{color:var(--muted);font-size:14px;margin:0;max-width:56ch}.dd-start{background:var(--bg);border:1.5px solid rgba(13,124,107,.3);border-radius:18px;display:grid;gap:28px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);padding:26px 28px}.dd-track-top.dd-start-top{gap:14px;justify-content:flex-start}.dd-start-title{font-size:26px;font-weight:700;letter-spacing:-.7px;line-height:1.15;margin:8px 0}.dd-start-title a{color:var(--text);text-decoration:none}.dd-start p{color:var(--sub);line-height:1.6;margin:0 0 16px}.dd-start ol{align-content:start;border-left:1px solid var(--border);display:grid;gap:4px;list-style:none;margin:0;padding:0 0 0 22px}.dd-start ol a{color:var(--sub);display:grid;font-size:14px;gap:6px;grid-template-columns:24px minmax(0,1fr);padding:6px 0;text-decoration:none}.dd-start ol a:hover{color:var(--teal-text)}.dd-tracks{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.dd-track{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;display:flex;flex-direction:column;gap:8px;padding:18px 20px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}.dd-track:hover{border-color:rgba(13,124,107,.35);box-shadow:var(--s2);transform:translateY(-2px)}.dd-track-top{align-items:center;display:flex;gap:10px;justify-content:space-between}.dd-track-no{color:var(--muted);font-family:var(--mono);font-size:12px;letter-spacing:.3px;text-transform:uppercase}.dd-track b{color:var(--text);font-size:16.5px;letter-spacing:-.2px;line-height:1.3}.dd-track small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--sub);font-size:13.5px;line-height:1.55;overflow:hidden}.dd-track .go{color:var(--teal-text);font-size:13px;font-weight:700;margin-top:auto}.dd-two{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.dd-panel{background:var(--bg);border:1.5px solid var(--border);border-radius:18px;display:flex;flex-direction:column;gap:10px;padding:24px 26px}.dd-panel h2{align-items:baseline;display:flex;font-size:21px;font-weight:700;gap:10px;letter-spacing:-.4px;margin:0}.dd-panel h2 a{color:var(--text);text-decoration:none}.dd-panel h2 small{color:var(--muted);font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:0}.dd-panel p{color:var(--sub);font-size:14.5px;line-height:1.6;margin:0}.dd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.dd-chips a{background:var(--soft);border:1px solid var(--border);border-radius:var(--r);color:var(--sub);font-size:12.5px;padding:4px 11px;text-decoration:none}.dd-chips a:hover{color:var(--text)}.dd-ref{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.dd-ref a{background:var(--soft);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s}.dd-ref a:focus-visible,.dd-ref a:hover{background:var(--teal-10);border-color:rgba(13,124,107,.45);box-shadow:var(--s1);transform:translateY(-1px)}.dd-ref b{color:var(--text);transition:color .15s}.dd-ref a:focus-visible b,.dd-ref a:hover b{color:var(--teal-text)}.dd-ref small{color:var(--muted);font-size:13px;line-height:1.5}@media(prefers-reduced-motion:reduce){.dd-ref a,.dd-ref b{transition:none}.dd-ref a:focus-visible,.dd-ref a:hover{transform:none}}@media(max-width:1024px){.dd-ref,.dd-tracks{grid-template-columns:repeat(2,minmax(0,1fr))}.dd-start{grid-template-columns:minmax(0,1fr)}.dd-start ol{border-left:0;border-top:1px solid var(--border);padding:12px 0 0}}@media(max-width:680px){.dd-ref,.dd-tracks,.dd-two{grid-template-columns:minmax(0,1fr)}.dd-wrap{padding-left:16px;padding-right:16px}.dd-start{padding:20px}}.api-m{align-items:center;background:var(--api-get-bg);border-radius:6px;color:var(--api-get);display:inline-flex;flex:none;font:700 11px/1.2 var(--mono);justify-content:center;letter-spacing:.6px;min-width:52px;padding:3px 7px;text-transform:uppercase}.api-m--post{background:var(--api-post-bg);color:var(--api-post)}.api-m--put{background:var(--api-put-bg);color:var(--api-put)}.api-m--patch{background:var(--api-patch-bg);color:var(--api-patch)}.api-m--delete{background:var(--api-delete-bg);color:var(--api-delete)}.api-m--sm{border-radius:4px;font-size:9.5px;min-width:38px;padding:1px 5px}.xref{--xc:var(--x-guide);--xb:var(--x-guide-bg);align-items:stretch;border-radius:7px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--xc) 30%,transparent);display:inline-flex;font-size:12.5px;line-height:1.35;max-width:100%;overflow:hidden;text-decoration:none;transition:box-shadow .15s,transform .15s}.xref--howto{--xc:var(--x-howto);--xb:var(--x-howto-bg)}.xref--faq{--xc:var(--x-faq);--xb:var(--x-faq-bg)}.xref--ref{--xc:var(--x-ref);--xb:var(--x-ref-bg)}.xref-k{background:var(--xc);color:var(--x-on);font-size:9.5px;font-weight:700;letter-spacing:1px;padding:5px 8px;text-transform:uppercase;white-space:nowrap}.xref-k,.xref-t{align-items:center;display:flex}.xref-t{background:var(--xb);color:var(--text);font-weight:600;padding:5px 10px}a.xref:focus-visible,a.xref:hover{box-shadow:inset 0 0 0 1px var(--xc),var(--s1);transform:translateY(-1px)}a.xref:focus-visible{outline:2px solid var(--xc);outline-offset:2px}.xref-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.article-body .xref,.article-body .xref:hover{border:0;text-decoration:none}.api-learn{margin-top:26px}.api-head{padding-block:32px 4px}.api-head .ref-h1{margin-bottom:10px}.api-head .ref-lede{margin-bottom:18px;max-width:760px}.api-head-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px 10px}.api-head-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.api-prefix{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:8px;color:var(--sub);display:inline-flex;font-size:13px;gap:8px;padding:4px 6px 4px 10px}.api-prefix code{background:none;color:var(--text);font-family:var(--mono);font-size:12.5px;padding:0}.api-tool{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--sub);cursor:pointer;display:inline-flex;font:600 12.5px var(--font);gap:6px;padding:6px 11px;text-decoration:none}.api-tool:hover{border-color:var(--border-strong);color:var(--text)}.api-tool[hidden]{display:none}.api-body{padding-top:12px}.api-about{padding-block:28px 8px}.api-about>h2{font-size:22px;margin:0 0 8px}.api-about-intro{margin:0 0 18px;max-width:760px}.api-about-intro p{color:var(--sub);line-height:1.65}.api-traits{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin:0 0 26px}.api-trait{background:var(--bg);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:6px;padding:14px 16px}.api-trait-h{align-items:center;display:flex;gap:8px;justify-content:space-between}.api-trait-name{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.api-no,.api-yes{background:var(--api-get-bg);border-radius:999px;color:var(--api-ok);font:700 11px/1 var(--font);padding:4px 8px}.api-no{background:var(--soft);color:var(--muted)}.api-trait p{color:var(--sub);font-size:13.5px;line-height:1.5;margin:0}.api-trait-link{color:var(--x-guide);font-size:13px;font-weight:600;margin-top:auto;text-decoration:none}.api-trait-link.xref--howto{color:var(--x-howto)}.api-trait-link.xref--faq{color:var(--x-faq)}.api-trait-link.xref--ref{color:var(--x-ref)}.api-trait-link:hover{text-decoration:underline}.api-fields{margin-bottom:8px}.api-ep{border-top:1px solid var(--border);padding-block:44px 36px;scroll-margin-top:calc(var(--nav-h) + 12px)}.api-ep-title{align-items:baseline;display:flex;font-size:24px;gap:10px;line-height:1.25;margin:0 0 12px;text-wrap:balance}.api-ep.is-deprecated .api-ep-title>span{text-decoration:line-through;text-decoration-thickness:1px}.api-deprecated{background:var(--api-put-bg);border-radius:999px;color:var(--api-warn);font:700 10.5px/1.6 var(--font);letter-spacing:.8px;padding:1px 8px;text-transform:uppercase}.api-anchor{color:var(--faint);font-size:15px;opacity:0;text-decoration:none;transition:opacity .15s}.api-anchor:focus-visible,.api-ep:hover .api-anchor{opacity:1}.api-route{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:10px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;max-width:760px;padding:8px}.api-path{background:none;color:var(--text);flex:1 1 auto;font:500 13.5px/1.4 var(--mono);padding:0;word-break:break-all}.api-path .seg-var{color:var(--accent-text)}.api-route .ref-copy{margin-left:auto}.api-sum{color:var(--text);font-size:16px;line-height:1.6;margin:0 0 14px;max-width:760px}.api-desc{margin-bottom:8px;max-width:760px}.api-facts{display:grid;font-size:14px;gap:6px 14px;grid-template-columns:max-content 1fr;margin:0 0 6px;max-width:760px;padding:0}.api-facts dt{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1.1px;padding-top:3px;text-transform:uppercase}.api-facts dd{color:var(--sub);margin:0}.api-facts code{font-size:12.5px}.api-h{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1.3px;margin:26px 0 10px;text-transform:uppercase}.api-params{border-top:1px solid var(--border);font-size:14px;margin:0}.api-param{border-bottom:1px solid var(--border);display:grid;gap:4px 16px;grid-template-columns:minmax(0,1fr) auto;padding:11px 0 12px}.api-param .p-sig{align-items:center;display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;min-width:0}.api-param .p-name{background:none;border:0;color:var(--text);font:600 13.5px var(--mono);overflow-wrap:anywhere;padding:0}.api-param .p-type{color:var(--sub);font:13px var(--mono);margin:0;padding-top:1px;text-align:right;white-space:nowrap}.api-in,.api-req{background:var(--soft);border:1px solid var(--border);border-radius:4px;color:var(--muted);font:500 10.5px/1.5 var(--mono);padding:0 6px}.api-req{background:var(--red-10);border-color:var(--red-20);color:var(--accent-text)}.api-param .p-desc{color:var(--sub);grid-column:1/-1;line-height:1.55;margin:0;max-width:78ch}.api-param .p-desc code{font-size:12.5px}.api-notes{margin-top:18px;max-width:760px}.api-notes .callout.info,.api-notes .callout.tip,.api-notes .callout.warning,body.dark .api-notes .callout.info,body.dark .api-notes .callout.tip,body.dark .api-notes .callout.warning{background:var(--soft);border:1px solid var(--border);border-radius:10px;color:var(--sub);display:grid;font-size:14px;gap:10px;grid-template-columns:auto 1fr;line-height:1.55;margin:0 0 10px;padding:12px 14px}.api-notes .callout-icon{background:var(--api-warn);border-radius:50%;display:grid;height:20px;margin-top:1px;place-items:center;width:20px}.api-notes .callout-icon:before{color:var(--bg);content:"!";font:700 12px/1 var(--font)}.api-notes .callout.info .callout-icon,.api-notes .callout.tip .callout-icon{background:var(--teal)}.api-notes .callout.info .callout-icon:before,.api-notes .callout.tip .callout-icon:before{content:"i"}.api-notes .callout-body>:first-child{margin-top:0}.api-notes .callout-body>:last-child{margin-bottom:0}.api-notes .callout-body strong{color:var(--text)}.api-ex{background:var(--bg);border:1px solid var(--border);border-radius:12px;margin:22px 0 0;overflow:hidden}.api-ex>*{max-width:none}.api-h+.api-ex{margin-top:0}.api-ex .code-head{background:var(--soft);border:0;border-radius:0;gap:8px 12px;margin:0;min-height:46px;padding:7px 8px 7px 16px}.api-ex .api-res-head{border-top:1px solid var(--border)}.api-ex pre{border-radius:0!important;border-width:1px 0 0;font-size:12.8px;line-height:1.6;margin:0!important;max-height:440px;overflow:auto;padding:16px 70px 16px 18px}.api-panel[data-lang=http] pre,.api-res pre{overflow-wrap:anywhere;white-space:pre-wrap}.api-panel,.api-res{display:none;position:relative}.api-ex:not(.is-ready) .api-panel[data-lang=http],.api-ex:not(.is-ready) .api-res,.api-panel.is-on,.api-res.is-on{display:block}.api-ex:not(.is-ready) .api-res+.api-res{border-top:1px solid var(--code-border)}.api-ex:not(.is-ready) .api-sw{display:none}.api-sw{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);flex-wrap:wrap;gap:3px;margin-left:auto;padding:3px}.api-seg,.api-sw{display:inline-flex}.api-seg{align-items:center;background:transparent;border:0;border-radius:var(--r);color:var(--sub);cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;gap:7px;padding:4px 11px 4px 9px;transition:color .12s,background .12s;white-space:nowrap}.api-seg:hover{color:var(--text)}.api-seg:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}.api-seg[aria-selected=true]{background:var(--ref-seg-on);box-shadow:var(--s1);color:var(--text)}.api-dot{background:var(--faint);border-radius:50%;height:7px;width:7px}.api-seg[aria-selected=true] .api-dot{background:var(--teal-text)}.api-status{align-items:center;display:inline-flex;font:600 11.5px/1 var(--mono);gap:6px;white-space:nowrap}.api-status:before{background:var(--api-ok);border-radius:50%;content:"";height:7px;width:7px}.api-status.is-4xx:before{background:var(--api-warn)}.api-status.is-5xx:before{background:var(--api-err)}.api-res-label{font-size:12.5px;font-weight:600;white-space:nowrap}.api-ex .code-head-note{align-items:center;display:inline-flex;gap:8px;margin-left:auto;padding-right:8px}.api-ex-note{margin:0;padding:8px 16px}.api-ex-foot,.api-ex-note{background:var(--soft);border-top:1px solid var(--border);color:var(--muted);font-size:12.5px}.api-ex-foot{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:space-between;padding:9px 16px}.api-ex-foot a{border:0;color:var(--teal-text);font-weight:600;text-decoration:none}.api-ex-foot a:hover{text-decoration:underline}.api-copy{background:var(--code-btn-bg);border:1px solid var(--code-btn-line);border-radius:6px;box-shadow:0 0 0 4px var(--code-bg);color:var(--code-btn-text);cursor:pointer;font:600 11px var(--font);padding:3px 9px;position:absolute;right:10px;top:10px;z-index:1}.api-copy:hover{background:var(--code-btn-hover)}.api-rail .ref-tree .api-group-row,.api-rail .ref-tree .api-group-row:hover{background:none}.api-rail .api-group-label{color:var(--muted);display:block;font-size:10.5px;font-weight:700;letter-spacing:1.3px;margin:16px 0 4px;padding-left:10px;text-transform:uppercase}.api-rail .ref-sec:first-child .api-group-label{margin-top:4px}.api-rail .api-rail-eps{border-left:1px solid var(--border);list-style:none;margin:4px 0 8px 14px;padding:0 0 0 10px}.api-rail .api-rail-eps a{align-items:center;color:var(--sub);display:flex;font-size:13px;gap:8px;line-height:1.35;padding:4px 0;text-decoration:none}.api-rail .api-rail-eps a:hover{color:var(--text)}.api-toc .toc-item{align-items:center;display:flex;gap:8px}.api-toc .api-refs{margin-top:22px}.api-toc .api-refs-h{margin:0 0 8px}.api-refs-group{--xc:var(--x-guide);margin:0 0 14px}.api-refs-group--howto{--xc:var(--x-howto)}.api-refs-group--faq{--xc:var(--x-faq)}.api-refs-group--ref{--xc:var(--x-ref)}.api-refs-group .xref-k{border-radius:6px;display:inline-block;padding:3px 8px}.api-refs-group ul{border-left:2px solid var(--xc);list-style:none;margin:6px 0 0;padding:0 0 0 10px}.api-refs-group li a{color:var(--sub);display:block;font-size:13px;line-height:1.4;padding:4px 0;text-decoration:none}.api-refs-group li a:hover{color:var(--text)}.api-landing .page-layout{max-width:calc(var(--mw) + 72px)}.api-landing .article-wrap{padding:28px 32px 48px}.api-landing .api-start{margin-top:0}.api-start{border-bottom:1px solid var(--border);margin:28px 0 8px;padding-bottom:28px}.api-start>.article-body>:first-child{margin-top:0}.api-start h2{font-size:22px;margin:0 0 10px}.api-start ol{color:var(--sub);line-height:1.6;margin:14px 0 0;padding-left:20px}.api-start ol li+li{margin-top:6px}.api-card.is-concept{border-style:dashed}.api-resources{border-top:1px solid var(--border);margin-top:28px;padding-top:24px}.api-head+.api-resources{border-top:0;padding-top:0}.api-groups{display:grid;gap:28px;margin-top:28px}.api-group-h{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:1.3px;margin:0 0 12px;text-transform:uppercase}.api-cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.api-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;color:var(--text);display:block;padding:16px 18px;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.api-card:focus-visible,.api-card:hover{background:var(--teal-10);border-color:rgba(13,124,107,.45);box-shadow:var(--s1);transform:translateY(-1px)}.api-card h3{align-items:center;display:flex;font-size:16px;gap:8px;justify-content:space-between;margin:0 0 4px}.api-card h3 small{color:var(--muted);font:500 11px var(--mono)}.api-card p{color:var(--sub);font-size:13.5px;line-height:1.5;margin:0}@media(max-width:640px){.api-ex pre{padding-right:18px;padding-top:44px}.api-ex .code-head{padding-left:12px}}@media(prefers-reduced-motion:reduce){.api-card,.xref{transition:none}.api-card:hover,a.xref:hover{transform:none}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slidein{0%{opacity:0;transform:translateY(-10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hpulse{0%,to{box-shadow:0 4px 20px rgba(var(--brand-primary-rgb),.4)}50%{box-shadow:0 4px 32px rgba(var(--brand-primary-rgb),.62)}}.article-body table.methods td,.article-body table.methods th,.article-body table.routes td,.article-body table.routes th{hyphens:none;overflow-wrap:break-word;word-break:normal}.article-body table.methods td:nth-child(2),.article-body table.routes td:nth-child(2){overflow-wrap:anywhere}.article-body table.methods td,.article-body table.routes td{line-height:1.5}.article-body h2>.badge,.article-body h3>.badge,.article-body h4>.badge{margin-right:6px;position:relative;top:-1px}.article-body table.methods td:first-child,.article-body table.methods th:first-child,.article-body table.routes td:first-child,.article-body table.routes th:first-child{overflow-wrap:anywhere;width:30%}.article-body table.methods td:nth-child(2),.article-body table.methods th:nth-child(2),.article-body table.routes td:nth-child(2),.article-body table.routes th:nth-child(2){width:56%}.article-body table.methods td:nth-child(3),.article-body table.methods th:nth-child(3),.article-body table.routes td:nth-child(3),.article-body table.routes th:nth-child(3){overflow-wrap:anywhere;width:14%}.btn-teal{align-items:center;background:var(--teal-10);border:1.5px solid var(--teal);border-radius:var(--r);color:var(--teal-text);display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:7px 16px;transition:all .15s}.btn-teal:hover{background:var(--teal);border-color:var(--teal);color:#fff}.btn-ink{align-items:center;background:transparent;border:1.5px solid var(--border-strong);border-radius:var(--r);color:var(--sub);display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:7px 16px;transition:all .15s}.btn-ink:hover{background:var(--text);border-color:var(--text);color:var(--bg)}.hero-search .search-ico-btn{align-items:center;display:flex;margin-right:10px;padding:0;position:relative}.hero-search .search-ico-btn:hover .search-ico{color:var(--text)}.hero-search .search-ico-btn:active .search-ico{transform:scale(.9)}.eyebrow-row{align-items:center;display:flex;gap:14px;margin-bottom:10px}.eyebrow-row .eyebrow{flex:0 0 auto;font-size:12px;letter-spacing:.14em;margin-bottom:0}.article-body a.glossary-link{color:var(--teal-text);text-decoration:underline;text-decoration-color:var(--teal);text-decoration-style:dotted;text-underline-offset:3px;-webkit-text-decoration-skip:ink;cursor:help;text-decoration-skip-ink:auto;transition:color .18s ease,text-decoration-color .18s ease}.article-body a.glossary-link.is-seen,.article-body a.glossary-link:visited{color:var(--concept);text-decoration-color:var(--concept)}.article-body a.glossary-link:hover{color:var(--accent-text);text-decoration-color:var(--accent-text);text-decoration-style:solid}.article-body a.glossary-link:active{color:var(--red-dark);text-decoration-color:var(--red-dark)}.article-body a.glossary-link:focus-visible{border-radius:2px;outline:2px solid var(--accent-text);outline-offset:2px}[aria-labelledby=levels-heading] .sec-key{color:var(--muted);font-size:12.5px;line-height:1.5;margin:-2px 0 18px}.badge{align-items:center;border-radius:5px;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:3px 9px;white-space:nowrap}.nav-mobile .nl-sub-mobile-h{color:var(--muted);display:block;font-size:12px;font-weight:var(--fw-strong);letter-spacing:.085em;margin:12px 0 2px;text-transform:uppercase}.article-body table.methods,.article-body table.routes{max-width:none;table-layout:auto}.search-layout .child-title{font-size:.9375rem}.search-layout .search-snippet{font-size:.875rem}.search-layout .search-path{font-size:.8125rem}.search-scope-select{font-size:.75rem}.filter-bar+.section{padding-top:0}.hero-search .search-ico-btn:before{background:transparent;border-radius:50%;content:"";height:30px;left:50%;margin:-15px 0 0 -15px;position:absolute;top:50%;transition:background .15s ease;width:30px}.hero-search .search-ico-btn:hover:before{background:var(--soft)}.hero-search .search-ico-btn:active:before{background:var(--border)}.hero-search .search-ico{color:var(--muted);position:relative;transition:color .15s ease,transform .15s ease}.hero-search:hover{box-shadow:var(--s3)}[aria-labelledby=levels-heading] .article-row{overflow:hidden;padding-left:19px;position:relative}[aria-labelledby=levels-heading] .article-row:before{background:var(--lvl);bottom:0;content:"";left:0;position:absolute;top:0;width:3px}[aria-labelledby=levels-heading] .article-row:nth-child(-n+2){--lvl:var(--teal);--lvl-bg:var(--teal-10);--lvl-tx:var(--teal-text)}[aria-labelledby=levels-heading] .article-row:nth-child(n+3):nth-child(-n+4){--lvl:var(--concept);--lvl-bg:var(--concept-bg);--lvl-tx:var(--concept)}[aria-labelledby=levels-heading] .article-row:nth-child(n+5):nth-child(-n+6){--lvl:var(--howto);--lvl-bg:var(--howto-bg);--lvl-tx:var(--howto)}[aria-labelledby=levels-heading] .article-row:nth-child(n+7){--lvl:var(--accent-text);--lvl-bg:var(--red-10);--lvl-tx:var(--accent-text)}[aria-labelledby=levels-heading] .ar-path{background:var(--lvl-bg);border-radius:999px;color:var(--lvl-tx);display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;margin-top:5px;padding:3px 9px;text-transform:uppercase}[aria-labelledby=levels-heading] .article-row:hover{border-color:var(--lvl);box-shadow:var(--s2)}[aria-labelledby=levels-heading] .ar-badge{display:none}[aria-labelledby=levels-heading] .ar-title{font-size:14px;white-space:normal}.eyebrow-row:after{background:var(--border);content:"";flex:1 1 auto;height:1px;min-width:24px}[aria-labelledby=levels-heading] .article-row.is-read{opacity:.58}[aria-labelledby=levels-heading] .article-row.is-read .ar-title{font-weight:500}[aria-labelledby=levels-heading] .article-row.is-read:after{color:var(--lvl);content:"✓";font-size:14px;line-height:1;position:absolute;right:14px;top:50%;transform:translateY(-50%)}[aria-labelledby=levels-heading] .article-row.is-next{border-color:var(--lvl);box-shadow:0 0 0 3px var(--lvl-bg)}[aria-labelledby=levels-heading] .article-row.is-next .ar-title:after{background:var(--lvl);border-radius:999px;color:#fff;content:"Next";font-size:12px;font-weight:700;letter-spacing:.04em;margin-left:9px;padding:2px 8px;vertical-align:middle}@media(prefers-reduced-motion:no-preference){[aria-labelledby=levels-heading] .article-row{transition:opacity .2s,border-color .14s,box-shadow .14s}}[aria-labelledby=levels-heading] .ar-icon{background:conic-gradient(var(--lvl) var(--fill,0),var(--lvl-bg) 0);border-radius:50%;flex-shrink:0;font-size:0;height:26px;position:relative;width:26px}[aria-labelledby=levels-heading] .ar-icon:after{background:var(--bg);border-radius:50%;content:"";position:absolute}[aria-labelledby=levels-heading] .article-row.is-open{border-color:var(--lvl-bg)}[aria-labelledby=levels-heading] .article-row[data-level="1"]{--lvl:var(--teal);--lvl-bg:var(--teal-10);--lvl-tx:var(--teal-text)}[aria-labelledby=levels-heading] .article-row[data-level="2"]{--lvl:var(--concept);--lvl-bg:var(--concept-bg);--lvl-tx:var(--concept)}[aria-labelledby=levels-heading] .article-row[data-level="3"]{--lvl:var(--howto);--lvl-bg:var(--howto-bg);--lvl-tx:var(--howto)}[aria-labelledby=levels-heading] .article-row[data-level="4"]{--lvl:var(--accent-text);--lvl-bg:var(--red-10);--lvl-tx:var(--accent-text)}[aria-labelledby=levels-heading] .ar-path{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);border:0;white-space:nowrap}[aria-labelledby=levels-heading] .ar-icon{background:conic-gradient(color-mix(in oklab,var(--lvl) 42%,#fff) 0deg,var(--lvl) var(--fill,0),var(--lvl-bg) 0);height:30px;width:30px}[aria-labelledby=levels-heading] .ar-icon:after{inset:5px}@media(prefers-reduced-motion:no-preference){[aria-labelledby=levels-heading] .ar-icon{transition:--fill .7s cubic-bezier(.2,.7,.2,1)}}[aria-labelledby=levels-heading] .article-row.is-read .ar-icon{background:var(--lvl)}[aria-labelledby=levels-heading] .article-row.is-read .ar-icon:after{background:none;color:#fff;content:"✓";font-size:15px;line-height:30px;text-align:center}[aria-labelledby=levels-heading] .article-row.is-read:after{content:none}[aria-labelledby=levels-heading] .ar-meta{color:var(--muted);display:block;font-size:12px;letter-spacing:.01em;line-height:1.3;margin-top:4px}[aria-labelledby=levels-heading] .ar-meta b{color:var(--lvl-tx);font-variant-numeric:tabular-nums;font-weight:700}[aria-labelledby=levels-heading] .article-row.is-read .ar-meta{color:var(--muted)}[aria-labelledby=levels-heading] .article-row:not(.is-open):not(.is-read):not(.is-next) .ar-icon{opacity:.55}[aria-labelledby=levels-heading] .article-row.is-next .ar-icon{box-shadow:0 0 0 4px color-mix(in oklab,var(--lvl) 20%,transparent)}[aria-labelledby=levels-heading] .article-row.is-next.is-read .ar-icon{box-shadow:none}@media(prefers-reduced-motion:no-preference){[aria-labelledby=levels-heading] .ar-icon{transition:--fill .7s cubic-bezier(.2,.7,.2,1),opacity .2s,box-shadow .2s}}[aria-labelledby=levels-heading] .sec-title{min-height:1em}[aria-labelledby=levels-heading] .article-row{--lvl:#ebc272}[aria-labelledby=levels-heading] .articles-grid .article-row:first-child{--lvl:#c80b34}[aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(2){--lvl:#e04438}[aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(3){--lvl:#ef7439}[aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(4){--lvl:#f5a052}[aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(5){--lvl:#ebc272}[aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(6){--lvl:#c3d492}[aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(7){--lvl:#9adfb0}[aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(n+8){--lvl:#c7ecd4}[aria-labelledby=levels-heading] .article-row{--lvl-bg:color-mix(in oklab,var(--lvl) 22%,transparent);--lvl-tx:var(--lvl)}body.dark [aria-labelledby=levels-heading] .article-row{--lvl:#a3ad4e}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:first-child{--lvl:#f56}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(2){--lvl:#f2693f}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(3){--lvl:#dd8a35}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(4){--lvl:#c3a03b}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(5){--lvl:#a3ad4e}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(6){--lvl:#7ca85e}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(7){--lvl:#5c9469}body.dark [aria-labelledby=levels-heading] .articles-grid .article-row:nth-child(n+8){--lvl:#477c66}body.dark [aria-labelledby=levels-heading] .article-row{--lvl-bg:color-mix(in oklab,var(--lvl) 30%,transparent)}[aria-labelledby=levels-heading] .ar-icon{background:conic-gradient(color-mix(in oklab,var(--lvl) 38%,#fff) 0deg,var(--lvl) var(--fill,0),var(--lvl-bg) 0);height:34px;width:34px}[aria-labelledby=levels-heading] .ar-icon:after{inset:6px}[aria-labelledby=levels-heading] .article-row.is-read .ar-icon:after{font-size:17px;inset:0;line-height:34px}[aria-labelledby=levels-heading] .article-row:not(.is-open):not(.is-read):not(.is-next) .ar-icon{opacity:.38}[aria-labelledby=levels-heading] .article-row.is-next .ar-icon{box-shadow:0 0 0 5px color-mix(in oklab,var(--lvl) 24%,transparent)}[aria-labelledby=levels-heading] .article-row:not(.is-open):not(.is-read):not(.is-next) .ar-icon{opacity:1}[aria-labelledby=levels-heading] .sec-key{margin:-4px 0 18px}[aria-labelledby=levels-heading] .sec-key i{background:linear-gradient(90deg,#c80b34,#e04438,#ef7439,#f5a052,#ebc272,#c3d492,#9adfb0,#c7ecd4);border-radius:999px;display:block;font-style:normal;height:4px;margin:0;width:88px}body.dark [aria-labelledby=levels-heading] .sec-key i{background:linear-gradient(90deg,#f56,#f2693f,#dd8a35,#c3a03b,#a3ad4e,#7ca85e,#5c9469,#477c66)}[aria-labelledby=levels-heading] .article-row{--lvl-tx:color-mix(in oklab,var(--lvl) 58%,var(--text))}[aria-labelledby=levels-heading] .article-row.is-read .ar-icon:after{color:color-mix(in oklab,var(--lvl) 18%,var(--bg))}.article-body .post-figure{margin:0 0 28px}.article-body .post-figure img,.blog-post .article-body img{display:block;margin:0 auto;max-height:380px;max-width:100%;width:auto}.nav-search{border-radius:50%;gap:0;min-width:0;padding:0;width:34px}.nav-search svg{height:16px;width:16px}.nav-theme{transition:background .2s,border-color .2s,color .2s,box-shadow .2s}.nav-theme:focus-visible,.nav-theme:hover,.nav-theme[aria-expanded=true]{box-shadow:0 0 0 3px var(--ring-cream)}@media(prefers-reduced-motion:no-preference){.nav-theme svg{transition:transform .32s cubic-bezier(.2,.7,.2,1)}.nav-theme:hover .ico-sun,.nav-theme[aria-expanded=true] .ico-sun{transform:rotate(22deg) scale(1.06)}.nav-theme:hover .ico-moon,.nav-theme[aria-expanded=true] .ico-moon{transform:rotate(-18deg)}.nav-theme:hover .ico-auto,.nav-theme[aria-expanded=true] .ico-auto{transform:scale(1.12)}}.sb-mobile-toggle{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:var(--r);color:var(--text);display:none;font-size:13px;font-weight:600;gap:8px;margin:16px 0 0;padding:8px 14px}@media(max-width:1180px){.page-layout{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.page-layout.no-sidebar{grid-template-columns:minmax(0,1fr)}.toc-wrap{display:none}}@media(max-width:900px){.page-layout,.page-layout.no-sidebar,.page-layout.no-toc{grid-template-columns:minmax(0,1fr);padding:0 22px}.sidebar{border-bottom:1px solid var(--border);margin-bottom:12px;max-height:none;padding:18px 0;position:static}.sidebar[hidden]{display:none}.sb-mobile-toggle{display:flex}.layout,.layout.two-col{gap:28px;grid-template-columns:minmax(0,1fr)}.sec-nav{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px;padding:12px;position:static;top:auto}.sec-nav .sn-head{color:var(--muted);flex:0 0 100%;font-size:10.5px;font-weight:700;letter-spacing:1.4px;margin:0 0 2px;padding:0 2px;text-transform:uppercase}.sec-nav .sn-item{background:var(--bg);border:1px solid var(--border);border-radius:999px;flex:0 0 auto;gap:6px;justify-content:flex-start;min-height:34px;padding:6px 13px}.sec-nav .sn-item.active{background:var(--red-10);border-color:var(--accent-text)}.article-nav,.form-row{grid-template-columns:1fr}}@media(max-width:800px){.nav-wrap nav{border-radius:40px;gap:6px;min-height:52px;padding:8px 10px 8px 16px}.hero-title,h1.hero-title{font-size:34px;letter-spacing:-1px}.hero{padding-bottom:48px;padding-left:20px;padding-right:20px}.ud-hero h1{font-size:30px}.ud-stats{gap:18px}.articles-grid,.path-grid,.pc-all-grid{grid-template-columns:1fr}.gs-strip{align-items:flex-start;flex-direction:column;padding:32px 24px}.section{padding:2.25rem 0}.wrap{padding:0 18px}.foot-links{margin-left:0}.helix-panel{bottom:84px;right:12px}.helix-fab{bottom:18px;right:18px}.ud-hero{padding-left:20px;padding-right:20px}}@media(max-width:640px){.foot-grid{gap:24px;grid-template-columns:1fr}}@media(max-width:560px){.layout{padding-left:18px;padding-right:18px}.ud-hero h1{font-size:26px;letter-spacing:-.8px}.ud-hero-inner{gap:24px}.cd-footer{padding-left:18px;padding-right:18px}.sec-nav{padding:10px}}@media print{.article-actions,.cd-footer,.fb-strip,.helix-fab,.helix-panel,.nav-wrap,.sidebar,.sm-overlay,.toc-wrap{display:none!important}.page-layout{grid-template-columns:1fr;padding:0}body{font-size:12px}.article-body>*{max-width:none}.article-body .table-wrap,.article-body table{background:none!important;max-height:none!important;overflow:visible!important}.article-body thead th{box-shadow:none!important;position:static!important}}
/*# sourceMappingURL=app.css.map*/