@charset "UTF-8";:root{--font-cjk-sans:"PingFang SC", "Noto Sans CJK SC", "Source Han Sans CN", "Heti Hei";--font-cjk-serif:"思源宋体 CN", "思源宋体", "Noto Serif CJK SC", "Source Han Serif CN", "Heti Hei";--font-serif:"Libertinus Serif", "STIX Two Text", "Times New Roman", var(--font-cjk-serif), serif;--font-mono:monospace, var(--font-cjk-sans);--font-sans:"Inter", "Helvetica Neue", helvetica, arial, var(--font-cjk-sans), sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-title:"Fraunces", "Balsamiq Sans", "Arial Black", var(--font-cjk-sans), sans-serif;--font-base:var(--font-sans);--font-header:var(--font-serif)}:lang(zh-cn){--font-cjk-sans:"PingFang SC", "更纱黑体 SC", "Noto Sans CJK SC", "Source Han Sans CN", "Heti Hei";--font-cjk-serif:"思源宋体 CN", "思源宋体", "Noto Serif CJK SC", "Source Han Serif CN", var(--font-cjk-sans)}:lang(zh-tw){--font-cjk-sans:"PingFang TC", "更纱黑体 TC", "Noto Sans CJK TC", "Source Han Sans TW", "Heti Hei";--font-cjk-serif:"思源宋体", "Noto Serif CJK TC", "Source Han Serif TW", "PMingLiU"}:root{--step--2:clamp(0.5628rem, 0.2934rem + 1.0775vw, 1.1285rem);--step--1:clamp(0.7502rem, 0.4626rem + 1.1504vw, 1.3542rem);--step-0:clamp(1rem, 0.7024rem + 1.1905vw, 1.625rem);--step-1:clamp(1.333rem, 1.0392rem + 1.1752vw, 1.95rem);--step-2:clamp(1.7769rem, 1.5087rem + 1.0726vw, 2.34rem);--step-3:clamp(2.3686rem, 2.1594rem + 0.837vw, 2.808rem);--step-4:clamp(3.1573rem, 3.0563rem + 0.4043vw, 3.3696rem);--step-5:clamp(4.0435rem, 4.2874rem + -0.3147vw, 4.2087rem)}:root{--space-3xs:clamp(0.25rem, 0.1607rem + 0.3571vw, 0.4375rem);--space-2xs:clamp(0.5rem, 0.3512rem + 0.5952vw, 0.8125rem);--space-xs:clamp(0.75rem, 0.5119rem + 0.9524vw, 1.25rem);--space-s:clamp(1rem, 0.7024rem + 1.1905vw, 1.625rem);--space-m:clamp(1.5rem, 1.0536rem + 1.7857vw, 2.4375rem);--space-l:clamp(2rem, 1.4048rem + 2.381vw, 3.25rem);--space-xl:clamp(3rem, 2.1071rem + 3.5714vw, 4.875rem);--space-2xl:clamp(4rem, 2.8095rem + 4.7619vw, 6.5rem);--space-3xl:clamp(6rem, 4.2143rem + 7.1429vw, 9.75rem);--space-3xs-2xs:clamp(0.25rem, -0.0179rem + 1.0714vw, 0.8125rem);--space-2xs-xs:clamp(0.5rem, 0.1429rem + 1.4286vw, 1.25rem);--space-xs-s:clamp(0.75rem, 0.3333rem + 1.6667vw, 1.625rem);--space-s-m:clamp(1rem, 0.3155rem + 2.7381vw, 2.4375rem);--space-m-l:clamp(1.5rem, 0.6667rem + 3.3333vw, 3.25rem);--space-l-xl:clamp(2rem, 0.631rem + 5.4762vw, 4.875rem);--space-xl-2xl:clamp(3rem, 1.3333rem + 6.6667vw, 6.5rem);--space-2xl-3xl:clamp(4rem, 1.2619rem + 10.9524vw, 9.75rem);--space-s-l:clamp(1rem, -0.0714rem + 4.2857vw, 3.25rem)}:root{--sl-font-2x-small:var(--step--2);--sl-font-x-small:var(--step--1);--sl-font-small:var(--step-0);--sl-font-medium:var(--step-1);--sl-font-large:var(--step-2);--sl-font-x-large:var(--step-3);--sl-font-2x-large:var(--step-4);--sl-font-3x-large:var(--step-5)}:root{--text-color:var(--sl-color-primary-900);--link-color:var(--sl-color-primary-600);--diminished-text-color:var(--sl-color-amber-500);--header-color:var(--sl-color-amber-900);--background:var(--sl-color-amber-50);--footer-background:var(--sl-color-amber-900);--footer-text:var(--sl-color-amber-50)}:root{--main-font-family:Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;--mono-font-family:Hack, monospace;--background:var(--primary-color-lighter);--text-color:var(--primary-color-darker);--diminished-text-color:var(--primary-color-dark)}:root{--size-small:1.1vw;--size-medium:1.35vw;--size-large:1.75vw;--size-logo:4vw;--size-count:5vw;--size-count-font:3.5vw;--padding-small:.5vw;--padding:1.5vw;--padding-x2:3vw;--padding-x3:4.5vw;--padding-x4:6vw;--color-red:rgb(255, 0, 0);--color-black:#000;--color-gray:#999;--color-light-gray:#efefef;--color-background:#fefefe;--color-background-light:#eee;--color-header:#001c2c;--color-text:#1c2632;--color-meta:#878c92;--color-primary:rgb(0, 0, 0);--color-accent:rgb(43, 43, 43);--color-text-decoration:#cccccc40;--color-border:rgb(245, 245, 245);--color-info:#66bbff;--color-info:#66bbff10;--color-warn:#ffdd66;--color-error:#ff6666;--filter-accent:none;--filter-text:invert(43%) sepia(26%) saturate(269%) hue-rotate(148deg) brightness(91%) contrast(84%)}@media only screen and (min-width:1500px){:root{--size-small:16px;--size-medium:19px;--size-large:28px;--size-logo:64px;--size-count:80px;--size-count-font:56px;--padding-small:8px;--padding:24px;--padding-x2:48px;--padding-x3:72px;--padding-x4:96px}}@media(prefers-color-scheme:dark){:root{--color-background:#1c2128;--color-text:#e5e5e5;--color-text-decoration:#215574b0;--color-background-light:#111;--color-meta:#768390;--color-primary:rgb(235, 235, 235);--color-accent:rgb(255, 255, 255);--color-header:rgb(235, 235, 235);--color-border:rgba(255, 255, 255, 0.1);--filter-accent:invert(100%);--filter-text:invert(85%) sepia(9%) saturate(10%) hue-rotate(17deg) brightness(91%) contrast(87%)}.make-dark{filter:invert(100%)}}html{background-color:var(--color-background)}body{max-width:1200px;margin:0 auto;padding:0 var(--space-s);font-size:var(--sl-font-small);font-weight:400;overflow-y:scroll;color:var(--color-text);-webkit-font-smoothing:antialiased}body ::selection{background:var(--color-text-decoration)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:900}h1{font-family:var(--font-header);margin:var(--space-m)0;color:var(--color-header)}h2{font-family:var(--font-header);margin:var(--space-m)0;color:var(--color-header);border-bottom:2px solid var(--color-border)}h3{font-family:var(--font-header);margin:var(--space-m)0;color:var(--color-header)}h4{font-family:var(--font-header);margin:var(--space-m)0;color:var(--color-header)}p,ul,ol{font-size:var(--sl-font-small);line-height:1.6}a{color:var(--link-color);text-decoration:underline;cursor:crosshair}a:hover{text-decoration:underline}a div img{filter:var(--filter-text)}a div img:focus,a div img:hover{filter:var(--filter-accent)}code,.highlight,pre{font-family:var(--font-mono);overflow-x:scroll;line-height:1.6}code span,.highlight span,pre span{display:flex}hr{border:2px solid var(--color-border);margin:var(--space-l)0}u{text-decoration:underline double .5px;cursor:help}figure img{display:block;margin:0 auto;max-width:100%}figure img:hover{filter:opacity(80%)}figcaption{margin:0 auto;margin-top:4px;font-style:italic;width:fit-content}blockquote{border-left:var(--space-3xs)solid var(--color-text-decoration);color:var(--color-text);background-color:var(--color-border);padding:var(--space-xs)}header{margin:var(--space-s)0;padding-top:var(--space-m-l);padding-bottom:var(--space-m-l)}header h1{margin-bottom:var(--space-2xs)}header .header-title{color:var(--color-header);font-size:var(--sl-font-x-large);font-family:var(--font-title)}header nav{color:var(--color-header);align-self:flex-start;font-size:var(--sl-font-medium)}header nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;gap:var(--space-s);align-items:center;justify-content:center;height:100%}header nav a.active{text-decoration:underline}.container{margin-bottom:4rem}.container header{margin:var(--space-s)0;padding-top:var(--space-xs-l);padding-bottom:var(--space-xs-l)}.container section{display:flex;flex-direction:column}.container section aside{order:1}.container section aside ul{list-style-type:decimal!important}@media(max-width:1440px){.container section aside{display:none}}.container section article{order:2;margin:16px 0;max-width:100ch;overflow-x:scroll}.container section article iframe{width:100%;height:200vh;border:2px solid var(--color-border)}.container section article a:hover{color:var(--color-meta)}.container .gallery{display:flex;justify-content:space-between;margin-top:16px}.container .gallery figure{display:inline-block!important;width:calc(var(--space-s-l) * 4);margin:0 8px 2px 0}.container .article-list{font-family:var(--font-base);padding-left:0}.container .article-list a{text-decoration:none}.container .article-list a:hover{text-decoration:underline}.container .article-list .entry-title{color:var(--color-primary)}.container .article-list li{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-l)}.container .article-list li .entry{display:inline-block;margin-right:16px}.container .article-list li time{min-width:max-content;align-self:flex-start}header a,footer a{text-decoration:none}header a div img,footer a div img{filter:var(--filter-text)}header a div img:focus,header a div img:hover,footer a div img:focus,footer a div img:hover{filter:var(--filter-accent)}.meta{color:var(--color-meta)}.smaller,.smaller p{font-size:smaller}.tags{margin-bottom:var(--space-3xs)}.tags span>*{background-color:var(--color-border);border-radius:4px;padding:2px 6px;margin-right:4px}.pagination,.pagination-single{color:var(--color-text)}.pagination .page-item,.pagination>span,.pagination-single .page-item,.pagination-single>span{border:2px solid var(--color-border)}.pagination .page-item.active,.pagination-single .page-item.active{color:var(--color-accent);background-color:var(--color-border)}table{border:2px solid var(--color-border)}table thead{background-color:var(--color-border)}table tr:nth-child(even){background-color:var(--color-border)}.hint.warning{border-color:var(--color-warn)}.hint.danger{border-color:var(--error-color)}.hint.info{border-color:var(--info-color)}header a div,footer a div{display:inline-block;vertical-align:-10%;padding:0 4px}header a div img,footer a div img{height:var(--space-s)}@media(max-width:calc(42em + 32px)){html body{width:90vw}html .gallery figure{width:72px}}.pagination,.pagination-single{overflow:hidden;text-align:center}ul.pagination{width:100%}ul.pagination,.pagination-single span{padding:0}.pagination a,.pagination a:hover,.pagination-single span a,.pagination-single span a:hover{text-decoration:none}.page-item,.pagination-single span{margin-top:.5rem;padding:.5rem 1rem;display:inline-block}.footer{text-align:center;margin:2rem 0;line-height:1.6}.footer a{padding:.625rem;text-decoration:none}.footer .footer-slogan{margin-top:2rem;display:flex;flex-direction:row;justify-content:center}table{border-spacing:0;display:inline-block;max-width:100%;overflow-x:auto;padding:0;white-space:nowrap}table td,table th,table tr{padding:.4rem .8rem}table thead{border-collapse:collapse;margin:0;padding:0}nav{display:flex;justify-content:space-between;width:100%;font-weight:600;font-family:var(--font-sans)}.publications{font-family:var(--font-serif);color:var(--color--primary)}.publications p{line-height:1.4}.publications object{vertical-align:text-bottom}.publications p{margin-top:0}/*!* Project: Heti
* URL: https://github.com/sivan/heti
* Author: Sivan [sun.sivan@gmail.com]*/@font-face{font-family:heti hei;src:"Heti Hei SC","Heti Hei TC","Heti Hei JP","Heti Hei KR"}@font-face{font-family:heti hei sc;src:local("PingFang SC Regular"),local("Heiti SC Regular"),local("Microsoft YaHei"),local("Source Han Sans CN Regular"),local("Noto Sans CJK SC Regular"),local("WenQuanYi Micro Hei"),local("Droid Sans Fallback")}@font-face{font-family:heti hei tc;src:local("PingFang TC Regular"),local("Heiti TC Regular"),local("Microsoft Jhenghei"),local("Source Han Sans HK Regular"),local("Source Han Sans TW Regular"),local("Noto Sans CJK TC Regular"),local("WenQuanYi Micro Hei"),local("Droid Sans Fallback")}@font-face{font-family:heti hei jp;src:local("Hiragino Sans GB W3"),local("Source Han Sans JP Regular"),local("Noto Sans CJK JP Regular"),local("Droid Sans Fallback")}@font-face{font-family:heti hei kr;src:local("Source Han Sans KR Regular"),local("Noto Sans CJK KR Regular"),local("Droid Sans Fallback")}@font-face{font-family:heti hei;font-weight:200;src:"Heti Hei SC Light","Heti Hei TC Light","Heti Hei JP Light","Heti Hei KR Light"}@font-face{font-family:heti hei sc light;font-weight:200;src:local("PingFang SC Light"),local("Heiti SC Light"),"Heti Hei SC Light Fallback",local("Source Han Sans CN Light"),local("Noto Sans CJK SC Light")}@font-face{font-family:heti hei tc light;font-weight:200;src:local("PingFang TC Light"),local("Heiti TC Light"),local("Microsoft Jhenghei Light"),local("Source Han Sans HK Light"),local("Source Han Sans TW Light"),local("Noto Sans CJK TC Light")}@font-face{font-family:heti hei jp light;font-weight:200;src:local("Source Han Sans JP Light"),local("Noto Sans CJK JP Light")}@font-face{font-family:heti hei kr light;font-weight:200;src:local("Source Han Sans KR Light"),local("Noto Sans CJK KR Light")}@font-face{font-family:heti hei sc light fallback;font-weight:200;src:local("Microsoft YaHei"),local("Droid Sans Fallback")}@font-face{font-family:heti hei;font-weight:600;src:"Heti Hei SC Bold","Heti Hei TC Bold","Heti Hei JP Bold","Heti Hei KR Bold"}@font-face{font-family:heti hei sc bold;font-weight:600;src:local("PingFang SC Medium"),local("Heiti SC Medium"),"Heti Hei SC Bold Fallback",local("Source Han Sans CN Bold"),local("Noto Sans CJK SC Bold")}@font-face{font-family:heti hei tc bold;font-weight:600;src:local("PingFang TC Medium"),local("Heiti TC Medium"),local("Microsoft Jhenghei Bold"),local("Source Han Sans HK Bold"),local("Source Han Sans TW Bold"),local("Noto Sans CJK TC Bold")}@font-face{font-family:heti hei jp bold;font-weight:600;src:local("Hiragino Sans GB W6"),local("Source Han Sans JP Bold"),local("Noto Sans CJK JP Bold")}@font-face{font-family:heti hei kr bold;font-weight:600;src:local("Source Han Sans KR Bold"),local("Noto Sans CJK KR Bold")}@font-face{font-family:heti hei sc bold fallback;font-weight:600;src:local("Microsoft YaHei"),local("Droid Sans Fallback")}@font-face{font-family:heti hei black;font-weight:800;src:"Heti Hei SC Black","Heti Hei TC Black","Heti Hei JP Black","Heti Hei KR Black"}@font-face{font-family:heti hei sc black;font-weight:800;src:local("Lantinghei SC Heavy"),local("PingFang SC Semibold"),local("Heiti SC Medium"),"Heti Hei SC Black Fallback",local("Source Han Sans CN Heavy"),local("Noto Sans CJK SC Heavy")}@font-face{font-family:heti hei tc black;font-weight:800;src:local("Lantinghei TC Heavy"),local("PingFang TC Semibold"),local("Heiti TC Medium"),local("Microsoft Jhenghei Bold"),local("Source Han Sans HK Heavy"),local("Source Han Sans TW Heavy"),local("Noto Sans CJK TC Heavy")}@font-face{font-family:heti hei jp black;font-weight:800;src:local("Hiragino Sans GB W6"),local("Source Han Sans JP Heavy"),local("Noto Sans CJK JP Heavy")}@font-face{font-family:heti hei kr black;font-weight:800;src:local("Source Han Sans KR Heavy"),local("Noto Sans CJK KR Heavy")}@font-face{font-family:heti hei sc black fallback;font-weight:800;src:local("Microsoft YaHei"),local("Droid Sans Fallback")}@font-face{font-family:heti song;src:local("Songti SC Regular"),local("Songti TC Regular"),local("SimSun")}@font-face{font-family:heti song;font-weight:200;src:local("Songti SC Light"),local("Songti TC Light"),"Heti Song Light Fallback"}@font-face{font-family:heti song light fallback;font-weight:200;src:local("SimSun")}@font-face{font-family:heti song;font-weight:600;src:local("Songti SC Bold"),local("Songti TC Bold"),"Heti Song Bold Fallback"}@font-face{font-family:heti song bold fallback;font-weight:600;src:local("SimSun")}@font-face{font-family:heti song black;font-weight:800;src:local("Songti SC Black"),local("SimSun")}@font-face{font-family:heti kai;src:local("Kaiti SC Regular"),local("Kaiti TC Regular"),local("STKaiti"),local("Kaiti"),local("BiauKai")}@font-face{font-family:heti kai;font-weight:600;src:local("Kaiti SC Bold"),local("Kaiti TC Bold")}@font-face{font-family:heti kai bold fallback;font-weight:600;src:local("STKaiti"),local("Kaiti")local("BiauKai")}@font-face{font-family:heti kai black;font-weight:800;src:local("Kaiti SC Black"),local("Kaiti TC Black"),local("STKaiti"),local("Kaiti")}.heti{max-width:1200px;font-size:26px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;line-height:1.6;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}.heti heti-spacing{display:inline}.heti heti-spacing+sup,.heti heti-spacing+sub{margin-inline-start:0}.heti .heti-spacing-start{margin-inline-end:.25em}.heti .heti-spacing-end{margin-inline-start:.25em}.heti heti-adjacent{display:inline;text-spacing-trim:space-all}.heti .heti-adjacent-half{margin-inline-end:-.5em}.heti .heti-adjacent-quarter{margin-inline-end:-.25em}