:root{--background: #0e141b;--header-text: #c9d5e3;--body-text: #e0e1dd;--accent-color-1: #2c5a8c;--link-color: #4a8abf;--link-hover-color: #778da9;--mobile-header-bg: #131a23;--font-latin-serif: "Source Serif 4";--font-cjk-sc-serif: "Songti SC", "Noto Serif CJK SC", "Noto Serif SC", "Source Han Serif SC", "STSong", "SimSun";--font-cjk-tc-serif: "Songti TC", "Noto Serif CJK TC", "Noto Serif TC", "Source Han Serif TC", "PMingLiU", "MingLiU";--font-serif: var(--font-latin-serif), var(--font-cjk-sc-serif), serif;--weight-body: 400;--weight-heading: 600;--weight-strong: 700}html.light{--background: #f4f1ec;--header-text: #1a1a2e;--body-text: #2d2d3a;--accent-color-1: #b0bec5;--link-color: #1a5fb8;--link-hover-color: #4a7ab5;--mobile-header-bg: #e8e4dd}@font-face{font-family:"Source Serif 4";src:url(/fonts/SourceSerif4-Variable.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(/fonts/SourceSerif4-Italic-Variable.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}body{font-family:var(--font-serif);margin:0;padding:0;background-color:var(--background);color:var(--body-text);font-size:20px;line-height:1.5;font-weight:var(--weight-body);font-optical-sizing:auto;font-synthesis-small-caps:none;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}strong,b{font-weight:var(--weight-strong)}:lang(zh),:lang(zh-Hans){font-family:var(--font-latin-serif),var(--font-cjk-sc-serif),serif}:lang(zh-Hant){font-family:var(--font-latin-serif),var(--font-cjk-tc-serif),serif}img{max-width:100%;height:auto;border-radius:8px}main{flex:1;width:720px;max-width:calc(100% - 2em);margin:0 auto;padding:0 1em 3em}.page-divider{width:720px;max-width:calc(100% - 2em);margin:1.5em auto;border-top:1px solid var(--accent-color-1)}hr{border:none;border-top:1px solid var(--accent-color-1);margin:1.5em 0}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:var(--weight-heading);color:var(--header-text);text-align:center;margin:0 0 .5rem;line-height:1.2}h1{font-size:clamp(1.6rem,4vw,2rem)}h2{font-size:clamp(1.75rem,4vw,2.5rem)}h3{font-size:clamp(1.4rem,3.5vw,2rem)}h4{font-size:clamp(1.15rem,3vw,1.5rem)}h5{font-size:1.1rem}h6{font-size:1rem}p{margin-bottom:1em}a{color:var(--link-color);text-decoration:none}a:hover{color:var(--link-hover-color);transition:color .2s ease}:focus-visible{outline:2px solid var(--link-hover-color);outline-offset:2px}code{padding:2px 5px;background-color:var(--body-text);border-radius:2px}pre{padding:1.5em;border-radius:8px}pre>code{all:unset}blockquote{border-left:4px solid var(--accent-color-1);padding-left:20px;margin:0;font-size:1.333em}header{text-align:center;margin:2.5em 0 0;position:relative}header h2{margin-bottom:.5em}header h2 a{color:var(--header-text);font-size:3rem;font-weight:var(--weight-body)}nav a{display:inline-block}nav a.active{text-decoration:underline;text-underline-offset:4px}.desktop-nav{display:flex;justify-content:center;gap:1.5em}.desktop-nav a{color:var(--header-text);font-size:1.15rem;padding:.25em 0}.desktop-nav a:hover{color:var(--link-hover-color)}.theme-toggle{background:none;border:none;cursor:pointer;font-family:inherit;font-size:1.15rem;font-weight:inherit;color:var(--header-text);padding:.25em 0}.theme-toggle:hover{color:var(--link-hover-color)}.menu-btn,.mobile-menu{display:none}footer{padding:2em 1em;color:var(--body-text);text-align:center;font-size:14px}.blog-list{list-style:none;margin:0;padding:0}.blog-list li{width:100%;text-align:center;margin-bottom:1.5em}.blog-list li+li{border-top:1px solid var(--accent-color-1);padding-top:1em}.blog-list li a{color:var(--header-text)}.blog-list li .title{font-size:clamp(1.25rem,4vw,2.2rem);font-weight:var(--weight-heading);margin-bottom:.25em}.blog-list li a:hover .title{color:var(--link-hover-color);transition:color .2s ease}.blog-list li .date{font-size:1.1rem;color:var(--body-text);margin-bottom:.5em}.blog-title h1{font-size:2.2rem;font-weight:var(--weight-heading);text-align:left;text-wrap:balance}.blog-title .date{text-align:left;font-size:1.1rem;color:var(--body-text)}.blog-title .last-updated-on{display:block;font-style:italic;margin-top:.25em;font-size:.9rem}.prose p{margin-bottom:2em}.prose h1{font-size:1.6rem;font-weight:var(--weight-heading);margin-bottom:.5em;text-align:left}.prose h2{text-align:left;margin-bottom:.5em}.non-blog-title h1{font-size:clamp(2.5rem,5vw,4rem);font-weight:var(--weight-heading);text-align:center}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.sr-only:focus,.sr-only:active{clip:auto;height:auto;width:auto;margin:1rem;overflow:visible;padding:.75rem 1rem;background:var(--background);color:var(--header-text);border:1px solid var(--accent-color-1);border-radius:.25rem;top:0;left:0;z-index:1000}@media (max-width: 720px){body{font-size:18px}main{padding:1em}h1{font-size:clamp(1.5rem,6vw,2rem)}h2{font-size:clamp(1.25rem,5vw,1.75rem)}h3{font-size:clamp(1rem,4vw,1.5rem)}header{text-align:left;margin:0;padding:1em;background:var(--mobile-header-bg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}header h2{margin-bottom:0}header h2 a{font-size:1.4rem}.desktop-nav{display:none}.menu-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;min-width:48px;min-height:48px;padding:10px}.menu-btn span{width:26px;height:3px;background:var(--header-text);border-radius:2px}.mobile-menu{display:flex;flex-direction:column;align-items:flex-end;width:100%;max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.mobile-menu.show{max-height:500px;padding:.5em 0}.mobile-menu a{color:var(--header-text);padding:.5em 1em;border-bottom:1px solid var(--accent-color-1);white-space:nowrap}.mobile-menu a:last-child{border-bottom:1px solid var(--accent-color-1)}.mobile-menu .theme-toggle{padding:.5em 1em;font-size:inherit;text-align:right;width:auto}.blog-list li .date{font-size:.95rem}.blog-title h1{font-size:1.8rem}.blog-title .date{font-size:.95rem}.blog-title .last-updated-on{font-size:.85rem}.prose h1{font-size:1.5rem}}
