:root{--font-family-code:'Menlo', 'Monaco', 'Consolas', 'Courier New', 'Monospace'}html{scroll-behavior:smooth}body{margin:0}.container-single .article-header{margin-bottom:32px}.container-single .article-title{color:#333;font-size:1.8rem;font-weight:500;margin:15px 0 5px}.container-list .article-title{font-size:1.5rem;font-weight:500;line-height:1.4;margin:12px 0 6px}.article-title a{background-image:linear-gradient(#4a8fd4,#4a8fd4);background-position:50% 100%;background-repeat:no-repeat;background-size:0% 2px;box-decoration-break:clone;color:#333;display:inline;text-decoration:none;transition:background-size .2s ease-in-out,color .2s ease-in-out}.article-title a:hover{background-size:100% 2px;color:#4a8fd4}.article-cover{display:block;margin-bottom:16px;margin-top:16px;object-fit:cover;width:100%}.article-meta{color:#888;display:flex;flex-wrap:wrap;font-size:.8125rem;gap:8px 14px;margin-top:6px}.article-meta .article-meta-item{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.article-meta svg{fill:#999;height:16px;width:16px}.article-tags{gap:6px!important}.article-tag{align-items:center;background-color:#f0f0f0;color:#666;display:flex;font-size:.75rem;padding:2px 4px;text-decoration:none;transition:background-color .2s,color .2s}.article-tag span{display:inline-block;line-height:1;transform:translateY(-1px)}.article-tag:hover{background-color:#e0e0e0;color:#444}.article-summary{color:#333;line-height:1.6;margin:12px 0 0}.article-outdated-tips{background-color:#ffeebe;border-left:4px solid #ffb153;color:#333;display:none;padding:8px 16px}.article-outdated-tips p{margin:0}.article-outdated-tips-show{display:block}.article-counter{display:none!important}.article-counter-show{display:flex!important}.article{color:#333;font-size:1rem}.article h1,.article h2,.article h3,.article h4,.article h5,.article h6{color:#333;font-weight:500;letter-spacing:.01em;margin:24px 0 12px}.article h1 .header-anchor,.article h2 .header-anchor,.article h3 .header-anchor,.article h4 .header-anchor,.article h5 .header-anchor,.article h6 .header-anchor{margin-left:6px;opacity:0}.article h1:hover .header-anchor,.article h2:hover .header-anchor,.article h3:hover .header-anchor,.article h4:hover .header-anchor,.article h5:hover .header-anchor,.article h6:hover .header-anchor{opacity:1}.article h1{font-size:1.5rem}.article h2{font-size:1.4rem}.article h3{font-size:1.3rem}.article h4{font-size:1.2rem}.article h5{font-size:1.1rem}.article h6{font-size:1rem}.article p{line-height:1.75;margin:16px 0}.article strong{color:#222;font-weight:600}.article em{color:#444}.article blockquote{background-color:#f0f7ff;border-left:4px solid #5a8ec7;color:#333;margin:16px 0;padding:8px 16px}.article blockquote :first-child{margin-top:0}.article blockquote :last-child{margin-bottom:0}.article blockquote blockquote{background-color:#dce8f5;border-left-color:#2a6aa8;margin-bottom:8px!important}.article blockquote blockquote blockquote{background-color:#c8d9ed;border-left-color:#1a5a98}.article>ol,.article>ul{margin-left:.5rem}.article ol>li>ol,.article ol>li>ul{margin-left:.5rem}.article li{line-height:1.7}.article ol{list-style-type:decimal;padding-left:1.375rem;text-indent:.125rem}.article ol>li::marker{color:#2979ff}.article li ol{list-style-type:lower-alpha}.article li ol>li::marker{color:#2979ff}.article li ol li ol,.article li ul li ol{list-style-type:lower-roman}.article li ol li ol>li::marker,.article li ul li ol>li::marker{color:#2979ff}.article ul{list-style-type:disc;padding-left:1.875rem;text-indent:-.375rem}.article ul>li::marker{color:#555;font-size:1.2rem;line-height:1}.article li ul{list-style-type:circle}.article li ul>li::marker{line-height:1}.article li ol li ul,.article li ul li ul{list-style-type:square}.article li ol li ul>li::marker,.article li ul li ul>li::marker{color:#555;line-height:1}.article pre{background-color:#f0f3f3!important;font-size:.875rem;line-height:1.4;margin:16px 0;overflow:auto;padding:8px;position:relative}.article pre code{font-family:var(--font-family-code)}.article .highlight{margin:16px 0;position:relative}.article .highlight pre{margin:0}.article .highlight tr>:first-child pre{background-color:#dfdfdf!important;padding-right:0}.article .highlight tr>:last-child pre{padding-left:12px;padding-right:12px}.article .highlight>:first-child{overflow:auto}.article .highlight .copy-button{border:none;color:#727272;opacity:0;padding:3px 4px 2px;position:absolute;right:4px;top:4px;transition:.5s}.article .highlight .copy-button:hover{background-color:#d1d1d1;color:#292d32;cursor:pointer}.article .highlight:hover .copy-button{opacity:1}.article table{background-color:#fff;border-collapse:collapse;border-spacing:0;margin:1rem 0 1.5rem;width:100%}.article thead{background-color:#f3f3f3;border-bottom:1px solid #d4d4d4}.article td,.article th{border:1px solid #e0e0e0;line-height:1.6;padding:8px 12px;text-align:left;vertical-align:top}.article th{color:#222;font-weight:600}.article :not(pre)>code{background-color:#f0f0f0;border:1px solid #e0e0e0;color:#c7254e;font-family:var(--font-family-code);font-size:.875em;margin:0 3px;padding:1px 5px}.article a{color:#4a8fd4;text-decoration:none}.article a:hover{color:#0056b3;border-bottom:1px solid #0056b3}.article p img{border:1px solid #d0d0d0;box-sizing:border-box;cursor:pointer;display:block;height:auto;margin:0 auto;max-width:100%;padding:4px}.article p svg{border:1px solid #d0d0d0;box-sizing:border-box;cursor:pointer;display:block;height:auto;padding:4px;width:100%}.article hr{border:none;border-top:1px solid #d0d0d0;margin:1.5rem 0}.article-copyright{background-color:#f2f2f2;color:#333;margin-top:50px}.article-copyright ul{border-left:4px solid #f06;list-style:none;padding:8px 16px}.article-copyright ul li{padding:6px 0}.article-copyright ul li a{border-bottom:1px solid #7d7d7d;color:#333;text-decoration:none;word-break:break-all}.article-copyright ul li a:hover{color:#0056b3;border-bottom:1px solid #0056b3}.article-copyright ul li strong{color:#555;font-weight:600;margin-right:16px}.article-footer{border-top:1px solid #d0d0d0;display:flex;gap:16px;margin-top:30px;padding-top:16px;width:100%}.article-footer>div{flex:1}.article-footer svg{fill:#999;flex-shrink:0;height:20px;width:20px}.article-footer .article-footer-next{text-align:right}.article-footer .article-footer-link{align-items:flex-start;color:#666;display:inline-flex;font-size:1rem;gap:8px;margin-top:8px;text-decoration:none;transition:color .2s}.article-footer .article-footer-link:hover{color:#0056b3}.article-footer .article-footer-label{color:#999;display:block;font-size:.85rem;line-height:1.4}.article-footer .article-footer-title{display:block;margin-top:4px;line-height:1.5;overflow-wrap:break-word}.image-preview{background-color:initial;inset:0;position:fixed;transition:background-color .3s ease;z-index:2000}.image-preview.image-preview-open{background-color:rgba(0,0,0,.7803921569)}.image-preview img{cursor:zoom-out;object-fit:contain;will-change:transform}.image-preview div{background-color:#fff;color-scheme:light;cursor:zoom-out}.image-preview div svg{display:block}.image-preview div svg foreignobject div{background-color:initial}.image-preview .image-preview-animate{transition:height .3s ease,transform .3s ease,width .3s ease}.container{align-items:flex-start;display:flex;margin:24px auto 48px;max-width:1087px;padding:0 20px}@media screen and (min-width:768px) and (max-width:1087px){.container{max-width:1087px}}@media screen and (min-width:0) and (max-width:767px){.container{max-width:767px}}.container .main-section{margin:0 auto;max-width:767px;width:100%}.article-wrapper{margin-top:40px;padding-top:36px}.article-wrapper:first-child{margin-top:16px;padding-top:0}.article-wrapper+.article-wrapper{border-top:1px solid #e0e0e0}.footer{border-top:1px solid #f0f0f0;color:#888;font-size:.875rem;padding:40px 0 48px;text-align:center}.footer a{color:#888;text-decoration:none;transition:color .2s}.footer a:hover{color:#555}.footer div{margin-top:4px}.footer-separator{margin:0 6px}.header{background-color:#fff;border-bottom:1px solid #ddd;color:#333}.header a{color:#333;text-decoration:none}.header-wrapper{align-items:center;box-sizing:border-box;display:flex;gap:10px;margin:0 auto;max-width:1088px;padding:14px 20px}@media screen and (min-width:0) and (max-width:767px){.header-wrapper{display:block}}.header-brand-wrapper{align-items:center;display:flex;gap:10px;min-height:40px}.header-brand{display:flex;gap:10px}.header-brand .header-brand-logo{width:32px}.header-brand .header-brand-title{font-size:20px;font-weight:600;margin:0}.header-menu{flex-grow:1;text-align:right}@media screen and (min-width:0) and (max-width:767px){.header-menu{display:grid;grid-template-rows:0fr;opacity:0;padding-top:0;position:relative;text-align:center;transition:grid-template-rows .3s ease,opacity .2s ease,padding-top .3s ease}.header-menu::before{background-color:#eaeaea;content:"";height:1px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.header-menu.header-menu-open{grid-template-rows:1fr;opacity:1;padding-top:8px}.header-menu.header-menu-open::before{opacity:1}.header-menu>*{overflow:hidden}}.header-menu-list{display:block;margin:0;padding:0}.header-menu-item{display:inline-block;list-style:none;margin:0 2px}@media screen and (min-width:0) and (max-width:767px){.header-menu-item{display:block}}.header-menu-item a{color:#666;display:block;font-size:.9375rem;padding:6px 14px;transition:background-color .2s,color .2s}.header-menu-item a:hover{background-color:#e8e8e8;color:#111}.header-menu-toggle{cursor:pointer;display:none;flex-direction:column;gap:4px;height:16px;justify-content:center;margin-left:auto;width:16px}@media screen and (min-width:0) and (max-width:767px){.header-menu-toggle{display:flex}}.header-menu-toggle .toggle-line{align-self:flex-end;background-color:#333;display:block;height:2px;transition:transform .3s ease,opacity .2s ease,width .2s ease;width:100%}.header-menu-toggle .toggle-line:nth-child(2){width:60%}.header-menu-toggle .toggle-line:nth-child(3){width:80%}.header-menu-toggle.header-menu-open .toggle-line{align-self:center;width:100%}.header-menu-toggle.header-menu-open .toggle-line:nth-child(1){transform:translateY(6px)rotate(225deg)}.header-menu-toggle.header-menu-open .toggle-line:nth-child(2){opacity:0;transform:scaleX(0)}.header-menu-toggle.header-menu-open .toggle-line:nth-child(3){transform:translateY(-6px)rotate(-225deg)}.sidebar{margin-left:40px;max-height:calc(100vh - 28px);overflow-y:auto;padding:20px 0 8px;position:sticky;scrollbar-width:thin;top:0;width:260px;z-index:1500}@media screen and (min-width:0) and (max-width:1087px){.sidebar{background-color:#f7f7f7;height:100vh;overflow-y:auto;position:fixed;right:-280px;top:0;transition:right .3s ease;width:280px}.sidebar.sidebar-open{box-shadow:-4px 0 12px rgba(0,0,0,.1);right:0}}.sidebar-toggle{align-content:center;background-color:#fff;border:1px solid #ddd;box-shadow:0 2px 6px rgba(0,0,0,.1019607843);bottom:48px;cursor:pointer;display:none;height:28px;justify-items:center;position:fixed;right:20px;transition:border-color .2s ease,box-shadow .2s ease;width:28px;z-index:2000}@media screen and (min-width:0) and (max-width:1087px){.sidebar-toggle{display:grid}}.sidebar-toggle:hover{border-color:#bbb;box-shadow:0 3px 10px rgba(0,0,0,.1607843137)}.sidebar-toggle .sidebar-toggle-line{background-color:#555;display:block;height:2px;transition:opacity .2s ease,transform .3s ease,width .2s ease;width:14px}.sidebar-toggle .sidebar-toggle-line:nth-child(2){margin:3px 0}.sidebar-toggle.sidebar-toggle-open .sidebar-toggle-line:nth-child(1){transform:translateY(5px)rotate(225deg)}.sidebar-toggle.sidebar-toggle-open .sidebar-toggle-line:nth-child(2){opacity:0;transform:scaleX(0)}.sidebar-toggle.sidebar-toggle-open .sidebar-toggle-line:nth-child(3){transform:translateY(-5px)rotate(-225deg)}@media screen and (min-width:0) and (max-width:1087px){.sidebar-mask{background-color:#000;height:100%;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s ease;width:100%;z-index:1000}}.sidebar-mask.sidebar-mask-open{opacity:.6}.catalog{border-left:1px solid #e8e8e8;font-size:1rem}@media screen and (min-width:0) and (max-width:1087px){.catalog{border-left:none;margin:0 16px}}.catalog .catalog-title{color:#333;font-size:1rem;font-weight:500;padding:0 0 8px 16px}.catalog nav{margin:12px 0 12px 4px}.catalog ul{line-height:1.4;list-style-type:none;margin:0;padding-left:12px}.catalog ul a{color:#666;display:block;padding:2px 0;text-decoration:none;transition:color .2s ease,border-color .2s ease}.catalog ul a:hover{color:#222;font-weight:500}.catalog ul a.active{color:#007bff}.catalog ul a.active::before{background-color:#007bff;content:"";height:24px;left:0;position:absolute;width:2px}@media screen and (min-width:0) and (max-width:1087px){.catalog ul a.active::before{left:16px}}.archives a,.taxonomy a{line-height:1.7}.archives p,.taxonomy p{color:#555;font-size:.875rem}.taxonomy-title{color:#333;font-size:1.5rem;font-weight:500}.taxonomy-terms{display:flex;flex-wrap:wrap;font-size:1rem;gap:8px 16px}.taxonomy-terms a{border-bottom:1px solid #9c9c9c;color:#333;text-decoration:none}.taxonomy-terms a:hover{border-bottom:1px solid #4a8fd4;color:#4a8fd4}.taxonomy-terms span{color:#333}.term-title{align-items:center;color:#333;display:flex;font-size:1.5rem;font-weight:500;gap:12px;margin:20px 0 0}.term-title+.term-article-list+.term-title{border-top:1px solid #e0e0e0;margin-top:20px;padding-top:20px}.term-title-count{color:#999;font-size:.875rem;font-weight:400;margin-top:3px}.term-subtitle{align-items:center;color:#333;display:flex;font-size:1.125rem;font-weight:500;margin:20px 0 0}.term-subtitle+.term-article-list+.term-subtitle{border-top:1px solid #e0e0e0;margin-top:20px;padding-top:20px}.term-article-list{margin:12px 0;padding:0}.term-article-list li{align-items:flex-start;display:flex;list-style:none;margin-bottom:.875rem}.term-link{color:#333;text-decoration:none;transition:color .2s}.term-link:hover{color:#4a8fd4}.term-article-time{color:#999;font-size:.875rem;line-height:1.9;margin-right:12px;min-width:3rem}.ice-code-tabs{border:1px solid #d0d7de;margin:16px 0}.ice-code-tabs-header{background-color:#f6f8fa;border-bottom:1px solid #d0d7de;display:flex;flex-wrap:wrap;margin:0;padding-left:0!important}.ice-code-tabs-header li{color:#666;cursor:pointer;font-size:.875rem;list-style:none;padding:6px 16px 6px 20px;transition:color .2s,background-color .2s}.ice-code-tabs-header li:hover{background-color:#eef1f5;color:#4a8fd4}.ice-code-tabs-header li[data-active=true]{background-color:#ebebeb;border-bottom:2px solid #4a8fd4;color:#333;font-weight:600}.ice-code-tabs-header p{color:#888;margin:0;padding:6px 16px}.ice-code-tabs-content>div{display:none}.ice-code-tabs-content>div[data-active=true]{display:block}.ice-code-tabs-content .highlight{margin:0}.ice-tabs{border:1px solid #d0d7de;margin:16px 0}.ice-tabs-header{background-color:#f6f8fa;border-bottom:1px solid #d0d7de;display:flex;flex-wrap:wrap;margin:0;padding-left:0!important}.ice-tabs-header li{color:#666;cursor:pointer;font-size:.875rem;list-style:none;padding:6px 16px 6px 20px;transition:color .2s,background-color .2s}.ice-tabs-header li:hover{background-color:#eef1f5;color:#4a8fd4}.ice-tabs-header li[data-active=true]{background-color:#ebebeb;border-bottom:2px solid #4a8fd4;color:#333;font-weight:600}.ice-tabs-header p{color:#888;margin:0;padding:6px 16px}.ice-tabs-content>div{display:none;padding:8px 16px}.ice-tabs-content>div>p{margin:0}.ice-tabs-content>div[data-active=true]{display:block}