/*!
 * Project: Heti
 * URL: https://github.com/sivan/heti
 * Author: Sivan [sun.sivan@gmail.com]
 */
@font-face{font-family:Heti Hei;src:"Heti Hei SC","Heti Hei TC","Heti Hei JP","Heti Hei KR"}@font-face{font-family:Heti Hei SC;src:local(PingFang SC Regular),local(Heiti SC Regular),local(Microsoft YaHei),local(Source Han Sans CN Regular),local(Noto Sans CJK SC Regular),local(WenQuanYi Micro Hei),local(Droid Sans Fallback)}@font-face{font-family:Heti Hei TC;src:local(PingFang TC Regular),local(Heiti TC Regular),local(Microsoft Jhenghei),local(Source Han Sans HK Regular),local(Source Han Sans TW Regular),local(Noto Sans CJK TC Regular),local(WenQuanYi Micro Hei),local(Droid Sans Fallback)}@font-face{font-family:Heti Hei JP;src:local(Hiragino Sans GB W3),local(Source Han Sans JP Regular),local(Noto Sans CJK JP Regular),local(Droid Sans Fallback)}@font-face{font-family:Heti Hei KR;src:local(Source Han Sans KR Regular),local(Noto Sans CJK KR Regular),local(Droid Sans Fallback)}@font-face{font-family:Heti Hei;font-weight:200;src:"Heti Hei SC Light","Heti Hei TC Light","Heti Hei JP Light","Heti Hei KR Light"}@font-face{font-family:Heti Hei SC Light;font-weight:200;src:local("PingFang SC Light"),local("Heiti SC Light"),"Heti Hei SC Light Fallback",local("Source Han Sans CN Light"),local("Noto Sans CJK SC Light")}@font-face{font-family:Heti Hei TC Light;font-weight:200;src:local(PingFang TC Light),local(Heiti TC Light),local(Microsoft Jhenghei Light),local(Source Han Sans HK Light),local(Source Han Sans TW Light),local(Noto Sans CJK TC Light)}@font-face{font-family:Heti Hei JP Light;font-weight:200;src:local(Source Han Sans JP Light),local(Noto Sans CJK JP Light)}@font-face{font-family:Heti Hei KR Light;font-weight:200;src:local(Source Han Sans KR Light),local(Noto Sans CJK KR Light)}@font-face{font-family:Heti Hei SC Light Fallback;font-weight:200;src:local(Microsoft YaHei),local(Droid Sans Fallback)}@font-face{font-family:Heti Hei;font-weight:600;src:"Heti Hei SC Bold","Heti Hei TC Bold","Heti Hei JP Bold","Heti Hei KR Bold"}@font-face{font-family:Heti Hei SC Bold;font-weight:600;src:local("PingFang SC Medium"),local("Heiti SC Medium"),"Heti Hei SC Bold Fallback",local("Source Han Sans CN Bold"),local("Noto Sans CJK SC Bold")}@font-face{font-family:Heti Hei TC Bold;font-weight:600;src:local(PingFang TC Medium),local(Heiti TC Medium),local(Microsoft Jhenghei Bold),local(Source Han Sans HK Bold),local(Source Han Sans TW Bold),local(Noto Sans CJK TC Bold)}@font-face{font-family:Heti Hei JP Bold;font-weight:600;src:local(Hiragino Sans GB W6),local(Source Han Sans JP Bold),local(Noto Sans CJK JP Bold)}@font-face{font-family:Heti Hei KR Bold;font-weight:600;src:local(Source Han Sans KR Bold),local(Noto Sans CJK KR Bold)}@font-face{font-family:Heti Hei SC Bold Fallback;font-weight:600;src:local(Microsoft YaHei),local(Droid Sans Fallback)}@font-face{font-family:Heti Hei Black;font-weight:800;src:"Heti Hei SC Black","Heti Hei TC Black","Heti Hei JP Black","Heti Hei KR Black"}@font-face{font-family:Heti Hei SC Black;font-weight:800;src:local("Lantinghei SC Heavy"),local("PingFang SC Semibold"),local("Heiti SC Medium"),"Heti Hei SC Black Fallback",local("Source Han Sans CN Heavy"),local("Noto Sans CJK SC Heavy")}@font-face{font-family:Heti Hei TC Black;font-weight:800;src:local(Lantinghei TC Heavy),local(PingFang TC Semibold),local(Heiti TC Medium),local(Microsoft Jhenghei Bold),local(Source Han Sans HK Heavy),local(Source Han Sans TW Heavy),local(Noto Sans CJK TC Heavy)}@font-face{font-family:Heti Hei JP Black;font-weight:800;src:local(Hiragino Sans GB W6),local(Source Han Sans JP Heavy),local(Noto Sans CJK JP Heavy)}@font-face{font-family:Heti Hei KR Black;font-weight:800;src:local(Source Han Sans KR Heavy),local(Noto Sans CJK KR Heavy)}@font-face{font-family:Heti Hei SC Black Fallback;font-weight:800;src:local(Microsoft YaHei),local(Droid Sans Fallback)}@font-face{font-family:Heti Song;src:local(Songti SC Regular),local(Songti TC Regular),local(SimSun)}@font-face{font-family:Heti Song;font-weight:200;src:local("Songti SC Light"),local("Songti TC Light"),"Heti Song Light Fallback"}@font-face{font-family:Heti Song Light Fallback;font-weight:200;src:local(SimSun)}@font-face{font-family:Heti Song;font-weight:600;src:local("Songti SC Bold"),local("Songti TC Bold"),"Heti Song Bold Fallback"}@font-face{font-family:Heti Song Bold Fallback;font-weight:600;src:local(SimSun)}@font-face{font-family:Heti Song Black;font-weight:800;src:local(Songti SC Black),local(SimSun)}@font-face{font-family:Heti Kai;src:local(Kaiti SC Regular),local(Kaiti TC Regular),local(STKaiti),local(Kaiti),local(BiauKai)}@font-face{font-family:Heti Kai;font-weight:600;src:local(Kaiti SC Bold),local(Kaiti TC Bold)}@font-face{font-family:Heti Kai Bold Fallback;font-weight:600;src:local("STKaiti"),local("Kaiti") local("BiauKai")}@font-face{font-family:Heti Kai Black;font-weight:800;src:local(Kaiti SC Black),local(Kaiti TC Black),local(STKaiti),local(Kaiti)}.heti{-webkit-font-smoothing:subpixel-antialiased;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto;letter-spacing:.02em;max-width:42em;font-size:16px;font-weight:400;line-height:1.5}.heti:before,.heti:after{content:"";display:table}.heti:after{clear:both}.heti>:first-child,.heti section>:first-child,.heti td>:first-child{margin-block-start:0!important}.heti>:last-child,.heti section>:last-child,.heti td>:last-child{margin-block-end:0!important}.heti blockquote{background-color:#0000000e;margin-block:12px 24px;margin-inline:32px;padding-block:12px;padding-inline:16px}@media (prefers-color-scheme:dark){.heti blockquote{background-color:#ffffff0e}}.heti figure{text-align:center;display:block}.heti figure>img{margin-inline:auto;display:block}.heti hr{background-color:#ccc;border:0;block-size:1px;inline-size:30%;margin-block:48px 47px;margin-inline:auto}@media (prefers-color-scheme:dark){.heti hr{background-color:#404040}}.heti p{text-align:justify;margin-block:12px 24px}.heti p:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti p:not(:lang(zh)){text-align:start}.heti pre{white-space:pre;word-wrap:normal;background-color:#0000000e;border-radius:4px;margin-block:12px;margin-inline:0;padding-block:12px;padding-inline:16px;font-family:SFMono-Regular,consolas,Liberation Mono,menlo,courier,monospace,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;overflow:auto}@media (prefers-color-scheme:dark){.heti pre{background-color:#ffffff0e}}.heti pre code{color:inherit;background-color:#0000;border:0;border-radius:0;margin:0;padding:0}.heti:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti:not(:lang(zh)){letter-spacing:0}.heti a,.heti abbr,.heti code,.heti heti-spacing,.heti [lang=en-US]{letter-spacing:normal}.heti h1,.heti h2,.heti h3,.heti h4,.heti h5,.heti h6{margin:0;margin-block:24px 12px;font-weight:600;position:relative}.heti h1{margin-block-end:24px;font-size:32px;line-height:48px}.heti h2{font-size:24px;line-height:36px}.heti h3{font-size:20px;line-height:36px}.heti h4{font-size:18px;line-height:24px}.heti h5{font-size:16px;line-height:24px}.heti h6{font-size:14px;line-height:24px}.heti h1,.heti h2,.heti h3{letter-spacing:.05em}.heti h1:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti h1:not(:lang(zh)),.heti h2:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti h2:not(:lang(zh)),.heti h3:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti h3:not(:lang(zh)){letter-spacing:0}.heti h1+h2,.heti h2+h3,.heti h3+h4,.heti h4+h5,.heti h5+h6{margin-block-start:12px}.heti ul,.heti ol,.heti dl{margin-block:12px 24px}.heti ul,.heti ol{padding-inline-start:32px}.heti ul ul,.heti ul ol,.heti ol ul,.heti ol ol{margin-block:0}.heti ul{list-style-type:disc}.heti ol{list-style-type:decimal}.heti ul ul,.heti ol ul{list-style-type:circle}.heti ul ul ul,.heti ul ol ul,.heti ol ul ul,.heti ol ol ul{list-style-type:square}.heti li{list-style-type:unset}.heti table{box-sizing:border-box;table-layout:fixed;border-collapse:collapse;word-break:break-word;border:1px solid #ccc;margin-block:12px 24px;margin-inline:auto}@media (prefers-color-scheme:dark){.heti table{border-color:#404040}}.heti th,.heti td{border:1px solid #ccc;padding-block:6px;padding-inline:8px}@media (prefers-color-scheme:dark){.heti th,.heti td{border-color:#404040}}.heti caption{caption-side:bottom;margin-block:2px -4px;font-size:14px;line-height:24px}.heti a{text-decoration:none}.heti a:hover{border-block-end:1px solid;padding-block-end:1px;text-decoration:none}.heti abbr[title]{cursor:help;border-block-end:1px dotted;padding-block-end:1px;text-decoration:none}.heti b,.heti strong{font-weight:600}.heti code{margin-inline:.25em;font-family:SFMono-Regular,consolas,Liberation Mono,menlo,courier,monospace,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:.875em}.heti dfn{font-weight:600}.heti dfn:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti dfn:not(:lang(zh)){font-weight:400}.heti em{font-weight:600}.heti figcaption{vertical-align:top;text-align:start;font-size:14px;display:inline-block}.heti i{font-style:italic}.heti ins,.heti u{border-block-end:1px solid;padding-block-end:1px;text-decoration:none}.heti mark{color:inherit;background-color:#fff700e0;margin-inline:1px;padding-block:2px;padding-inline:1px}@media (prefers-color-scheme:dark){.heti mark{background-color:#4d4a00e0}}.heti q{quotes:"「" "」" "『" "』"}.heti q:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti q:not(:lang(zh)){quotes:initial;quotes:auto}.heti rt{font-size:.875em;font-weight:400}.heti small{font-size:.875em}.heti strong{font-weight:600}.heti sub,.heti sup{vertical-align:baseline;margin-inline:.25em;font-family:Helvetica Neue,helvetica,arial,Heti Hei,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:.75em;font-style:normal;line-height:1;position:relative}.heti sub{bottom:-.25em}.heti sup{top:-.5em}.heti sup:target,.heti sup a:target{background-color:#dbedff}@media (prefers-color-scheme:dark){.heti sup:target,.heti sup a:target{background-color:#3a6188}}.heti summary{cursor:pointer;outline:0;padding-inline-start:1em}.heti summary::-webkit-details-marker{width:.6em;margin-inline-end:.4em}.heti u[title]{cursor:help;border-block-end:3px double #0000008a}@media (prefers-color-scheme:dark){.heti u[title]{border-block-end-color:#ffffff8a}}.heti address,.heti cite,.heti dfn,.heti dt,.heti em{font-style:normal}.heti address:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti address:not(:lang(zh)),.heti cite:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti cite:not(:lang(zh)),.heti dfn:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti dfn:not(:lang(zh)),.heti dt:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti dt:not(:lang(zh)),.heti em:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti em:not(:lang(zh)){font-style:italic}.heti abbr[title],.heti del,.heti ins,.heti s,.heti u{margin-inline:1px}.heti,.heti--sans{font-family:Helvetica Neue,helvetica,arial,Heti Hei,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.heti--serif,.heti--classic{font-family:Times New Roman,times,Heti Song,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.heti--classic h1,.heti--classic h2,.heti--classic h3,.heti--classic h4,.heti--classic h5,.heti--classic h6{font-family:Times New Roman,times,Heti Kai Black,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-weight:800}.heti--classic blockquote,.heti--classic cite,.heti--classic q{font-family:Times New Roman,times,Heti Kai,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.heti--classic figcaption,.heti--classic caption,.heti--classic th,.heti--hei{font-family:Helvetica Neue,helvetica,arial,Heti Hei,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.heti--song{font-family:Times New Roman,times,Heti Song,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.heti--kai{font-family:Times New Roman,times,Heti Kai,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.heti--columns-1,.heti--columns-2,.heti--columns-3,.heti--columns-4,.heti--columns-16em,.heti--columns-20em,.heti--columns-24em,.heti--columns-28em,.heti--columns-32em,.heti--columns-36em,.heti--columns-40em,.heti--columns-44em,.heti--columns-48em,.heti comma{column-gap:2em;max-width:none}.heti--columns-1 p,.heti--columns-2 p,.heti--columns-3 p,.heti--columns-4 p,.heti--columns-16em p,.heti--columns-20em p,.heti--columns-24em p,.heti--columns-28em p,.heti--columns-32em p,.heti--columns-36em p,.heti--columns-40em p,.heti--columns-44em p,.heti--columns-48em p,.heti comma p{text-indent:2em;margin-block:6px 12px}.heti--columns-1{column-count:1}.heti--columns-2{column-count:2}.heti--columns-3{column-count:3}.heti--columns-4{column-count:4}.heti--columns-16em{column-width:16em}.heti--columns-20em{column-width:20em}.heti--columns-24em{column-width:24em}.heti--columns-28em{column-width:28em}.heti--columns-32em{column-width:32em}.heti--columns-36em{column-width:36em}.heti--columns-40em{column-width:40em}.heti--columns-44em{column-width:44em}.heti--columns-48em{column-width:48em}.heti--vertical{writing-mode:vertical-rl;letter-spacing:.125em;max-width:none;max-height:42em}.heti--vertical h1,.heti--vertical h2,.heti--vertical h3,.heti--vertical h4,.heti--vertical h5,.heti--vertical h6{text-align:start}.heti--vertical q{quotes:"「" "」" "『" "』"}.heti--ancient,.heti--poetry{font-family:Times New Roman,times,Heti Song,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.heti--ancient h1,.heti--ancient h2,.heti--ancient h3,.heti--ancient h4,.heti--ancient h5,.heti--ancient h6,.heti--poetry h1,.heti--poetry h2,.heti--poetry h3,.heti--poetry h4,.heti--poetry h5,.heti--poetry h6{text-align:center;font-family:Times New Roman,times,Heti Kai Black,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-weight:800}.heti--ancient h1 .heti-meta,.heti--ancient h2 .heti-meta,.heti--ancient h3 .heti-meta,.heti--ancient h4 .heti-meta,.heti--ancient h5 .heti-meta,.heti--ancient h6 .heti-meta,.heti--poetry h1 .heti-meta,.heti--poetry h2 .heti-meta,.heti--poetry h3 .heti-meta,.heti--poetry h4 .heti-meta,.heti--poetry h5 .heti-meta,.heti--poetry h6 .heti-meta{font-weight:400}@media screen and (width>=640px){.heti--ancient h1 .heti-meta,.heti--ancient h2 .heti-meta,.heti--ancient h3 .heti-meta,.heti--ancient h4 .heti-meta,.heti--ancient h5 .heti-meta,.heti--ancient h6 .heti-meta,.heti--poetry h1 .heti-meta,.heti--poetry h2 .heti-meta,.heti--poetry h3 .heti-meta,.heti--poetry h4 .heti-meta,.heti--poetry h5 .heti-meta,.heti--poetry h6 .heti-meta{line-height:inherit;text-indent:0;margin-block-start:4px;margin-inline-start:8px;display:inline;position:absolute}}.heti--ancient .heti-meta,.heti--poetry .heti-meta{text-align:center;text-indent:0;line-height:24px}.heti--ancient p{text-indent:2em}.heti--poetry p{text-align:center;text-indent:0}.heti--annotation p{text-indent:2em;margin-block:0;line-height:2.25}.heti--annotation em{font-weight:400;-webkit-text-emphasis:circle;text-emphasis:circle;-webkit-text-emphasis-position:under;text-emphasis-position:under}.heti--annotation em:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti--annotation em:not(:lang(zh)){-webkit-text-emphasis:none;text-emphasis:none}.heti--annotation .heti-meta{margin-block:12px 24px}.heti .heti-meta{text-indent:0;display:block}.heti .heti-verse{text-align:center;text-indent:0}.heti .heti-large{font-size:18px;line-height:24px}.heti .heti-x-large{letter-spacing:.05em;font-size:20px;line-height:30px}.heti .heti-small{font-size:14px;line-height:24px}.heti .heti-x-small{font-size:12px;line-height:18px}.heti .heti-list-latin{list-style-type:upper-latin}.heti .heti-list-latin ol{list-style-type:lower-roman}.heti .heti-list-latin ol ol{list-style-type:lower-latin}.heti .heti-list-han{list-style-type:cjk-ideographic}.heti .heti-list-han ol{list-style-type:decimal}.heti .heti-list-han ol ol{list-style-type:decimal-leading-zero}.heti .heti-fn{border-block-start:1px solid #ccc;margin-block-start:59px;font-family:Helvetica Neue,helvetica,arial,Heti Hei,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:14px;line-height:24px}@media (prefers-color-scheme:dark){.heti .heti-fn{border-block-start-color:#404040}}.heti .heti-fn ol{margin-block:12px 0}.heti .heti-fn li:target{background-color:#dbedff}@media (prefers-color-scheme:dark){.heti .heti-fn li:target{background-color:#3a6188}}.heti .heti-hang{line-height:inherit;text-indent:0;position:absolute}.heti .heti-em{-webkit-text-emphasis:circle;text-emphasis:circle;-webkit-text-emphasis-position:under;text-emphasis-position:under}.heti .heti-em:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)),.heti .heti-em:not(:lang(zh)){-webkit-text-emphasis:none;text-emphasis:none}.heti .heti-ruby--inline{vertical-align:top;flex-direction:column-reverse;height:1.5em;display:inline-flex}.heti .heti-ruby--inline rt{text-align:center;margin-bottom:-.25em;line-height:1;display:inline}.heti heti-spacing{display:inline}.heti heti-spacing+sup,.heti heti-spacing+sub{margin-inline-start:0}.heti .heti-spacing-start{margin-inline-end:.25em}.heti .heti-spacing-end{margin-inline-start:.25em}.heti heti-adjacent{text-spacing-trim:space-all;unicode-bidi:isolate;display:inline}.heti .heti-adjacent-half{margin-inline-end:-.5em}.heti .heti-adjacent-quarter{margin-inline-end:-.25em}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;--font-serif:Georgia, "Songti SC", "Source Han Serif SC", "Noto Serif CJK SC", serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--content-width:720px;--wide-width:1120px;--radius-sm:6px;--radius:10px;--radius-lg:16px;--step:.25rem;color-scheme:light}:root[data-theme=light]{--bg:#fff;--bg-soft:#f6f7f9;--bg-elev:#fff;--text:#191c21;--text-2:#575e68;--text-3:#878e99;--border:#e7e9ec;--border-strong:#d3d7dd;--accent:#2f6fed;--accent-hover:#1f59d0;--accent-soft:#2f6fed17;--code-bg:#f6f7f9;--shadow:0 1px 2px #1018280a, 0 8px 24px #1018280d;color-scheme:light}:root[data-theme=dark]{--bg:#0e1014;--bg-soft:#15181d;--bg-elev:#191d23;--text:#e8eaef;--text-2:#a3aab5;--text-3:#6d7580;--border:#24282f;--border-strong:#333941;--accent:#74a2ff;--accent-hover:#96b8ff;--accent-soft:#74a2ff21;--code-bg:#15181d;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000047;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;font-size:16px;line-height:1.75;display:flex}img,picture,video,iframe{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}a:hover{color:var(--accent-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent-soft)}.container{width:100%;max-width:var(--wide-width);margin-inline:auto;padding-inline:1.25rem}.container--narrow{max-width:var(--content-width)}.page{flex:1;padding-block:2.5rem 4rem}.skip-link{z-index:100;background:var(--accent);color:#fff;border-radius:0 0 var(--radius) 0;padding:.6rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.header{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.header__inner{align-items:center;gap:1.5rem;min-height:3.75rem;display:flex}.header__brand{letter-spacing:.01em;color:var(--text);white-space:nowrap;align-items:baseline;gap:.5rem;font-size:.95rem;font-weight:650;text-decoration:none;display:inline-flex}.header__brand-mark{color:var(--accent)}.header__brand-sub{color:var(--text-3);font-size:.8125rem;font-weight:450}.header__nav{align-items:center;gap:.25rem;margin-left:auto;display:flex}.header__link{border-radius:var(--radius-sm);color:var(--text-2);padding:.4rem .7rem;font-size:.875rem;text-decoration:none}.header__link:hover{background:var(--bg-soft);color:var(--text)}.header__link[aria-current=page]{color:var(--accent);background:var(--accent-soft);font-weight:550}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:2.1rem;height:2.1rem;color:var(--text-2);background:0 0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.theme-toggle:hover{background:var(--bg-soft);color:var(--text)}.theme-toggle svg{width:1rem;height:1rem}.theme-toggle__moon,:root[data-theme=dark] .theme-toggle__sun{display:none}:root[data-theme=dark] .theme-toggle__moon{display:block}.hero{border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-block:2rem 2.75rem}.hero__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-size:.8125rem;font-weight:550}.hero__title{letter-spacing:-.02em;margin-bottom:.75rem;font-size:clamp(1.75rem,4.2vw,2.5rem);font-weight:700;line-height:1.25}.hero__tagline{color:var(--text-2);max-width:38rem;margin-bottom:1.5rem;font-size:1.0625rem}.hero__actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-2);border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.875rem;text-decoration:none;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.btn:hover{border-color:var(--border-strong);color:var(--text);background:var(--bg-soft)}.btn svg{flex:none;width:.95rem;height:.95rem}.chip{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.8125rem;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip--accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.chip__count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:.75rem}.chip:hover .chip__count{color:inherit}.section{margin-bottom:2.5rem}.section__head{align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.section__title{letter-spacing:-.01em;font-size:1.0625rem;font-weight:650}.section__more{white-space:nowrap;margin-left:auto;font-size:.875rem;text-decoration:none}.post-list{flex-direction:column;padding:0;list-style:none;display:flex}.post-list>li+li{border-top:1px solid var(--border)}.post-card{color:inherit;padding-block:1.35rem;text-decoration:none;display:block}.post-card:hover .post-card__title{color:var(--accent)}.post-card__meta{color:var(--text-3);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.4rem;font-size:.8125rem;display:flex}.post-card__date{font-family:var(--font-mono);letter-spacing:-.01em;font-size:.75rem}.post-card__title{letter-spacing:-.01em;margin-bottom:.35rem;font-size:1.125rem;font-weight:600;line-height:1.4;transition:color .15s}.post-card__excerpt{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9375rem;display:-webkit-box;overflow:hidden}.post-card__foot{flex-wrap:wrap;gap:.4rem;margin-top:.7rem;display:flex}.post-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem}.post-header__title{letter-spacing:-.02em;margin-bottom:.9rem;font-size:clamp(1.5rem,3.6vw,2.125rem);font-weight:700;line-height:1.3}.post-header__meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;font-size:.875rem;display:flex}.post-header__meta time{font-family:var(--font-mono);font-size:.8125rem}.post-header__links{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.post-shell{max-width:1000px;margin-inline:auto}.post-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:3rem;display:grid}.post-layout>.prose{max-width:var(--content-width);width:100%;margin-inline:auto}@media (width>=1080px){.post-layout:has(.toc){grid-template-columns:minmax(0,1fr) 15rem}}.toc{display:none}@media (width>=1080px){.toc{border-left:1px solid var(--border);max-height:calc(100vh - 7rem);padding-left:1.25rem;font-size:.8125rem;display:block;position:sticky;top:5.25rem;overflow-y:auto}}.toc__title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:.75rem;font-size:.75rem;font-weight:600}.toc__list{flex-direction:column;gap:.1rem;padding:0;list-style:none;display:flex}.toc__list a{color:var(--text-2);border-left:2px solid #0000;margin-left:-1.25rem;padding:.2rem 0 .2rem 1.05rem;line-height:1.5;text-decoration:none;transition:color .15s,border-color .15s;display:block}.toc__list a:hover{color:var(--text)}.toc__list a.is-active{color:var(--accent);border-left-color:var(--accent)}.toc__list--h3 a{color:var(--text-3);padding-left:2rem;font-size:.78125rem}.progress{transform-origin:0;background:var(--accent);z-index:60;pointer-events:none;width:100%;height:2px;position:fixed;top:0;left:0;transform:scaleX(0)}.post-nav{border-top:1px solid var(--border);gap:.75rem;margin-top:3rem;padding-top:2rem;display:grid}@media (width>=640px){.post-nav{grid-template-columns:1fr 1fr}}.post-nav__item{border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:.9rem 1.1rem;text-decoration:none;transition:border-color .15s,background .15s;display:block}.post-nav__item:hover{border-color:var(--border-strong);background:var(--bg-soft)}.post-nav__item--next{text-align:right}.post-nav__label{color:var(--text-3);margin-bottom:.25rem;font-size:.75rem;display:block}.post-nav__title{font-size:.9375rem;font-weight:550;line-height:1.45}.prose{color:var(--text);overflow-wrap:break-word;font-size:1.0625rem;line-height:1.85}.prose>*+*{margin-top:1.15em}.prose h2,.prose h3,.prose h4{letter-spacing:-.01em;scroll-margin-top:5rem;font-weight:650}.prose h2{border-bottom:1px solid var(--border);margin-top:2.2em;padding-bottom:.35em;font-size:1.375em}.prose h3{margin-top:1.8em;font-size:1.175em}.prose h4{margin-top:1.5em;font-size:1.05em}.prose h1{margin-top:1.5em;font-size:1.5em}.prose a{text-decoration:underline}.prose strong{font-weight:650}.prose ul,.prose ol{padding-left:1.5em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.35em}.prose blockquote{border-left:3px solid color-mix(in srgb, var(--accent) 45%, transparent);color:var(--text-2);padding:.35em 0 .35em 1.1em}.prose blockquote>*+*{margin-top:.7em}.prose hr{border:0;border-top:1px solid var(--border);margin-block:2.5em}.prose img{border-radius:var(--radius);box-shadow:var(--shadow);margin-inline:auto}.prose video{border-radius:var(--radius);background:#000;width:100%}.prose iframe{aspect-ratio:16/10;border-radius:var(--radius);border:0;width:100%;max-width:100%;height:auto}.prose figure,.prose section{max-width:100%}.prose :not(pre)>code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--code-bg);border:1px solid var(--border);overflow-wrap:break-word;padding:.15em .4em;font-size:.875em}.prose pre{font-family:var(--font-mono);border:1px solid var(--border);border-radius:var(--radius);tab-size:2;padding:1rem 1.1rem;font-size:.875rem;line-height:1.65;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--code-bg)!important}.code-block{position:relative}.code-block__copy{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);color:var(--text-3);cursor:pointer;opacity:0;padding:.25rem .55rem;font-size:.75rem;transition:opacity .15s,color .15s;position:absolute;top:.55rem;right:.55rem}.code-block:hover .code-block__copy,.code-block__copy:focus-visible{opacity:1}.code-block__copy:hover{color:var(--text)}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.5rem .75rem}.prose th{background:var(--bg-soft);font-weight:600}.diagram{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);margin-block:1.5em;padding:1rem;overflow-x:auto}.diagram--chart{background:0 0;border:0;padding:0}.diagram svg{max-width:100%;height:auto;margin-inline:auto}.mk-note{color:var(--text);border-bottom:2px solid color-mix(in srgb, var(--accent) 40%, transparent);background:0 0;font-weight:550}.mk-hl{background:color-mix(in srgb, var(--accent) 18%, transparent);color:inherit;border-radius:3px;padding:.05em .25em}.mk-bold{font-weight:650}.mk-em{border-bottom:1px dashed var(--text-3);font-style:normal}.mk-code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--code-bg);border:1px solid var(--border);padding:.15em .4em;font-size:.875em}.prose blockquote>p>.mk-note:only-child{font-weight:600}.prose.heti{hyphens:manual;-webkit-font-smoothing:inherit;max-width:none}.prose.heti p{text-indent:0}.prose.heti pre,.prose.heti pre code{letter-spacing:normal}.year-group{border-bottom:1px solid var(--border);gap:.35rem 2rem;padding-block:1.5rem;display:grid}.year-group__year{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.04em;font-size:.8125rem;font-weight:600}.year-group__list{flex-direction:column;gap:.35rem;padding:0;list-style:none;display:flex}.year-group__item{color:inherit;align-items:baseline;gap:.85rem;padding:.15rem 0;text-decoration:none;display:flex}.year-group__item:hover .year-group__title{color:var(--accent)}.year-group__date{font-family:var(--font-mono);color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}.year-group__title{font-size:.9375rem;line-height:1.5;transition:color .15s}@media (width>=768px){.year-group{grid-template-columns:5rem minmax(0,1fr)}}.cloud{flex-wrap:wrap;gap:.5rem;display:flex}.list-head{border-bottom:1px solid var(--border);margin-bottom:1.75rem;padding-bottom:1.25rem}.list-head__title{letter-spacing:-.02em;margin-bottom:.4rem;font-size:1.5rem;font-weight:700}.list-head__desc{color:var(--text-2);font-size:.9375rem}.breadcrumb{color:var(--text-3);margin-bottom:.75rem;font-size:.8125rem}.breadcrumb a{color:var(--text-3);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.empty{text-align:center;color:var(--text-3);padding:3rem 0}.pagination{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:2.5rem;padding-top:1.5rem;font-size:.875rem;display:flex}.pagination__info{color:var(--text-3)}.pagination__links{gap:.5rem;display:flex}.footer{border-top:1px solid var(--border);color:var(--text-3);padding-block:2rem 2.5rem;font-size:.8125rem}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer__links{flex-wrap:wrap;gap:1rem;display:flex}.footer a{color:var(--text-2);text-decoration:none}.footer a:hover{color:var(--accent)}.to-top{border:1px solid var(--border);background:var(--bg-elev);width:2.4rem;height:2.4rem;color:var(--text-2);cursor:pointer;box-shadow:var(--shadow);opacity:0;visibility:hidden;z-index:40;border-radius:50%;place-items:center;transition:opacity .2s,transform .2s,visibility .2s;display:grid;position:fixed;bottom:1.5rem;right:1.25rem;transform:translateY(.5rem)}.to-top.is-visible{opacity:1;visibility:visible;transform:none}.to-top:hover{color:var(--accent)}.to-top svg{width:1rem;height:1rem}@media (width<=640px){.header__brand-sub{display:none}.header__inner{gap:.75rem}.header__link{padding:.4rem .5rem}.prose{font-size:1rem}.hero{padding-block:1rem 2rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
