article{outline:none;position:relative}.post-head{margin:22px 0 30px;& h1{font-family:var(--serif);letter-spacing:.01em;color:var(--ink);text-wrap:balance;margin:0 0 14px;font-size:clamp(1.5rem,4.6vw,1.9rem);font-weight:600;line-height:1.4}& .meta{font-family:var(--serif);letter-spacing:.08em;color:var(--ink-3);margin:0 0 14px;font-size:13px;html[data-lang=en] &{letter-spacing:.02em}&:last-child{margin-bottom:0}&>span+span{margin-left:1.6em;position:relative;&:before{content:"";background:var(--edge);width:1px;height:.82em;position:absolute;top:50%;left:-.8em;transform:translateY(-50%)}}}& .standfirst{font-family:var(--serif);color:var(--ink-2);border-left:2px solid var(--cinnabar);margin:0;padding-left:14px;font-size:.98rem;line-height:1.85}}.prose{font-size:var(--reading-size);line-height:var(--reading-line);color:var(--ink);line-break:strict;& p{margin:0 0 1.25em}&>.lead{border-left:2px solid var(--cinnabar);padding-left:14px}& h2,& h3{scroll-margin-top:40px}& h2{font-family:var(--serif);color:var(--ink);margin:2.1em 0 .8em;font-size:1.18em;font-weight:600;line-height:1.5;&:before{content:"";background:var(--cinnabar);vertical-align:.12em;width:7px;height:7px;margin-right:10px;display:inline-block}}& h3{font-family:var(--serif);color:var(--ink);margin:2em 0 .65em;font-size:1.12em;font-weight:700;line-height:1.5;&:before{content:"";vertical-align:.16em;border:1.5px solid var(--ink-2);width:.32em;height:.32em;margin-right:.55em;display:inline-block}}& h4{font-family:var(--serif);color:var(--ink);margin:1.6em 0 .4em;font-size:.97em;font-weight:600}& a.link{text-underline-offset:4px;text-decoration:underline 1px;text-decoration-color:var(--ink-3);transition:color var(--speed) var(--ease);&:hover{color:var(--cinnabar);text-decoration-color:var(--cinnabar)}}& strong{font-weight:600}& em{font-family:var(--kai);font-style:normal;html[data-lang=en] &{font-style:italic}}& del,& s{text-decoration:line-through;text-decoration-color:var(--ink-3);color:var(--ink-3)}& mark{background:color-mix(in srgb, var(--cinnabar) 14%, transparent);color:inherit;padding:.05em .15em}& kbd{font-family:var(--mono);border:1px solid var(--edge);background:var(--paper);border-bottom-width:2px;border-radius:3px;padding:.1em .45em;font-size:.78em}& sup,& sub{font-size:.72em;line-height:0}& code{font-family:var(--mono);background:var(--paper-deep);border:1px solid var(--edge-soft);border-radius:3px;padding:.08em .38em;font-size:.84em}& pre{background:var(--paper-deep);border:1px solid var(--edge-soft);border-radius:3px;margin:1.7em 0;padding:14px 18px;line-height:1.75;overflow-x:auto;& code{background:0 0;border:0;border-radius:0;padding:0;font-size:.8em}}& table{border-collapse:collapse;border-top:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);width:100%;margin:1.7em 0;font-size:.92em;line-height:1.7}& th{font-family:var(--serif);text-align:left;color:var(--ink);border-bottom:1px solid var(--ink-2);padding:7px 12px;font-weight:600}& td{vertical-align:top;padding:7px 12px}& ul,& ol{margin:1.2em 0 1.4em;padding-left:1.5em}& li{margin:0 0 .45em;&::marker{color:var(--ink-3)}&>ul,&>ol{margin:.45em 0}}& ol li::marker{font-family:Georgia,Times New Roman,serif;font-size:.95em}& ul.tasks{padding-left:.3em;list-style:none;& li{padding-left:1.7em;position:relative;&.done{color:var(--ink-3)}}& .box{left:0;top:calc((var(--reading-line) * 1em - .95em) / 2);border:1px solid var(--ink-3);width:.95em;height:.95em;position:absolute;&.done:after{content:"✓";color:var(--ink-2);justify-content:center;align-items:center;font-size:.8em;display:flex;position:absolute;inset:0}}}& dl{margin:1.2em 0 1.4em}& dt{margin-top:.7em;font-weight:600}& dd{color:var(--ink-2);margin:.15em 0 0 2em}& blockquote{color:var(--ink-2);margin:1.7em 0;padding:.1em 0 .1em 1.2em;font-size:.97em;line-height:1.9;position:relative;&:before{content:"";border-left:1px solid var(--ink-3);position:absolute;top:0;bottom:0;left:0}&:has(>cite):before{bottom:1.972em}&>p{margin:0}&>p+p,&>blockquote+p{margin-top:.6em}& blockquote{margin:.6em 0;&:before{border-left-color:var(--edge)}}& cite{color:var(--ink-3);text-align:right;margin-top:.5em;font-size:.78em;font-style:normal;display:block;&:before{content:"—— "}}}& a.cite{vertical-align:.55em;font-variant-numeric:lining-nums;color:var(--ink-3);transition:color var(--speed) var(--ease);margin-right:.2em;scroll-margin-top:30vh;font-size:.68em;line-height:0;&:hover{color:var(--cinnabar)}&:target{background:var(--paper-deep)}}& .refs{border-top:1px solid var(--edge);margin-top:2.6em;padding-top:1.4em;& h2{margin:0 0 .7em;font-size:1.02em}& ol{color:var(--ink-2);margin:0;padding-left:0;font-size:.8em;line-height:1.7;list-style:none}& li{margin:0;scroll-margin-top:30vh;&:target{background:var(--paper-deep)}&:has(>.ref-ttl){grid-template-columns:2em 8.2em minmax(0,1fr);align-items:baseline;column-gap:.8em;display:grid}}& .ref-n{text-align:right;font-variant-numeric:tabular-nums lining-nums;color:var(--ink-3);font-size:.9em;&+.ref-ttl{grid-column:2/-1}}& a.ref-n{transition:color var(--speed) var(--ease);&:hover{color:var(--cinnabar)}}& .ref-src{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}& a.link{text-decoration-color:var(--edge);&:hover{text-decoration-color:var(--cinnabar)}}@media (width<=640px){& li{margin-bottom:.4em}& li:has(>.ref-ttl){grid-template-columns:2em minmax(0,1fr)}& .ref-src{grid-column:2;font-size:.9em}& .ref-ttl{grid-column:2}}}& .dinkus{text-align:center;color:var(--ink-3);letter-spacing:.8em;user-select:none;margin:2em 0}& hr{border:0;border-top:1px solid var(--edge);width:6em;margin:2.2em auto}& .callout{border:1px solid var(--edge);margin:1.7em 0;padding:.85em 1.2em;& .co-head{font-family:var(--kai);letter-spacing:.3em;color:var(--ink-2);margin:0 0 .35em;font-size:.92em;font-weight:700;html[data-lang=en] &{letter-spacing:.06em;font-variant:small-caps;font-weight:600}}& p{font-size:.95em;&:last-child{margin-bottom:0}}&.warn{border-color:color-mix(in srgb, var(--cinnabar) 55%, transparent);& .co-head{color:var(--cinnabar)}}}& details{border-top:1px solid var(--edge-soft);border-bottom:1px solid var(--edge-soft);margin:1.7em 0;padding:.8em .3em;&[open]{& summary{color:var(--ink);margin-bottom:.6em;&:before{transform:rotate(90deg)}}&>:not(summary){animation:unfold .35s var(--ease) both}}}& summary{font-family:var(--serif);color:var(--ink-2);cursor:pointer;user-select:none;transition:color var(--speed) var(--ease);list-style:none;&::-webkit-details-marker{display:none}&:hover{color:var(--ink)}&:before{content:"";border-left:.36em solid var(--ink-3);vertical-align:.1em;width:0;height:0;transition:transform .25s var(--ease);border-top:.28em solid #0000;border-bottom:.28em solid #0000;margin-right:.55em;display:inline-block}}& figure{margin:1.9em 0;&.chart img{border:1px solid var(--edge);width:100%;height:auto;display:block}}& .frame{border:1px solid var(--edge);aspect-ratio:3/2;background:linear-gradient(150deg, var(--paper-deep), #5f594c38);display:block;overflow:hidden;& img{object-fit:cover;filter:saturate(.92);width:100%;height:100%;display:block}}& figcaption{font-family:var(--kai);color:var(--ink-3);text-align:center;margin-top:9px;font-size:12.5px;line-height:1.7;html[data-lang=en] &{font-style:italic}}& .duo{grid-template-columns:1fr 1fr;gap:14px;margin:1.9em 0;display:grid;& figure{margin:0}& .frame{aspect-ratio:4/5}@media (width<=760px){gap:10px}}}@keyframes unfold{0%{opacity:0}to{opacity:1}}@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}.prose details::details-content{block-size:0;transition:block-size .3s var(--ease), content-visibility .3s allow-discrete;overflow-y:clip}.prose details[open]::details-content{block-size:auto}}.sn-ref{font-family:var(--serif);vertical-align:super;color:var(--cinnabar);cursor:pointer;padding:0 .15em;font-size:.68em;font-weight:600;line-height:0;&:focus-visible{outline:2px solid var(--cinnabar);outline-offset:2px}}@keyframes snFlash{0%,12%{background:color-mix(in srgb, var(--cinnabar) 15%, transparent);border-left-color:var(--cinnabar);box-shadow:-2px 0 0 0 var(--cinnabar);color:var(--ink)}to{border-left-color:var(--edge);color:var(--ink-2);background:0 0;box-shadow:-2px 0 #0000}}.sidenote{display:none;& .num{color:var(--cinnabar);margin-right:.35em;font-weight:600}& a.link{color:inherit;text-underline-offset:3px;text-decoration:underline 1px}&.sn-flash{animation:snFlash 1s var(--ease) both}@media (width>=1140px){width:clamp(160px,18vw,220px);font-family:var(--kai);color:var(--ink-2);border-left:1px solid var(--edge);opacity:0;transition:opacity var(--speed) var(--ease);padding-left:12px;font-size:12.5px;line-height:1.65;display:block;position:absolute;top:0;left:calc(100% + clamp(26px,3.5vw,48px));&.is-positioned{opacity:1}}@media (prefers-reduced-motion:reduce){opacity:1!important;&.sn-flash{background:color-mix(in srgb, var(--cinnabar) 15%, transparent);border-left-color:var(--cinnabar);box-shadow:-2px 0 0 0 var(--cinnabar);animation:none}}}.sn-inline{opacity:0;max-height:0;transition:max-height var(--speed) var(--ease), opacity var(--speed) var(--ease), margin var(--speed) var(--ease);margin:0;display:block;overflow:hidden;&.open{opacity:1;max-height:480px;margin:.8em 0 1em}& .inner{font-family:var(--kai);color:var(--ink-2);background:var(--paper-deep);border-left:1px solid var(--edge);padding:10px 14px;font-size:13px;line-height:1.65;display:block}& .num{color:var(--cinnabar);margin-right:.35em;font-weight:600}@media (width>=1140px){display:none!important}}:root{color-scheme:light;--paper:#f6f2e9;--paper-deep:#ede7d8;--edge:#211d1729;--edge-soft:#211d1717;--ink:#211d17;--ink-2:#5f594c;--ink-3:#97907e;--cinnabar:#a73a2c;--select:#211d171f;--thumb:#5f594c4d;--thumb-hover:#5f594c7a;--measure:40rem;--reading-size:17.5px;--reading-line:1.8;--ease:cubic-bezier(.25, .7, .3, 1);--speed:.3s;--serif:"SerifLatin", "Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, "Times New Roman", serif;--kai:"Kaiti SC", "STKaiti", "KaiTi", "Songti SC", "Noto Serif SC", serif;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:"SF Mono", ui-monospace, "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace}html[data-theme=dark]{color-scheme:dark;--paper:#171411;--paper-deep:#211d17;--edge:#e6ddc926;--edge-soft:#e6ddc914;--ink:#e6ddc9;--ink-2:#a59c87;--ink-3:#6b6454;--cinnabar:#c96a55;--select:#e6ddc924;--thumb:#a59c8742;--thumb-hover:#a59c876b}@font-face{font-family:SerifLatin;src:local(IowanOldStyle-Roman);size-adjust:92%;font-weight:100 500;unicode-range:U+21-7E,U+A9,U+C0-24F}@font-face{font-family:SerifLatin;src:local(IowanOldStyle-Bold);size-adjust:92%;font-weight:600 900;unicode-range:U+21-7E,U+A9,U+C0-24F}.lt{position:relative;top:.028em;.post-head h1 &{top:.7px}}@font-face{font-family:SerifLatinEn;src:local(IowanOldStyle-Roman);size-adjust:92%;font-weight:100 500;unicode-range:U+21-24F,U+2000-206F,U+20A0-20CF,U+2100-214F}@font-face{font-family:SerifLatinEn;src:local(IowanOldStyle-Italic);size-adjust:92%;font-weight:100 500;font-style:italic;unicode-range:U+21-24F,U+2000-206F,U+20A0-20CF,U+2100-214F}@font-face{font-family:SerifLatinEn;src:local(IowanOldStyle-Bold);size-adjust:92%;font-weight:600 900;unicode-range:U+21-24F,U+2000-206F,U+20A0-20CF,U+2100-214F}html[data-lang=en]{--serif:"SerifLatinEn", "Songti SC", "Palatino Linotype", Palatino, Georgia, "Noto Serif SC", serif;--kai:var(--serif);--reading-line:1.72}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:var(--thumb) transparent;scrollbar-gutter:stable}body{background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background-color var(--speed) var(--ease), color var(--speed) var(--ease);margin:0;line-height:1.8}::selection{background:var(--select)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--thumb);background-clip:padding-box;border:3px solid #0000;border-radius:8px;&:hover{background:var(--thumb-hover);background-clip:padding-box}}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--cinnabar);outline-offset:3px}@view-transition{navigation:auto}::view-transition-group(root){animation-duration:.18s}::view-transition-group(masthead),::view-transition-new(masthead),::view-transition-group(lang-toggle),::view-transition-new(lang-toggle){animation:none}::view-transition-old(masthead),::view-transition-old(lang-toggle),html[data-lang-from]::view-transition-old(root){display:none}html[data-lang-from]::view-transition-new(root){animation:none}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.progress{background:var(--cinnabar);opacity:0;z-index:10;width:0%;height:1px;transition:opacity var(--speed) var(--ease);position:fixed;top:0;left:0;body[data-view=post][data-progress=on] &{opacity:.8}}.page{max-width:calc(var(--measure) + 48px);margin:0 auto;padding:0 24px 40px}.masthead{view-transition-name:masthead;justify-content:space-between;align-items:center;gap:16px;padding:34px 0 10px;display:flex;@media (width<=760px){padding-top:26px}}.m-home{align-items:center;gap:16px;display:flex}.brand{font-family:var(--serif);letter-spacing:.04em;color:var(--ink);font-size:1.06rem;font-weight:600;position:relative;top:2px}@keyframes lang-roll-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.9em)}}@keyframes lang-roll-in{0%{opacity:0;transform:translateY(.9em)}to{opacity:1;transform:translateY(0)}}.lang{view-transition-name:lang-toggle;font-family:var(--serif);letter-spacing:.1em;color:var(--ink-2);transition:color var(--speed) var(--ease);margin-left:9px;font-size:13px;position:relative;top:3px;&:hover{color:var(--ink)}&:before{content:"";background:var(--edge);pointer-events:none;width:1px;height:12px;margin-top:-6px;position:absolute;top:50%;left:-13px}& .faces{vertical-align:top;justify-items:start;display:inline-grid}& .face{opacity:0;grid-area:1/1}}html[data-lang=zh] .lang .face[data-on=zh],html[data-lang=en] .lang .face[data-on=en]{opacity:1}html[data-lang=en][data-lang-from=zh] .lang .face[data-on=zh],html[data-lang=zh][data-lang-from=en] .lang .face[data-on=en]{animation:lang-roll-out .35s var(--ease) both}html[data-lang=en][data-lang-from=zh] .lang .face[data-on=en],html[data-lang=zh][data-lang-from=en] .lang .face[data-on=zh]{animation:lang-roll-in .35s var(--ease) both}@keyframes moon-set{0%{transform:scale(1)rotate(0)}22%{transform:scale(.52)rotate(0)}55%{transform:scale(.52)rotate(72deg)}to{transform:scale(1)rotate(0)}}@keyframes sun-rise{0%{transform:scale(1)rotate(0)}22%{transform:scale(.52)rotate(0)}55%{transform:scale(.52)rotate(-72deg)}to{transform:scale(1)rotate(0)}}.theme{cursor:pointer;width:28px;height:28px;color:var(--ink-2);transition:color var(--speed) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;&:hover{color:var(--ink)}& .orb{transform-origin:50%;width:14px;height:14px;transition:box-shadow .45s var(--ease), background-color .45s var(--ease);background:currentColor;border-radius:50%;box-shadow:inset 0 0;html[data-theme=dark] &{background:0 0;box-shadow:inset -4.5px 3.5px}&.orb--anim.orb--to-dark{animation:.72s ease-out both moon-set}&.orb--anim.orb--to-light{animation:.72s ease-out both sun-rise}}}.m-nav{align-items:center;gap:16px;display:inline-flex;& .theme{margin-left:4px}& a{font-family:var(--serif);letter-spacing:.1em;color:var(--ink-2);transition:color var(--speed) var(--ease);font-size:13px;html[data-lang=en] &{letter-spacing:.02em}&:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline 1px}&[aria-current=page]{color:var(--ink);text-underline-offset:4px;text-decoration:underline 1px;text-decoration-color:var(--ink-3)}}}.foot{text-align:center;font-family:var(--serif);color:var(--ink-3);margin-top:44px;padding-top:16px;font-size:11.5px}
