:root{--paper:#f8f5ee;--ink:#1f2933;--muted:#626d77;--line:#ddd8cf;--accent:#bc472e;--soft:#eee8dd;--surface:#fffdf9}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body,html{background:var(--paper)}body{--serif:ui-serif,"Songti SC",STSong,SimSun,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;margin:0;color:var(--ink);font-family:var(--sans)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.site-shell{width:min(100% - 40px,940px);margin:auto}.admin-header,.site-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-family:var(--serif);font-size:1.65rem;font-weight:700;letter-spacing:-.05em}.brand span{color:var(--accent)}.site-header nav{display:flex;gap:26px;color:var(--muted);font-size:.92rem}.site-header nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.site-header nav a:after{content:"";position:absolute;right:0;bottom:2px;left:0;height:2px;border-radius:99px;background:var(--accent);transform:scaleX(0);transform-origin:center;transition:transform .16s ease}.site-header nav a.active,.site-header nav a:hover,.text-link:hover{color:var(--accent)}.site-header nav a.active:after{transform:scaleX(1)}.site-header nav a.site-avatar-button{display:grid;place-items:center;width:42px;min-width:42px;height:42px;min-height:42px;padding:0;border:1px solid #d2c8bb;border-radius:50%;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.site-header nav a.site-avatar-button:after{display:none}.site-header nav a.site-avatar-button:hover{border-color:var(--accent);box-shadow:0 0 0 3px rgba(188,71,46,.14)}.site-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,var(--ink),#4a535b);color:white;font:700 .78rem var(--serif);text-transform:uppercase}.hero{padding:108px 0 72px;max-width:710px}.eyebrow{margin:0 0 14px;color:var(--accent);letter-spacing:.16em;font-weight:700;font-size:.7rem}.article h1,.dashboard-head h1,.editor h1,.hero h1,.login-card h1,.not-found h1{font:700 clamp(2.4rem,6vw,4.5rem)/1.13 var(--serif);letter-spacing:-.055em;margin:0}.hero>p:last-child{color:var(--muted);margin:26px 0 0;font-size:1.06rem}.archive-header{padding:78px 0 48px}.archive-header h1{margin:0;font:700 clamp(2.4rem,6vw,4.2rem)/1.13 var(--serif);letter-spacing:-.055em}.archive-header>p:last-child{margin:17px 0 0;color:var(--muted)}.taxonomy-index{padding-bottom:46px}.taxonomy-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px;margin:0;padding:0;list-style:none}.taxonomy-index-grid a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:88px;padding:20px 21px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:0 8px 24px rgba(52,44,29,.04);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.taxonomy-index-grid a:hover{border-color:var(--accent);box-shadow:0 14px 34px rgba(52,44,29,.1);transform:translateY(-2px)}.taxonomy-index-grid strong{min-width:0;overflow-wrap:anywhere;font:700 1.08rem/1.35 var(--serif)}.taxonomy-index-grid span{flex:0 0 auto;color:var(--muted);font-size:.72rem}.post-list{display:grid;grid-gap:30px;gap:30px}.post-card{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 30px rgba(52,44,29,.06);transition:transform .18s ease,box-shadow .18s ease}.post-card-with-cover{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,32%)}.post-card:hover{transform:translateY(-3px);box-shadow:0 20px 46px rgba(52,44,29,.13)}.post-card-cover{display:block;aspect-ratio:16/9;background:var(--soft);border-bottom:1px solid var(--line)}.post-card-with-cover .post-card-cover{grid-column:2;grid-row:1;min-height:100%;aspect-ratio:auto;border-bottom:0;border-left:1px solid var(--line)}.post-card-cover img{display:block;width:100%;height:100%;object-fit:cover}.post-card-body{min-width:0;padding:26px 28px 28px}.post-card-with-cover .post-card-body{grid-column:1;grid-row:1}.post-card-meta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:9px}.post-card-meta .eyebrow{margin:0}.post-card-meta>a{display:inline-flex;align-items:center;min-height:40px;color:var(--muted);font-size:.75rem}.post-card-meta>a:hover{color:var(--accent)}.post-card-meta-labels{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.75rem}.post-card-meta-labels a{display:inline-flex;align-items:center;min-height:40px}.post-card-meta-labels a:hover{color:var(--accent)}.paid-post-badge{padding:4px 8px;border-radius:99px;background:#f6ddd6;color:#9d402c;font-size:.68rem;font-weight:700;white-space:nowrap}.post-card h2{margin:0;font:700 2rem/1.25 var(--serif);letter-spacing:-.035em}.post-card h2 a:hover{color:var(--accent)}.post-card-body>p:not(.eyebrow){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:640px;color:var(--muted);line-height:1.8;margin:13px 0 15px}.post-card-tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 15px;padding:0;list-style:none}.post-card-tags li{border:1px solid var(--line);border-radius:99px;background:var(--soft);color:#5b6570;font-size:.72rem}.post-card-tags a{display:inline-flex;align-items:center;min-height:32px;padding:2px 10px}.post-card-tags a:hover{color:var(--accent)}.pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;padding:34px 0 4px}.pagination a,.pagination>span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);font-size:.85rem}.pagination .current,.pagination a:hover{border-color:var(--accent);color:var(--accent)}.pagination .current{font-weight:700}.pagination .gap{border:0;background:transparent}.pagination .disabled{opacity:.45;pointer-events:none}.text-link{display:inline-flex;align-items:center;min-height:40px;color:var(--accent);font-size:.88rem;font-weight:700}footer{padding:46px 0;color:var(--muted);font-size:.82rem}.article{max-width:720px;padding:85px 0 96px;margin:auto}.article-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.article-meta .eyebrow{margin:0}.article-meta-actions{display:flex;align-items:center;gap:14px}.article-view-count{flex:0 0 auto;color:var(--muted);font-size:.76rem}.article-edit-link{flex:0 0 auto;color:var(--accent);font-size:.76rem;font-weight:700}.article-edit-link:hover{text-decoration:underline;text-underline-offset:3px}.article h1{font-size:clamp(2.15rem,4.5vw,3.35rem)}.article-taxonomies{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:18px;color:var(--muted);font-size:.78rem}.article-taxonomies a{display:inline-flex;align-items:center;min-height:40px}.article-taxonomies a:hover{color:var(--accent)}.article-taxonomies .article-category{color:var(--accent);font-weight:700}.article-lead{margin:25px 0 52px;color:var(--muted);font:1.18rem/1.8 var(--serif)}.markdown{font:1.08rem/1.95 var(--serif)}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:2em 0 .7em;font-family:var(--serif);line-height:1.25}.markdown h1,.markdown h2{font-size:1.75rem}.markdown h3{font-size:1.4rem}.markdown h4{font-size:1.16rem}.markdown blockquote,.markdown ol,.markdown p,.markdown ul{margin:0 0 1.3em}.markdown a{color:var(--accent);text-decoration:underline}.markdown img{max-width:100%;height:auto}.markdown blockquote{border-left:3px solid var(--accent);padding-left:18px;color:var(--muted)}.markdown pre{overflow-x:auto;padding:20px;background:#292b2c;color:#f5f2eb;border-radius:5px;font:.85rem/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.markdown :not(pre)>code{background:var(--soft);padding:.12em .35em;border-radius:3px;font-size:.86em}.paid-content-gate{margin:2.5em 0;padding:30px;border:1px solid #d7c9b6;border-radius:10px;background:linear-gradient(135deg,rgba(238,232,221,.75),rgba(255,253,249,.9));font:.9rem/1.7 var(--sans);text-align:center}.paid-content-gate .eyebrow{margin-bottom:8px}.paid-content-gate h2{margin:0;font:700 1.45rem/1.35 var(--serif)}.paid-content-gate>p:not(.eyebrow){margin:10px auto 20px;color:var(--muted)}.paid-content-gate .button{margin:0 auto}.payment-order{width:min(100%,410px);margin:0 auto;overflow:hidden;border:1px solid rgba(0,160,234,.3);border-radius:12px;background:#1677ff;box-shadow:0 18px 42px rgba(22,119,255,.2);text-align:center}.payment-order-brand{display:flex;align-items:center;justify-content:center;gap:11px;padding:17px 24px;background:white;color:#252525;font-size:1.4rem;font-weight:700;letter-spacing:.02em}.payment-order-brand .alipay-icon{width:38px;height:38px}.payment-order-body{padding:25px 28px 27px}.payment-order-title{display:block;color:white;font-size:1.4rem;line-height:1.4}.payment-qr-card{width:min(100%,276px);margin:20px auto 16px;padding:18px 18px 15px;background:white;box-shadow:0 10px 26px rgba(6,55,121,.16)}.payment-qr-code{position:relative}.payment-qr-code>img{display:block;width:100%;height:auto}.payment-qr-logo{position:absolute;top:50%;left:50%;display:grid;width:48px;height:48px;padding:4px;border-radius:9px;background:white;box-shadow:0 0 0 2px white;transform:translate(-50%,-50%)}.payment-qr-logo .alipay-icon{width:100%;height:100%}.payment-qr-card>strong{display:block;margin-top:8px;color:#252525;font-size:1rem;line-height:1.5}.payment-qr-card>span:last-child{display:block;margin-top:2px;color:#1677ff;font-size:.82rem;font-weight:700}.payment-order .payment-order-hint{margin:0 0 14px;color:rgba(255,255,255,.82);font-size:.75rem}.alipay-open-link{display:none;align-items:center;gap:8px;min-height:42px;padding:0 13px 0 10px;border:1px solid rgba(255,255,255,.7);border-radius:6px;background:white;color:#1677ff;font-size:.78rem;font-weight:700;box-shadow:0 5px 14px rgba(5,49,110,.16);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease}.alipay-open-link:hover{border-color:white;background:#f7fbff;box-shadow:0 8px 20px rgba(5,49,110,.24);transform:translateY(-1px)}.alipay-open-link:focus-visible{outline-color:white}.alipay-icon{flex:0 0 auto;width:24px;height:24px}.alipay-open-arrow{margin-left:2px;font-size:1rem;line-height:1;transition:transform .16s ease}.alipay-open-link:hover .alipay-open-arrow{transform:translateX(2px)}.payment-message{margin:15px 0 0!important;color:var(--accent)!important;font-size:.8rem}.article-end{display:grid;grid-gap:28px;gap:28px;margin-top:72px;padding:34px 0 0;border-top:1px solid var(--line)}.article-end-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.article-end-tags a{display:inline-flex;align-items:center;min-height:40px;padding:0 11px;border:1px solid var(--line);border-radius:99px;background:var(--soft);color:var(--muted);font-size:.76rem}.article-end-tags a:hover{border-color:var(--accent);color:var(--accent)}.article-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.article-navigation>a{display:grid;align-content:center;grid-gap:7px;gap:7px;min-height:92px;padding:17px 19px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.article-navigation>a:last-of-type{text-align:right}.article-navigation>a:hover{border-color:var(--accent)}.article-navigation span{color:var(--accent);font-size:.7rem;font-weight:700;letter-spacing:.08em}.article-navigation strong{overflow:hidden;color:var(--ink);font:700 1rem/1.45 var(--serif);text-overflow:ellipsis;white-space:nowrap}.article-back-link{justify-self:center;display:inline-flex;align-items:center;min-height:40px;color:var(--accent);font-size:.84rem;font-weight:700}.site-footer{border-top:1px solid var(--line)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border:1px solid transparent;border-radius:4px;font-size:.88rem;font-weight:700;transition:.16s ease}.button-primary{background:var(--ink);color:white}.button-primary:hover{background:var(--accent)}.button-quiet{background:transparent;border-color:var(--line);color:var(--muted)}.button-danger{color:#9c3525;border-color:#e1bbb2;background:transparent}.button:disabled{cursor:wait;opacity:.65}.form-error{margin:0;color:#b42f21;font-size:.86rem}.empty{color:var(--muted);padding:36px 0}.not-found{min-height:100vh;display:grid;place-content:center;text-align:center;grid-gap:22px;gap:22px}.not-found h1{font-size:clamp(2.4rem,7vw,5rem);max-width:650px}.site-header-actions{display:flex;align-items:center;gap:24px;min-width:0;margin-left:auto}.site-header-actions nav{margin-left:0}.search-form{position:relative;display:flex;align-items:center;min-width:0}.search-icon{position:absolute;left:13px;z-index:2;width:13px;height:13px;pointer-events:none;border:1.7px solid #777f86;border-radius:50%}.search-icon:after{content:"";position:absolute;right:-5px;bottom:-3px;width:6px;height:1.7px;border-radius:99px;background:#777f86;transform:rotate(45deg);transform-origin:left center}.search-form input{min-width:0;height:40px;padding:0 12px 0 37px;border:1px solid #cec7bc;outline:none;background:var(--surface);color:var(--ink)}.search-form input::placeholder{color:#8b918f}.search-form input:focus{position:relative;z-index:1;border-color:var(--accent);box-shadow:0 0 0 3px rgba(188,71,46,.14)}.search-form button{flex:0 0 auto;height:40px;padding:0 14px;border:1px solid var(--ink);background:var(--ink);color:white;font-size:.76rem;font-weight:700}.search-form button:hover{border-color:var(--accent);background:var(--accent)}.site-search-form{width:228px;height:40px;flex:0 1 228px;overflow:hidden;border:1px solid #cec7bc;border-radius:99px;background:var(--surface);box-shadow:0 3px 12px rgba(52,44,29,.04);transition:border-color .16s ease,box-shadow .16s ease}.site-search-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(188,71,46,.12)}.site-search-form input,.site-search-form input:focus{width:100%;height:38px;border:0;border-radius:99px 0 0 99px;background:transparent;box-shadow:none;font-size:.8rem}.site-search-form button{height:32px;margin-right:3px;padding:0 12px;border:0;border-radius:99px}.search-header strong{color:var(--ink)}.search-empty{margin:0;padding:42px 28px;border:1px dashed #cec7bc;border-radius:9px;background:rgba(255,253,249,.42);color:var(--muted);font-size:.88rem;line-height:1.7;text-align:center}@media (max-width:860px){.site-header{gap:24px}.site-header-actions{gap:18px}.site-header nav{gap:18px;font-size:.86rem}.site-search-form{width:190px;flex-basis:190px}}@media (max-width:720px){.site-shell{width:min(100% - 32px,940px)}.hero{padding:58px 0 42px}.hero h1{font-size:2.45rem}.article{padding-top:52px}.article-end{margin-top:56px}.article-navigation{grid-template-columns:1fr}.article-navigation-empty{display:none}.article-navigation>a:last-of-type{text-align:left}.post-list{gap:22px}.taxonomy-index-grid{grid-template-columns:1fr}.post-card-body{padding:20px 20px 22px}.post-card h2{font-size:1.55rem}.site-header{gap:20px}.site-header nav{min-width:0;max-width:68%;gap:18px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}}@media (max-width:720px){.site-header nav::-webkit-scrollbar{display:none}}@media (max-width:720px){.site-header{flex-wrap:wrap;gap:14px;padding:14px 0}.site-header-actions{width:100%;gap:14px;margin-left:0}.site-header-actions nav{flex:1 1 auto;max-width:none;margin-left:0}.site-search-form{width:190px;flex:0 1 190px}.site-search-form input{width:100%}}@media (max-width:420px){.site-header-actions{gap:12px}.site-search-form{width:176px;flex:0 0 176px}.site-search-form button{padding:0 8px}.site-header nav{gap:16px}}@media (max-width:560px){.post-card-with-cover{grid-template-columns:1fr}.post-card-with-cover .post-card-cover{grid-column:1;grid-row:1;min-height:0;aspect-ratio:16/9;border-bottom:1px solid var(--line);border-left:0}.post-card-with-cover .post-card-body{grid-column:1;grid-row:2}.paid-content-gate{padding:24px 18px}.payment-order-body{padding:23px 18px 25px}.payment-order-title{font-size:1.25rem}}@media (hover:none) and (pointer:coarse){.alipay-open-link{display:inline-flex;justify-content:center}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}