:root{--color-brand:#007175;--color-brand-hover:#005a5e;--color-accent-pink:#ec6fa3;--color-accent-cyan:#82d8dd;--color-accent-cyan-hover:#a8e5e9;--color-orange:#ff6100;--color-white:#fff;--color-black:#000;--color-indigo:#202e78;--color-slate:#9ea4b8;--text-primary:#1a1a1a;--text-strong:#333;--text-secondary:#666;--text-medium:#555;--text-tertiary:#888;--text-muted:#999;--text-faint:#b2b2b2;--text-subtle:silver;--text-disabled:#d0d0d0;--text-blue:#576b95;--text-on-brand-dark:#033a4a;--text-on-dark-strong:#fcfdfb;--text-on-dark:#dcebf2;--text-on-dark-body:#c8c8c8;--text-on-dark-secondary:#a0b4c0;--text-on-dark-soft:#8899a8;--text-on-dark-muted:#718096;--text-on-dark-faint:#707070;--text-blue-dark:#82a4ca;--text-link-dark-hover:#a8c8d8;--surface-page:var(--color-white);--surface-page-dark:#111826;--surface-soft:#f8f9fa;--surface-muted:#f0f0f0;--surface-code:#f3f4f6;--surface-header-fallback:#575757;--surface-dark-panel:#1e293b;--surface-dark-card:#191f2d;--surface-dark-card-hover:#242b3d;--surface-dark-control:#3b3e43;--surface-dark-code:#1e1e1e;--surface-dark-row:#252525;--surface-dark-input:#2d3748;--border-light:#e0e0e0;--border-light-subtle:#eee;--border-light-soft:#f2f2f2;--border-code:#d5d5d7;--border-dark:#4a4a4a;--border-dark-soft:#3d3d3d;--border-dark-code:#4a4d55;--border-dark-input:#4a5568;--border-dark-divider:#313131;--rule-dark:#7e8fa6;--terminal-red:#ff5f57;--terminal-yellow:#ffbd2e;--terminal-green:#28ca42;--rgb-black:0 0 0;--rgb-white:255 255 255;--rgb-brand:0 113 117;--rgb-accent-pink:236 111 163;--rgb-accent-cyan:130 216 221;--rgb-dark-glass:36 43 61;--rgb-dark-card:25 31 45;--rgb-dark-message:30 38 54;--rgb-toggle:106 126 154;--rgb-shadow-neutral:100 100 111}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100vw;max-width:100vw;height:100vh;position:relative;overflow:hidden}body{background-color:var(--surface-page);font-family:HM}.dark body{background-color:var(--surface-page-dark)}@font-face{font-family:HM;src:url(/static/fonts/HarmonyOS_Sans_Medium.ttf)}a{color:var(--color-indigo);font-weight:700;text-decoration:none;list-style:none}img{cursor:pointer}html[data-input-mode=pointer] :focus,html[data-input-mode=pointer] :focus-visible{outline:none!important}::-webkit-scrollbar{display:none}main{grid-template-columns:240px 100vw;width:calc(100vw + 240px);height:100%;display:grid;position:relative;left:0;overflow-x:hidden}.main{width:100vw;height:100%;overflow-y:auto}.article-container{max-width:100%;box-shadow:rgb(var(--rgb-shadow-neutral) / 20%) 0px 7px 29px 0px;margin-top:3.4vh;margin-bottom:3.4vh;padding:1rem}.aside-init{left:-240px}.aside-show{animation:.3s show-aside;left:0}.aside-show aside{box-shadow:rgb(var(--rgb-black) / 35%) 0 5px 15px}.aside-hide{animation:.3s hide-aside;left:-240px}@keyframes show-aside{0%{left:-240px}to{left:0}}@keyframes hide-aside{0%{left:0}to{left:-240px}}.article-copy{background-color:var(--color-brand);color:var(--color-white);border-radius:.3rem;margin:1rem 0;padding:.6rem;display:block}.article-copy a{color:var(--color-white)}.article-copy .article-copy-info{color:rgb(var(--rgb-white) / 85%);margin-top:.2rem}.article-copy-info a{color:rgb(var(--rgb-white) / 85%);font-weight:400}@media screen and (width<=488px){.main>header{width:100%;height:38vh;margin:0}.main>article{width:100%;min-height:calc(100% - 38vh);margin-top:0;margin-bottom:0}}@media screen and (width>=488px){.main{width:100vw;height:100%;margin:0 auto}.main>header{border-radius:.8rem;width:80%;height:38vh;margin:2rem auto 0}.main>article{border-radius:.8rem;width:80%;min-height:calc(100% - 43.4vh);margin-left:auto;margin-right:auto}}@media screen and (width>=688px){.main>header{height:46vh!important}.main>article{min-height:calc(100% - 51.4vh)!important}}@media screen and (width>=888px){.main>header{height:400px!important}.main>article{min-height:calc(100% - 400px - 5.4vh)!important}}@font-face{font-family:iconfont;src:url(/static/fonts/iconfont.woff2)format("woff2"),url(/static/fonts/iconfont.woff)format("woff"),url(/static/fonts/iconfont.ttf)format("truetype")}.iconfont{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;font-style:normal;font-family:iconfont!important}.icon-like:before{content:""}.icon-pyq:before{content:""}.icon-pc:before{content:""}.icon-backtop:before{content:""}.icon-Shut-down:before{content:""}.icon-friendfill:before{content:""}.icon-search:before{content:""}.icon-tag:before{content:""}.icon-sun:before{content:""}.icon-date:before{content:""}.icon-right:before{content:""}.icon-left:before{content:""}.icon-up:before{content:""}.icon-down:before{content:""}.icon-about:before{content:""}.icon-menu:before{content:""}.icon-moon:before{content:""}.icon-fenleiclassify:before{content:""}.icon-pause:before{content:""}.icon-play:before{content:""}.icon-Home:before{content:""}.icon-plane:before{content:""}.icon-pencil:before{content:""}.icon-cnblogs:before{content:""}.icon-QQ:before{content:""}.icon-backup:before{content:""}.icon-github:before{content:""}.icon-planet:before{content:""}.icon-bianjibeifen:before{content:""}.icon-gitee:before{content:""}.icon-mail:before{content:""}.icon-bilibili:before{content:""}.icon-bird-copy:before{content:""}.icon-code:before{content:""}.icon-email:before{content:""}#themeToggle[data-astro-cid-xbqlppoa]{user-select:none;cursor:pointer;background:0 0;border:0;position:relative;top:.6rem;left:.6rem}.sun[data-astro-cid-xbqlppoa]{fill:var(--color-accent-cyan)}.moon[data-astro-cid-xbqlppoa],.dark .sun[data-astro-cid-xbqlppoa]{fill:#0000}.dark .moon[data-astro-cid-xbqlppoa]{fill:var(--text-on-dark)}.docs-search{z-index:3;position:absolute;top:0;right:0}.docs-search-toggle{width:34px;height:34px;color:var(--color-accent-cyan);cursor:pointer;user-select:none;background:0 0;border:0;padding:2px;transition:color .2s,transform .2s;position:relative;top:.6rem;right:.6rem}.docs-search-toggle:hover{color:var(--color-accent-cyan-hover);transform:scale(1.06)}html[data-input-mode=keyboard] .docs-search-toggle:focus-visible{outline-offset:2px;border-radius:50%;outline:2px solid}.docs-search-toggle svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:30px;height:30px}.docs-search-panel{border:1px solid rgb(var(--rgb-white) / 18%);background:rgb(var(--rgb-dark-message) / 84%);width:min(23rem,100vw - 2rem);box-shadow:0 .8rem 2.4rem rgb(var(--rgb-black) / 24%);backdrop-filter:blur(16px)saturate(125%);color:var(--text-on-dark);transform-origin:100% 0;border-radius:.75rem;padding:.75rem;animation:.18s ease-out docs-search-in;position:absolute;top:3.8rem;right:.8rem}.docs-search-panel[hidden]{display:none}.docs-search-field{border:1px solid rgb(var(--rgb-white) / 16%);background:rgb(var(--rgb-white) / 9%);border-radius:.55rem;align-items:center;gap:.55rem;min-height:2.6rem;padding:0 .7rem;transition:border-color .2s,background-color .2s;display:flex}.docs-search-field:focus-within{border-color:rgb(var(--rgb-accent-cyan) / 72%);background:rgb(var(--rgb-white) / 12%)}.docs-search-field svg{fill:none;width:1rem;height:1rem;stroke:var(--color-accent-cyan);stroke-width:1.8px;stroke-linecap:round;flex:none}.docs-search-field input{min-width:0;color:var(--color-white);font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:.9rem}.docs-search-field input::placeholder{color:var(--text-on-dark-secondary)}.docs-search-field input::-webkit-search-cancel-button{filter:invert();opacity:.65}.docs-search-field kbd{border:1px solid rgb(var(--rgb-white) / 18%);color:var(--text-on-dark-muted);border-radius:.25rem;padding:.12rem .3rem;font-family:inherit;font-size:.58rem;font-weight:400}.docs-search-status{min-height:1.75rem;color:var(--text-on-dark-muted);padding:.55rem .2rem .3rem;font-size:.68rem}.docs-search-results{gap:.15rem;max-height:14.5rem;display:grid;overflow-y:auto}.docs-search-result{color:var(--text-on-dark);border-radius:.5rem;align-items:center;gap:.7rem;padding:.55rem .6rem;font-weight:400;transition:background-color .16s,transform .16s;display:flex}.docs-search-result[hidden]{display:none}.docs-search-result:hover,html[data-input-mode=keyboard] .docs-search-result:focus-visible{background:rgb(var(--rgb-white) / 10%);outline:none;transform:translate(2px)}.docs-search-result-copy{flex:1;min-width:0}.docs-search-result strong,.docs-search-result small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.docs-search-result strong{color:var(--text-on-dark-strong);font-size:.88rem}.docs-search-result small{color:var(--text-on-dark-secondary);margin-top:.16rem;font-size:.7rem}.docs-search-result small mark{color:var(--color-accent-cyan);background:0 0;font-weight:700}.docs-search-result>svg{fill:none;width:.95rem;height:.95rem;stroke:var(--color-accent-cyan);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:0;flex:none;transition:opacity .16s,transform .16s;transform:translate(-3px)}.docs-search-result:hover>svg,html[data-input-mode=keyboard] .docs-search-result:focus-visible>svg{opacity:1;transform:translate(0)}.docs-search-empty{color:var(--text-on-dark-secondary);text-align:center;padding:1.7rem .5rem 1.4rem;font-size:.8rem}.docs-search-pagination{color:var(--text-on-dark-muted);justify-content:center;align-items:center;gap:.65rem;padding:.65rem .2rem .05rem;font-size:.65rem;display:flex}.docs-search-pagination[hidden]{display:none}.docs-search-pagination button{border:1px solid rgb(var(--rgb-white) / 14%);background:rgb(var(--rgb-white) / 6%);width:1.65rem;height:1.65rem;color:var(--text-on-dark-secondary);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:border-color .16s,background-color .16s,color .16s;display:grid}.docs-search-pagination button:hover:not(:disabled),html[data-input-mode=keyboard] .docs-search-pagination button:focus-visible{border-color:rgb(var(--rgb-accent-cyan) / 55%);background:rgb(var(--rgb-white) / 11%);color:var(--color-accent-cyan);outline:none}.docs-search-pagination button:disabled{cursor:default;opacity:.3}.docs-search-pagination svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:.85rem;height:.85rem}.docs-search-pagination span{text-align:center;min-width:3rem}.dark .docs-search-toggle{color:var(--text-on-dark)}.dark .docs-search-toggle:hover{color:var(--color-white)}@keyframes docs-search-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media screen and (width<=488px){.docs-search-panel{width:calc(100vw - 1.2rem);right:.6rem}}@media (prefers-reduced-motion:reduce){.docs-search-panel{animation:none}.docs-search-toggle,.docs-search-result,.docs-search-result>svg,.docs-search-pagination button{transition:none}}aside{background-color:var(--surface-soft);width:240px;height:100vh;display:flex;position:relative}.aside-body{flex-direction:column;justify-content:flex-start;width:240px;height:100vh;padding:1rem;display:flex;position:fixed;top:0}@media screen and (width>=488px){aside{border-radius:0 .8rem 0 0}.aside-body{height:100vh;top:0}}.aside-toggle-btn{backdrop-filter:blur(2px);background-color:rgb(var(--rgb-toggle) / 36%);z-index:999;border:0;border-radius:0 .4rem .4rem 0;width:16px;height:60px;padding:0;position:absolute;top:calc(50% - 30px);right:-16px}.aside-toggle-btn:hover{cursor:pointer}.aside-toggle-btn.is-escape-focus:focus,.aside-toggle-btn.is-escape-focus:focus-visible{box-shadow:none;outline:none}.aside-toggle-btn:before{content:"|";color:var(--color-white);display:block;position:absolute;top:20px;left:6px}.aside-body .aside-author-card,.aside-body .aside-links-card,.aside-body .aside-share-card,.aside-body .aside-tags-card,.aside-body .aside-copyright-card{box-shadow:rgb(var(--rgb-black) / 60%) 0px 5px 15px;background-color:rgb(var(--rgb-white) / 80%);border-radius:.8rem;margin-bottom:1.2rem;padding:.8rem;transition:all .3s}.aside-body .aside-author-card:hover,.aside-body .aside-links-card:hover,.aside-body .aside-share-card:hover,.aside-body .aside-tags-card:hover,.aside-body .aside-copyright-card:hover{box-shadow:rgb(var(--rgb-black) / 30%) 0px 2px 8px;background-color:rgb(var(--rgb-brand) / 5%);transform:translateY(4px)scale(.98)}.aside-body .aside-author-card{cursor:default;align-items:center;gap:.5rem;display:flex;position:relative;overflow:hidden}.aside-body .aside-author-card:after{content:"";background:radial-gradient(circle, rgb(var(--rgb-brand) / 12%), transparent 70%);pointer-events:none;z-index:0;opacity:0;border-radius:50%;width:80px;height:80px;transition:opacity .45s;position:absolute;bottom:-20px;right:-20px}.aside-body .aside-author-card:hover:after{opacity:1}.aside-body .author-avatar{border-radius:50%;flex-shrink:0;width:48px;height:48px;transition:box-shadow .35s,transform .35s}.aside-body .aside-author-card:hover .author-avatar{box-shadow:0 0 0 3px rgb(var(--rgb-brand) / 20%);transform:scale(1.03)}.aside-body .author-info{flex:1;min-width:0}.aside-body .author-name{color:var(--color-brand);padding-bottom:.15rem;font-size:1rem;font-weight:700;transition:color .3s;display:block}.aside-body .aside-author-card:hover .author-name{color:var(--color-brand-hover)}.aside-body .author-desc{color:var(--text-secondary);margin:0;font-size:.78rem;line-height:1.4}.aside-body .aside-links-card{text-align:center;background-color:rgb(var(--rgb-brand) / 0%);grid-template-columns:1fr 1fr;gap:6px;transition:all .3s;display:grid}.aside-body .aside-links-card a{color:var(--color-black);box-shadow:rgb(var(--rgb-black) / 10%) 0px 10px 10px -10px;border-radius:4px;margin:.2rem 0;padding:.12rem .3rem;display:inline-block}.aside-body .aside-links-card a:hover{background-color:var(--color-brand);color:var(--text-on-brand-dark)}.aside-body .aside-share-card{text-align:center;background-color:rgb(var(--rgb-brand) / 0%);grid-template-columns:1fr 1fr;gap:6px;transition:all .3s;display:grid}.aside-body .share-link{color:var(--color-black);cursor:pointer;background:0 0;border:0;border-radius:4px;grid-column:1/-1;width:100%;margin:.2rem 0;padding:.12rem .3rem;font-family:inherit;font-size:.9rem;text-decoration:none;transition:all .3s;display:inline-block}.aside-links-card a.active{color:var(--color-orange)!important;background-color:var(--color-brand)!important}.aside-body p{margin:0}.aside-body .aside-copyright-card{background-color:rgb(var(--rgb-brand) / 0%);width:calc(240px - 2rem);box-shadow:rgb(var(--rgb-black) / 60%) 0px 5px 15px;border-radius:.8rem;align-self:end;margin-bottom:0;padding:.6rem;font-size:.85rem;transition:all .3s}.aside-body .aside-copyright-card div{margin-bottom:.4rem}.aside-body .aside-copyright-card div:last-child{margin-bottom:0}.aside-body .aside-copyright-card a{color:var(--color-brand);border-bottom:1px dashed #0000;font-weight:500;text-decoration:none;transition:all .2s}.aside-body .aside-copyright-card a:hover{color:var(--color-brand-hover);border-bottom-color:var(--color-brand)}.dark aside{background-color:var(--surface-dark-panel)!important}.dark .aside-show aside{box-shadow:rgb(var(--rgb-accent-cyan) / 40%) 0px 0px 8px}.dark .aside-body .aside-author-card,.dark .aside-body .aside-links-card,.dark .aside-body .aside-share-card,.dark .aside-body .aside-tags-card,.dark .aside-body .aside-copyright-card{box-shadow:rgb(var(--rgb-black) / 50%) 0px 8px 20px, rgb(var(--rgb-black) / 30%) 0px 2px 6px;background-color:rgb(var(--rgb-dark-glass) / 80%);transition:all .3s}.dark .aside-body .aside-author-card:hover,.dark .aside-body .aside-links-card:hover,.dark .aside-body .aside-share-card:hover,.dark .aside-body .aside-tags-card:hover,.dark .aside-body .aside-copyright-card:hover{box-shadow:rgb(var(--rgb-black) / 15%) 0px 1px 3px;border-color:rgb(var(--rgb-accent-cyan) / 40%);background-color:rgb(var(--rgb-dark-card) / 95%);transform:translateY(4px)scale(.98)}.dark .aside-body .aside-links-card{background-color:rgb(var(--rgb-accent-cyan) / 0%)}.dark .aside-body .aside-author-card:after{background:radial-gradient(circle, rgb(var(--rgb-accent-cyan) / 15%), transparent 70%)}.dark .aside-body .aside-author-card:hover .author-avatar{box-shadow:0 0 0 3px rgb(var(--rgb-accent-cyan) / 25%)}.dark .aside-body .author-name{color:var(--color-accent-cyan)!important}.dark .aside-body .aside-author-card:hover .author-name{color:var(--color-accent-cyan-hover)!important}.dark .aside-body .author-desc{color:var(--text-on-dark-soft)}.dark aside h3,.dark aside a{color:var(--text-on-dark)!important}.dark .aside-body .aside-copyright-card{color:var(--text-on-dark);background-color:rgb(var(--rgb-accent-cyan) / 0%)}.dark .aside-body .aside-copyright-card a{color:var(--color-accent-cyan)}.dark .aside-body .aside-copyright-card a:hover{color:var(--color-accent-cyan-hover);border-bottom-color:var(--color-accent-cyan)}.dark .aside-body .aside-share-card{background-color:rgb(var(--rgb-accent-cyan) / 0%)}.dark .aside-body .share-link{color:var(--text-on-dark)}.aside-body .card-stack{cursor:grab;height:62px;position:relative;overflow:hidden}.aside-body .card-stack:active{cursor:grabbing}.aside-body .message-card{background:var(--color-white);border:1px solid rgb(var(--rgb-brand) / 16%);box-shadow:0 1px 4px rgb(var(--rgb-black) / 10%), 0 3px 8px rgb(var(--rgb-black) / 7%);pointer-events:none;border-radius:.5rem;align-items:center;gap:.2rem;padding:.65rem .7rem;text-decoration:none;display:flex;position:absolute;top:0;left:0;right:0}.aside-body .message-card:hover{border-color:rgb(var(--rgb-brand) / 25%);box-shadow:0 3px 10px rgb(var(--rgb-black) / 10%)}html[data-input-mode=keyboard] .aside-body .message-card:focus-visible,html[data-input-mode=keyboard] .aside-body .aside-links-card a:focus-visible,html[data-input-mode=keyboard] .aside-body .share-link:focus-visible,html[data-input-mode=keyboard] .aside-body .aside-copyright-card a:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.aside-body .msg-hashtag{color:var(--color-brand);flex-shrink:0;font-size:.75rem;font-weight:700}.aside-body .msg-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8rem;font-weight:600;overflow:hidden}.aside-body .msg-count{color:var(--color-white);background:var(--color-brand);border-radius:.15rem;flex-shrink:0;padding:.06rem .35rem;font-size:.6rem;font-weight:700;line-height:1.3}.aside-body .stack-footer{text-align:center;color:rgb(var(--rgb-brand) / 35%);letter-spacing:.02em;padding:.45rem 0 0;font-size:.55rem;font-weight:500;line-height:1}.dark .aside-body .message-card{background:rgb(var(--rgb-dark-message));border:1px solid rgb(var(--rgb-accent-cyan) / 22%);box-shadow:0 2px 6px rgb(var(--rgb-black) / 40%)}.dark .aside-body .message-card:hover{border-color:rgb(var(--rgb-accent-cyan) / 30%);box-shadow:0 4px 12px rgb(var(--rgb-black) / 45%)}html.dark[data-input-mode=keyboard] .aside-body .message-card:focus-visible,html.dark[data-input-mode=keyboard] .aside-body .aside-links-card a:focus-visible,html.dark[data-input-mode=keyboard] .aside-body .share-link:focus-visible,html.dark[data-input-mode=keyboard] .aside-body .aside-copyright-card a:focus-visible{outline-color:var(--color-accent-cyan)}.dark .aside-body .msg-hashtag{color:var(--color-accent-cyan)}.dark .aside-body .msg-name{color:var(--text-on-dark)}.dark .aside-body .msg-count{background:var(--color-accent-cyan);color:var(--surface-dark-panel)}.dark .aside-body .stack-footer{color:rgb(var(--rgb-accent-cyan) / 35%)}@media screen and (width<=560px),screen and (height<=680px){.aside-body{height:100dvh;padding:max(.7rem, env(safe-area-inset-top)) .75rem max(.7rem, env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}.aside-body .aside-author-card,.aside-body .aside-links-card,.aside-body .aside-share-card,.aside-body .aside-tags-card,.aside-body .aside-copyright-card{border-radius:.68rem;flex-shrink:0;margin-bottom:.72rem;padding:.65rem}.aside-body .author-avatar{width:42px;height:42px}.aside-body .aside-tags-card{width:100%;padding:.58rem .62rem .52rem;overflow:hidden}.aside-body .card-stack{width:100%;height:56px}.aside-body .message-card{min-width:0;padding:.56rem .6rem}.aside-body .stack-footer{padding-top:.32rem}.aside-body .aside-copyright-card{align-self:stretch;width:100%;margin-bottom:0;padding:.55rem .65rem}}@media (hover:none){.aside-body .aside-author-card:hover,.aside-body .aside-links-card:hover,.aside-body .aside-share-card:hover,.aside-body .aside-tags-card:hover,.aside-body .aside-copyright-card:hover,.dark .aside-body .aside-author-card:hover,.dark .aside-body .aside-links-card:hover,.dark .aside-body .aside-share-card:hover,.dark .aside-body .aside-tags-card:hover,.dark .aside-body .aside-copyright-card:hover{transform:none}}.doc{--article-rule:rgb(var(--rgb-brand) / 14%);--article-rule-soft:rgb(var(--rgb-brand) / 5%);--article-meta-color:var(--text-tertiary);--article-summary-color:var(--text-secondary);--article-tag-surface:rgb(var(--rgb-brand) / 7%);--article-nav-surface:rgb(var(--rgb-brand) / 3%);--article-nav-surface-hover:rgb(var(--rgb-brand) / 7%);--article-heading-primary:var(--text-primary);--article-heading-strong:var(--text-strong);--article-heading-marker:var(--color-accent-pink);max-width:100%;box-shadow:rgb(var(--rgb-shadow-neutral) / 20%) 0px 7px 29px 0px;overflow-wrap:break-word;margin-top:2vh;margin-bottom:2vh;padding:1rem}.dark .doc{--article-rule:rgb(var(--rgb-accent-cyan) / 22%);--article-rule-soft:rgb(var(--rgb-accent-cyan) / 7%);--article-meta-color:var(--text-on-dark-soft);--article-summary-color:var(--text-on-dark-secondary);--article-tag-surface:rgb(var(--rgb-accent-cyan) / 8%);--article-nav-surface:rgb(var(--rgb-accent-cyan) / 4%);--article-nav-surface-hover:rgb(var(--rgb-accent-cyan) / 9%);--article-heading-primary:var(--text-on-dark-strong);--article-heading-strong:var(--text-on-dark);--article-heading-marker:var(--color-accent-cyan)}.doc .article-search-meta{clip:rect(0 0 0 0);white-space:nowrap;counter-increment:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.article-lead{border-bottom:1px solid var(--article-rule);margin:-.1rem 0 1.35rem;padding:.2rem .2rem 1rem;scroll-margin-top:4rem;position:relative}.article-lead:after{background:var(--color-brand);content:"";border-radius:1px;width:clamp(2.6rem,8%,4rem);height:2px;position:absolute;bottom:-1px;left:0}.dark .article-lead:after{background:var(--color-accent-cyan)}.doc .article-title{color:var(--text-primary);letter-spacing:-.018em;text-wrap:balance;counter-increment:none;border:0;margin:0;padding:0;font-size:clamp(1.55rem,2.6vw,2rem);line-height:1.3}.doc .article-title:before{content:none}.dark .doc .article-title{color:var(--text-on-dark-strong)}.dark .doc .article-description{color:var(--article-summary-color)}.doc .article-description{max-width:46rem;color:var(--article-summary-color);text-indent:0;text-wrap:pretty;margin:.42rem 0 0;font-size:.9rem;line-height:1.55}.article-lead-details{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem 1rem;margin-top:.65rem;display:flex}.article-meta{color:var(--article-meta-color);flex-wrap:wrap;align-items:center;gap:.55rem 1.15rem;font-size:.76rem;display:flex}.article-meta time,.article-meta span{align-items:center;gap:.35rem;display:inline-flex}.article-meta .iconfont{font-size:.8rem}.article-meta svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:.88rem;height:.88rem}.article-lead-tags{flex-wrap:wrap;gap:.45rem .75rem;display:flex}.doc .article-lead-tags a{background:var(--article-tag-surface);color:var(--color-brand);border-radius:.3rem;align-items:center;gap:.25rem;padding:.18rem .45rem;font-size:.72rem;font-weight:400;line-height:1.35;transition:background-color .2s,color .2s;display:inline-flex}.doc .article-lead-tags a:hover{background:var(--color-brand);color:var(--color-white)}html[data-input-mode=keyboard] .doc .article-lead-tags a:focus-visible,html[data-input-mode=keyboard] .doc .article-neighbor:focus-visible,html[data-input-mode=keyboard] .doc .article-related-item:focus-visible,html[data-input-mode=keyboard] .doc .code-copy-button:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.article-lead-tags .iconfont{font-size:.68rem}.dark .doc .article-lead-tags a{color:var(--color-accent-cyan)}.dark .doc .article-lead-tags a:hover{background:var(--color-accent-cyan);color:var(--surface-page-dark)}html.dark[data-input-mode=keyboard] .doc .article-lead-tags a:focus-visible,html.dark[data-input-mode=keyboard] .doc .article-neighbor:focus-visible,html.dark[data-input-mode=keyboard] .doc .article-related-item:focus-visible,html.dark[data-input-mode=keyboard] .doc .code-copy-button:focus-visible{outline-color:var(--color-accent-cyan)}.article-neighbors{border-top:1px solid var(--article-rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:1.35rem 0 .85rem;padding-top:.8rem;display:grid}.doc .article-neighbor{border:1px solid var(--article-rule);background:var(--article-nav-surface);min-width:0;min-height:3.7rem;color:var(--text-primary);border-radius:.45rem;flex-direction:column;justify-content:center;gap:.2rem;padding:.5rem .68rem;transition:border-color .22s,background-color .22s,transform .22s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden}.doc .article-neighbor:after{background:var(--color-brand);content:"";opacity:0;width:2px;transition:opacity .22s;position:absolute;top:0;bottom:0}.doc .article-neighbor-previous:after{left:0}.doc .article-neighbor-next{text-align:right;grid-column:2}.doc .article-neighbor-next:after{right:0}.doc .article-neighbor:hover{border-color:rgb(var(--rgb-brand) / 28%);background:var(--article-nav-surface-hover);color:var(--color-brand)}.doc .article-neighbor-previous:hover{transform:translate(-2px)}.doc .article-neighbor-next:hover{transform:translate(2px)}.doc .article-neighbor:hover:after{opacity:1}.article-neighbor-direction{color:var(--article-meta-color);align-items:center;gap:.25rem;font-size:.68rem;font-weight:400;display:flex}.article-neighbor-next .article-neighbor-direction{justify-content:flex-end}.article-neighbor-direction .iconfont{font-size:.64rem;transition:transform .22s}.article-neighbor-previous:hover .article-neighbor-direction .iconfont{transform:translate(-2px)}.article-neighbor-next:hover .article-neighbor-direction .iconfont{transform:translate(2px)}.article-neighbor strong{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;line-height:1.45;overflow:hidden}.dark .doc .article-neighbor{color:var(--text-on-dark)}.dark .doc .article-neighbor:after{background:var(--color-accent-cyan)}.dark .doc .article-neighbor:hover{border-color:rgb(var(--rgb-accent-cyan) / 32%);color:var(--color-accent-cyan)}.article-related{border-top:1px solid var(--article-rule);margin:1.45rem 0 1rem;padding-top:1rem}.doc .article-related>h2{color:var(--article-meta-color);letter-spacing:.06em;align-items:center;gap:.42rem;margin:0 0 .58rem;padding:0;font-size:.72rem;font-weight:600;display:flex}.doc .article-related>h2:before{background:var(--color-brand);content:"";opacity:.8;border-radius:999px;flex:none;width:.18rem;height:.82rem;display:block;position:static;transform:none}.dark .doc .article-related>h2:before{background:var(--color-accent-cyan)}.article-related-list{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.5rem;display:grid}.doc .article-related-item{border:1px solid var(--article-rule);background:var(--article-nav-surface);min-width:0;min-height:4rem;color:var(--text-primary);border-radius:.4rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.58rem .68rem;transition:border-color .2s,background-color .2s,color .2s;display:grid}.article-related-copy{flex-direction:column;gap:.16rem;min-width:0;display:flex}.doc .article-related-copy>strong{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;line-height:1.4;overflow:hidden}.doc .article-related-copy>small{color:var(--article-meta-color);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:400;line-height:1.35;overflow:hidden}.doc .article-related-item>svg{fill:none;width:.9rem;height:.9rem;stroke:var(--article-meta-color);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transition:stroke .2s,transform .2s}.doc .article-related-item:hover{border-color:rgb(var(--rgb-brand) / 28%);background:var(--article-nav-surface-hover);color:var(--color-brand)}.doc .article-related-item:hover>svg{stroke:var(--color-brand);transform:translate(2px)}.dark .doc .article-related-item{color:var(--text-on-dark)}.dark .doc .article-related-item:hover{color:var(--color-accent-cyan);border-color:rgb(var(--rgb-accent-cyan) / 32%)}.dark .doc .article-related-item:hover>svg{stroke:var(--color-accent-cyan)}.dark .article-container{box-shadow:rgb(var(--rgb-accent-cyan) / 40%) 0px 0px 8px}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{overflow-wrap:break-word;letter-spacing:-.012em;margin-left:0;margin-right:0;padding-left:.72rem;line-height:1.45;position:relative}.article-content h1:before,.article-content h2:before,.article-content h3:before,.article-content h4:before,.article-content h5:before,.article-content h6:before{width:var(--article-heading-marker-width);height:var(--article-heading-marker-height);background:var(--article-heading-marker);content:"";opacity:var(--article-heading-marker-opacity);border-radius:999px;position:absolute;top:.725em;left:0;transform:translateY(-50%)}.article-content h1{--article-heading-marker-width:.26rem;--article-heading-marker-height:1.08em;--article-heading-marker-opacity:1;color:var(--article-heading-primary);margin-top:2rem;margin-bottom:.8rem;font-size:clamp(1.32rem,2.1vw,1.5rem);font-weight:700}.article-content h2{--article-heading-marker-width:.24rem;--article-heading-marker-height:.94em;--article-heading-marker-opacity:.9;color:var(--article-heading-primary);margin-top:1.9rem;margin-bottom:.72rem;font-size:clamp(1.18rem,1.8vw,1.3rem);font-weight:700}.article-content h3{--article-heading-marker-width:.22rem;--article-heading-marker-height:.8em;--article-heading-marker-opacity:.8;color:var(--article-heading-strong);margin-top:1.5rem;margin-bottom:.6rem;font-size:clamp(1.06rem,1.45vw,1.12rem);font-weight:650}.article-content h4{--article-heading-marker-width:.2rem;--article-heading-marker-height:.66em;--article-heading-marker-opacity:.7;color:var(--article-heading-strong);margin-top:1.28rem;margin-bottom:.54rem;font-size:1rem;font-weight:700}.article-content h5{--article-heading-marker-width:.18rem;--article-heading-marker-height:.5em;--article-heading-marker-opacity:.6;color:var(--article-heading-strong);margin-top:1.12rem;margin-bottom:.48rem;font-size:1rem;font-weight:650}.article-content h6{--article-heading-marker-width:.18rem;--article-heading-marker-height:.3em;--article-heading-marker-opacity:.5;color:var(--article-heading-strong);margin-top:1.02rem;margin-bottom:.44rem;font-size:1rem;font-weight:600}.doc p,.doc blockquote p{overflow-wrap:break-word;margin:.8rem 0;line-height:1.6}.dark .article-container p{color:var(--text-on-dark)}.doc blockquote p:before{content:"";color:var(--color-brand);margin-right:.2rem;padding:.2rem;display:inline-block;font-family:iconfont!important}.dark .article-container blockquote p:before{color:var(--text-blue-dark)}.doc pre{border:1px solid var(--border-code);max-width:100%;box-shadow:0 2px 8px rgb(var(--rgb-black) / 8%);border-radius:.5rem;margin:.8rem 0;padding:2.4rem .6rem .6rem;font-size:1rem;position:relative;overflow:hidden;background-color:var(--surface-code)!important}.doc pre:before{content:"";background-color:var(--terminal-red);width:12px;height:12px;box-shadow:20px 0 0 var(--terminal-yellow), 40px 0 0 var(--terminal-green);z-index:1;border-radius:50%;position:absolute;top:.6rem;left:.6rem}.doc .code-copy-button{z-index:2;border:1px solid rgb(var(--rgb-brand) / 15%);background:rgb(var(--rgb-white) / 35%);height:1.75rem;color:var(--text-secondary);cursor:pointer;border-radius:.32rem;align-items:center;gap:.25rem;padding:0 .42rem;font-family:inherit;font-size:.66rem;transition:border-color .18s,background-color .18s,color .18s;display:inline-flex;position:absolute;top:.34rem;right:.45rem}.doc .code-copy-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:.78rem;height:.78rem}.doc .code-copy-button:hover,.doc .code-copy-button.is-copied{border-color:rgb(var(--rgb-brand) / 30%);background:rgb(var(--rgb-brand) / 8%);color:var(--color-brand)}.dark .doc pre{border-color:var(--text-strong);box-shadow:0 2px 8px rgb(var(--rgb-black) / 30%);background-color:var(--surface-dark-code)!important}.dark .doc .code-copy-button{border-color:rgb(var(--rgb-accent-cyan) / 16%);background:rgb(var(--rgb-white) / 4%);color:var(--text-on-dark-soft)}.dark .doc .code-copy-button:hover,.dark .doc .code-copy-button.is-copied{border-color:rgb(var(--rgb-accent-cyan) / 34%);background:rgb(var(--rgb-accent-cyan) / 9%);color:var(--color-accent-cyan)}.doc pre code{overflow-wrap:break-word;background-color:#0000;max-width:calc(100% - 2rem);padding:0;overflow-x:auto;color:var(--text-strong)!important}.dark .doc pre code{color:var(--text-on-dark)!important}.doc .astro-code span,.doc .shiki span{color:var(--shiki-light,var(--text-strong))!important}.dark .doc .astro-code span,.dark .doc .shiki span{color:var(--shiki-dark,var(--text-on-dark))!important}.doc code{white-space:pre-wrap;background-color:var(--color-slate);max-width:100%;color:var(--text-on-dark);border-radius:.2rem;padding:0 .3rem;font-size:1rem;font-weight:700;line-height:1rem}.doc>p code,.doc blockquote p code{background-color:var(--color-slate);color:var(--text-on-dark);border:none}.dark .doc>p code,.dark .doc blockquote p code{color:var(--text-on-dark);background-color:var(--surface-dark-control);border:1px solid var(--border-dark-code)}.doc ul,.doc ol{margin-left:1.2rem;line-height:1.6}.doc li{margin-top:.4rem;margin-bottom:.2rem}.dark .article-container ul,.dark .article-container ol{color:var(--text-on-dark)}.doc table{border-collapse:collapse;width:100%;margin:.8rem 0;overflow-x:auto}.doc th{text-align:left;color:var(--text-strong);border:1px solid var(--border-light);padding:.6rem 1rem;font-weight:700}.dark .doc th{color:var(--text-on-dark);border-color:var(--border-dark-soft)}.doc tbody tr{border-bottom:1px solid var(--border-light)}.dark .doc tbody tr{border-color:var(--border-dark-soft)}.doc tbody tr:nth-child(2n){background-color:var(--surface-soft)}.dark .doc tbody tr:nth-child(2n){background-color:var(--surface-dark-row)}.doc td{border:1px solid var(--border-light);padding:.6rem 1rem}.dark .doc td{border-color:var(--border-dark-soft);color:var(--text-on-dark)}.doc hr{margin:.8rem 0}.dark .article-container hr{color:var(--rule-dark)}.doc img{background-color:#0000;border-radius:.3rem;max-width:100%;height:auto;margin:.8rem auto;display:block}.article-container.doc>p,.article-container.doc .article-content>p{text-indent:2em}.article-container blockquote p{text-indent:0}.doc a{color:var(--color-brand);text-decoration:none}.doc a:hover{color:var(--color-brand-hover)}.dark .article-container a{color:var(--text-on-dark)}.dark .article-container a:hover{color:var(--text-link-dark-hover)}.dark .article-container blockquote code{color:var(--text-on-dark);background-color:var(--surface-dark-control)}@media screen and (width<=488px){.article-lead{margin-top:0;margin-bottom:1.15rem;padding:.05rem 0 .9rem}.doc .article-title{font-size:1.5rem}.doc .article-description{font-size:.86rem}.article-lead-details{justify-content:flex-start;gap:.5rem .8rem;margin-top:.55rem}.article-meta{gap:.4rem .8rem}.article-neighbors{grid-template-columns:1fr;gap:.55rem}.article-related-list{grid-template-columns:1fr}.doc .article-neighbor-next{grid-column:1}}@media (prefers-reduced-motion:reduce){.doc .article-neighbor,.doc .article-related-item,.doc .code-copy-button,.article-neighbor-direction .iconfont,.doc .article-lead-tags a{transition:none}}.article-toc{--toc-island-surface:rgb(var(--rgb-dark-message) / 96%);--toc-island-panel:rgb(var(--rgb-dark-message) / 94%);--toc-island-border:rgb(var(--rgb-white) / 12%);--toc-island-text:var(--text-on-dark);--toc-island-muted:var(--text-on-dark-soft);--toc-island-active:var(--color-accent-cyan);--toc-summary-height:1.7rem;--toc-summary-width:5.25rem;--toc-summary-radius:.76rem;--toc-panel-radius:.78rem;z-index:1000;width:min(34rem,100vw - .75rem);height:var(--toc-summary-height);color:var(--toc-island-text);pointer-events:none;margin:0;transition:left .3s;position:fixed;top:.4rem;left:50%;transform:translate(-50%)}.aside-show .article-toc{left:calc(50% + 240px)}.article-toc-summary{z-index:1;width:min(var(--toc-summary-width), 100%);height:var(--toc-summary-height);border:1px solid var(--toc-island-border);border-radius:var(--toc-summary-radius);background:var(--toc-island-surface);box-shadow:0 .35rem 1rem rgb(var(--rgb-black) / 14%), inset 0 1px 0 rgb(var(--rgb-white) / 5%);backdrop-filter:blur(16px)saturate(120%);color:var(--toc-island-text);cursor:pointer;letter-spacing:.02em;pointer-events:auto;user-select:none;justify-content:center;align-items:center;margin:0 auto;padding:0 calc(.46rem + 6px);font-size:.66rem;font-weight:400;transition:border-color .2s,background-color .2s,box-shadow .2s,opacity .16s,transform .2s cubic-bezier(.22,1,.36,1),visibility linear;display:flex;position:relative;overflow:hidden}.article-toc-summary>span{white-space:nowrap;min-width:max-content;margin:0 auto;display:block}.article-toc-summary>span.is-overflowing{animation:article-toc-title-scroll var(--toc-title-duration,1s) linear .12s infinite alternate both;will-change:transform;margin:0}.article-toc-summary.has-overflowing-title{justify-content:flex-start}@keyframes article-toc-title-scroll{0%,10%{transform:translate(0,0)}90%,to{transform:translate3d(calc(-1 * var(--toc-title-scroll-distance)), 0, 0)}}.article-toc-summary:focus{outline:none}.article-toc-summary:hover{border-color:rgb(var(--rgb-accent-cyan) / 32%);background:rgb(var(--rgb-dark-message) / 98%);box-shadow:0 .4rem 1.1rem rgb(var(--rgb-black) / 18%), 0 0 .55rem rgb(var(--rgb-accent-cyan) / 10%), inset 0 1px 0 rgb(var(--rgb-white) / 6%)}.article-toc.is-open .article-toc-summary,.article-toc.is-closing .article-toc-summary{box-shadow:none;opacity:0;pointer-events:none;visibility:hidden;background:0 0;border-color:#0000;transition-delay:0s,0s,0s,0s,0s,.16s;transform:scale(.9)}html[data-input-mode=keyboard] .article-toc-summary:focus-visible{outline:2px solid var(--toc-island-active);outline-offset:2px}html[data-input-mode=keyboard] .article-toc.is-open .article-toc-summary:focus-visible{color:var(--toc-island-active);text-decoration:underline;text-decoration-color:rgb(var(--rgb-accent-cyan) / 48%);text-underline-offset:.2rem;outline:none}.article-toc nav{z-index:0;border:1px solid var(--toc-island-border);border-radius:var(--toc-panel-radius);background:var(--toc-island-panel);width:100%;box-shadow:0 .9rem 2.2rem rgb(var(--rgb-black) / 26%), inset 0 1px 0 rgb(var(--rgb-white) / 5%);backdrop-filter:blur(18px)saturate(125%);pointer-events:auto;transform-origin:top;padding:.55rem;animation:.3s cubic-bezier(.22,1,.36,1) article-toc-expand;position:absolute;top:0;left:50%;overflow:hidden;transform:translate(-50%)}.article-toc.is-closing nav{pointer-events:none;animation:.24s cubic-bezier(.4,0,.6,1) both article-toc-collapse}.article-toc nav[hidden]{display:none}@keyframes article-toc-expand{0%{clip-path:inset(0 42% calc(100% - var(--toc-summary-height)) 42% round var(--toc-summary-radius));opacity:.88}to{clip-path:inset(0 0 0 0 round var(--toc-panel-radius));opacity:1}}@keyframes article-toc-collapse{0%{clip-path:inset(0 0 0 0 round var(--toc-panel-radius));opacity:1}to{clip-path:inset(0 42% calc(100% - var(--toc-summary-height)) 42% round var(--toc-summary-radius));opacity:.88}}.article-toc-viewport{cursor:grab;touch-action:pan-y;user-select:none;border-radius:.52rem;outline:none;overflow:hidden}.article-toc-viewport.is-dragging{cursor:grabbing}html[data-input-mode=keyboard] .article-toc-viewport:focus-visible{outline:1px solid rgb(var(--rgb-accent-cyan) / 42%);outline-offset:2px}.article-toc-track{will-change:transform;align-items:stretch;transition:transform .32s cubic-bezier(.22,1,.36,1);display:flex}.article-toc-slide{flex:0 0 100%;min-width:100%}.doc .article-toc-heading-list{border:1px solid rgb(var(--rgb-white) / 6%);background:rgb(var(--rgb-white) / 2.5%);overscroll-behavior:contain;scrollbar-color:rgb(var(--rgb-accent-cyan) / 28%) transparent;scrollbar-width:thin;border-radius:.5rem;min-height:8.6rem;max-height:min(15rem,46vh);margin:0;padding:.42rem;list-style:none;overflow-y:auto}.doc .article-toc-heading-list::-webkit-scrollbar{width:3px;display:block}.doc .article-toc-heading-list::-webkit-scrollbar-thumb{background:rgb(var(--rgb-accent-cyan) / 28%);border-radius:2px}.article-toc-heading-list li{margin:0}.doc .article-toc-parent-item{border-bottom:1px solid rgb(var(--rgb-accent-cyan) / 12%);margin-bottom:.3rem;padding-bottom:.38rem}.doc .article-toc-parent-link{color:var(--toc-island-text);text-overflow:ellipsis;white-space:nowrap;padding:.32rem .5rem;font-size:.76rem;font-weight:700;line-height:1.45;display:block;overflow:hidden}.doc .article-toc-heading-list>li:not(.article-toc-parent-item) a{color:var(--toc-island-muted);text-overflow:ellipsis;white-space:nowrap;-webkit-user-drag:none;border-radius:.32rem;padding:.38rem .5rem;font-size:.73rem;font-weight:400;line-height:1.4;transition:background-color .18s,color .18s;display:block;position:relative;overflow:hidden}.doc .article-toc-heading-list>li:not(.article-toc-parent-item) a:hover{background:rgb(var(--rgb-accent-cyan) / 10%);color:var(--toc-island-active)}.doc .article-toc-heading-list a.is-active{background:rgb(var(--rgb-accent-cyan) / 12%);color:var(--toc-island-active);padding-left:.72rem;font-weight:700}.doc .article-toc-heading-list a.is-active:before{background:var(--toc-island-active);content:"";width:2px;box-shadow:0 0 .3rem rgb(var(--rgb-accent-cyan) / 52%);border-radius:1px;position:absolute;top:.43rem;bottom:.43rem;left:.32rem}html[data-input-mode=keyboard] .doc .article-toc a:focus-visible{outline:2px solid var(--toc-island-active);outline-offset:-1px}.article-toc-level-switcher{grid-template-columns:1fr auto 1fr;align-items:center;gap:.45rem;margin-top:.48rem;padding:0 .14rem;display:grid}.article-toc-level-switcher button{width:max-content;color:var(--toc-island-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:.28rem;padding:.18rem .26rem;font-size:.58rem;transition:color .18s;display:inline-flex}.article-toc-level-switcher button:last-child{margin-left:auto}.article-toc-level-switcher button:hover:not(:disabled){color:var(--toc-island-active)}.article-toc-level-switcher button:disabled{cursor:default;opacity:.25}.article-toc-level-switcher button i{border-bottom:1px solid;border-left:1px solid;width:.36rem;height:.36rem;transform:rotate(45deg)}.article-toc-level-switcher button:last-child i{transform:rotate(225deg)}.article-toc-level-switcher>span{color:var(--toc-island-muted);font-variant-numeric:tabular-nums;font-size:.56rem}.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{scroll-margin-top:4rem}@media screen and (width<=488px){.article-toc{width:calc(100vw - .75rem)}.article-toc nav{padding:.45rem}.doc .article-toc-heading-list{min-height:8.2rem;padding:.38rem}.doc .article-toc-heading-list>li:not(.article-toc-parent-item) a{padding-top:.4rem;padding-bottom:.4rem}}@media (prefers-reduced-motion:reduce){.article-toc,.article-toc-summary,.article-toc-track,.doc .article-toc a{transition:none}.article-toc nav{animation:none}.article-toc-summary>span.is-overflowing{text-overflow:ellipsis;will-change:auto;min-width:0;max-width:100%;animation:none;overflow:hidden}}@media screen and (width>=488px){.article-toc{width:min(34rem,80vw - 1rem);top:2.4rem}}.reading-flight[data-astro-cid-kw4rgypl]{--reading-progress:0%;z-index:998;width:2.5rem;height:4.75rem;color:var(--color-brand);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:0;padding:0;transition:opacity .25s,transform .25s,color .2s;position:fixed;top:50%;right:.1rem;transform:translate(.65rem,-50%)}.reading-flight[data-astro-cid-kw4rgypl].is-visible{opacity:.82;pointer-events:auto;transform:translateY(-50%)}.reading-flight[data-astro-cid-kw4rgypl]:hover,.reading-flight[data-astro-cid-kw4rgypl].is-returning{color:var(--color-brand-hover);opacity:1;transform:translate(-.12rem,-50%)}html[data-input-mode=keyboard] .reading-flight[data-astro-cid-kw4rgypl]:focus-visible{outline-offset:1px;opacity:1;border-radius:1.1rem;outline:1px solid}.reading-flight-route[data-astro-cid-kw4rgypl]{background-color:rgb(var(--rgb-brand) / 8%);width:6px;box-shadow:inset 0 0 0 1px rgb(var(--rgb-brand) / 5%);border-radius:4px;position:absolute;top:.55rem;bottom:.55rem;left:50%;overflow:hidden;transform:translate(-50%)}.reading-flight-route[data-astro-cid-kw4rgypl]:after{background:repeating-linear-gradient(to bottom, rgb(var(--rgb-brand) / 17%) 0 2px, transparent 2px 6px);content:"";width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.reading-flight-trail[data-astro-cid-kw4rgypl]{width:100%;height:var(--reading-progress);background:linear-gradient(to bottom, rgb(var(--rgb-brand) / 7%), rgb(var(--rgb-brand) / 24%));transition:height 80ms linear;position:absolute;top:0;left:0}.reading-flight-aircraft[data-astro-cid-kw4rgypl]{pointer-events:none;transform-origin:50%;width:1.85rem;height:1.85rem;transition:top 80ms linear,transform .28s;display:block;position:absolute;top:.55rem;left:50%;transform:translate(-50%,-50%)}.reading-flight-plane[data-astro-cid-kw4rgypl]{z-index:1;fill:currentColor;width:100%;height:100%;filter:drop-shadow(0 1px 3px rgb(var(--rgb-white) / 85%));display:block;position:relative;overflow:visible}.reading-flight-plane-wing-far[data-astro-cid-kw4rgypl]{opacity:.58}.reading-flight-plane-flap[data-astro-cid-kw4rgypl]{fill:rgb(var(--rgb-white) / 25%)}.reading-flight-plane-fold[data-astro-cid-kw4rgypl]{fill:none;stroke:rgb(var(--rgb-white) / 46%);stroke-linecap:round;stroke-width:.75px}.reading-flight-exhaust[data-astro-cid-kw4rgypl]{grid-template-columns:repeat(3,1.25px);gap:2.75px;height:.78rem;display:grid;position:absolute;bottom:calc(100% - .32rem);left:50%;transform:translate(-50%)}.reading-flight-exhaust[data-astro-cid-kw4rgypl] i[data-astro-cid-kw4rgypl]{background:rgb(var(--rgb-brand) / 70%);height:100%;display:block;mask-image:linear-gradient(#0000002e,#000)}.reading-flight-exhaust[data-astro-cid-kw4rgypl] i[data-astro-cid-kw4rgypl]:nth-child(2){background:rgb(var(--rgb-brand) / 86%)}.reading-flight-headlights[data-astro-cid-kw4rgypl]{height:.3rem;filter:drop-shadow(0 0 2px rgb(var(--rgb-brand) / 50%));grid-template-columns:repeat(2,1.35px);gap:5.25px;display:grid;position:absolute;top:calc(100% - .22rem);left:50%;transform:translate(-50%)}.reading-flight-headlights[data-astro-cid-kw4rgypl] i[data-astro-cid-kw4rgypl]{background:rgb(var(--rgb-brand) / 78%);height:100%;display:block;position:relative;mask-image:linear-gradient(#000,#00000024)}.reading-flight-headlights[data-astro-cid-kw4rgypl] i[data-astro-cid-kw4rgypl]:before{background:rgb(var(--rgb-white) / 82%);content:"";border-radius:50%;width:2px;height:2px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.reading-flight[data-astro-cid-kw4rgypl]:hover .reading-flight-aircraft[data-astro-cid-kw4rgypl]{transform:translate(-50%,-50%)rotate(180deg)scale(1.06)}.reading-flight[data-astro-cid-kw4rgypl].is-returning .reading-flight-aircraft[data-astro-cid-kw4rgypl]{transform:translate(-50%,-50%)rotate(180deg)}.dark .reading-flight[data-astro-cid-kw4rgypl]{color:var(--color-accent-cyan)}.dark .reading-flight[data-astro-cid-kw4rgypl]:hover,.dark .reading-flight[data-astro-cid-kw4rgypl].is-returning{color:var(--color-accent-cyan-hover)}.dark .reading-flight-route[data-astro-cid-kw4rgypl]{background-color:rgb(var(--rgb-accent-cyan) / 9%);box-shadow:inset 0 0 0 1px rgb(var(--rgb-accent-cyan) / 6%)}.dark .reading-flight-route[data-astro-cid-kw4rgypl]:after{background:repeating-linear-gradient(to bottom, rgb(var(--rgb-accent-cyan) / 19%) 0 2px, transparent 2px 6px)}.dark .reading-flight-trail[data-astro-cid-kw4rgypl]{background:linear-gradient(to bottom, rgb(var(--rgb-accent-cyan) / 8%), rgb(var(--rgb-accent-cyan) / 27%))}.dark .reading-flight-exhaust[data-astro-cid-kw4rgypl] i[data-astro-cid-kw4rgypl]{background:rgb(var(--rgb-accent-cyan) / 82%)}.dark .reading-flight-exhaust[data-astro-cid-kw4rgypl] i[data-astro-cid-kw4rgypl]:nth-child(2){background:rgb(var(--rgb-accent-cyan) / 96%)}.dark .reading-flight-headlights[data-astro-cid-kw4rgypl] i[data-astro-cid-kw4rgypl]{background:rgb(var(--rgb-accent-cyan) / 92%)}.dark .reading-flight-headlights[data-astro-cid-kw4rgypl]{filter:drop-shadow(0 0 2px rgb(var(--rgb-accent-cyan) / 72%))}.dark .reading-flight-plane[data-astro-cid-kw4rgypl]{filter:drop-shadow(0 2px 4px rgb(var(--rgb-black) / 58%))}@media screen and (width<=488px){.reading-flight[data-astro-cid-kw4rgypl]{width:2.3rem;height:4.4rem;right:0}.reading-flight-plane[data-astro-cid-kw4rgypl]{width:100%;height:100%}.reading-flight-aircraft[data-astro-cid-kw4rgypl]{width:1.65rem;height:1.65rem}}@media (prefers-reduced-motion:reduce){.reading-flight[data-astro-cid-kw4rgypl],.reading-flight-trail[data-astro-cid-kw4rgypl],.reading-flight-aircraft[data-astro-cid-kw4rgypl]{transition:none}}.share-container{margin:1rem 0;display:inline-block}.share-btn{background-color:var(--color-brand);color:var(--color-white);cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;transition:all .3s;display:inline-flex}.share-btn:hover{background-color:var(--color-brand-hover);transform:translateY(-2px)}html[data-input-mode=keyboard] .share-btn:focus-visible,html[data-input-mode=keyboard] .copy-btn:focus-visible,html[data-input-mode=keyboard] .share-close:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.share-overlay{background-color:rgb(var(--rgb-black) / 70%);z-index:999999;opacity:0;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.share-overlay[hidden]{display:none}.share-overlay.show{opacity:1}.share-card{background-color:var(--color-white);width:90%;max-width:400px;box-shadow:0 20px 60px rgb(var(--rgb-black) / 30%);border-radius:1rem;transition:transform .3s;position:relative;overflow:hidden;transform:scale(.9)}.share-close{z-index:2;border:1px solid rgb(var(--rgb-white) / 24%);width:2rem;height:2rem;color:var(--color-white);background:rgb(var(--rgb-black) / 28%);backdrop-filter:blur(8px);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:color .2s,border-color .2s,background-color .2s;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.share-close:hover{color:var(--color-accent-cyan);border-color:rgb(var(--rgb-accent-cyan) / 46%);background:rgb(var(--rgb-black) / 42%)}.share-close svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8px;width:1rem;height:1rem}.share-overlay.show .share-card{transform:scale(1)}.share-card-header{height:150px;overflow:hidden}.share-card-banner{background-image:var(--wallpaper);filter:blur();background-position:center bottom 28%;background-size:cover;width:100%;height:100%}.share-card-content{padding:1.5rem}.share-card-title{color:var(--text-primary);margin:0 0 .5rem;font-size:1.3rem;font-weight:600;line-height:1.4}.share-card-desc{color:var(--text-secondary);margin:0 0 1rem;font-size:.9rem;line-height:1.6}.share-card-link{gap:.5rem;margin-bottom:1.5rem;display:flex}.share-card-link input{border:1px solid var(--border-light);background-color:var(--surface-soft);color:var(--text-strong);border-radius:.5rem;flex:1;padding:.5rem 1rem;font-size:.85rem}.copy-btn{background-color:var(--color-brand);color:var(--color-white);cursor:pointer;white-space:nowrap;border:none;border-radius:.5rem;align-items:center;gap:.3rem;padding:.5rem 1rem;font-size:.85rem;transition:all .3s;display:flex}.copy-btn:hover{background-color:var(--color-brand-hover);transform:translateY(-1px)}.share-card-qrcode{text-align:center;margin-bottom:.5rem}.share-card-qrcode canvas{border:2px solid var(--border-light);background-color:var(--color-white);border-radius:.5rem;margin:0 auto;padding:.5rem;display:block}.qrcode-tip{color:var(--text-muted);margin:.2rem 0 0;font-size:.8rem;line-height:1}.share-feedback{min-height:1.2em;color:var(--color-brand);text-align:center;margin:.45rem 0 0;font-size:.78rem;line-height:1.2}html.dark .share-btn{background-color:var(--color-accent-cyan)}html.dark .share-btn:hover{background-color:var(--color-accent-cyan-hover)}html.dark .share-card{background-color:var(--surface-dark-panel)}html.dark .share-card-title{color:var(--text-on-dark)}html.dark .share-card-desc{color:var(--text-on-dark-secondary)}html.dark .share-card-link input{background-color:var(--surface-dark-input);border-color:var(--border-dark-input);color:var(--text-on-dark)}html.dark .copy-btn{background-color:var(--color-accent-cyan)}html.dark .copy-btn:hover{background-color:var(--color-accent-cyan-hover)}html.dark .share-card-qrcode canvas{border-color:var(--border-dark-input)}html.dark .qrcode-tip{color:var(--text-on-dark-muted)}html.dark .share-feedback{color:var(--color-accent-cyan)}html.dark[data-input-mode=keyboard] .share-btn:focus-visible,html.dark[data-input-mode=keyboard] .copy-btn:focus-visible,html.dark[data-input-mode=keyboard] .share-close:focus-visible{outline-color:var(--color-accent-cyan)}@media (prefers-reduced-motion:reduce){.share-overlay,.share-card,.share-btn,.copy-btn,.share-close{transition:none}}
