:root{--maxw:1200px;--readw:760px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav a[aria-current=page]{color:var(--mint);border-bottom:2px solid var(--mint)}.welcome-splash[hidden]{display:none}.article-stats{color:var(--muted);font-size:.9rem}.article{max-width:var(--maxw);padding:2.25rem 0 4rem}.back-link{color:var(--ink-soft);text-decoration:none}.article-head{max-width:var(--readw);margin:2rem auto 3rem;text-align:center}.article-head h1{font-family:var(--serif);font-size:clamp(2.25rem,6vw,4.3rem);line-height:1.12;margin:1rem 0}.dateline{color:var(--muted);font-size:.9rem}.article-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.article-tags a{border:1px solid var(--border);border-radius:999px;color:var(--ink-soft);font-size:.78rem;padding:.35rem .7rem;text-decoration:none}.article-layout{display:grid;grid-template-columns:minmax(0,1fr)260px;gap:48px;max-width:var(--maxw);margin:0 auto;align-items:start}.article-body{min-width:0;font-size:1rem;line-height:1.9;overflow-wrap:anywhere}.article-body h1,.article-body h2,.article-body h3,.article-body h4{font-family:var(--serif);line-height:1.3;margin:2.5em 0 .75em;scroll-margin-top:1.5rem}.article-body h1{font-size:2.25rem}.article-body h2{font-size:1.8rem}.article-body h3{font-size:1.35rem}.article-body p,.article-body ul,.article-body ol,.article-body blockquote,.article-body table{margin:1rem 0}.article-body ul,.article-body ol{padding-left:1.5rem}.article-body li+li{margin-top:.35rem}.article-body a{color:var(--mint-dark);text-decoration-color:var(--mint);text-underline-offset:.2em}[data-theme=dark] .article-body a{color:var(--mint-light)}.article-body blockquote{border-left:3px solid var(--mint);color:var(--ink-soft);padding:.2rem 1rem}.article-body img{background:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow);cursor:zoom-in;display:block;height:auto;margin:1.5rem auto;max-width:100%}.article-body table{border-collapse:collapse;display:block;max-width:100%;overflow:auto}.article-body th,.article-body td{border:1px solid var(--border);padding:.55rem .7rem;text-align:left}.article-body code{background:var(--bg-hover);border-radius:4px;font-family:var(--mono);font-size:.88em;padding:.16em .35em}.article-body pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-sm);line-height:1.55;margin:1.35rem 0;overflow:auto;padding:1rem 3.8rem 1rem 1rem;position:relative}.article-body pre code{background:0 0;padding:0}.code-copy{background:0 0;border:1px solid var(--border);border-radius:6px;color:var(--ink-soft);cursor:pointer;font:inherit;padding:.25rem .45rem;position:absolute;right:.7rem;top:.7rem}.lock-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin:0 auto;max-width:var(--readw);padding:2rem}.lock-box h2{font-family:var(--serif)}.lock-form{display:flex;gap:.6rem;margin:.5rem 0}.lock-form input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);flex:1;min-height:44px;padding:.55rem .7rem}.lock-form button,.comment-submit{background:var(--mint);border:0;border-radius:var(--radius-sm);color:var(--bg);cursor:pointer;font-weight:700;min-height:44px;padding:.55rem 1rem}.lock-status{color:var(--ink-soft);min-height:1.5em}.protected-body{margin-top:2rem}.tags-page{margin:3rem auto;max-width:var(--readw)}.tag-cloud{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}.tag-cloud a{background:var(--bg-card);border:1px solid var(--border);border-radius:999px;color:var(--ink-soft);padding:.5rem .8rem;text-decoration:none}.tag-cloud span{color:var(--mint)}.comment-section{border-top:1px solid var(--border);margin:3rem auto;max-width:var(--readw);padding-top:2rem}.comment-section h2{font-family:var(--serif)}.comment-form{display:grid;gap:.75rem;margin:1.25rem 0}.comment-form label{color:var(--ink-soft);display:grid;font-size:.86rem;gap:.35rem}.comment-form input,.comment-form textarea{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);font:inherit;padding:.6rem}.comment-submit{justify-self:start}.comment-item{display:flex;gap:.8rem;border-top:1px solid var(--border-light);padding:1rem 0}.comment-avatar{align-items:center;background:var(--mint);border-radius:50%;color:var(--bg);display:flex;font-weight:800;height:2.25rem;justify-content:center;width:2.25rem}.comment-item time{color:var(--muted);font-size:.78rem;margin-left:.6rem}.comment-item p{margin:.35rem 0 0}.comment-error{color:var(--pink)}.lightbox{align-items:center;background:rgba(0,0,0,.9);display:none;inset:0;justify-content:center;padding:2rem;position:fixed;z-index:1300}.lightbox.active{display:flex}.lightbox img{max-height:90vh;max-width:92vw}.lightbox button{background:rgba(255,255,255,.1);border:0;border-radius:50%;color:#fff;cursor:pointer;font-size:2rem;height:44px;position:absolute;right:1rem;top:1rem;width:44px}.reading-progress{background:linear-gradient(90deg,var(--mint),var(--pink));height:3px;left:0;position:fixed;top:0;transition:width .1s linear;width:0;z-index:1400}.to-top.show{opacity:1;pointer-events:auto}.not-found{margin:clamp(3rem,12vw,9rem)auto;max-width:var(--readw);text-align:center}.not-found h1{font-family:var(--serif);font-size:clamp(2.5rem,8vw,5rem);line-height:1.1;margin:.25rem 0 1rem}.not-found p{color:var(--ink-soft)}.not-found-link{background:var(--mint);border-radius:999px;color:#fff;display:inline-block;font-weight:700;margin-top:1.5rem;padding:.7rem 1.15rem}:focus-visible{outline:3px solid var(--pink);outline-offset:3px}.article-body pre{overscroll-behavior-inline:contain;scrollbar-color:var(--mint-light)transparent}.article-body pre[data-language]::before{color:var(--muted);content:attr(data-language);font:700 .68rem/1 var(--sans);letter-spacing:.08em;position:absolute;right:4.4rem;text-transform:uppercase;top:1rem}@media(hover:none){.front-grid .post-item:active{border-color:var(--mint);transform:scale(.992)}}@media(max-width:900px){.article-layout{display:block}.article-head{margin-bottom:2rem}}@media(max-width:620px){.topbar{align-items:flex-start;flex-direction:column;gap:.6rem}.nav{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto;padding-bottom:.2rem;width:100%}.nav a{flex:none}.header-actions{align-items:center;flex-wrap:wrap;justify-content:center;margin-left:0;width:100%}.search-box{max-width:100%}.search{min-width:0;width:150px}.search:focus{width:150px}.article{padding-top:1.25rem}.article-head h1{font-size:2.15rem}.lock-form{flex-direction:column}}@media(max-width:390px){.search-box{justify-content:center}.search{width:min(100%,230px)}}@media(prefers-reduced-motion:reduce){body::after,.welcome-hint,.watercolor-dot,.tuanzi-img,.tz-nuo,.pixel-sprite{animation:none!important}html{scroll-behavior:auto}}html.theme-vt::view-transition-old(root),html.theme-vt::view-transition-new(root){animation:none;mix-blend-mode:normal}html.theme-vt::view-transition-old(root){z-index:1}html.theme-vt::view-transition-new(root){z-index:2147483646}@view-transition{navigation: auto; }@media(prefers-reduced-motion:no-preference){html:not(.theme-vt)::view-transition-old(root){animation:220ms cubic-bezier(.4,0,.2,1)both mpa-out}html:not(.theme-vt)::view-transition-new(root){animation:360ms cubic-bezier(.4,0,.2,1)60ms both mpa-in}}@keyframes mpa-out{to{opacity:0;transform:translateY(-8px)}}@keyframes mpa-in{from{opacity:0;transform:translateY(12px)}}