.site-header{z-index:50;background:color-mix(in srgb, var(--surface) 92%, transparent);border-bottom:1px solid var(--line-soft);position:sticky;top:0}@supports (backdrop-filter:blur(1px)){.site-header{background:color-mix(in srgb, var(--surface) 82%, transparent);backdrop-filter:saturate(1.4)blur(12px)}}.hdr{align-items:center;gap:var(--s-6);height:var(--header-h);display:flex}.brand{align-items:center;gap:var(--s-3);flex:none;display:flex}.brand-mark{color:var(--ink);border-radius:var(--r-sm);padding:6px 2px;display:inline-flex}.wordmark{color:inherit}.wordmark-dot{fill:var(--accent)}.wordmark-by{fill:var(--muted)}.brand-sep{background:var(--line);width:1px;height:20px}.brand-site{font-family:var(--didone);color:var(--ink);border-radius:var(--r-sm);padding:4px 2px;font-size:1.1875rem;font-weight:500;line-height:1;text-decoration:none}.brand-site:hover{color:var(--accent)}.hdr-nav{flex:1}.hdr-nav>ul{align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.has-menu{position:relative}.navbtn,.navlink{border-radius:var(--r-md);min-height:36px;color:var(--ink);font-size:var(--fs-md);transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0;align-items:center;gap:4px;padding:0 12px;font-weight:700;text-decoration:none;display:inline-flex}.navbtn svg{width:16px;height:16px;color:var(--muted);transition:transform var(--t) var(--ease)}.navbtn:hover,.navlink:hover,.navbtn[aria-expanded=true]{background:var(--hover)}.navbtn[aria-expanded=true] svg{transform:rotate(180deg)}.navlink[aria-current=page]{color:var(--accent)}.hdr-end{align-items:center;gap:var(--s-2);margin-left:auto;display:flex}.hdr-end .btn.quiet{color:var(--ink)}.hdr-end .btn.quiet svg{width:14px;height:14px;color:var(--muted)}.has-menu>.menu{top:calc(100% + 8px);left:0}.has-menu>.menu.end{left:auto;right:0}.menu .mi{width:20px;height:20px;color:var(--accent);flex:none;margin-top:1px}.menu a>span{gap:1px;display:grid}.menu a strong{font-size:var(--fs-md)}.menu a[aria-current=true]{background:var(--accent-soft)}#menu-resources,#menu-login{width:320px}.mega{width:min(640px,100vw - 32px);padding:var(--s-3)}.mega-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px;display:grid}.mega-item{padding:14px!important}.mega-item strong{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.mega-item .ext{width:14px;height:14px;color:var(--muted)}.mega-ic,.sw-ic{border-radius:var(--r-md);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);flex:none;place-items:center;display:inline-grid}.mega-ic svg,.sw-ic svg{width:20px;height:20px}.mega-foot{margin-top:var(--s-2);background:var(--surface-2);align-items:center!important}.mega-foot>svg{width:20px;height:20px;color:var(--accent);flex:none}.mega-foot>span{font-size:var(--fs-md);flex:1;display:block!important}.mega-foot .go{width:16px!important;height:16px!important;color:var(--muted)!important}.switcher{width:300px}.menu-toggle{display:none}@media (width<=1023px){.hdr-nav,.hide-sm{display:none}.menu-toggle{display:inline-grid}}@media (width<=420px){.hide-xs{display:none}}.site-header.app{background:var(--surface);backdrop-filter:none}.site-header.app .hdr{gap:var(--s-4)}.site-header.app .menu-toggle{display:none}@media (width<=1023px){.site-header.app .has-menu{display:block}}dialog.mnav{background:var(--surface);width:min(420px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;color:var(--ink);box-shadow:var(--e-3);border:0;flex-direction:column;margin:0 0 0 auto;padding:0;display:none}dialog.mnav[open]{animation:slidein var(--t-slow) var(--ease);display:flex}dialog.mnav::backdrop{background:var(--scrim)}@keyframes slidein{0%{opacity:0;transform:translate(24px)}}.mnav-head{height:var(--header-h);padding:0 var(--s-4) 0 var(--s-5);border-bottom:1px solid var(--line-soft);color:var(--ink);justify-content:space-between;align-items:center;display:flex}.mnav-head a{color:var(--ink);display:inline-flex}.mnav-body{padding:var(--s-3) var(--s-3) var(--s-5);flex:1;overflow-y:auto}.mnav-body .menu-label{margin-top:var(--s-4)}.mnav-body ul{margin:0;padding:0;list-style:none}.mnav-body a{align-items:center;gap:var(--s-3);border-radius:var(--r-md);min-height:48px;color:var(--ink);padding:0 12px;font-weight:700;text-decoration:none;display:flex}.mnav-body a:hover,.mnav-body a[aria-current=true]{background:var(--hover)}.mnav-body a svg{width:20px;height:20px;color:var(--accent);flex:none}.mnav-body a span:first-of-type{flex:1}.mnav-foot{padding:var(--s-4) var(--s-5) calc(var(--s-4) + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft)}.site-footer{background:var(--surface-2);border-top:1px solid var(--line-soft);padding:var(--s-9) 0 var(--s-6);font-size:var(--fs-md);margin-top:auto}.foot-top{gap:var(--s-8);grid-template-columns:minmax(220px,1fr) 3fr;display:grid}.foot-brand{gap:var(--s-4);align-content:start;max-width:280px;display:grid}.foot-brand>a:first-child{color:var(--ink);width:max-content;display:inline-flex}.foot-status{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line-soft);width:max-content;color:var(--ink);font-size:var(--fs-sm);align-items:center;gap:8px;padding:6px 12px;font-weight:700;text-decoration:none;display:inline-flex}.foot-status .dotmark{color:var(--muted)}.foot-status[data-state=operational] .dotmark{color:var(--st-ok)}.foot-status[data-state=degraded] .dotmark{color:var(--st-degraded)}.foot-status[data-state=partial] .dotmark,.foot-status[data-state=major] .dotmark{color:var(--st-major)}.foot-status[data-state=maintenance] .dotmark{color:var(--st-maint)}.foot-cols{gap:var(--s-6);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.foot-h{font-family:var(--body);font-size:var(--fs-sm);color:var(--ink);margin-bottom:var(--s-3);font-weight:700}.foot-cols ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.foot-cols a{color:var(--muted);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.foot-cols a:hover{color:var(--ink);text-decoration:underline}.foot-cols .ext{width:12px;height:12px}.foot-bottom{justify-content:space-between;align-items:center;gap:var(--s-4);margin-top:var(--s-8);padding-top:var(--s-5);border-top:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.theme-switch button svg{width:15px;height:15px}@media (width<=1023px){.foot-top{gap:var(--s-7);grid-template-columns:minmax(0,1fr)}.foot-cols{row-gap:var(--s-7);grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-switch span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.theme-switch button{padding:0 12px}}.prose{color:var(--ink);max-width:var(--w-prose);overflow-wrap:break-word;font-size:1.0625rem;line-height:1.7}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--fs-2xl);scroll-margin-top:calc(var(--header-h) + 24px);margin-top:2.2em}.prose h3{font-family:var(--body);font-weight:700;font-size:var(--fs-lg);line-height:var(--lh-snug);scroll-margin-top:calc(var(--header-h) + 24px);margin-top:1.9em}.prose h4{margin-top:1.6em}.prose h2+*,.prose h3+*{margin-top:.6em}.prose>:first-child{margin-top:0}.prose p,.prose li{text-wrap:pretty}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--muted)}.prose ol>li::marker{color:var(--accent);font-weight:700}.prose a{text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);font-weight:700}.prose a:hover{text-decoration-color:currentColor}.prose strong{color:var(--ink)}.prose blockquote{padding-left:var(--s-5);border-left:3px solid var(--accent-line);color:var(--muted);margin-inline:0}.prose hr{margin:2.4em 0}.prose img{border-radius:var(--r-lg)}.prose :not(pre)>code{background:var(--code-bg);border:1px solid var(--line-soft);border-radius:6px;padding:.12em .4em;font-size:.86em}.prose .table-wrap{margin:1.6em 0}.prose table{font-size:var(--fs-md);line-height:1.5}.prose .callout p{margin:0}.prose .callout p+p{margin-top:.5em}.prose .callout{line-height:1.55}.prose .anchor{opacity:0;color:var(--muted);font-family:var(--body);margin-left:8px;font-weight:400;text-decoration:none}.prose h2:hover .anchor,.prose h3:hover .anchor,.prose .anchor:focus-visible{opacity:1}.code{margin:1.4em 0;position:relative}.prose pre,.code pre{padding:var(--s-4) var(--s-5);border-radius:var(--r-lg);background:var(--code-bg);border:1px solid var(--line-soft);tab-size:2;margin:0;font-size:.875rem;line-height:1.65;overflow-x:auto}.copybtn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);min-height:28px;color:var(--muted);font-size:var(--fs-xs);opacity:0;transition:opacity var(--t-fast) var(--ease);padding:0 10px;font-weight:700;position:absolute;top:8px;right:8px}.code:hover .copybtn,.copybtn:focus-visible{opacity:1}@media (hover:none){.copybtn{opacity:1}}.token.comment,.token.prolog{color:var(--muted);font-style:italic}.token.keyword,.token.function{color:var(--accent)}.token.string,.token.attr-value{color:var(--ok)}.token.number,.token.boolean,.token.constant{color:var(--info)}.token.operator,.token.punctuation{color:color-mix(in srgb, var(--ink) 70%, var(--muted))}.token.parameter,.token.variable,.token.property{color:color-mix(in srgb, var(--info) 70%, var(--ink))}.article-head{gap:var(--s-4);margin-bottom:var(--s-7);display:grid}.article-head h1{font-size:var(--fs-4xl)}.article-head .lede{margin:0}.article-meta{align-items:center;gap:var(--s-2) var(--s-4);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;display:flex}.article-meta>span{align-items:center;gap:6px;display:inline-flex}.article-meta svg{width:15px;height:15px}.toc{font-size:var(--fs-sm)}.toc h2{font-family:var(--body);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s-3);font-weight:700}.toc ol{border-left:1px solid var(--line);gap:2px;margin:0;padding:0;list-style:none;display:grid}.toc a{color:var(--muted);border-left:2px solid #0000;margin-left:-1px;padding:4px 0 4px 14px;line-height:1.4;text-decoration:none;display:block}.toc a:hover{color:var(--ink)}.toc a[aria-current=true]{color:var(--accent);border-left-color:var(--accent);font-weight:700}.toc .d3 a{padding-left:26px}.draft-note{gap:var(--s-3);padding:var(--s-4) var(--s-5);border-radius:var(--r-lg);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-md);margin-bottom:var(--s-7);display:flex}.draft-note svg{flex:none;width:20px;height:20px;margin-top:2px}.reading{gap:var(--s-9);grid-template-columns:minmax(0,1fr) 220px;align-items:start;display:grid}.reading>aside{top:calc(var(--header-h) + var(--s-6));max-height:calc(100vh - var(--header-h) - 48px);position:sticky;overflow-y:auto}@media (width<=1100px){.reading{grid-template-columns:minmax(0,1fr)}.reading>aside{display:none}}.prose .ta-right{text-align:right}.prose .ta-center{text-align:center}.prose .ta-left{text-align:left}.token.class-name,.token.builtin{color:color-mix(in srgb, var(--accent) 75%, var(--ink))}.token.template-string{color:var(--ok)}.token.interpolation,.token.interpolation-punctuation,.token.template-punctuation{color:color-mix(in srgb, var(--ink) 70%, var(--muted))}@media (width<=640px){.prose h2{margin-top:1.6em}.prose h3{margin-top:1.5em}.prose h2+*,.prose h3+*{margin-top:.75em}}
