:root{--card-border-radius:0.5em;--card-margin:1.5em;--icon-margin-left:1em;--icon-margin-top:1em}html{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased;color:var(--font-color);background:var(--bg-color)}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}.container{max-width:42em;margin:0 auto}main{outline:none}.toc{cursor:zoom-in;display:block;margin-top:1em;margin-bottom:1em;padding:.5em 1em;border:1px solid var(--card-border-color);border-radius:var(--card-border-radius);background:var(--card-color);font-size:14px;font-weight:700}.toc.expanded{cursor:zoom-out}.toc .inner{margin:0;padding:0}details.toc[open] summary{border-bottom:1px dashed var(--card-border-color);margin-bottom:0;padding-bottom:0;line-height:2.2}h1{font-size:1.35em}h2{font-size:1.2em;margin-top:3em}h2:first-of-type{margin-top:0}h3{font-size:1.1em}.listurl{color:var(--font-color);text-decoration:none;border-bottom:1px solid transparent}a{color:var(--link-color);text-decoration:none;border-bottom:1px solid transparent}a:hover,a:focus,a:active{color:var(--link-state-color);border-bottom:1px dashed var(--link-state-color)}a:active,a:hover{outline:0}a:active{opacity:.9}a.skip-main{left:-999px;position:absolute;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}a:hover .marker-animation{border-bottom-style:solid}a:has(.marker-animation):hover{border-bottom:1px solid transparent}a.skip-main:focus,a.skip-main:active{left:auto;top:0;width:auto;height:auto;overflow:auto;z-index:999;padding:4px 6px;text-decoration:underline;border:none}thead{background:var(--thead-bg-color)}.table-wrapper{overflow-x:auto}table{max-width:100%;border-spacing:0}th,td{padding:.5em 1em;border:1px double var(--table-border-color)}mark{background-color:var(--highlight-bg);color:var(--highlight-text-color);border-radius:4px;padding:.1em .3em}.marker-animation a{color:var(--highlight-link-text-color);text-decoration:none;border-bottom:1px solid transparent;font-weight:inherit}.marker-animation a:hover{border-bottom:1px dashed var(--link-state-color);color:inherit}code,pre,kbd{color:var(--pre-color);background-color:var(--pre-bg-color);font-family:menlo,courier new,consolas,monospace;font-size:10.4px;line-height:154%;border-radius:6px;border:1px solid var(--pre-border-color);overflow:auto}code{font-size:14.4px;padding:.1em .3em}pre{padding:.3em}p kbd,pre kbd,p kbd kbd,pre kbd kbd{font-size:14.4px;background-color:var(--kbd-bg-color);border:1px solid var(--pre-border-color);border-width:1px 2px 2px 1px;padding:.1em .3em;margin-left:.2em;margin-right:.2em}p code,p kbd{padding:.1em .3em}td pre{border:none;border-radius:0}td:first-child pre{padding-right:0}td:last-child pre{padding-left:0}td pre code{padding:0;display:flex;flex-direction:column;border-radius:0}div.highlight{border-radius:6px;border:1px solid var(--pre-border-color);margin-bottom:14px}div.highlight pre{border:none;display:grid;margin:0;overflow:auto}div.highlight code{padding-left:0;padding-right:0;overflow:unset}div.highlight code a:hover,div.highlight code a:focus{color:#fff;border-bottom:1px solid #fff}pre code,pre kbd{color:inherit;background-color:inherit;border:none;padding:0}blockquote{border-left:2px solid var(--bq-color);padding:.1em 1em;margin-left:.75em}p{margin-top:.5em;margin-bottom:.5em}hr{color:var(--hr-color);background-color:var(--hr-color);border:none;height:1px}.common-header{padding-bottom:1.5em}header a{color:var(--font-color)}header h1{position:relative;font-size:1em;margin-top:1em;margin-bottom:0;font-weight:400}header h2{font-size:1em;margin:0;font-weight:400}.header-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;vertical-align:middle;margin-top:1em}.header-top-left{display:flex;align-items:center;justify-content:space-between}.site-title{display:inline;white-space:nowrap;font-weight:700}header nav:not(:empty){background:var(--nav-bg-color);margin-top:var(--card-margin);max-width:100%;text-align:center;padding:.5em 0;border:1px solid var(--card-border-color);border-radius:var(--card-border-radius);font-size:14px}header nav a{display:inline-block;margin:0 2.5%}.social-icons{display:inline;margin:var(--icon-margin-top)0 0 var(--icon-margin-left);padding:0;list-style-type:none}.social-icons li{display:inline}.social-icons li:not(:first-of-type){margin-left:var(--icon-margin-left)}.social-icons a:hover,.social-icons a:focus,.social-icons a:active{color:inherit;border-bottom:none;text-decoration:none}.inline-svg{display:inline-block;height:1.15rem;width:1.15rem;top:.15rem;position:relative}main h1{margin-top:1em;font-weight:400;line-height:1.1em;margin-bottom:.5em;font-weight:600}article:not(:last-of-type){margin-bottom:var(--card-margin)}.post-short-list:first-of-type{margin-top:1em}.post-short-list img{max-width:100%;display:block;height:auto;margin:0 auto .5em}.post-short-list video{max-width:100%;display:block;height:auto;margin:0 auto .5em}.post-header{margin-top:1em;line-height:1.1em;margin-bottom:1em}.post-header header{display:inline}.post-navigation{background:var(--nav-bg-color);text-align:center;margin-top:1em;max-width:100%;padding:.5em 0}.post-navigation a:first-of-type{margin-left:0}.post-navigation a{color:var(--nav-link-color);margin-left:2em}.post-navigation a:hover,.post-navigation a:focus,.post-navigation a:active{color:var(--link-state-color)}.post-list{border:#777}.post-short-list .post-title{display:inline}.post-title.favorite::after{content:"🌟";display:inline-block;margin-left:.2em}.post-title.draft::after{content:"✏️";display:inline-block;margin-left:.2em}.post-title.favorite.draft::after{content:"🌟 ✏️";display:inline-block;margin-left:.2em}article header h1{font-size:1.35em;line-height:1.1em;margin-bottom:.5em;font-weight:600;display:inline}article header h1 a{color:var(--font-color);border:none;text-decoration:none}.post h1,.post h2,.post h3,.post h4,.post h5,.post h6{position:relative}.post h1 a,.post h2 a,.post h3 a,.post h4 a,.post h5 a,.post h6 a{opacity:1;border-bottom:none}.post h1:hover a,.post h2:hover a,.post h3:hover a,.post h4:hover a,.post h5:hover a,.post h6:hover a{opacity:1;border-bottom:none}.post h1 a:hover,.post h1 a:focus,.post h1 a:active,.post h2 a:hover,.post h2 a:focus,.post h2 a:active,.post h3 a:hover,.post h3 a:focus,.post h3 a:active,.post h4 a:hover,.post h4 a:focus,.post h4 a:active,.post h5 a:hover,.post h5 a:focus,.post h5 a:active,.post h6 a:hover,.post h6 a:focus,.post h6 a:active{border-bottom:none}.post h1 svg,.post h2 svg,.post h3 svg,.post h4 svg,.post h5 svg,.post h6 svg{stroke:var(--svg-color)}.post h1 svg:hover,.post h1 svg:focus,.post h1 svg:active,.post h2 svg:hover,.post h2 svg:focus,.post h2 svg:active,.post h3 svg:hover,.post h3 svg:focus,.post h3 svg:active,.post h4 svg:hover,.post h4 svg:focus,.post h4 svg:active,.post h5 svg:hover,.post h5 svg:focus,.post h5 svg:active,.post h6 svg:hover,.post h6 svg:focus,.post h6 svg:active{stroke:var(--svg-state-color)}.post-list .post-info{color:var(--post-info-color);font-size:.75em;margin-top:1em;margin-bottom:1em;display:block;gap:1em;position:relative;z-index:1}.post-info{color:var(--post-info-color);font-size:.75em;margin-top:1em;margin-bottom:1em;display:flex;gap:1em;position:relative;z-index:1}.post-info a{color:var(--post-info-color)}.post-info a:hover{color:var(--link-state-color)}.post-short-list .post-info{margin-top:0;margin-bottom:1.5em}.post-taxonomies{display:inline}.post-hidden-url{display:none}.post-hidden-author{display:none}.post-date{white-space:nowrap}.post-categories{display:inline;list-style-type:none;padding:0}.post-categories li{display:inline;margin-right:1em}.post-tags{display:inline;list-style-type:none;padding:0;margin:0}.post-tags li{display:inline;margin-right:1em}.post-authors{display:inline;list-style-type:none;padding:0;margin:0}.post-authors li{display:inline;margin-right:1em}article img{max-width:100%;display:block;height:auto;margin:0 auto .5em}article figcaption{color:grey;text-align:center;font-size:.85em;margin-bottom:2em}article video{max-width:100%;display:block;height:auto;margin:0 auto .5em}code.has-jax{-webkit-font-smoothing:antialiased;background:inherit!important;border:none!important;font-size:100%}.read-more{margin:1em 0}.divider{border-top:thin solid var(--hr-color);display:block;height:1px;border:0;width:25%;margin:1em auto}.post-summary{margin-top:.5em;display:block;position:relative}.post-summary>p{display:block}.post-translations{margin-left:.5em;list-style:none;padding:0;display:inline;font-size:14px}.post-translations>li{display:inline}.post-translations>li:not(:last-child)::after{content:"|";display:inline-block;margin-left:4px;margin-right:4px}.post-translations>li a{color:var(--link-color)}.post-translations>li a:hover,.post-translations>li a:focus{color:var(--link-state-color)}.read-next-title{margin-bottom:0;margin-top:3em;padding-top:1em;border-top:1px dashed var(--thead-bg-color)}.read-next-posts{margin-top:5px;list-style-type:"- ";padding-inline-start:20px}.terms{list-style-type:none;padding:0;line-height:2em}.pagination{display:flex;justify-content:space-between;margin-top:3em;text-align:center}.pagination-item{border:1px solid var(--pagination-border-color);border-radius:var(--pagination-border-radius);background:var(--pagination-bg-color);padding:.25em .75em}.pagination-item a{color:var(--pagination-link-color)}.pagination-item a:hover,.pagination-item a:focus{color:var(--link-state-color)}.disabled{visibility:hidden}.pagination-item a:hover,.pagination-item a:focus{border-bottom:0}.post-pagination .pagination-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:16em}.common-footer{padding-top:1.5em;margin-top:3em;font-size:12px;margin-bottom:1.5em;color:var(--pagination-link-color)}.common-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}ul.language-select,ul.footer-menu{padding-left:0;list-style:none;display:flex}ul.language-select>li,ul.footer-menu>li{margin-right:1em}.theme-switcher{color:var(--switcher-color);margin:var(--icon-margin-top)0 0 var(--icon-margin-left);cursor:pointer}.h-card{display:none}.highlight{position:relative;overflow:hidden}.highlight:hover .highlight-copy-btn{display:inline-block;border:1px solid rgba(0,0,0,.5)}.highlight-copy-btn{display:none;position:absolute;top:0;right:0;border:1px solid rgba(0,0,0,.5);border-radius:6px;padding:1px;font-size:.7em;line-height:1.8;color:#fff;background-color:rgba(255,255,255,.1);min-width:22px;text-align:center;transition:border .3s;transition:background-color .3s}.highlight-copy-btn:hover{transition-duration:.1s;background-color:rgba(255,255,255,.3);cursor:pointer}.highlight-copy-btn,.highlight-copy-btn svg{vertical-align:middle;margin:8px}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(max-width:840px){.main-wrapper{margin:0;max-width:none;overflow-x:hidden;padding-left:25px;padding-right:25px}.container{max-width:90%;margin:0 auto;word-wrap:break-word}.pagination-item{padding:.5em;font-size:14px}.post-navigation{background:var(--pagination-bg-color);text-align:center;padding:.5em 0}.post-navigation a{margin-left:.5em}.post-pagination .pagination-item{max-width:10em}}.post-card-cover{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:50%;background-repeat:no-repeat;z-index:0}details.spoiler{display:block;cursor:zoom-in;border:1px solid var(--card-border-color);border-radius:var(--card-border-radius);background-color:var(--card-color);color:var(--font-color);font-size:14px;margin:1em 0;padding:0 1em}details.spoiler summary{display:block;margin:0;padding:.5em 0;outline:none;cursor:pointer;font-weight:600;list-style:none}details.spoiler summary::-webkit-details-marker{display:none}details.spoiler p{font-size:18px}details.spoiler summary::before{content:"► "}details.spoiler[open] summary::before{content:"▼ "}details.spoiler[open] summary{border-bottom:1px dashed var(--card-border-color);margin-bottom:.5em}details.spoiler .inner{margin-top:.5em}details.spoiler[open] .inner{padding:.5em}.warning{display:flex;align-items:center;gap:1em;margin:2rem 20px;padding:1em 1.5em;border-left:3px solid var(--accent-color);background-color:var(--warning-bg-color);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.2)}.warning-icon{font-size:2em;line-height:1}.warning-content{flex:1}.warning-title{font-weight:700;color:var(--warning-title-color)}.warning-text{margin:0;font-size:.95em}.marker-animation{color:var(--highlight-text-color);display:inline;background:linear-gradient( to right,var(--highlight-bg),var(--highlight-bg) );background-size:0% 100%;background-repeat:no-repeat;transition:background-size 1.2s ease-out}.marker-animation.marker-animate{background-size:100% 100%}a .marker-animation{border-bottom:1px dashed var(--link-state-color);color:var(--highlight-link-text-color)}a:not(.listurl):has(.marker-animation),.marker-animation a:not(.listurl){position:relative;display:inline-block;vertical-align:-.44em;z-index:1;overflow:hidden}a:not(.listurl):has(.marker-animation)::before,a:not(.listurl):has(.marker-animation)::after,.marker-animation a:not(.listurl)::before,.marker-animation a:not(.listurl)::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;background-repeat:no-repeat;opacity:0;will-change:transform,opacity,background-position;transition:opacity .5s ease-out}a:not(.listurl):has(.marker-animation):hover::before,a:not(.listurl):has(.marker-animation):hover::after,.marker-animation a:not(.listurl):hover::before,.marker-animation a:not(.listurl):hover::after{opacity:1;transition:opacity 0s}a:not(.listurl):has(.marker-animation)::before,.marker-animation a:not(.listurl)::before{background-image:radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px),radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px),radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px),radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px),radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px),radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px),radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px),radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px);background-size:2px 2px,3px 3px,2px 2px,3px 3px,2px 2px,3px 3px,2px 2px,3px 3px}a:not(.listurl):has(.marker-animation)::after,.marker-animation a:not(.listurl)::after{background-image:radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px),radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px),radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px),radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px),radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px),radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px),radial-gradient(circle,var(--sparkle-color) 1.5px,transparent 1.5px),radial-gradient(circle,var(--sparkle-color) 1px,transparent 1px);background-size:3px 3px,2px 2px,3px 3px,2px 2px,3px 3px,2px 2px,3px 3px,2px 2px}a:not(.listurl):has(.marker-animation):hover::before,.marker-animation a:not(.listurl):hover::before{animation:sparkle-flow-1 .8s ease-in-out forwards}a:not(.listurl):has(.marker-animation):hover::after,.marker-animation a:not(.listurl):hover::after{animation:sparkle-flow-2 .8s ease-in-out forwards .1s}@keyframes sparkle-flow-1{0%{opacity:0;background-position:5% 90%,15% 10%,25% 80%,35% 20%,45% 70%,60% 15%,75% 85%,90% 25%}50%{opacity:1}100%{opacity:0;transform:translateY(-100%);background-position:10% -10%,20% -60%,30% -20%,40% -50%,50% -30%,65% -70%,80% -15%,95% -45%}}@keyframes sparkle-flow-2{0%{opacity:0;background-position:10% 80%,20% 20%,30% 70%,40% 10%,55% 60%,70% 15%,85% 75%,95% 30%}50%{opacity:1}100%{opacity:0;transform:translateY(-120%);background-position:15% -20%,25% -50%,35% -30%,45% -60%,60% -10%,75% -70%,90% -25%,100% -55%}}a.listurl:hover{color:var(--font-color);border-bottom-color:transparent}.post-card{border:1px solid var(--card-border-color)!important;border-radius:.5em;padding:0 1em 1em;background:var(--card-color);overflow:hidden;position:relative;transition:box-shadow .25s ease-in-out}.post-card:has(a.listurl:hover){box-shadow:0 0 14px 2px var(--accent-color)}