:root{color-scheme:light;--ink:#202020;--muted:#767676;--line:#e9e9e9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.85}.site{max-width:744px;margin:0 auto;padding:64px 28px 24px}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:#555}a:focus-visible{outline:2px solid #333;outline-offset:5px}h1,h2,h3{line-height:1.45;letter-spacing:-.025em}h1{font-size:30px;font-weight:650;margin:18px 0 12px}h2{font-size:21px;font-weight:600}h3{font-size:18px}.avatar{display:block;object-fit:contain}.intro{font-size:12px;letter-spacing:.14em;color:var(--muted);margin:0 0 18px}.socials,nav{display:flex;gap:24px;flex-wrap:wrap}.socials{font-size:14px}nav{margin-top:28px;font-size:14px}nav a{text-decoration:none}.profile{margin-bottom:54px}.compact{margin-bottom:46px}.compact nav{margin:0}main section+section{margin-top:48px}.post-list{list-style:none;padding:0;margin:22px 0}.post-list li{padding:0 0 22px}.post-title{font-size:18px;text-decoration:none}.post-title:hover{text-decoration:underline}.meta{font-size:13px;color:var(--muted);margin-top:7px}.meta a{text-decoration:none}.muted{font-size:14px;color:var(--muted)}footer{margin-top:70px;padding-top:20px;border-top:1px solid var(--line);font-size:10px;letter-spacing:.13em;color:var(--muted)}.article-header{margin-bottom:42px}.article-header h1{font-size:32px;overflow-wrap:anywhere}.prose{overflow-wrap:break-word}.prose h2{margin:42px 0 18px}.prose p{margin:18px 0}.prose ul{padding-left:24px}.prose li+li{margin-top:6px}.prose blockquote{margin:24px 0;padding:2px 0 2px 20px;border-left:3px solid #d9d9d9;color:#555}.prose pre{padding:18px 20px;background:#f6f6f6;border:1px solid #eee;border-radius:4px;overflow-x:auto;font-size:13px;line-height:1.75;tab-size:4}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em;background:#f5f5f5;padding:2px 4px;border-radius:3px}.prose pre code{padding:0;background:none;font-size:inherit}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:24px 0;font-size:14px}.prose th,.prose td{border:1px solid #e3e3e3;padding:10px 12px;min-width:125px;text-align:left}.prose th{background:#f7f7f7}.prose hr{border:0;border-top:1px solid var(--line);margin:36px 0}.back{margin-top:44px;font-size:14px}@media(max-width:540px){.site{padding:32px 20px 20px}h1{font-size:26px}.article-header h1{font-size:27px}.profile{margin-bottom:40px}.prose pre{padding:14px;font-size:12px}.post-title{font-size:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.prose math[display="block"]{display:block;overflow-x:auto;padding:12px 0;max-width:100%}

.prose .article-diagram{margin:0 0 32px}.article-diagram img{display:block;width:100%;height:auto}.article-diagram figcaption{margin-top:8px;font-size:12px;color:var(--muted)}

/* Python syntax colors, pre-rendered with Pygments. */
.prose .language-python{color:#24292f}
.prose .language-python :is(.k,.kc,.kd,.kn,.kp,.kr,.kt,.ow){color:#cf222e}
.prose .language-python :is(.s,.sa,.sb,.sc,.dl,.sd,.s2,.se,.sh,.si,.sx,.sr,.s1,.ss){color:#0a3069}
.prose .language-python :is(.c,.ch,.cm,.cp,.cpf,.c1,.cs){color:#57606a;font-style:italic}
.prose .language-python :is(.m,.mb,.mf,.mh,.mi,.il,.mo,.nb,.bp){color:#0550ae}
.prose .language-python :is(.nf,.fm,.nc,.nd){color:#6639ba}

.about-interests{margin-top:40px;padding-top:4px;border-top:1px solid var(--line)}.prose .about-interests h2{margin:24px 0 18px}.prose .interest-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;list-style:none;padding:0;margin:0}.prose .interest-list li{margin:0;padding-left:14px;position:relative;font-size:15px}.interest-list li:before{content:"";position:absolute;left:0;top:.85em;width:4px;height:4px;border-radius:50%;background:#aaa}@media(max-width:360px){.prose .interest-list{grid-template-columns:1fr}}

.about-banner{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin:24px 0 32px}

/* Expanded series directory; anchors keep every article visible. */
.series-nav{gap:12px;margin:28px 0 36px}.series-nav a{border:1px solid var(--line);border-radius:6px;padding:8px 16px}.series-nav a:hover{background:#f6f6f6}.series-section{scroll-margin-top:24px;border-top:1px solid var(--line);padding-top:22px}.series-section .post-title{display:flex;gap:16px;align-items:baseline}.episode-number{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;flex:0 0 22px}.series-section .post-list li{padding-bottom:18px}

/* Paper articles: series label, Chinese heading, English subtitle. */
.paper-header .paper-series{display:inline-block;font-size:13px;line-height:1.6;color:var(--muted);text-decoration:none;letter-spacing:.02em}.paper-header .paper-series:hover{text-decoration:underline}.paper-header h1{margin:14px 0 10px;text-wrap:balance}.paper-header .paper-subtitle{margin:0;font-size:17px;line-height:1.6;color:var(--muted);overflow-wrap:break-word}@media(max-width:540px){.paper-header .paper-subtitle{font-size:15px}}

/* Sequential reading links at the end of every series article. */
.series-reading-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:48px 0 0;padding:18px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.45}.series-reading-nav a{text-decoration:none}.series-reading-nav a:hover{text-decoration:underline}.series-reading-nav .reading-index{color:var(--muted);text-align:center}.series-reading-nav .reading-next{text-align:right}.series-reading-nav .reading-placeholder{visibility:hidden}@media(max-width:540px){.series-reading-nav{grid-template-columns:1fr auto 1fr;gap:8px;font-size:12px}.series-reading-nav a{overflow-wrap:anywhere}}

html{scrollbar-gutter:stable}

/* 顶部导航：和首页 .centered-nav 完全一致（位置、字体、间距），从首页点进来导航不动 */
header.compact{min-height:calc(14px*1.85)}
header.compact nav{flex-wrap:nowrap;position:absolute;z-index:5;top:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:clamp(22px,3.2vw,48px);width:max-content;max-width:calc(100% - 32px);margin:0;overflow-x:auto;scrollbar-width:thin;padding:8px 2px 12px}
header.compact nav a{flex:0 0 auto;white-space:nowrap;color:#000;font:400 14px/1.6 Arial,"PingFang SC",sans-serif;letter-spacing:.025em;text-decoration:none;text-underline-offset:8px}
header.compact nav a:hover{color:#000;text-decoration:underline}
@media(max-width:540px){header.compact nav{top:22px;gap:16px;justify-content:flex-start}header.compact nav a{font-size:12px}}
@media(min-width:901px){header.compact nav{overflow:visible}header.compact nav a:first-child{transform:none}}


