:root{--bg:#f2f2e3;--text:#2d3748;--heading:#1a202c;--muted:#5f6c80;--primary:#6b46c1;--border:rgba(128, 128, 128, 0.25);--code-bg:rgba(128, 128, 128, 0.12);--font:Georgia, Cambria, "Times New Roman", Times, serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1a202c;--text:#cbd5e0;--heading:#f7fafc;--muted:#a0aec0;--primary:#b794f4;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;color-scheme:dark}}:root[data-theme=dark]{--bg:#1a202c;--text:#cbd5e0;--heading:#f7fafc;--muted:#a0aec0;--primary:#b794f4;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:18px;line-height:1.7}.wrap{max-width:1024px;margin:0 auto;padding:0 16px}@media(min-width:640px){.wrap{padding:0 32px}}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{color:var(--heading);line-height:1.25;margin:2em 0 .6em}h1{font-size:2.4rem;margin-top:1.5em}h2{font-size:1.7rem}h3{font-size:1.35rem}img,iframe,video{max-width:100%}iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0}img{height:auto;border-radius:4px}hr{border:0;border-top:1px solid var(--border);margin:2em 0}blockquote{margin:1.2em 0;padding-left:1em;border-left:4px solid var(--primary);color:var(--muted)}table{border-collapse:collapse;margin:1em 0}th,td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}code{font-size:.85em;background:var(--code-bg);padding:.1em .35em;border-radius:4px}pre{overflow-x:auto;padding:1em;border-radius:6px;background:#2d2d2d;color:#f8f8f2;font-size:.85em;line-height:1.5}pre code{background:0 0;padding:0;font-size:1em}details{margin:1em 0}summary{cursor:pointer;color:var(--primary)}.site-header{padding:2rem 0 1rem;border-bottom:1px solid var(--border)}.brand-row{display:flex;align-items:center;justify-content:space-between}.brand{font-size:1.6rem;font-weight:700;color:var(--heading)}.brand:hover{text-decoration:none}.theme-toggle{font-size:1.4rem;background:0 0;border:0;color:var(--muted);cursor:pointer;padding:4px}.nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:1rem}.nav a{color:var(--muted);margin-right:1rem}.nav span:last-child a{margin:0 0 0 1rem}main{padding-bottom:3rem}.site-footer{border-top:1px solid var(--border);padding:1.5rem 0 2.5rem;color:var(--muted);font-size:.9rem}.site-footer a{color:var(--muted)}.hero{font-size:1.2rem;margin-top:3rem}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.section-title .more{font-size:1rem;font-weight:400}.post-item{margin-bottom:1.8rem}.post-item-title{font-size:1.25rem;color:var(--heading)}.meta{color:var(--muted);font-size:.95rem;margin:.25rem 0}.meta a{color:var(--muted)}.projects li{margin-bottom:.4rem}.tags-list{list-style:none;padding:0}.tags-list li{margin-bottom:.4rem}.post .content{overflow-wrap:break-word}.table-scroll{overflow-x:auto}.vocab-index{width:100%;font-size:.9em}.vocab-index .nowrap{white-space:nowrap}.vocab-index .pinyin{font-size:.85em;color:var(--muted)}.form label{display:block;margin-bottom:.3rem}.form input,.form textarea{display:block;width:100%;margin-bottom:1em;padding:.68em 1em;border:1px solid var(--border);border-radius:.28rem;font:inherit;font-size:1rem;background:rgba(255,255,255,.6);color:inherit;resize:none}.form button{padding:.6em 1.4em;border:0;border-radius:.28rem;background:var(--primary);color:#fff;font:inherit;font-size:1rem;cursor:pointer}