@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/newsreader-latin-500-normal-B66TYsaK.woff2) format("woff2"),url(/assets/newsreader-latin-500-normal-DFwuUcdu.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}:root{--night: #0a1a3f;--night-deep: #06112c;--page: #afc4f4;--starlight: #f4f7ff;--bg: #f5f7fc;--bg-elev: #ffffff;--bg-soft: #ebeffa;--ink: #0e1c3d;--ink-2: #33415f;--ink-3: #66728f;--line: #dfe5f3;--accent: #2652c4;--accent-soft: #e6edfd;--code-bg: #0b1734;--code-ink: #dbe4fb;--display: "Newsreader", "Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--sans: "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #071230;--bg-elev: #0c1a3f;--bg-soft: #11214b;--ink: #eef2ff;--ink-2: #bfcbe9;--ink-3: #8593b8;--line: #19295a;--accent: #9bb6f6;--accent-soft: #15295c;--code-bg: #050d24;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font:17px/1.75 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.b-top{position:sticky;top:0;z-index:10;height:62px;display:flex;align-items:center;gap:18px;padding:0 22px;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line)}.b-brand{display:flex;align-items:center;gap:10px;color:var(--ink)}.b-brand:hover{text-decoration:none}.b-brand img{border-radius:8px}.b-brand span{display:flex;flex-direction:column;line-height:1.1}.b-brand b{font:600 17px var(--display)}.b-brand small{font-size:11.5px;color:var(--ink-3);letter-spacing:.02em}.b-top nav{margin-left:auto;display:flex;align-items:center;gap:4px}.b-top nav a{padding:6px 10px;border-radius:8px;color:var(--ink-2);font-size:14px;line-height:1.6}.b-top nav a:hover{background:var(--bg-soft);text-decoration:none}.b-top nav a.on{color:var(--ink);font-weight:600}.b-top nav a.b-lang-btn{display:flex;align-items:center;gap:6px;border:1px solid var(--line);margin-left:4px}.b-main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:48px clamp(18px,5vw,32px) 64px}.b-main:has(.layout-wide){max-width:1000px}.b-index h1,.b-post h1{font:500 clamp(32px,5vw,44px)/1.2 var(--display);margin:0 0 12px;letter-spacing:-.01em}.b-index h1 span{color:var(--ink-3);font-size:.6em;margin-left:8px}.b-lede{color:var(--ink-2);margin:0 0 36px}.b-empty{color:var(--ink-3)}.b-list{list-style:none;margin:0;padding:0}.b-item{padding:26px 0;border-top:1px solid var(--line)}.b-item h2{font:500 26px/1.3 var(--display);margin:4px 0 8px}.b-item h2 a{color:var(--ink)}.b-summary{margin:0 0 10px;color:var(--ink-2)}.b-meta{margin:0;color:var(--ink-3);font-size:14px}.b-draft{color:#c2322b}.b-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0}.b-tags li{font-size:13px;padding:1px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.b-back{display:inline-block;font-size:14px;margin:0 0 22px}.b-post>.b-back:last-child{margin:40px 0 0}.b-post .b-tags{margin-bottom:8px}.b-body{margin-top:28px}.b-body h2,.b-body h3,.b-body h4{font-family:var(--display);font-weight:500;line-height:1.3;margin:2em 0 .6em;position:relative}.b-body h2{font-size:30px}.b-body h3{font-size:23px}.b-body h4{font-size:19px}.b-body .anchor{position:absolute;left:-.9em;color:var(--ink-3);opacity:0;text-decoration:none}.b-body h2:hover .anchor,.b-body h3:hover .anchor,.b-body h4:hover .anchor{opacity:1}.b-body p,.b-body ul,.b-body ol{margin:0 0 1.1em}.b-body li{margin:.3em 0}.b-body img{display:block;max-width:100%;height:auto;margin:1.6em auto;border-radius:10px}.b-body figure{margin:1.6em 0}.b-body figure img{margin:0 auto}.b-body figcaption{text-align:center;color:var(--ink-3);font-size:14px;margin-top:8px}.b-body figure.wide{width:100%;margin:2em 0}.b-body figure.wide img,.b-body figure.wide video{display:block;width:100%;height:auto;margin:0;border-radius:12px}.b-body video{max-width:100%;border-radius:10px;background:var(--night-deep)}.b-body .table-notes{font-size:13px;line-height:1.6;color:var(--ink-3);margin:-.4em 0 1.6em}.b-body .table-notes p{margin:0 0 .3em}.b-body .table-notes ol,.b-body .table-notes ul{padding-left:1.5em;margin:0}.b-body .table-notes li{margin:.15em 0}.b-body ol.refs{font-size:15px;line-height:1.6;color:var(--ink-2);padding-left:1.8em}.b-body ol.refs li{margin:.45em 0;scroll-margin-top:80px;overflow-wrap:anywhere}.b-body ol.refs li:target{background:var(--accent-soft);border-radius:6px}.b-body blockquote{margin:1.4em 0;padding:2px 20px;border-left:3px solid var(--accent);color:var(--ink-2);background:var(--bg-soft);border-radius:0 8px 8px 0}.b-body code{font:.88em var(--mono);background:var(--bg-soft);padding:.1em .35em;border-radius:5px}.b-body pre{background:var(--code-bg);color:var(--code-ink);padding:16px 18px;border-radius:10px;overflow-x:auto;line-height:1.55}.b-body pre code{background:none;padding:0;color:inherit;font-size:14px}.b-body hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}.b-body .table-wrap{overflow-x:auto;margin:1.4em 0}.b-body table{border-collapse:collapse;font-size:15px;min-width:100%}.b-body th,.b-body td{border:1px solid var(--line);padding:7px 12px;text-align:left;vertical-align:top}.b-body th{background:var(--bg-soft);font-weight:600}.b-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;padding:26px 20px 34px;border-top:1px solid var(--line);font-size:14px}.b-foot a{color:var(--ink-3)}@media(max-width:560px){.b-brand small{display:none}.b-top{padding:0 14px;gap:10px}.b-body h2{font-size:25px}.b-body .anchor{display:none}}
