:root{--bg:#f7f7f4;--surface:#fcfcfb;--ink:#17181a;--ink-2:#4c4e52;--muted:#85878b;--rule:#dfe0dc;--grid:#e6e6e1;--base:#c3c2b7;--accent:#2f5f8f;--mark:#fff3c4;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-7:#4a3aa7;--seq-1:#cde2fb;--seq-2:#9ec5f4;--seq-3:#6da7ec;--seq-4:#3987e5;--seq-5:#1c5cab;--seq-ink-light:#fff;--seq-ink-dark:#0b0b0b;--tip-bg:#fff;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-body:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-data:"IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--measure:68ch;--content:760px;--page-wide:1080px;--moon-display:block;--sun-display:none}:lang(zh){--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-body:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}:lang(ja){--font-display:"Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-body:"Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", "Meiryo", system-ui, sans-serif}:lang(en){--font-display:"Source Serif 4", Georgia, "Times New Roman", serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif}:where(body [lang]){font-family:var(--font-body)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111211;--surface:#1a1a19;--ink:#ecebe6;--ink-2:#c3c2b7;--muted:#8d8c86;--rule:#2f302d;--grid:#2c2c2a;--base:#4a4a46;--accent:#8db6e3;--mark:#3d3518;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-7:#9085e9;--seq-1:#1c2a3d;--seq-2:#184f95;--seq-3:#256abf;--seq-4:#3987e5;--seq-5:#86b6ef;--seq-ink-light:#0b0b0b;--seq-ink-dark:#fff;--tip-bg:#232322;--moon-display:none;--sun-display:block;color-scheme:dark}}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{--moon-display:none;--sun-display:block;--bg:#111211;--surface:#1a1a19;--ink:#ecebe6;--ink-2:#c3c2b7;--muted:#8d8c86;--rule:#2f302d;--grid:#2c2c2a;--base:#4a4a46;--accent:#8db6e3;--mark:#3d3518;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-7:#9085e9;--seq-1:#1c2a3d;--seq-2:#184f95;--seq-3:#256abf;--seq-4:#3987e5;--seq-5:#86b6ef;--seq-ink-light:#0b0b0b;--seq-ink-dark:#fff;--tip-bg:#232322;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);margin:0;font-size:16px;line-height:1.75}img{max-width:100%;height:auto}[hidden]{display:none!important}.bar,.page{max-width:var(--page-wide);margin:0 auto;padding-inline:20px}.page{max-width:calc(var(--content) + 40px);padding-block:40px 72px}.page.wide{max-width:var(--page-wide)}.site-header{z-index:30;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--rule);padding-top:env(safe-area-inset-top,0px);position:sticky;top:0}.site-header .bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding-block:12px;display:flex}.brand{font-family:var(--font-display);color:var(--ink);font-size:20px;font-weight:700;text-decoration:none}.site-nav{flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:14px;display:flex}.site-nav a{color:var(--ink-2);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink)}.lang-switch{border-left:1px solid var(--rule);gap:10px;padding-left:14px;display:flex}.lang-switch a[aria-current=true]{color:var(--ink);font-weight:600}.theme-toggle{width:32px;height:32px;color:var(--ink-2);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--ink);border-color:var(--base)}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.theme-toggle .icon-moon{display:var(--moon-display)}.theme-toggle .icon-sun{display:var(--sun-display)}.theme-toggle:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-footer{border-top:1px solid var(--rule);color:var(--muted);font-size:13px}.site-footer .bar{flex-wrap:wrap;gap:6px 18px;padding-block:22px 40px;display:flex}.home{max-width:var(--content)}.post-grid{grid-template-columns:minmax(0,1fr);gap:48px;display:grid}.post{min-width:0;max-width:var(--content)}.toc-side{display:none}@media (width>=1100px){.post-grid{grid-template-columns:220px minmax(0, var(--content))}.toc-side{display:block}.toc-inline{display:none}}.toc-side .toc{max-height:calc(100vh - 108px);padding-right:4px;position:sticky;top:84px;overflow-y:auto}.toc-title{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:11px}.toc-list,.toc-sub{margin:0;padding:0;list-style:none}.toc-link{border-left:2px solid var(--rule);color:var(--ink-2);gap:8px;padding:5px 10px 5px 12px;font-size:13.5px;line-height:1.45;text-decoration:none;display:flex}.toc-link.sub{padding-left:24px;font-size:12.5px}.toc-link:hover{color:var(--ink);border-left-color:var(--base)}.toc-link.active{color:var(--ink);border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, transparent);font-weight:600}.toc-num{font-family:var(--font-data);color:var(--muted);flex:none;font-weight:400}.toc-inline{border:1px solid var(--rule);background:var(--surface);border-radius:6px;margin:0 0 24px;padding:10px 14px}.toc-inline summary{cursor:pointer;font-size:14px;font-weight:600}.toc-inline .toc{margin-top:10px}.toc-inline .toc-title{display:none}.toc-inline .toc-sub{display:block}.site-footer a{color:var(--muted)}.prose{max-width:none}.post-list{gap:26px;margin:0;padding:0;list-style:none;display:grid}.post-card h2{margin:4px 0 6px;font-size:21px}.post-card h2 a{color:var(--ink);text-decoration:none}.post-card h2 a:hover{color:var(--accent)}.post-card p{color:var(--ink-2);margin:0}.post-meta{font-family:var(--font-data);letter-spacing:.04em;color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:12px;display:flex}.badge{font-family:var(--font-data);border:1px solid var(--rule);color:var(--ink-2);border-radius:4px;padding:0 6px;font-size:11px}.translations{color:var(--ink-2);flex-wrap:wrap;gap:4px 12px;margin-top:12px;font-size:14px;display:flex}header.title-block{border-bottom:1px solid var(--rule);margin-bottom:28px;padding-bottom:28px}.kicker{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px}h1{font-family:var(--font-display);text-wrap:balance;margin:10px 0 8px;font-size:clamp(26px,4.4vw,36px);font-weight:700;line-height:1.3}.subtitle{font-family:var(--font-display);color:var(--ink-2);margin:0 0 16px;font-size:18px}.meta{color:var(--muted);flex-wrap:wrap;gap:4px 18px;font-size:13px;display:flex}h2{font-family:var(--font-display);text-wrap:balance;margin:48px 0 12px;font-size:23px}h3{font-family:var(--font-display);text-wrap:balance;margin:30px 0 8px;font-size:18px}h2 .num,h3 .num{font-family:var(--font-data);color:var(--muted);margin-right:10px;font-size:.8em;font-weight:500}p{margin:0 0 14px}.abstract{background:var(--surface);border:1px solid var(--rule);border-radius:6px;margin:0 0 18px;padding:18px 20px}.abstract h2{font-size:16px;font-family:var(--font-body);letter-spacing:.06em;margin:0 0 8px}.keywords{color:var(--ink-2);font-size:14px}.persona-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin:18px 0 26px;display:grid}.persona{background:var(--surface);border:1px solid var(--rule);border-radius:6px;min-width:0;padding:16px 18px}.persona h4{font-family:var(--font-display);align-items:center;gap:8px;margin:0 0 4px;font-size:17px;display:flex}.persona h4 .swatch{border-radius:50%;flex:none;width:10px;height:10px}.swatch-1{background:var(--series-1)}.swatch-2{background:var(--series-2)}.persona .tag{color:var(--muted);margin-bottom:8px;font-size:13px}.persona ul{margin:0;padding-left:18px;font-size:14.5px;line-height:1.65}.persona li{margin-bottom:4px}figure{background:var(--surface);border:1px solid var(--rule);border-radius:6px;min-width:0;margin:26px 0 30px;padding:16px 16px 12px}figcaption{color:var(--ink-2);margin-top:8px;font-size:13.5px;line-height:1.6}figcaption b{color:var(--ink)}.viz-scroll{overflow-x:auto}.viz-svg{width:100%;min-width:520px;height:auto;font-family:var(--font-body);display:block}.viz-svg .ax{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.viz-svg .ax.strong{fill:var(--ink);font-weight:600}.viz-svg .ax-sub{fill:var(--muted);font-size:10px}.viz-svg .ax-title{fill:var(--ink-2);font-size:11.5px}.viz-svg .ax-note{fill:var(--muted);font-size:10.5px}.viz-svg .grid{stroke:var(--grid);stroke-width:1px}.viz-svg .base{stroke:var(--base);stroke-width:1px}.viz-svg .line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.viz-svg .band{opacity:.14;stroke:none}.viz-svg .dot{stroke:var(--surface);stroke-width:2px}.viz-svg .bar{stroke:var(--surface);stroke-width:1px;transition:opacity .12s}.viz-svg .err,.viz-svg .ci{stroke:var(--ink-2);stroke-width:1.4px}.viz-svg .link{stroke:var(--base);stroke-width:2px}.viz-svg .cross{stroke:var(--muted);stroke-width:1px}.viz-svg .hit{fill:#0000;outline:none}.viz-svg .hit:focus-visible,.viz-svg .bar:focus-visible{outline:2px solid var(--accent)}.viz-legend{color:var(--ink-2);flex-wrap:wrap;gap:6px 18px;margin-top:6px;font-size:12.5px;display:flex}.viz-legend>span{align-items:center;gap:6px;display:inline-flex}.lg-line{border-radius:2px;width:16px;height:2px}.lg-dot{border-radius:50%;width:10px;height:10px}.lg-rect{border-radius:2px;width:10px;height:10px}.viz-tip{z-index:20;pointer-events:none;background:var(--tip-bg);color:var(--ink);border:1px solid var(--rule);border-radius:6px;max-width:320px;padding:8px 10px;font-size:12.5px;line-height:1.5;position:fixed;box-shadow:0 4px 18px #0000001f}.viz-tip-title{color:var(--muted);margin-bottom:4px}.viz-tip-row{align-items:center;gap:7px;display:flex}.viz-tip-key{border-radius:2px;flex:none;width:12px;height:2px}.viz-tip-lab{color:var(--ink-2)}.table-wrap{margin:18px 0 24px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13.5px}caption{text-align:left;color:var(--ink-2);padding-bottom:8px;font-size:13.5px;line-height:1.6}caption b{color:var(--ink)}th,td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:6px 10px 6px 0}th{color:var(--ink-2);border-bottom:1px solid var(--base);font-size:12.5px;font-weight:600}td.n,th.n{text-align:right}td.k{font-family:var(--font-data);overflow-wrap:anywhere;min-width:11em;font-size:12.5px}td.lead{white-space:nowrap}tr.hl td{background:var(--mark)}.sig{font-weight:600}.note{color:var(--ink-2);border-left:2px solid var(--rule);margin:14px 0;padding-left:12px;font-size:13.5px}.refs{padding-left:22px;font-size:13.5px;line-height:1.6}.refs li{overflow-wrap:anywhere;margin-bottom:6px}a{color:var(--accent)}code{font-family:var(--font-data);background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:0 4px;font-size:.86em}@media (prefers-reduced-motion:reduce){.viz-svg .bar{transition:none}}.viz-svg .line.s1{stroke:var(--series-1)}.viz-svg .line.s2{stroke:var(--series-2)}.viz-svg .band.s1,.viz-svg .dot.s1,.viz-svg .bar.s1{fill:var(--series-1)}.viz-svg .band.s2,.viz-svg .dot.s2,.viz-svg .bar.s2{fill:var(--series-2)}.viz+.viz{margin-top:14px}.key-1{background:var(--series-1)}.key-2{background:var(--series-2)}.lang-note{color:var(--ink-2);font-size:14px}.viz-svg .line.s3{stroke:var(--series-3)}.viz-svg .line.s7{stroke:var(--series-7)}.viz-svg .band.s3,.viz-svg .dot.s3,.viz-svg .bar.s3,.key-3{fill:var(--series-3);background:var(--series-3)}.viz-svg .band.s7,.viz-svg .dot.s7,.viz-svg .bar.s7,.key-7{fill:var(--series-7);background:var(--series-7)}.viz-heat{min-width:0;max-width:520px}.viz-svg .cell.seq-1,.seq-swatch-1{fill:var(--seq-1);background:var(--seq-1)}.viz-svg .cell.seq-2,.seq-swatch-2{fill:var(--seq-2);background:var(--seq-2)}.viz-svg .cell.seq-3,.seq-swatch-3{fill:var(--seq-3);background:var(--seq-3)}.viz-svg .cell.seq-4,.seq-swatch-4{fill:var(--seq-4);background:var(--seq-4)}.viz-svg .cell.seq-5,.seq-swatch-5{fill:var(--seq-5);background:var(--seq-5)}.viz-svg .cell-label{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:10px}.viz-svg .seq-ink-4,.viz-svg .seq-ink-5{fill:var(--seq-ink-light)}h4.sub{font-family:var(--font-display);text-wrap:balance;margin:28px 0 8px;font-size:16.5px}.ci-note{color:var(--muted);font-size:11px;font-weight:400}.persona-table td:nth-child(2){white-space:nowrap}
