:root{--bg:#ededed;--bg-sunken:#e4e4e4;--surface:#fff;--surface-soft:#f7f7f7;--ink:#191919;--ink-soft:#6b6b6b;--ink-faint:#a6a6a6;--line:#f0f0f0;--line-strong:#e2e2e2;--accent:#576b95;--accent-ink:#45567a;--accent-soft:#eef1f7;--danger:#fa5151;--radius-sm:4px;--radius:6px;--radius-lg:10px;--shadow-card:0 1px 2px #0000000a;--shadow-pop:0 18px 48px #00000024;--font-serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, "Times New Roman", serif;--font-sans:-apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--wrap:720px;--wrap-wide:880px;--ease:cubic-bezier(.22, 1, .36, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111;--bg-sunken:#0b0b0b;--surface:#1a1a1a;--surface-soft:#232323;--ink:#ededed;--ink-soft:#a0a0a0;--ink-faint:#6f6f6f;--line:#262626;--line-strong:#343434;--accent:#7f93bd;--accent-ink:#9fb0d4;--accent-soft:#232a38;--danger:#fa5151;--shadow-card:0 1px 2px #0000004d;--shadow-pop:0 18px 48px #0000008c}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.7}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;margin:0;font-weight:500;line-height:1.35}p{margin:0}a{color:inherit;text-decoration:none}img,video{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}ul,ol{margin:0;padding:0;list-style:none}figure{margin:0}time{font-variant-numeric:tabular-nums}::selection{background:var(--accent-soft);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.skip-link{z-index:100;background:var(--surface);border-radius:0 0 var(--radius) 0;padding:10px 16px;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-inner{width:100%;max-width:var(--wrap-wide);align-items:center;gap:20px;height:60px;margin:0 auto;padding:0 24px;display:flex}.brand{font-family:var(--font-serif);letter-spacing:.02em;color:var(--ink);flex:none;align-items:center;gap:9px;font-size:16px;display:inline-flex}.brand-logo{object-fit:cover;border-radius:7px;width:24px;height:24px}.brand-mark{background:var(--ink);width:24px;height:24px;color:var(--bg);font-size:13px;font-family:var(--font-serif);border-radius:7px;place-items:center;display:grid}.nav{color:var(--ink-soft);align-items:center;gap:22px;margin-left:auto;font-size:13.5px;display:flex}.nav a{transition:color .2s var(--ease);padding:4px 0;position:relative}.nav a:hover,.nav a.is-active{color:var(--ink)}.nav a.is-active:after{content:"";background:var(--accent);border-radius:2px;height:1.5px;position:absolute;bottom:-2px;left:0;right:0}.write-btn{height:28px;color:var(--accent);background:var(--accent-soft);transition:background .2s var(--ease);border-radius:999px;flex:none;align-items:center;gap:5px;padding:0 11px;font-size:12.5px;display:inline-flex}.write-btn:hover{background:color-mix(in srgb, var(--accent) 16%, var(--surface))}.write-btn svg{width:14px;height:14px}.nav-toggle{width:32px;height:32px;color:var(--ink-soft);place-items:center;margin-left:auto;display:none}.page{width:100%;max-width:var(--wrap);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex:none;margin:16px auto 0;padding:30px 30px 44px}.page--wide{max-width:var(--wrap-wide)}.foot{color:var(--ink-faint);margin-top:auto;padding:26px 24px 34px;font-size:12.5px}.foot-inner{max-width:var(--wrap-wide);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin:0 auto;display:flex}.foot a{color:var(--ink-faint)}.foot a:hover{color:var(--ink-soft)}.foot-socials{gap:14px;display:flex}.foot-socials a{align-items:center;gap:5px;display:inline-flex}.foot-socials svg{width:15px;height:15px}.halo-footer-inject{max-width:var(--wrap-wide);margin:12px auto 0}.progress{background:var(--accent);z-index:90;opacity:0;width:0;height:2px;transition:width .4s var(--ease), opacity .3s ease;pointer-events:none;position:fixed;top:0;left:0}.progress.is-loading{opacity:1}.progress.is-done{opacity:0;transition:width .2s,opacity .4s .2s;width:100%!important}.page.is-swapping{opacity:0}.page-head{margin-bottom:26px}.page-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;font-size:11.5px}.page-title{font-family:var(--font-sans);letter-spacing:-.01em;font-size:21px;font-weight:600}.page-sub{color:var(--ink-faint);margin-top:8px;font-size:13px}.page-head-row{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.post-list{flex-direction:column;display:flex}.post-card{border-bottom:1px solid var(--line);padding:22px 0;display:block}.post-card:first-child{border-top:1px solid var(--line)}.post-card h2{font-family:var(--font-sans);transition:color .2s var(--ease);align-items:baseline;gap:8px;font-size:16.5px;font-weight:600;display:flex}.post-card:hover h2{color:var(--accent)}.post-pin{font-family:var(--font-sans);letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);border-radius:3px;flex:none;padding:1px 5px;font-size:10.5px;font-weight:400;transform:translateY(-2px)}.post-excerpt{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:7px;font-size:14px;line-height:1.7;display:-webkit-box;overflow:hidden}.post-card-meta{color:var(--ink-faint);align-items:center;gap:12px;margin-top:10px;font-size:12px;display:flex}.post-more{opacity:0;transition:opacity .2s var(--ease), transform .2s var(--ease);margin-left:auto;transform:translate(-4px)}.post-card:hover .post-more{opacity:1;transform:none}.article{max-width:100%}.article-head{margin-bottom:26px}.article-title{font-family:var(--font-serif);letter-spacing:-.01em;font-size:27px;font-weight:600;line-height:1.35}.article-meta{color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:14px;font-size:12.5px;display:flex}.article-meta-toggle{color:var(--ink-faint);border-bottom:1px dashed var(--line-strong);line-height:1.5}.article-meta-toggle:hover{color:var(--ink-soft)}.article-meta-extra{flex-wrap:wrap;align-items:center;gap:8px 14px;display:inline-flex}.article-meta-extra[hidden]{display:none}.article-cats a,.article-tags a{color:var(--ink-faint)}.article-cats a:hover,.article-tags a:hover{color:var(--accent)}.article-meta-edit{color:var(--ink-faint);border-bottom:1px dashed var(--line-strong)}.article-meta-edit:hover{color:var(--accent)}.article-content{font-family:var(--font-serif);color:var(--ink);word-break:break-word;font-size:17px;line-height:1.95}.article-content>*+*{margin-top:1.15em}.article-content p{margin:1.15em 0 0}.article-content h1,.article-content h2,.article-content h3,.article-content h4{font-family:var(--font-sans);letter-spacing:-.01em;margin-top:1.9em}.article-content h1{font-size:24px}.article-content h2{font-size:21px}.article-content h3{font-size:18px}.article-content h4{font-size:16px}.article-content a{color:var(--accent-ink);border-bottom:1px solid var(--accent-soft);transition:border-color .2s var(--ease)}.article-content a:hover{border-bottom-color:var(--accent)}.article-content strong{font-weight:600}.article-content blockquote{border-left:2px solid var(--line-strong);color:var(--ink-soft);margin:1.4em 0;padding:2px 0 2px 18px}.article-content blockquote p{margin:.4em 0}.article-content ul,.article-content ol{margin:1.15em 0;padding-left:1.35em}.article-content ul>li{list-style:outside}.article-content ol>li{list-style:decimal}.article-content li+li{margin-top:.35em}.article-content li>ul,.article-content li>ol{margin:.35em 0 0}.article-content code{font-family:var(--font-mono);background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;padding:.1em .35em;font-size:.86em}.article-content pre{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);margin:1.5em 0;padding:16px 18px;font-size:13.5px;line-height:1.7;overflow-x:auto}.article-content pre code{font-size:inherit;background:0 0;border:0;padding:0}.article-content img{border-radius:var(--radius);margin:1.6em auto}.article-content figure{margin:1.6em 0}.article-content figcaption{font-family:var(--font-sans);color:var(--ink-faint);text-align:center;margin-top:8px;font-size:12.5px}.article-content hr{background:var(--line);border:0;height:1px;margin:2.4em 0}.article-content table{border-collapse:collapse;width:100%;font-family:var(--font-sans);margin:1.5em 0;font-size:14px}.article-content th,.article-content td{border:1px solid var(--line);text-align:left;padding:8px 12px}.article-content th{background:var(--surface-soft);font-weight:500}.article-foot{border-top:1px solid var(--line);color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:46px;padding-top:20px;font-size:12.5px;display:flex}.article-tags{flex-wrap:wrap;gap:8px;display:flex}.article-tags a{border:1px solid var(--line);transition:border-color .2s var(--ease), color .2s var(--ease);border-radius:999px;padding:2px 9px}.article-tags a:hover{border-color:var(--accent);color:var(--accent)}.post-nav{grid-template-columns:1fr 1fr;gap:16px;margin-top:34px;display:grid}.post-nav a{background:var(--surface-soft);border-radius:var(--radius);transition:background .2s var(--ease);padding:14px 16px;display:block}.post-nav a:hover{background:var(--bg-sunken)}.post-nav-label{color:var(--ink-faint);margin-bottom:4px;font-size:11.5px;display:block}.post-nav-title{font-family:var(--font-sans);font-size:14px;line-height:1.5}.post-nav a.is-next{text-align:right}.post-nav-placeholder{border:1px dashed var(--line);border-radius:var(--radius)}.article-comments{margin-top:40px}.archive-year{margin-top:38px}.archive-year:first-child{margin-top:0}.archive-year-title{font-family:var(--font-sans);color:var(--ink-faint);align-items:center;gap:10px;margin-bottom:10px;font-size:13px;display:flex}.archive-year-title:after{content:"";background:var(--line);flex:1;height:1px}.archive-item{align-items:baseline;gap:12px;padding:8px 0;font-size:14.5px;display:flex}.archive-item time{color:var(--ink-faint);flex:none;width:46px;font-size:12px}.archive-item a{font-family:var(--font-sans);transition:color .2s var(--ease);font-size:14.5px}.archive-item a:hover{color:var(--accent)}.term-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.term-card{background:var(--surface-soft);border-radius:var(--radius);transition:background .2s var(--ease);justify-content:space-between;align-items:baseline;gap:10px;padding:13px 15px;display:flex}.term-card:hover{background:var(--bg-sunken)}.term-name{font-family:var(--font-sans);font-size:14.5px}.term-count{color:var(--ink-faint);font-size:12px}.link-list{gap:10px;display:grid}.link-card{background:var(--surface-soft);border-radius:var(--radius);transition:background .2s var(--ease);align-items:flex-start;gap:14px;padding:15px;display:flex}.link-card:hover{background:var(--bg-sunken)}.link-logo{border-radius:var(--radius);background:var(--surface-soft);object-fit:cover;flex:none;width:38px;height:38px}.link-body{min-width:0;display:block}.link-title{font-family:var(--font-sans);font-size:14.5px;font-weight:500;display:block}.link-desc{color:var(--ink-soft);margin-top:4px;font-size:13px;display:block}.author-card{border-bottom:1px solid var(--line);align-items:center;gap:16px;margin-bottom:34px;padding-bottom:24px;display:flex}.author-avatar{object-fit:cover;background:var(--surface-soft);border-radius:50%;width:56px;height:56px}.author-name{font-family:var(--font-sans);font-size:18px;font-weight:600}.author-bio{color:var(--ink-soft);margin-top:4px;font-size:13px}.moment-feed{flex-direction:column;display:flex}.moment-head{align-items:center;gap:10px;margin-bottom:4px;padding-bottom:14px;display:flex}.moment-head-title{font-family:var(--font-sans);font-size:17px;font-weight:600}.moment-head-count{color:var(--ink-faint);font-size:12.5px}.moment-head .write-btn{margin-left:auto}.moment{min-width:0;padding:18px 0 0;display:flex}.moment-avatar{background:var(--surface-soft);border-radius:5px;flex:none;width:42px;height:42px;margin-right:13px;overflow:hidden}.moment-avatar img{object-fit:cover;width:100%;height:100%;display:block}.moment-avatar-fallback{color:#fff;background:var(--accent);place-items:center;width:100%;height:100%;font-size:17px;display:grid}.moment-main{border-bottom:1px solid var(--line);flex:1;min-width:0;padding-bottom:14px}.moment:last-child .moment-main{border-bottom:0}.moment-header{align-items:center;gap:8px;padding:1px 0 5px;display:flex}.moment-author{min-width:0;color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:500;line-height:1.5;overflow:hidden}.moment-pin{color:var(--accent);background:var(--accent-soft);border-radius:3px;flex:none;padding:0 4px;font-size:10.5px;line-height:1.5}.moment-content{color:var(--ink);word-break:break-word;margin-bottom:12px;font-size:15px;line-height:1.62}.moment-content:empty{display:none}.moment-content p{margin:0}.moment-content p+p{margin-top:.5em}.moment-content a{color:var(--accent)}.moment-content a:hover{text-decoration:underline}.moment-content ul,.moment-content ol{padding-left:1.25em}.moment-content ul>li{list-style:outside}.moment-content ol>li{list-style:decimal}.moment-content blockquote{border-left:2px solid var(--line-strong);color:var(--ink-soft);margin:.7em 0;padding-left:12px}.moment-content code{font-family:var(--font-mono);background:var(--surface-soft);border-radius:3px;padding:.1em .35em;font-size:.86em}.moment-content pre{background:var(--surface-soft);border-radius:var(--radius);padding:12px 14px;font-size:13px;overflow-x:auto}.moment-content pre code{background:0 0;padding:0}.moment-content img.emoji{vertical-align:-.2em;width:1.2em;height:1.2em;display:inline-block}.moment-gallery{gap:5px;margin-bottom:12px;display:grid}.moment-gallery.is-1{grid-template-columns:1fr;width:50%}.moment-gallery.is-2,.moment-gallery.is-4{grid-template-columns:repeat(2,minmax(0,1fr));width:66.6667%}.moment-gallery.is-3,.moment-gallery.is-5,.moment-gallery.is-6,.moment-gallery.is-7,.moment-gallery.is-8,.moment-gallery.is-9{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-item{aspect-ratio:1;background:var(--surface-soft);border-radius:5px;min-width:0;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:filter .2s var(--ease);display:block}.gallery-item:hover img{filter:brightness(.95)}.moment-gallery.is-1 .gallery-item{aspect-ratio:auto}.moment-gallery.is-1 .gallery-item img{height:auto}.moment-media{min-width:0;margin-bottom:12px}.moment-media video{border-radius:var(--radius);background:#000;width:100%}.moment-media audio{width:100%}.moment-post-ref{color:var(--ink-soft);background:var(--surface-soft);border-radius:var(--radius-sm);margin-bottom:10px;padding:5px 10px;font-size:13px;display:inline-block}.moment-place{color:var(--accent);align-items:center;gap:3px;margin-bottom:10px;font-size:12.5px;display:inline-flex}.moment-place svg{width:12px;height:12px}.moment-footer{justify-content:space-between;align-items:center;gap:12px;padding:0 0 12px;display:flex}.moment-info{min-width:0;color:var(--ink-faint);flex:1;font-size:12.5px;line-height:1.6}.moment-info time,.moment-info a{color:var(--ink-faint)}.moment-info a:hover{color:var(--accent)}.moment-visibility{align-items:center;gap:3px;margin-left:8px;font-size:11.5px;display:inline-flex}.moment-visibility svg{width:11px;height:11px}.moment-tags{flex-wrap:wrap;gap:8px;display:inline-flex}.moment-tags a:hover{color:var(--accent)}.moment-fun{flex:none;position:relative}.fun-toggle{width:32px;height:22px;color:var(--accent);background:var(--surface-soft);transition:background .15s var(--ease);border-radius:4px;place-items:center;display:grid}.fun-toggle:hover{background:var(--bg-sunken)}.fun-box{z-index:4;white-space:nowrap;background:#4b5153;border-radius:4px;align-items:center;height:34px;display:none;position:absolute;top:50%;right:38px;overflow:hidden;transform:translateY(-50%);box-shadow:0 5px 14px #00000029}.moment-fun.is-open .fun-box{display:flex}.fun-btn{color:#fff;justify-content:center;align-items:center;gap:5px;min-width:68px;height:34px;font-size:14px;display:inline-flex;position:relative}.fun-btn:hover{opacity:.86}.fun-btn+.fun-btn:before{content:"";border-left:1px solid #373d40;height:20px;position:absolute;top:7px;left:0}.fun-btn svg{flex:none;display:block}.moment-aside{background:var(--surface-soft);border-radius:var(--radius);margin:0 0 12px;padding:2px 0;display:none;overflow:hidden}.moment-aside.is-shown{display:block}.aside-like{color:var(--accent);align-items:flex-start;gap:6px;padding:5px 11px 4px;font-size:14px;line-height:1.55;display:flex}.aside-like svg{flex:none;width:16px;height:16px;margin-top:3px}.aside-like+.aside-comments.has-comments,.aside-comments.has-comments+.aside-form.is-open{border-top:1px solid var(--line-strong)}.aside-comments{padding:5px 11px 6px;font-size:14px;line-height:1.58}.aside-comments li+li{margin-top:2px}.comment-item{overflow-wrap:anywhere}.comment-name{color:var(--accent)}.comment-colon{margin:0 3px 0 1px}.comment-text{color:var(--ink)}.comment-text p{margin:0;display:inline}.comment-text img.emoji{vertical-align:-.2em;width:1.2em;height:1.2em;display:inline-block}.comment-item.is-pending{color:var(--ink-faint)}.comment-item.is-pending .comment-name:after{content:"待审核";color:var(--ink-faint);background:var(--bg-sunken);border-radius:2px;margin-left:4px;padding:0 3px;font-size:10px}.aside-form{padding:0 0 4px;display:none}.aside-form.is-open{display:block}.moment-filter-note{color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;font-size:12.5px;display:flex}.moment-filter-tag{color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:1px 8px}.moment-filter-note a{color:var(--accent)}.moment-scope-note{color:var(--ink-faint);text-align:center;margin-top:22px;font-size:12.5px}.moment-scope-tail{opacity:.75}.moment-detail .moment{padding-top:0}.back-link{color:var(--ink-faint);align-items:center;gap:3px;margin-bottom:18px;font-size:12.5px;display:inline-flex}.back-link:hover{color:var(--accent)}.moment-detail-nav{color:var(--ink-faint);justify-content:space-between;margin-top:28px;font-size:13px;display:flex}.empty-state{text-align:center;color:var(--ink-faint);padding:60px 0}.empty-state h2{font-family:var(--font-sans);color:var(--ink-soft);margin-bottom:8px;font-size:16px;font-weight:600}.empty-state p{font-size:13.5px}.pagination{color:var(--ink-faint);align-items:center;gap:14px;margin-top:34px;font-size:13px;display:flex}.pagination-link{color:var(--ink-soft);transition:color .2s var(--ease), border-color .2s var(--ease);border-bottom:1px solid #0000}.pagination-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.pagination-link.is-disabled{color:var(--line-strong);pointer-events:none}.pagination-status{margin:0 auto;font-size:12px}.moment-published-note{color:var(--accent);margin-top:10px;font-size:13px}.moment-published-note[hidden]{display:none}.compose-page{z-index:70;background:var(--surface);overscroll-behavior:contain;display:none;position:fixed;inset:0;overflow-y:auto}html.is-compose-open .compose-page{display:block}html.is-compose-open,html.is-post-open{overflow:hidden}.compose{flex-direction:column;width:100%;max-width:640px;min-height:100%;margin:0 auto;padding:0 22px 60px;display:flex}.compose-head{z-index:2;background:var(--bg);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:56px;display:flex;position:sticky;top:0}.compose-cancel{color:var(--ink-faint);font-size:13.5px}.compose-cancel:hover{color:var(--ink)}.compose-submit{background:var(--ink);height:30px;color:var(--bg);transition:opacity .2s var(--ease);border-radius:999px;padding:0 16px;font-size:13px}.compose-submit:hover{opacity:.86}.compose-submit:disabled{opacity:.4;cursor:default}.compose-main{padding-top:8px}.compose-field{border-bottom:1px solid var(--line)}.compose-field--text{padding:12px 0}.compose-editor{min-height:160px;font-family:var(--font-sans);cursor:text;font-size:15.5px;line-height:1.9;position:relative}.compose-editor.is-empty:before{content:attr(data-placeholder);color:var(--ink-faint);pointer-events:none;position:absolute}.compose-editor .ProseMirror{white-space:pre-wrap;min-height:160px;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;outline:none}.compose-editor .ProseMirror p{margin:0}.compose-editor .ProseMirror p+p{margin-top:.9em}.compose-editor .ProseMirror ul,.compose-editor .ProseMirror ol{padding-left:1.3em}.compose-editor .ProseMirror ul>li{list-style:outside}.compose-editor .ProseMirror ol>li{list-style:decimal}.compose-editor .ProseMirror blockquote{border-left:2px solid var(--line-strong);color:var(--ink-soft);margin:.9em 0;padding-left:14px}.compose-editor .ProseMirror code{font-family:var(--font-mono);background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;padding:.1em .35em;font-size:.86em}.compose-editor .ProseMirror pre{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-size:13px;overflow-x:auto}.compose-editor .ProseMirror a{color:var(--accent-ink);border-bottom:1px solid var(--accent-soft)}.compose-editor .ProseMirror img{border-radius:var(--radius);margin:.6em 0}.compose-field--media{padding:14px 0;position:relative}.compose-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:360px;display:grid}.compose-grid:empty{display:none}.compose-grid li{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface-soft);cursor:grab;position:relative;overflow:hidden}.compose-grid img{object-fit:cover;width:100%;height:100%}.compose-grid li.is-dragging{opacity:.4}.compose-grid li.is-drop-target{outline:2px solid var(--accent);outline-offset:-2px}.compose-remove{color:#fff;background:#0000008c;border-radius:50%;place-items:center;width:20px;height:20px;font-size:13px;line-height:1;display:grid;position:absolute;top:4px;right:4px}.compose-add{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);width:74px;height:74px;color:var(--ink-faint);transition:border-color .2s var(--ease), color .2s var(--ease);place-items:center;margin-top:8px;display:grid}.compose-add:hover{border-color:var(--accent);color:var(--accent)}.compose-add svg{width:20px;height:20px}.compose-source{gap:8px;margin-top:10px;display:flex}.compose-source[hidden]{display:none}.compose-source button{border:1px solid var(--line);color:var(--ink-soft);transition:border-color .2s var(--ease), color .2s var(--ease);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;display:inline-flex}.compose-source button:hover{border-color:var(--accent);color:var(--accent)}.compose-source svg{width:14px;height:14px}.compose-link{align-items:center;gap:8px;padding:10px 0;display:flex}.compose-input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);flex:1;min-width:0;height:34px;padding:0 10px;font-size:13.5px}.compose-input:focus{border-color:var(--accent);outline:none}.compose-link-add{border-radius:var(--radius-sm);background:var(--ink);height:34px;color:var(--bg);padding:0 12px;font-size:13px}.compose-link [data-compose-link-cancel]{color:var(--ink-faint);font-size:13px}.compose-field--block{padding:4px 0}.compose-row{text-align:left;width:100%;min-height:44px;color:var(--ink-soft);align-items:center;gap:10px;padding:6px 0;font-size:13.5px;display:flex}.compose-row--static{cursor:default}.compose-row-icon{width:16px;height:16px;color:var(--ink-faint);flex:none}.compose-row-label{flex:none}.compose-row-chevron{width:14px;height:14px;color:var(--ink-faint);transition:transform .2s var(--ease);margin-left:auto}.compose-row[aria-expanded=true] .compose-row-chevron{transform:rotate(90deg)}.compose-tags{scrollbar-width:none;flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.compose-tags::-webkit-scrollbar{display:none}.compose-taglist{align-items:center;gap:6px;display:flex}.compose-tag{white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:3px;padding:2px 9px;font-size:12.5px;line-height:1.6;display:inline-flex}.compose-tag.is-matched{background:var(--accent);color:#fff}.compose-tag.is-manual{border:1px dashed var(--line-strong);color:var(--ink-soft)}.compose-tag.is-nudge{animation:nudge .32s var(--ease)}@keyframes nudge{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.compose-tag-empty{color:var(--ink-faint);font-size:12.5px}.compose-tag-empty[hidden]{display:none}.compose-tag-input{background:0 0;border:0;flex:1;min-width:60px;padding:2px 0;font-size:13px}.compose-tag-input:focus{outline:none}.compose-suggest{flex-wrap:wrap;gap:6px;margin:4px 0 8px 26px;display:flex}.compose-suggest[hidden]{display:none}.compose-suggest button{border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:2px 9px;font-size:12.5px}.compose-suggest button:hover{border-color:var(--accent);color:var(--accent)}.compose-location{gap:8px;padding:4px 0 12px 26px;display:flex}.compose-location[hidden]{display:none}.compose-location-field{flex:1;min-width:0;position:relative}.compose-location .compose-suggest{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);z-index:3;max-height:200px;margin:0;padding:6px;position:absolute;top:38px;left:0;right:0;overflow-y:auto}.compose-seg{background:var(--surface-soft);border-radius:999px;margin-left:auto;padding:2px;display:inline-flex}.compose-seg button{color:var(--ink-faint);transition:background .2s var(--ease), color .2s var(--ease);border-radius:999px;padding:3px 12px;font-size:12.5px}.compose-seg button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.compose-datetime{color:var(--ink-faint);text-align:right;background:0 0;border:0;margin-left:auto;font-size:12.5px}.compose-datetime:focus{color:var(--ink);outline:none}.compose-status{min-height:20px;color:var(--ink-faint);margin-top:14px;font-size:12.5px}.compose-status.is-error{color:var(--danger)}.compose-danger{margin-top:20px}.compose-danger[hidden]{display:none}.compose-delete{color:var(--danger);border-bottom:1px dashed;font-size:12.5px}.compose-library{z-index:80;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.compose-library[hidden]{display:none}.compose-library-mask{background:#14130f73;position:absolute;inset:0}.compose-library-card{background:var(--surface);border-radius:var(--radius-lg);width:min(720px,100%);max-height:min(80vh,640px);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;position:relative;overflow:hidden}.compose-library-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;font-size:14px;display:flex}.compose-library-close{color:var(--ink-faint);font-size:18px}.compose-library-body{flex:1;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));align-content:start;gap:8px;padding:14px 18px;display:grid;overflow-y:auto}.compose-library-item{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface-soft);position:relative;overflow:hidden}.compose-library-item img{object-fit:cover;width:100%;height:100%}.compose-library-item.is-picked{outline:2px solid var(--accent);outline-offset:-2px}.compose-library-item.is-taken{opacity:.35;pointer-events:none}.compose-library-foot{border-top:1px solid var(--line);color:var(--ink-faint);align-items:center;gap:14px;padding:12px 18px;font-size:12.5px;display:flex}.compose-library-pager{align-items:center;gap:10px;margin-left:auto;display:flex}.compose-library-confirm{background:var(--ink);height:30px;color:var(--bg);border-radius:999px;padding:0 16px;font-size:13px}.compose-library-confirm:disabled{opacity:.35;cursor:default}.pe-page{z-index:70;background:var(--surface);overscroll-behavior:contain;display:none;position:fixed;inset:0;overflow-y:auto}html.is-post-open .pe-page{display:block}.pe{flex-direction:column;width:100%;max-width:720px;min-height:100%;margin:0 auto;padding:0 22px 70px;display:flex}.pe-head{z-index:2;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:12px;height:56px;display:flex;position:sticky;top:0}.pe-cancel{color:var(--ink-faint);font-size:13.5px}.pe-cancel:hover{color:var(--ink)}.pe-hint{color:var(--ink-faint);margin-left:auto;font-size:12px}.pe-save{background:var(--ink);height:30px;color:var(--bg);border-radius:999px;padding:0 16px;font-size:13px}.pe-save:disabled{opacity:.4;cursor:default}.pe-title{width:100%;font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink);background:0 0;border:0;margin:22px 0 6px;padding:0;font-size:28px;line-height:1.35}.pe-title::placeholder{color:var(--ink-faint)}.pe-title:focus{outline:none}.pe-editor{min-height:42vh;font-family:var(--font-serif);cursor:text;font-size:17px;line-height:1.95;position:relative}.pe-editor.is-empty:before{content:attr(data-placeholder);color:var(--ink-faint);pointer-events:none;position:absolute}.pe-editor .ProseMirror{white-space:pre-wrap;min-height:42vh;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;outline:none}.pe-editor .ProseMirror p{margin:0}.pe-editor .ProseMirror p+p{margin-top:1.15em}.pe-editor .ProseMirror h1,.pe-editor .ProseMirror h2,.pe-editor .ProseMirror h3{font-family:var(--font-sans);margin:1.6em 0 .6em}.pe-editor .ProseMirror h1{font-size:24px}.pe-editor .ProseMirror h2{font-size:21px}.pe-editor .ProseMirror h3{font-size:18px}.pe-editor .ProseMirror ul,.pe-editor .ProseMirror ol{padding-left:1.3em}.pe-editor .ProseMirror ul>li{list-style:outside}.pe-editor .ProseMirror ol>li{list-style:decimal}.pe-editor .ProseMirror blockquote{border-left:2px solid var(--line-strong);color:var(--ink-soft);margin:1.1em 0;padding-left:16px}.pe-editor .ProseMirror code{font-family:var(--font-mono);background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;padding:.1em .35em;font-size:.86em}.pe-editor .ProseMirror pre{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;font-size:13.5px;overflow-x:auto}.pe-editor .ProseMirror a{color:var(--accent-ink);border-bottom:1px solid var(--accent-soft)}.pe-editor .ProseMirror img{border-radius:var(--radius);margin:1.2em auto}.pe-meta{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin-top:26px;padding-top:14px;display:flex}.pe-field{min-height:44px;color:var(--ink-soft);align-items:center;gap:12px;font-size:13.5px;display:flex}.pe-field-icon{width:16px;height:16px;color:var(--ink-faint);flex:none}.pe-field-label{flex:none}.pe-datetime{color:var(--ink-faint);text-align:right;background:0 0;border:0;margin-left:auto;font-size:12.5px}.pe-datetime:focus{color:var(--ink);outline:none}.pe-seg{background:var(--surface-soft);border-radius:999px;margin-left:auto;padding:2px;display:inline-flex}.pe-seg button{color:var(--ink-faint);border-radius:999px;padding:3px 12px;font-size:12.5px}.pe-seg button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.pe-status{min-height:20px;color:var(--ink-faint);margin-top:12px;font-size:12.5px}.pe-status.is-error{color:var(--danger)}.pe-note{color:var(--ink-faint);margin-top:6px;font-size:12px}@media (width<=720px){.topbar-inner{gap:12px;padding:0 18px}.nav{background:var(--surface);border-bottom:1px solid var(--line);opacity:0;pointer-events:none;transition:opacity .18s ease, transform .18s var(--ease);flex-direction:column;align-items:flex-start;gap:2px;padding:10px 18px 18px;position:fixed;inset:60px 0 auto;transform:translateY(-8px)}.nav.is-open{opacity:1;pointer-events:auto;transform:none}.nav a{width:100%;padding:9px 0;font-size:14px}.nav a.is-active:after{display:none}.nav-toggle{display:grid}.page{box-shadow:none;border-radius:0;margin:0;padding:20px 16px 48px}.article-title{font-size:23px}.article-content,.pe-editor{font-size:16.5px}.moment-content,.aside-comments,.aside-like{font-size:16px}.moment-gallery.is-1{width:62%}.moment-gallery.is-2,.moment-gallery.is-4{width:74%}.post-nav{grid-template-columns:1fr}.post-nav a.is-next{text-align:left}.moment-photos{max-width:100%}.compose,.pe{padding:0 16px 50px}.compose-location{flex-direction:column;padding-left:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}html{scroll-behavior:auto}}@media print{.topbar,.foot,.progress,.compose-page,.pe-page,.post-nav{display:none!important}.page{max-width:none;padding:0}}.typora-web-wrap,.typora-web-editor-host{display:block}.typora-web-source{resize:none;width:100%;color:inherit;white-space:pre-wrap;word-break:break-word;tab-size:2;box-sizing:border-box;background:0 0;border:none;outline:none;padding:0;font:14px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;display:block;overflow:hidden}.typora-web-source[hidden]{display:none}.ProseMirror{outline:none;min-height:168px}.ProseMirror[contenteditable=true]:focus{outline:none}.ProseMirror .syntax-hint{color:#b0b0b0;-webkit-user-select:none;user-select:none;font-style:normal;font-weight:400}.ProseMirror .syntax-hint-italic{color:#b0b0b0;-webkit-user-select:none;user-select:none;font-style:italic;font-weight:400}.ProseMirror .syntax-hidden{font-size:0}.ProseMirror mark-comment{color:#999;font-style:italic}.ProseMirror .heading-draft-1,.ProseMirror .heading-draft-2,.ProseMirror .heading-draft-3,.ProseMirror .heading-draft-4,.ProseMirror .heading-draft-5,.ProseMirror .heading-draft-6{font-weight:700}.ProseMirror .play-caret{vertical-align:text-bottom;-webkit-user-select:none;user-select:none;pointer-events:none;background:#1f1f1f;width:2px;height:1.15em;margin:0 -1px;animation:1s step-end infinite play-caret-blink;display:inline-block}@keyframes play-caret-blink{50%{opacity:0}}.ProseMirror-focused .play-caret{display:none}.ProseMirror .selection-marker{color:#1f1f1f;-webkit-user-select:none;user-select:none;font-weight:700}.ProseMirror-focused .selection-marker{display:none}.ProseMirror ref-def{color:#444;margin:4px 0;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.ProseMirror ref-label,.ProseMirror ref-url,.ProseMirror ref-title{min-width:1em;display:inline-block}.ProseMirror ref-label:before{content:"[ ";color:#b0b0b0;-webkit-user-select:none;user-select:none}.ProseMirror ref-label:after{content:" ]: ";color:#b0b0b0;-webkit-user-select:none;user-select:none}.ProseMirror ref-url{color:#0969da}.ProseMirror ref-url[data-placeholder]:before{content:attr(data-placeholder);color:#b0b0b0;-webkit-user-select:none;user-select:none;font-style:italic;text-decoration:underline}.ProseMirror ref-title{color:#555;padding-left:.6em}.ProseMirror ref-title:before{content:"\" ";color:#b0b0b0;-webkit-user-select:none;user-select:none}.ProseMirror ref-title:after{content:" \"";color:#b0b0b0;-webkit-user-select:none;user-select:none}.ProseMirror ref-title[data-placeholder]:before{content:"\" " attr(data-placeholder) " \"";color:#b0b0b0;-webkit-user-select:none;user-select:none;font-style:italic}.ProseMirror ref-title[data-placeholder]:after{content:""}.ProseMirror ref-label>.ProseMirror-trailingBreak,.ProseMirror ref-url>.ProseMirror-trailingBreak,.ProseMirror ref-title>.ProseMirror-trailingBreak{display:none}.ProseMirror yaml-block{white-space:pre-wrap;word-break:break-word;color:#444;background:#fbf6e8;border-left:3px solid #b58900;border-radius:4px;margin:8px 0 16px;padding:10px 14px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.ProseMirror .toc{background:#fafafa;border:1px solid #e3e3e3;border-radius:6px;margin:8px 0;padding:8px 14px;font-size:.95em}.ProseMirror .toc-empty{color:#999;font-style:italic}.ProseMirror .toc-list{margin:0;padding:0;list-style:none}.ProseMirror .toc-item{cursor:pointer;color:#555;padding:2px 0}.ProseMirror .toc-item:hover{color:#1f1f1f;text-decoration:underline}.ProseMirror .toc-h1{padding-left:0;font-weight:600}.ProseMirror .toc-h2{padding-left:1.2em}.ProseMirror .toc-h3{padding-left:2.4em}.ProseMirror .toc-h4{padding-left:3.6em}.ProseMirror .toc-h5{padding-left:4.8em}.ProseMirror .toc-h6{padding-left:6em}.ProseMirror .emoji-completion{z-index:10;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d0d0d0;border-radius:6px;min-width:200px;max-height:240px;padding:4px 0;font:13px/1.3 -apple-system,system-ui,sans-serif;position:fixed;overflow-y:auto;box-shadow:0 4px 12px #00000014}.ProseMirror .emoji-completion-row{cursor:pointer;align-items:center;gap:8px;padding:4px 10px;display:flex}.ProseMirror .emoji-completion-row:hover{background:#f5f5f5}.ProseMirror .emoji-completion-row.selected{background:#f0eaff}.ProseMirror .emoji-completion-glyph{text-align:center;width:20px;font-size:16px;line-height:1}.ProseMirror .emoji-completion-name{color:#555;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ProseMirror .image-icon{-webkit-user-select:none;user-select:none;display:inline-block}.ProseMirror .image-icon:before{content:"🖼️";margin-right:2px;font-size:.9em}.ProseMirror .image-icon.broken:before{content:"🖼️";filter:grayscale()brightness(.7);opacity:.6}.ProseMirror .image-icon.broken:after{content:"⚠";color:#c43;margin-right:2px;font-size:.8em}.ProseMirror .file-input{cursor:pointer;-webkit-user-select:none;user-select:none;opacity:.6;margin:0 2px;font-size:.9em;display:inline-block}.ProseMirror .file-input:hover{opacity:1}.ProseMirror img.image-render{max-width:100%;margin:4px 0;display:block}.ProseMirror .checkbox-frame{vertical-align:-2px;-webkit-user-select:none;user-select:none;padding-right:8px;display:inline-block}.ProseMirror .checkbox{vertical-align:-2px;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#fff;border:1.5px solid #888;border-radius:3px;width:14px;height:14px;display:inline-block;position:relative}.ProseMirror .checkbox[data-checked="1"]{background:#1f1f1f;border-color:#1f1f1f}.ProseMirror .checkbox[data-checked="1"]:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:0;left:3px;transform:rotate(45deg)}.ProseMirror pre{position:relative}.ProseMirror pre .cb-chrome{-webkit-user-select:none;user-select:none;display:none;position:absolute;bottom:6px;right:8px}.ProseMirror pre.cb-active .cb-chrome{display:block}.ProseMirror pre .cb-lang-input{color:#333;background:#fff;border:1px solid #d0d0d0;border-radius:4px;outline:none;width:80px;padding:2px 6px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.ProseMirror pre .cb-lang-input:focus{border-color:#1f1f1f}.ProseMirror pre.cb-lang-focus .play-caret{display:none}.ProseMirror table{table-layout:fixed;border-collapse:collapse;width:100%;margin:0 0 16px}.ProseMirror table th,.ProseMirror table td{word-break:break-word}.table-toolbar{z-index:10;background:#fff;border:1px solid #e3e3e3;border-radius:6px;align-items:center;gap:4px;padding:4px 6px;font-family:system-ui,-apple-system,sans-serif;display:none;position:fixed;box-shadow:0 2px 8px #00000014}.table-tb-btn{color:#555;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;display:inline-flex}.table-tb-btn:hover{background:#f0f0f0}.table-tb-btn.active{color:#1f1f1f;background:#f0eaff}.table-tb-trash:hover{color:#c0392b;background:#fde8e8}.table-tb-sep{background:#e3e3e3;align-self:stretch;width:1px;margin:2px 4px}.table-tb-spacer{flex:1;min-width:12px}.table-resize-popup{z-index:11;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:14px;display:none;position:fixed;box-shadow:0 4px 16px #0000001a}.table-resize-grid{grid-template-columns:repeat(10,18px);gap:3px;margin-bottom:12px;display:grid}.table-resize-cell{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:2px;width:18px;height:18px}.table-resize-cell.hover{background:#909090;border-color:#707070}.table-resize-inputs{color:#555;border-top:1px solid #eee;justify-content:center;align-items:center;gap:6px;padding-top:10px;font:13px/1 system-ui,-apple-system,sans-serif;display:flex}.table-resize-inputs input{text-align:center;width:36px;font:inherit;border:1px solid #d0d0d0;border-radius:4px;padding:4px 6px}
