:root{--font-sans:ui-sans-serif, sans-serif;--font-mono:ui-monospace, monospace;--main-width:72rem;--spacing:0.25em;--radius:4px;--theme:255, 255, 255;--primary:15, 23, 42;--secondary:100, 116, 139;--tertiary:226, 232, 240;--content:51, 65, 85;--code-bg:248, 250, 252;--border:203, 212, 225;--link:37, 99, 235}.dark{--theme:30, 41, 59;--primary:255, 255, 255;--secondary:148, 163, 184;--tertiary:100, 116, 139;--content:203, 213, 225;--code-bg:51, 65, 85;--border:71, 85, 105;--link:96, 165, 250}*,::after,::before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}body{display:flex;flex-direction:column;min-height:100vh;font-family:var(--font-sans);line-height:1.5;color:rgb(var(--primary));background:rgb(var(--theme));margin:0}p{margin:1em 0}a{text-decoration:none;word-break:break-all;&:hover { text-decoration:underline; }}img{display:block;max-width:100%;margin:1em auto}figure{margin:1em auto;padding:0;text-align:center;& img { margin: 0 auto; } & figcaption { font-size: 0.875em; line-height: 1.5; margin-top: 0.3em; & p { margin: 0; } }}details{margin:1em 0;& > summary { cursor: pointer; }}code,kbd,samp,pre{font-family:var(--font-mono)}html.dark svg#moon{display:none}html:not(.dark) svg#sun{display:none}.scroll-smooth{scroll-behavior:smooth}.header{position:sticky;top:0;z-index:100;background:rgb(var(--theme))}.header-shadow{box-shadow:0 1em 2em rgba(0,0,0,.15)}.site-header{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:1em;line-height:3em;max-width:var(--main-width);margin-inline-start:auto;margin-inline-end:auto;padding:0 1em}.menu{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1em}.menu button{font-size:1em;line-height:1;margin:0;padding:0;background:0 0;border:0;cursor:pointer;color:rgb(var(--primary));&:hover { color:rgb(var(--link)); }}.main-menu{& a { color: rgb(var(--primary)); text-decoration: none; &:hover { color: rgb(var(--link)); } } @media (width >= 800px) { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1em; } @media (width < 800px) { display: none; position: fixed; z-index: 1; top: 3em; right: 0; width: 100%; height: 100%; background-color: rgba(var(--theme), 0.85); overflow-x: hidden; font-size: 1em; line-height: 1; & a { text-align: right; display: block; margin: 1em; } }}button#menu-button{@media(width >= 800px){display: none;}}.site-footer{display:flex;flex-wrap:nowrap;flex-direction:column;max-width:var(--main-width);margin-inline-start:auto;margin-inline-end:auto;padding:1em;color:rgb(var(--secondary))}.footer-menu{display:flex;flex-wrap:wrap;justify-content:start;align-items:center;gap:1em;& a { text-decoration: none; color: inherit; &:hover { color: rgb(var(--link)); } }}.footer-content{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:1em;font-size:.875em;& a { color: inherit; &:hover { color: rgb(var(--link)); } }}.main{display:flex;flex:auto}.title{font-size:2em;color:rgb(var(--primary));&:hover { text-decoration-color:rgb(var(--link)); }}.highlight,pre{position:relative;margin:1em 0}code{margin:0;padding:2px 4px;font-size:.95em;line-height:1.5;color:rgb(var(--content));background:rgb(var(--code-bg));border-radius:2px}pre{padding:.8em;overflow-x:auto;& > code { padding: 0; color: inherit; background-color: transparent; }}.copy-code{visibility:hidden;position:absolute;top:0;right:0;z-index:10;cursor:pointer;border:0 solid;border-top-right-radius:var(--radius);border-bottom-left-radius:var(--radius);color:rgb(var(--content));background-color:rgb(var(--tertiary));font-family:var(--font-mono);font-size:.8em;line-height:1.5;padding-block:.2em;width:6em;user-select:none}:is(.highlight:hover,pre:hover) .copy-code{visibility:visible}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:rgba(var(--secondary),.2)}::-webkit-scrollbar-thumb{background:rgba(var(--secondary),.5)}.article{flex:1;max-width:var(--main-width);width:100%;margin:0 auto;padding:2em 1em}.article :is(.article-header,.article-footer){margin:1em 0}.article .article-content{display:flex;flex-direction:column;max-width:100%;margin:1.5em 0;color:rgb(var(--content));& > .content { flex: 1; min-width: 0; max-width: 100%; } @media (min-width: 1024px) { flex-direction: row; & > .table-of-contents { order: 1; width: calc(var(--spacing) * 64); padding-left: calc(var(--spacing) * 4); & > .toc { position: sticky; top: 4em; } } }}.article h1{font-size:2em;margin:1.5em 0 .8em}.article h2{font-size:1.5em;margin:1.5em 0 .75em}.article h3{font-size:1.25em}.article h4{font-size:1em}.article h5{font-size:.875em}.article h6{font-size:.75em}.article :is(h3,h4,h5,h6){margin:1.5em 0 .7em}.article :is(h1,h2,h3,h4,h5,h6,[id^=fn],[id^=fnref]){scroll-margin-top:3.5em}.article :is(h1,h2,h3,h4,h5,h6){color:rgb(var(--primary))}.article :is(h1,h2,h3,h4,h5,h6) .anchor{display:none;color:rgba(var(--link),.5);margin-inline-start:.3em;user-select:none}.article :is(h1:hover,h2:hover,h3:hover,h4:hover,h5:hover,h6:hover) .anchor{display:inline}.article a{color:rgb(var(--link));text-decoration:none}.article blockquote{margin:1em 0;padding-inline-start:1em;border-inline-start:3px solid rgb(var(--secondary));font-style:italic}.article{& ul, & ol { margin: 1em 0; padding-inline-start: 2em; } & li { margin: 0.5em 0; } & ul ul, & ul ol, & ol ul, & ol ol { margin: 0.75em 0; } & dl { margin: 1em 0; } & dt { color: rgb(var(--primary)); font-weight: bold; margin-top: 0.75em; } & dd { margin-top: 0.5em; padding-inline-start: 2em; }}.article .footnotes{& hr { margin: 30px 0; height: 2px; background: rgb(var(--tertiary)); border: 0; } & p { margin: 0; }}.article table{display:block;overflow:auto;border-collapse:collapse;border-spacing:0;margin:1em 0;& th { color: rgb(var(--primary)); padding: 0.5em 0.3em; border: 1px solid rgb(var(--border)); } & td { color: rgb(var(--content)); padding: 0.5em 0.3em; border: 1px solid rgb(var(--border)); }}.article .terms{display:flex;flex-wrap:wrap;margin:1em 0;& a { display: inline-block; color: rgb(var(--primary)); text-decoration: none; transition: all 0.3s ease-in-out; padding: 0.5em 1em; &:hover { transform: scale(1.2); color: rgb(var(--link)); } & sup { color: rgb(var(--content)); } }}.article .article-entries{display:flex;flex-wrap:wrap;gap:1em;margin:1em 0;& > * { width: 100%; } @media (min-width: 800px) { & > * { width: calc((100% - 2em) / 3); } }}.article .article-entry{padding:1em;border:2px solid rgba(var(--border),.5);border-radius:var(--radius);box-shadow:0 .5em .8em rgba(0,0,0,.15)}.article .article-title{margin-top:0;margin-bottom:0;& a { color: rgb(var(--primary)); text-decoration: none; &:hover { text-decoration: underline; text-decoration-color: rgb(var(--link)); } }}.article :is(.article-meta,.breadcrumbs){color:rgb(var(--secondary));font-size:.875em;display:flex;flex-wrap:wrap;gap:calc(var(--spacing) * 2);margin:.1em 0}.article .breadcrumbs a{color:inherit;&:hover { text-decoration:underline; }}.article .article-tags{display:flex;flex-wrap:wrap;gap:.5em;margin:.4em 0;padding:0;& a { display: block; font-size: 0.875em; line-height: 1.5; margin: 0; padding: 0 0.5em; color: rgb(var(--link)); border-radius: var(--radius); border: 1px solid rgb(var(--border)); text-decoration: none; }}.article .article-summary{margin:.5em 0;color:rgb(var(--content));& p { margin: 0; }}.article .show-more-link{display:flex;justify-content:center;margin-top:2em;margin-bottom:1em;& button { font-family: var(--font-sans); font-size: 1em; line-height: 1.5; font-weight: bold; cursor: pointer; padding: 0.5em 1em; background-color: transparent; color: rgb(var(--content)); border-color: rgb(var(--link)); border-width: 1px; border-radius: 4px; &:hover { color: rgb(var(--link)); border-color: transparent; } }}.pagination{display:flex;flex-direction:row;justify-content:center;gap:.5em;& .page-item { color: rgb(var(--primary)); font-size: 0.875em; line-height: 2em; min-width: 2em; border: 1px solid rgb(var(--border)); border-radius: var(--radius); text-align: center; text-decoration: none; &:hover { color: rgb(var(--link)); } &.active { background: rgb(var(--tertiary)); } }}.article-pagination{display:flex;justify-content:space-between;gap:.5em;font-size:1.1em;line-height:1.5;padding-top:.5em;border-top:1px dotted rgb(var(--border));& > div { flex: 1 1; &.prev { text-align: left; } &.next { text-align: right; } } & a { color: rgb(var(--primary)); &:hover { color: rgb(var(--link)); } }}.toc{margin:1em 0;& .toc-content { max-height: 100vh; overflow-x: hidden; overflow-y: auto; } & .toc-title { font-size: 1.1em; font-weight: bold; color: rgb(var(--primary)); } & .toc-nav { font-size: 1em; padding: 1em 0 1em 1em; border-left: 1px dotted rgb(var(--border)); } & :is(ul, li) { list-style: none; line-height: 1.375; margin: 0.5em 0; padding: 0; } & ul ul { margin: 0.5em 0; padding: 0; } & li ul { padding-left: calc(var(--spacing) * 4); } & a { color: rgb(var(--content)); text-decoration: none; &:hover { color: rgb(var(--link)); } &.active { color: rgb(var(--link)); font-weight: bold; } }}.top-link{visibility:hidden;position:fixed;bottom:60px;right:30px;z-index:99;font-size:.875em;line-height:0;color:rgb(var(--secondary));background:rgb(var(--tertiary));padding:12px;border-radius:64px;transition:visibility .5s,opacity .8s linear;&:hover { color:rgb(var(--primary)); }}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.\!block{display:block!important}.tabpane{display:flex;flex-wrap:wrap;margin:1em 0;position:relative;&.tabpane-left { justify-content: flex-start; & .tab-label { margin-right: 0.5em; } & .tab-content { border-radius: 0px var(--radius) var(--radius) var(--radius); } } &.tabpane-right { justify-content: flex-end; & .tab-label { margin-left: 0.5em; } & .tab-content { border-radius: var(--radius) 0px var(--radius) var(--radius); } } & .tab-input { display: none; } & .tab-label { display: inline-block; order: 1; background-color: rgba(var(--tertiary), 0.5); border-color: rgb(var(--border)); border-radius: var(--radius) var(--radius) 0px 0px; border-style: solid; border-bottom-style: hidden; border-width: 1px; padding: 0.3em 0.5em; position: relative; top: 1px; cursor: pointer; user-select: none; } & .tab-content { display: none; order: 2; width: 100%; padding: 0.5em; border-color: rgb(var(--border)); border-style: solid; border-width: 1px; } & .tab-input:checked + .tab-label { background-color: rgb(var(--theme)); } & .tab-input:checked + .tab-label + .tab-content { display: block; }}.bilibili{position:relative;width:100%;height:auto;aspect-ratio:16/9;margin:1em 0;text-align:center;& iframe { position: absolute; width: 100%; height: 100%; top: 0; left: 0; }}.columns{margin:1em 0;& > ul { list-style: none; display: flex; flex-wrap: wrap; gap: 1em; margin: 0; padding: 0; & > li { flex: 1 1; min-width: 10em; margin: 0; padding: 0; } }}.btn{color:rgb(var(--theme))!important;background-color:rgba(var(--link),1);padding-block:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);border-radius:var(--radius);cursor:pointer;text-decoration:none;word-break:normal;&:hover { background-color:rgba(var(--link),0.8); }}.alert{margin:1em 0;padding-block:.5em;padding-inline:1em;border-inline-start-width:4px;border-inline-start-style:solid;--alert-success:64, 160, 43;--alert-warning:223, 142, 29;--alert-error:210, 15, 57;&:is(.dark *) { --alert-success:166,227,161; --alert-warning:249,226,175; --alert-error:243,139,168; } &.info { border-inline-start-color:rgba(var(--link),1); background-color:rgba(var(--link),0.15); } &.success { border-inline-start-color:rgba(var(--alert-success),1); background-color:rgba(var(--alert-success),0.15); } &.warning { border-inline-start-color:rgba(var(--alert-warning),1); background-color:rgba(var(--alert-warning),0.15); } &.error { border-inline-start-color:rgba(var(--alert-error),1); background-color:rgba(var(--alert-error),0.15); }}.badge{display:inline-block;font-size:.875em;line-height:1.5;vertical-align:middle;border-radius:var(--radius);border:1px solid rgba(var(--link),.9);overflow:hidden;text-wrap:nowrap;margin:0 .2em;& div { display: inline-block; font-size: inherit; padding: 0 0.5em; color: inherit; &.value { color: rgb(var(--theme), 1); background-color: rgba(var(--link), 0.9); } }}.katex-display{padding:.2em 0;overflow:auto hidden}#search-box input{padding:.2em .6em;width:100%;color:rgb(var(--primary));background:0 0;font:inherit;border:2px solid rgb(var(--border));border-radius:var(--radius);&:focus { background:0 0; border-color:rgb(var(--secondary)); }}#search-results{margin:.6em 0;padding:0;width:100%}#search-results li{list-style:none;margin:.6em 0;padding:0}#search-results a{display:flex;flex-direction:column;background:rgb(var(--code-bg));border:0;border-radius:var(--radius);outline:0;padding:.6em;&:focus,&:hover { background:rgba(var(--link),0.25); } & h1 { font-size:1.2em; font-weight:bold; margin:0; color:rgb(var(--primary)); } & p { font-size:0.875em; font-style:italic; margin:0; color:rgb(var(--secondary)); }}.chroma{color:rgb(var(--content));background-color:rgb(var(--code-bg))}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#e5e5e5;&:is(.dark *) { background-color:#191919; }}.chroma .lnt,.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:#5317ac;&:is(.dark *) { color:#b6a0ff; }}.chroma .kc{color:#0000c0;&:is(.dark *) { color:#00bcff; }}.chroma .kt{color:#005a5f;&:is(.dark *) { color:#6ae4b9; }}.chroma .nb,.chroma .bp{color:#8f0075;&:is(.dark *) { color:#f78fe7; }}.chroma .nf,.chroma .fm{color:#721045;&:is(.dark *) { color:#feacd0; }}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#00538b;&:is(.dark *) { color:#00d3d0; }}.chroma .l,.chroma .ld{color:#0000c0;&:is(.dark *) { color:#00bcff; }}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#2544bb;&:is(.dark *) { color:#79a8ff; }}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#0000c0;&:is(.dark *) { color:#00bcff; }}.chroma .o,.chroma .ow{color:#00538b;&:is(.dark *) { color:#00d3d0; }}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:#505050;&:is(.dark *) { color:#a8a8a8; }}@font-face{font-family:berkeley mono;src:url(/fonts/TX-02-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:berkeley mono;src:url(/fonts/TX-02-Oblique.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:berkeley mono;src:url(/fonts/TX-02-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:berkeley mono;src:url(/fonts/TX-02-BoldOblique.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--font-sans:"Berkeley Mono", "LXGW Wenkai", ui-sans-serif, sans-serif;--font-mono:"Berkeley Mono", "LXGW Wenkai", ui-monospace, monospace}