:root{color-scheme:light dark;--paper:#faf8f5;--paper-deep:#f3ede3;--ink:#1a1a1a;--ink-muted:#5c5751;--ink-subtle:#8b8377;--rule:#e6e0d5;--rule-strong:#d2c9ba;--accent:#b3391f;--accent-deep:#8c2a14;--font-display:"Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "SimSun", Georgia, "Times New Roman", serif;--font-body:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--wrap:1200px;--measure:700px;--article-aside:216px;--ease:cubic-bezier(.2, .7, .2, 1);--radius:2px}@media (prefers-color-scheme:dark){:root{--paper:#141318;--paper-deep:#1c1b22;--ink:#ece7e0;--ink-muted:#a9a29a;--ink-subtle:#8a8279;--rule:#2c2a32;--rule-strong:#403d48;--accent:#e0704c;--accent-deep:#f0906f}}*,:before,:after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol,pre,table,hr{margin:0}ul,ol{padding:0}ul.list-plain,ol.list-plain{list-style:none}img,svg{max-width:100%;display:block}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);min-height:100svh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;font-size:16px;line-height:1.75;display:flex}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}::selection{background:color-mix(in srgb, var(--accent) 22%, transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{inset-inline-start:36px;z-index:80;background:var(--paper);color:var(--accent);padding:10px 16px;position:absolute;top:-100%}.skip-link:focus{top:16px}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:36px}.progress{background:var(--accent);transform-origin:0;z-index:60;height:2px;position:fixed;inset:0 0 auto;transform:scaleX(0)}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.progress{animation:linear progress-grow scroll()}@keyframes progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}}.site-header{z-index:20;border-bottom:1px solid var(--rule);position:relative}.site-header__inner{justify-content:space-between;align-items:baseline;gap:32px;padding-block:28px;display:flex}.site-header--over{color:#fff;text-shadow:0 1px 14px #000000a6;border-bottom:0;position:absolute;inset:0 0 auto}.brand{font-family:var(--font-display);letter-spacing:.16em;font-size:19px;font-weight:700}.nav{letter-spacing:.08em;gap:28px;font-size:13px;display:flex}.nav a{opacity:.72;transition:opacity .2s var(--ease), color .2s var(--ease)}.nav a:hover{opacity:1}.nav a[aria-current=page]{opacity:1;color:var(--accent)}.site-header--over .nav a[aria-current=page],.site-header--over .nav a:hover{color:#fff;opacity:1}.hero{background:#2a2018;align-items:flex-end;min-height:min(90svh,860px);display:flex;position:relative;overflow:hidden}.hero__bg{position:absolute;inset:0}.hero__bg img{object-fit:cover;width:100%;height:100%}.hero__bg:after{content:"";background:linear-gradient(#0806042e 0%,#0806048c 58%,#080604e6 100%);position:absolute;inset:0}.hero__inner{color:#fff;width:100%;padding-bottom:104px;position:relative}.hero--plain{background:var(--ink)}.hero--plain .hero__inner{color:var(--paper)}.hero--plain .hero__kicker,.hero--plain .hero__lead,.hero--plain .hero__meta{color:color-mix(in srgb, var(--paper) 72%, transparent)}.hero--plain .hero__kicker b{color:var(--accent)}.hero__kicker{letter-spacing:.24em;color:#ffffffb8;align-items:center;gap:14px;font-size:11.5px;display:flex}.hero__kicker b{color:#fff;font-weight:400}.hero h1{max-width:16em;font-family:var(--font-display);letter-spacing:-.02em;margin-top:20px;font-size:clamp(34px,5.6vw,72px);font-weight:700;line-height:1.1}.hero h1 a:hover{opacity:.82}.hero__lead{color:#fffc;max-width:44ch;margin-top:22px;font-size:16.5px}.hero__meta{letter-spacing:.14em;color:#fff9;flex-wrap:wrap;gap:20px;margin-top:26px;font-size:11.5px;display:flex}.hero__cue{letter-spacing:.28em;color:#ffffff80;font-size:10.5px;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.hero--plain .hero__cue{color:color-mix(in srgb, var(--paper) 45%, transparent)}.masthead{padding:76px 0 0}.masthead h1{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(38px,6vw,76px);font-weight:700;line-height:1.04}.masthead h1 .hash{color:var(--ink-subtle);font-weight:400}.masthead__sub{max-width:54ch;color:var(--ink-muted);margin-top:18px;font-size:16px}.masthead__kicker{letter-spacing:.2em;color:var(--ink-subtle);align-items:center;gap:16px;font-size:11.5px;display:flex}.masthead__kicker b{color:var(--accent);font-weight:700}.masthead__tagline{font-family:var(--font-display);color:var(--ink);font-size:clamp(20px,2.3vw,25px);line-height:1.5}.masthead__rule{background:var(--ink);opacity:.9;height:1px;margin-top:32px}.section-head{justify-content:space-between;align-items:baseline;gap:16px;padding:76px 0 20px;display:flex}.section-head h2{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(22px,2.4vw,30px);font-weight:700}.section-head .count{letter-spacing:.14em;color:var(--accent);font-size:12px}.section-head .count--muted{color:var(--ink-subtle)}.post-list{list-style:none}.post-item{border-top:1px solid var(--rule);transition:background .3s var(--ease);padding:34px 0;display:block;position:relative}.post-item:hover{background:var(--paper-deep)}.post-item__grid{grid-template-columns:96px 1fr 168px;align-items:start;gap:0 40px;display:grid}.post-item__date{font-family:var(--font-display);line-height:1}.post-item__d{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:38px;font-weight:700;display:block}.post-item__m{letter-spacing:.14em;color:var(--ink-subtle);margin-top:8px;font-size:11px;display:block}.post-item__title{font-family:var(--font-display);letter-spacing:-.01em;transition:color .2s var(--ease);font-size:clamp(21px,2.4vw,30px);font-weight:700;line-height:1.28}.post-item:hover .post-item__title{color:var(--accent)}.post-item__desc{max-width:60ch;color:var(--ink-muted);margin-top:10px;font-size:14.5px}.post-item__meta{letter-spacing:.12em;color:var(--ink-subtle);margin-top:14px;font-size:11px}.post-item__thumb{object-fit:cover;border-radius:var(--radius);background:var(--paper-deep);width:168px;height:126px}.empty-state{border-top:1px solid var(--rule);color:var(--ink-subtle);padding:72px 0}.empty-state strong{font-family:var(--font-display);color:var(--ink);margin-bottom:8px;font-size:22px;display:block}.pagination{color:var(--ink-subtle);justify-content:space-between;align-items:baseline;gap:16px;padding:34px 0 0;font-size:13px;display:flex}.pagination a{color:var(--accent)}.band{background:var(--ink);color:var(--paper);margin-top:96px;padding:88px 0}.band h2{font-family:var(--font-display);font-size:clamp(22px,2.4vw,28px);font-weight:700}.stats{grid-template-columns:repeat(3,1fr);gap:40px;margin-top:44px;display:grid}.stat__n{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(52px,6.4vw,88px);font-weight:700;line-height:.9}.stat__l{letter-spacing:.18em;opacity:.66;margin-top:14px;font-size:12px}.article{grid-template-columns:minmax(0, 1fr) var(--article-aside);gap:0 68px;padding:60px 0 0;display:grid}.article-head__kicker{letter-spacing:.2em;color:var(--ink-subtle);align-items:center;gap:16px;font-size:11.5px;display:flex}.article-head__kicker b{color:var(--accent);font-weight:700}.article h1{max-width:15em;font-family:var(--font-display);letter-spacing:-.022em;margin-top:20px;font-size:clamp(32px,4.6vw,60px);font-weight:700;line-height:1.1}.article__lead{max-width:50ch;color:var(--ink-muted);margin-top:22px;font-size:17px}.article__rule{background:var(--ink);opacity:.9;height:1px;margin-top:30px}.article-cover{object-fit:cover;border-radius:var(--radius);background:var(--paper-deep);width:100%;height:min(48vw,460px);margin-top:40px}.article__aside{align-self:start;padding-top:30px;position:sticky;top:34px}.toc{border-top:1px solid var(--rule-strong);padding-top:14px}.toc__title{letter-spacing:.2em;color:var(--ink-subtle);font-size:11px}.toc ol{margin-top:12px;font-size:13px;line-height:1.6;list-style:none}.toc li{border-bottom:1px solid var(--rule);padding:6px 0}.toc a{color:var(--ink-muted);transition:color .15s var(--ease)}.toc a:hover{color:var(--accent)}.aside-block{color:var(--ink-subtle);margin-top:32px;font-size:12.5px;line-height:1.9}.aside-block b{letter-spacing:.2em;margin-bottom:6px;font-size:11px;font-weight:400;display:block}.aside-block a{color:var(--accent)}.series-nav{border:1px solid var(--rule);border-radius:var(--radius);margin-top:36px;padding:16px 20px;font-size:13.5px}.series-nav__name{font-family:var(--font-display);font-weight:700}.series-nav__links{flex-wrap:wrap;gap:8px 24px;margin-top:10px;font-size:12.5px;display:flex}.series-nav__next{margin-left:auto}.article-foot{border-top:1px solid var(--rule);margin-top:64px;padding-top:20px;font-size:13px}.article-foot a{color:var(--accent)}.prose{max-width:43em;margin-top:44px;font-size:17.5px;line-height:1.92}.prose--cjk>p:first-of-type:first-letter{float:left;font-family:var(--font-display);padding:.08em .1em 0 0;font-size:3.4em;font-weight:700;line-height:.84}.prose--latin>p:first-of-type:first-letter{font-family:var(--font-display);font-weight:700}.prose h2,.prose h3,.prose h4{font-family:var(--font-display);letter-spacing:-.015em;font-weight:700;line-height:1.28}.prose h2{margin:2.4em 0 .8em;font-size:clamp(24px,2.6vw,32px)}.prose h3{margin:2em 0 .6em;font-size:1.22em}.prose h4{margin:1.8em 0 .5em;font-size:1.06em}.prose p,.prose ul,.prose ol,.prose pre,.prose table,.prose figure{margin-bottom:1.4em}.prose ul,.prose ol{padding-left:1.4em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:.5em}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline 1px}.prose blockquote{border-left:2px solid var(--accent);color:var(--ink-muted);font-family:var(--font-display);padding-left:1.3em;font-size:1.08em}.prose code{background:var(--paper-deep);font-family:var(--font-mono);border-radius:3px;padding:.15em .4em;font-size:.88em}.prose pre{border:1px solid var(--rule);background:var(--paper-deep);font-family:var(--font-mono);border-radius:3px;padding:20px 22px;font-size:13.5px;line-height:1.72;overflow:auto}.prose pre code{background:0 0;padding:0;font-size:100%}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.6em 0}.prose img{border-radius:var(--radius)}.prose figcaption{color:var(--ink-subtle);margin-top:10px;font-size:13px}.prose table{border-collapse:collapse;width:100%;font-size:14.5px}.prose th,.prose td{border:1px solid var(--rule);text-align:start;padding:9px 12px}.prose th{font-weight:700}.astro-code,.astro-code span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}}.year{margin-top:56px}.year__head{border-bottom:1px solid var(--ink);align-items:baseline;gap:14px;padding-bottom:10px;display:flex}.year__head h2{font-family:var(--font-display);font-size:26px;font-weight:700}.year__head span{color:var(--ink-subtle);font-size:12.5px}.year__empty{color:var(--ink-subtle);margin-top:16px;font-size:14px}.archive-list{list-style:none}.archive-list li{border-bottom:1px solid var(--rule)}.archive-list a{grid-template-columns:78px 1fr 62px;align-items:baseline;gap:0 20px;padding:12px 0;display:grid}.archive-list .d{letter-spacing:.06em;color:var(--ink-subtle);font-variant-numeric:tabular-nums;font-size:12.5px}.archive-list .t{font-family:var(--font-display);transition:color .2s var(--ease);font-size:17px;font-weight:700;line-height:1.45}.archive-list .k{letter-spacing:.14em;color:var(--ink-subtle);text-align:right;font-size:11px}.archive-list a:hover .t{color:var(--accent)}.tag-grid{grid-template-columns:repeat(3,1fr);gap:0 44px;margin-top:40px;list-style:none;display:grid}.tag-grid--kinds{grid-template-columns:repeat(2,minmax(0,220px));margin-top:20px}.tag-grid li{border-bottom:1px solid var(--rule)}.tag-grid a{justify-content:space-between;align-items:baseline;padding:14px 0;display:flex}.tag-grid .name{font-family:var(--font-display);transition:color .2s var(--ease);font-size:19px;font-weight:700}.tag-grid .c{color:var(--ink-subtle);font-variant-numeric:tabular-nums;font-size:12.5px}.tag-grid a:hover .name{color:var(--accent)}.chips{flex-wrap:wrap;gap:10px;padding-top:26px;display:flex}.chip{border:1px solid var(--rule-strong);color:var(--ink-muted);transition:border-color .15s var(--ease), color .15s var(--ease);border-radius:999px;padding:5px 14px;font-size:12px}.chip:hover,.chip--on{border-color:var(--accent);color:var(--accent)}.search-form{border-bottom:1px solid var(--ink);align-items:flex-end;gap:14px;margin-top:34px;padding-bottom:12px;display:flex}.search-form input{min-width:0;color:var(--ink);font-family:var(--font-display);background:0 0;border:0;outline:none;flex:1;padding:4px 0;font-size:clamp(20px,3vw,30px)}.search-form input::placeholder{color:var(--ink-subtle)}.search-form button{border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink-muted);padding:7px 18px;font-size:13px}.search-form button:hover{border-color:var(--accent);color:var(--accent)}.search-status{color:var(--ink-subtle);margin-top:28px;font-size:13px}.hit{border-bottom:1px solid var(--rule);padding:24px 0;display:block}.hit h3{font-family:var(--font-display);font-size:clamp(19px,2.2vw,24px);font-weight:700;line-height:1.35}.hit:hover h3{color:var(--accent)}.hit p{max-width:70ch;color:var(--ink-muted);margin-top:9px;font-size:14.5px}.hit mark{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--ink);padding:1px 2px}.hit .path{letter-spacing:.06em;color:var(--ink-subtle);margin-top:10px;font-size:11.5px;display:block}.nojs-note{border:1px dashed var(--rule);color:var(--ink-subtle);margin-top:40px;padding:14px 18px;font-size:12.5px;line-height:1.7}.nojs-note a{color:var(--accent)}.notfound{padding:96px 0 0}.notfound__code{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(90px,17vw,190px);font-weight:700;line-height:.86}.notfound h1{font-family:var(--font-display);margin-top:26px;font-size:clamp(22px,2.8vw,30px);font-weight:700}.notfound p{max-width:52ch;color:var(--ink-muted);margin-top:16px;font-size:16px}.nav-list{border-top:1px solid var(--ink);margin-top:56px;list-style:none}.nav-list li{border-bottom:1px solid var(--rule)}.nav-list a{grid-template-columns:1fr auto;align-items:baseline;gap:16px;padding:16px 0;display:grid}.nav-list .n{font-family:var(--font-display);transition:color .2s var(--ease);font-size:20px;font-weight:700}.nav-list .p{letter-spacing:.06em;color:var(--ink-subtle);font-size:12.5px}.nav-list a:hover .n{color:var(--accent)}.about{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:0 64px;margin-top:48px;display:grid}.about__avatar{object-fit:cover;border-radius:50%;width:104px;height:104px;margin-bottom:30px}.about__prose{max-width:58ch;margin:0;font-size:16.5px}.about__prose>p:first-of-type{font-family:var(--font-display);font-size:clamp(19px,2.2vw,23px);line-height:1.65}.about__facts{grid-template-columns:96px 1fr;align-content:start;display:grid}.about__facts dt{border-bottom:1px solid var(--rule);letter-spacing:.1em;color:var(--ink-subtle);padding:11px 0;font-size:12.5px}.about__facts dd{border-bottom:1px solid var(--rule);padding:11px 0;font-size:14.5px}.about__facts dd a{color:var(--accent)}.site-footer{border-top:1px solid var(--rule);margin-top:76px}.site-footer__inner{letter-spacing:.08em;color:var(--ink-subtle);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-block:30px;font-size:12px;display:flex}.site-footer a:hover{color:var(--accent)}#main{flex:1}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal-rise view();animation-range:entry entry 60%}@keyframes reveal-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}}}@media (width<=1024px){.article{grid-template-columns:minmax(0,1fr)}.article__aside{padding-top:48px;position:static}.toc{display:none}.about{grid-template-columns:1fr;gap:44px}.tag-grid{grid-template-columns:repeat(2,1fr);gap:0 32px}}@media (width<=900px){.post-item__grid{grid-template-columns:72px 1fr;gap:0 24px}.post-item__thumb{display:none}.stats{grid-template-columns:1fr;gap:30px}}@media (width<=640px){.wrap{padding-inline:20px}.hero__inner{padding-bottom:64px}.masthead{padding-top:40px}.nav{gap:16px;font-size:12.5px}.archive-list a{grid-template-columns:64px 1fr;gap:0 14px}.archive-list .k{display:none}.tag-grid{grid-template-columns:1fr}.prose{font-size:16.5px}}
