.blog-shell{--blog-bg:#fbfbfa;--blog-text:#182033;--blog-heading:#11192c;--blog-muted:#7b8493;--blog-line:#e4e6ea;--blog-accent:#5d83e7;--blog-serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", Palatino, Georgia, serif;--blog-sans:"PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", ui-sans-serif, system-ui, sans-serif;min-height:100svh;color:var(--blog-text);background:var(--blog-bg);font-family:var(--blog-serif)}html:has(.blog-shell),html:has(.blog-shell) body{background:var(--blog-bg)}.blog-shell-split{grid-template-columns:minmax(0,1.65fr) minmax(25rem,1fr);align-items:start;gap:clamp(4rem,6vw,7.5rem);width:min(100% - 3rem,1376px);max-width:1376px;margin:0 auto;padding:2.25rem 0 0;display:grid}.blog-primary{flex-direction:column;min-width:0;min-height:calc(100svh - 8.75rem);padding-top:.15rem;display:flex}.blog-masthead{align-items:center;gap:1rem;min-height:5.75rem;display:flex}.blog-moon{color:#56647c;place-items:center;width:1.9rem;height:1.9rem;font-family:Georgia,serif;font-size:2rem;line-height:1;display:inline-grid;transform:rotate(-18deg)}.blog-site-title{color:var(--blog-heading);letter-spacing:.08em;margin:0;font-family:Didot,"Bodoni 72",Bodoni MT,Times New Roman,serif;font-size:clamp(3.6rem,5vw,5rem);font-weight:400;line-height:1}.blog-site-title a{color:inherit;text-decoration:none}.blog-bio{color:var(--blog-muted);letter-spacing:.03em;margin:1.05rem 0 2.75rem;font-size:.98rem;line-height:1.72}.blog-index{border-top:1px solid var(--blog-line);padding-top:1.5rem}.blog-targets{margin:0 0 2.5rem}.blog-targets h2{color:var(--blog-heading);letter-spacing:.05em;margin:0 0 1.1rem;padding-bottom:.85rem;font-size:1.05rem;font-weight:500;position:relative}.blog-targets table{border-collapse:collapse;width:100%;font-size:.88rem}.blog-targets th{text-align:left;border-bottom:2px solid var(--blog-line);color:var(--blog-heading);white-space:nowrap;padding:.5rem .6rem;font-weight:500}.blog-targets td{border-bottom:1px solid var(--blog-line);color:var(--blog-muted);padding:.5rem .6rem;line-height:1.5}.blog-index h2{color:var(--blog-heading);letter-spacing:0;margin:0 0 1.65rem;padding-bottom:.85rem;font-size:1.35rem;font-weight:500;line-height:1.4;position:relative}.blog-index h2:after{background:var(--blog-accent);content:"";width:1.8rem;height:2px;position:absolute;bottom:0;left:0}.blog-list{border-top:0}.blog-row{border-bottom:1px solid var(--blog-line);min-height:3.25rem;color:var(--blog-heading);grid-template-columns:1rem minmax(0,1fr) 5.5rem;align-items:center;gap:.85rem;padding:.68rem 0;text-decoration:none;transition:color .16s,padding-left .16s;display:grid}.blog-row:hover{color:var(--blog-accent);padding-left:.2rem}.blog-row:before{background:var(--blog-accent);content:"";border-radius:50%;width:.34rem;height:.34rem;margin-left:.15rem}.blog-row span{min-width:0;font-size:.92rem;font-weight:400;line-height:1.55}.blog-row__badge{border:1px solid var(--blog-line);color:var(--blog-muted);letter-spacing:.02em;vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.06rem .4rem;font-size:.68rem;font-weight:500}.blog-row__badge--dim{opacity:.75}.blog-row time{color:var(--blog-muted);font-family:var(--blog-sans);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;justify-self:end;font-size:.72rem}.blog-side{align-self:start;position:sticky;top:2.25rem}.blog-side img{object-fit:cover;object-position:center 50%;border-radius:12px;width:100%;height:calc(100svh - 4.5rem);min-height:43rem;max-height:55rem;display:block;box-shadow:0 1.25rem 3rem #1f2b4114}.blog-footer{color:#8b93a0;width:min(100% - 3rem,1376px);font-family:var(--blog-serif);grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;padding:2rem 0 1.8rem;font-size:.72rem;display:grid}.blog-footer>span{grid-column:2}.blog-socials{grid-area:1/1;gap:1.25rem;display:flex}.blog-socials a{color:#858e9b;width:1.25rem;height:1.25rem;font-family:var(--blog-sans);place-items:center;font-size:.72rem;font-weight:600;text-decoration:none;display:grid}.blog-socials a:hover{color:var(--blog-heading)}@media (width<=960px){.blog-shell-split{grid-template-columns:1fr;gap:3rem}.blog-primary{min-height:auto}.blog-side{width:min(100%,32rem);position:static}.blog-side img{aspect-ratio:3/4;height:auto;min-height:0}}@media (width<=640px){.blog-shell-split,.blog-footer{width:min(100% - 2rem,1376px)}.blog-masthead{gap:.65rem;min-height:4.5rem}.blog-site-title{font-size:3.15rem}.blog-moon{font-size:1.65rem}.blog-bio{margin-top:.75rem;font-size:.88rem}.blog-row{grid-template-columns:.75rem minmax(0,1fr);gap:.6rem}.blog-row time{grid-column:2;justify-self:start}.blog-footer{grid-template-columns:1fr;gap:1.25rem}.blog-footer>span,.blog-socials{grid-area:auto/1}}.blog-article{padding:3.05rem clamp(1.25rem,4vw,2rem) 6rem}.blog-frame{overflow-wrap:break-word;width:min(100%,600px);margin:0 auto}.blog-article__title{color:var(--blog-heading);letter-spacing:-.02em;margin:0 0 .6em;font-size:2rem;font-weight:600;line-height:1.3}.blog-article__byline{color:var(--blog-muted);font-family:var(--blog-sans);align-items:center;gap:.45rem;margin:0 0 2.4rem;font-size:13px;line-height:1.35;text-decoration:none;display:flex}.blog-article__byline:hover{color:var(--blog-heading)}.blog-article__avatar{object-fit:cover;border-radius:9999px;flex:none;width:20px;height:20px}.blog-article__byline-meta{align-items:baseline;gap:.4rem;display:flex}.blog-article__body{color:var(--blog-text);font-size:1.0625rem;line-height:1.75}.blog-frame--with-toc{width:min(100%,55rem)}.blog-article__layout{grid-template-columns:minmax(0,1fr) 15rem;align-items:start;gap:3.5rem;display:grid}.toc{border-left:2px solid var(--blog-accent);scrollbar-width:thin;max-height:calc(100vh - 4rem);padding:.1rem 0 .1rem 1.5rem;position:sticky;top:2rem;overflow-y:auto}.toc__head{border-bottom:1px solid var(--blog-line);justify-content:space-between;align-items:baseline;margin-bottom:1.1rem;padding-bottom:.7rem;display:flex}.toc__label{letter-spacing:.14em;text-transform:uppercase;color:var(--blog-accent);font-size:.72rem;font-weight:700}.toc__count{color:var(--blog-muted);font-size:.7rem;font-family:var(--blog-sans);font-variant-numeric:tabular-nums}.toc__list{gap:.42rem;margin:0;padding:0;list-style:none;display:grid}.toc__item{min-width:0;font-size:.86rem;line-height:1.65}.toc__item a{white-space:nowrap;text-overflow:ellipsis;color:var(--blog-muted);letter-spacing:.015em;padding:.12rem 0;text-decoration:none;transition:color .14s,padding-left .14s;display:block;overflow:hidden}.toc__item a:hover{color:var(--blog-accent);padding-left:.25rem}.toc__item--sub{padding-left:1.25rem;font-size:.79rem;line-height:1.5}.toc__item--sub a{color:color-mix(in srgb, var(--blog-muted) 72%, var(--blog-bg))}@media (width<=64rem){.blog-frame--with-toc{width:min(100%,600px)}.blog-article__layout{grid-template-columns:minmax(0,1fr)}.toc{border-left:3px solid var(--blog-accent);border-radius:6px;order:-1;max-height:none;margin-bottom:1.5rem;padding:.9rem 1.1rem;position:static}}.blog-article__body>:first-child{margin-top:0}.blog-article__body h2{letter-spacing:-.02em;margin:3.1rem 0 1.2rem;font-size:1.45rem;font-weight:600;line-height:1.4}.blog-article__body h3{margin:2.25rem 0 .9rem;font-size:1.15rem;font-weight:600}.blog-article__body p{margin:0 0 1.45rem}.blog-article__body ul,.blog-article__body ol{margin:0 0 1.45rem 1.4rem;padding:0}.blog-article__body li{margin:.25rem 0}.blog-article__body a{color:inherit;text-underline-offset:3px;text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--blog-text) 28%, transparent)}.blog-article__body a:hover{text-decoration-color:var(--blog-heading)}.blog-article__body blockquote{border-left:2px solid color-mix(in srgb, var(--blog-muted) 40%, transparent);color:#504945;margin:0 0 1.6rem;padding:.1rem 0 .1rem 1.25rem}.blog-article__body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.blog-article__body pre{color:#e8e8e0;font-family:var(--blog-sans);background:#171714;border-radius:6px;margin:1.4rem 0 1.6rem;padding:1rem 1.15rem;font-size:.86rem;line-height:1.65;overflow-x:auto}.blog-article__body pre code{color:inherit;font-size:inherit}.blog-article__body table{border-collapse:collapse;width:100%;font-family:var(--blog-sans);margin:0 0 1.6rem;font-size:.9rem}.blog-article__body th,.blog-article__body td{border:1px solid var(--blog-line);text-align:left;vertical-align:top;padding:.5rem .7rem}.blog-article__body th{font-weight:600}.blog-article__body hr{border:none;border-top:1px solid var(--blog-line);margin:2.4rem 0}.blog-article__body strong{font-weight:700}@media (width<=640px){.blog-article__body table{display:block;overflow-x:auto}}
