@import "https://static.leonscave.com/fonts/SourceHanSerifCNforDisplay/result.css";body{font-family:fzpingxianyasong-r-gbk,droid serif,Georgia,times new roman,pingfang sc,hiragino sans gb,source han sans cn,wenquanyi micro hei,microsoft yahei,serif;font-size:100%}.hero-name{font-family:source han serif cn for display,songti sc,stsong,serif;font-weight:400;letter-spacing:-.04em}footer{background-image:none}[data-theme=dark] footer{background-image:none}h1,h2,h3,h4,h5,h6{font-family:fzpingxianyasong-r-gbk,helvetica neue,Helvetica,Arial,pingfang sc,hiragino sans gb,wenquanyi micro hei,microsoft yahei,sans-serif}pre,code{font-family:Menlo,Monaco,Consolas,lucida console,courier new,monospace;font-size:.92857em}.post-title{margin:.83em 0;font-size:1.5em}.post-content,.comment-content{line-height:1.6;word-wrap:break-word;font-size:1.0625em}@media(max-width:767px){body{font-size:100%}}pre code{padding:0}.post-body :not(pre)>code{overflow-wrap:anywhere;word-break:break-word}.highlight{position:relative;max-width:100%;overflow:hidden}.highlight pre{width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto}[data-theme=dark] .highlight pre{filter:invert(.9)hue-rotate(180deg)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .highlight pre{filter:invert(.9)hue-rotate(180deg)}}.copy-code-button{color:var(--text);background-color:rgba(255,255,255,.5);border:none;border-radius:6px;padding:0 5px 5px;font-size:1rem;position:absolute;z-index:1;right:0;top:0;margin:10px;transition:.1s;opacity:.5}.copy-code-button>svg{fill:currentColor}[data-theme=dark] .copy-code-button{background-color:rgba(0,0,0,.5)}.copy-code-button:hover,.copy-code-button:focus,pre:active~.copy-code-button,pre:focus~.copy-code-button,div.highlight:active>.copy-code-button,div.highlight:focus>.copy-code-button{cursor:pointer;opacity:1}.post-cover{width:100%;height:250px;margin-bottom:1rem;margin-top:1rem;object-fit:contain;object-position:center}figure{margin-inline-start:0;margin-inline-end:0}figure a{line-height:0!important;height:100%;display:inline-block;border-bottom:none!important}figure a img{border-radius:5px;bottom:0!important}#twikoo>.tk-comments{min-width:0;margin-top:3.5rem;color:var(--text);font-family:inherit}#twikoo>.tk-comments,#twikoo>.tk-comments *{box-sizing:border-box}#twikoo>.tk-comments .tk-submit,#twikoo>.tk-comments .tk-main,#twikoo>.tk-comments .tk-col{min-width:0}#twikoo>.tk-comments .tk-submit{margin-bottom:3.5rem}#twikoo>.tk-comments .tk-submit .tk-avatar{width:2.1rem;height:2.1rem}#twikoo>.tk-comments .tk-meta-input{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-bottom:.85rem}#twikoo>.tk-comments .tk-meta-input .el-input{width:100%}#twikoo>.tk-comments .el-input-group__prepend,#twikoo>.tk-comments .el-input__inner{height:2.25rem;color:var(--text);background:0 0;border:0;border-bottom:1px solid var(--border);border-radius:0;font-family:inherit;box-shadow:none;opacity:.58;transition:border-color 200ms ease,opacity 200ms ease}#twikoo>.tk-comments .el-input-group__prepend{padding:0 .55rem 0 0;color:var(--text-mute)}#twikoo>.tk-comments .el-input__inner{padding:0 .5rem}#twikoo>.tk-comments .el-input:hover .el-input__inner,#twikoo>.tk-comments .el-input:focus-within .el-input__inner,#twikoo>.tk-comments .el-input:hover .el-input-group__prepend,#twikoo>.tk-comments .el-input:focus-within .el-input-group__prepend{border-color:var(--text-mute);opacity:1}#twikoo>.tk-comments .el-input__inner::placeholder,#twikoo>.tk-comments .el-textarea__inner::placeholder{color:var(--text-mute);opacity:.55}#twikoo>.tk-comments .el-textarea__inner{min-height:7.5rem!important;padding:.8rem .9rem;color:var(--text);background:0 0;border:0;border-bottom:1px solid var(--border);border-radius:0;font-family:inherit;line-height:1.7;box-shadow:none;resize:vertical;opacity:.68;transition:border-color 200ms ease,opacity 200ms ease}#twikoo>.tk-comments .el-textarea__inner:hover,#twikoo>.tk-comments .el-textarea__inner:focus{border-color:var(--text-mute);opacity:1}#twikoo>.tk-comments .el-input__count{color:var(--text-mute);background:0 0;font-size:.72rem}#twikoo>.tk-comments .tk-row.actions{align-items:center;gap:.5rem;margin-top:.75rem}#twikoo>.tk-comments .tk-submit-action-icon{color:var(--text-mute);opacity:.5;transition:opacity 150ms ease}#twikoo>.tk-comments .tk-submit-action-icon:hover{opacity:1}#twikoo>.tk-comments .el-button{min-height:auto;padding:.25rem .15rem;color:var(--text-mute);background:0 0;border:0;border-radius:0;font-family:inherit;opacity:.6;transition:color 200ms ease,opacity 200ms ease}#twikoo>.tk-comments .el-button:hover,#twikoo>.tk-comments .el-button:focus{color:var(--text);background:0 0;opacity:1}#twikoo>.tk-comments .tk-send,#twikoo>.tk-comments .tk-send:hover,#twikoo>.tk-comments .tk-send:focus{color:var(--text);background:0 0}#twikoo>.tk-comments .tk-send.is-disabled{color:var(--text-mute);background:0 0;opacity:.28}#twikoo>.tk-comments .tk-comments-title{align-items:baseline;margin:0;padding:2rem 0 1.25rem;border-top:0;color:var(--text);font-size:1rem;font-weight:600}#twikoo>.tk-comments .tk-comments-count{font-size:inherit}#twikoo>.tk-comments .tk-comments-sort{display:none}#twikoo>.tk-comments .tk-comments-sort+.tk-icon,#twikoo>.tk-comments .tk-comments-sort+.tk-icon+.tk-icon{display:none}#twikoo>.tk-comments .tk-comments-actions .tk-icon{color:var(--text-mute);opacity:.55;transition:color 200ms ease,opacity 200ms ease}#twikoo>.tk-comments .tk-comments-actions .tk-icon:hover{color:var(--text);opacity:1}#twikoo>.tk-comments .tk-comment{margin:0;padding:1.65rem 0;border-top:0}#twikoo>.tk-comments .tk-comment .tk-avatar{width:2.05rem;height:2.05rem}#twikoo>.tk-comments .tk-avatar-img{border-radius:2px}#twikoo>.tk-comments .tk-nick{color:var(--text);font-size:.92rem;font-weight:600}#twikoo>.tk-comments .tk-time{color:var(--text-mute);font-size:.72rem;opacity:.58}#twikoo>.tk-comments .tk-actions button{padding:0;color:var(--text-mute);background:0 0;border:0;font:inherit;opacity:.7;transition:color 200ms ease,opacity 200ms ease}#twikoo>.tk-comments .tk-actions button:hover,#twikoo>.tk-comments .tk-actions button:focus{color:var(--text);opacity:1}#twikoo>.tk-comments .tk-content{max-width:100%;color:var(--text);font-size:.95rem;line-height:1.75;overflow-wrap:anywhere;word-break:break-word}#twikoo>.tk-comments .tk-content img{max-width:100%}#twikoo>.tk-comments .tk-action-link{color:var(--text-mute);opacity:0;transition:opacity 150ms ease}#twikoo>.tk-comments .tk-comment:hover>.tk-main>.tk-row .tk-action-link,#twikoo>.tk-comments .tk-comment:focus-within>.tk-main>.tk-row .tk-action-link{opacity:.55}#twikoo>.tk-comments .tk-action-icon{color:var(--text-mute)!important}#twikoo>.tk-comments .tk-action-icon svg{fill:currentColor!important}#twikoo>.tk-comments .tk-action .tk-icon{color:var(--text-mute)!important;opacity:.55}#twikoo>.tk-comments .tk-action .tk-icon svg{fill:currentColor!important}#twikoo>.tk-comments .tk-action .tk-icon:hover,#twikoo>.tk-comments .tk-action .tk-icon.__active{color:var(--text)!important;opacity:1}#twikoo>.tk-comments .tk-action-link:hover{color:var(--text);opacity:1}#twikoo>.tk-comments .tk-tag-green{color:var(--text-mute);background:0 0;border:1px solid var(--border)}#twikoo>.tk-comments .tk-content a{border-bottom:1px solid color-mix(in srgb,var(--text-mute) 30%,transparent);text-decoration:none;transition:border-color 200ms ease}#twikoo>.tk-comments .tk-content a:hover{border-color:var(--text)}#twikoo>.tk-comments .tk-replies{margin-top:1rem;padding-left:1rem;border-left:1px solid var(--border)}#twikoo>.tk-footer{display:none}@media(max-width:640px){#twikoo>.tk-comments{margin-top:2.75rem}#twikoo>.tk-comments .tk-meta-input{display:block;margin-bottom:.75rem}#twikoo>.tk-comments .tk-meta-input .el-input{margin-bottom:.55rem}#twikoo>.tk-comments .tk-row{gap:.65rem}#twikoo>.tk-comments .tk-submit .tk-avatar{display:none}#twikoo>.tk-comments .tk-comment .tk-avatar{width:1.9rem;height:1.9rem}#twikoo>.tk-comments .tk-comment{padding:1.25rem 0}#twikoo>.tk-comments .tk-action-link{opacity:.45}}@media(prefers-reduced-motion:reduce){#twikoo>.tk-comments *{transition:none!important}}#twikoo>.tk-admin-container .tk-admin-actions,#twikoo>.tk-admin-container .tk-admin-actions button,#twikoo>.tk-admin-container .tk-admin-actions a,#twikoo>.tk-admin-container .tk-admin-actions .tk-icon{color:#9ca3af!important;opacity:1!important;visibility:visible}#twikoo>.tk-admin-container .tk-admin-actions button:hover,#twikoo>.tk-admin-container .tk-admin-actions a:hover,#twikoo>.tk-admin-container .tk-admin-actions .tk-icon:hover{color:#f3f4f6!important}#twikoo>.tk-admin-container .tk-admin-actions svg{fill:currentColor!important}.blog-footer-extra{margin-top:1.5rem;color:var(--text-mute);font-size:.8rem;text-align:center}.footer-nav,.footer-badges{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.footer-nav{gap:.35rem}.footer-badges{gap:.5rem;margin-top:.65rem}.footer-badges a{display:inline-flex}.footer-badges img{display:block;width:auto;height:24px}.footer-tagline{margin:1rem 0 0;line-height:1.6}.page-section-header{margin:1rem 0 3.5rem}.page-section-header .section-title{margin:0;font-size:1.75rem;line-height:1.3}.section-intro{max-width:38rem;margin:.75rem 0 0;color:var(--text-mute);font-size:.88rem;line-height:1.7}.page-section-header .stars{margin:2rem 0 0}.site-timeline{max-width:42rem}.timeline__row{display:grid;grid-template-columns:7rem minmax(0,1fr);min-height:2.75rem}.timeline__time{padding:.4rem 1.25rem .4rem 0;color:var(--text-mute);font-size:.78rem;line-height:1.6;text-align:right}.timeline__content{position:relative;padding:.4rem 0 1rem 1.25rem;border-left:1px solid var(--border)}.timeline__content::before{position:absolute;top:.78rem;left:-.25rem;width:.42rem;height:.42rem;background:var(--text-mute);border-radius:50%;content:""}.timeline__description{color:var(--text);font-size:.9rem;line-height:1.6}.timeline__description a{text-decoration:underline;text-underline-offset:.2em}@media(max-width:640px){.timeline__row{grid-template-columns:5.5rem minmax(0,1fr)}.timeline__time{padding-right:.9rem;font-size:.7rem}.timeline__content{padding-left:1rem}}#library .library-category{margin-top:3.5rem}#library .category-title{display:flex;align-items:baseline;gap:.65rem;margin:0 0 1.5rem;color:var(--text);font-family:var(--font-mono,monospace);font-size:1rem;font-weight:500;letter-spacing:.08em}#library .category-count{color:var(--text-mute);font-size:.72rem;font-weight:400;letter-spacing:0}#library .category-count::before{content:"["}#library .category-count::after{content:"]"}#library .book-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 1.2rem}#library .book,#library .book-link,#library .book-cover,#library .book-meta,#library .book-title,#library .book-details{min-width:0}#library .book-link{display:block;color:inherit;text-decoration:none}#library .book-cover{position:relative;display:block;min-height:6rem;padding:.42rem;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,8%);border-radius:1px;box-shadow:0 4px 14px rgba(0,0,0,.12);transform:rotate(-1.4deg);transform-origin:center bottom;transition:transform 180ms ease,box-shadow 180ms ease}#library .book:nth-child(even) .book-cover{transform:rotate(1.6deg)}#library .book:nth-child(3n) .book-cover{transform:rotate(-.6deg)}#library .book-cover img{position:relative;z-index:1;display:block;width:100%;height:auto;background:#f2f2ef}#library .book-cover-fallback{position:absolute;inset:.42rem;display:flex;align-items:center;justify-content:center;color:#8a8a86;background:#f2f2ef;font-size:.68rem}#library .book-meta{display:block;padding:.85rem .15rem 0}#library .book-title{display:-webkit-box;overflow:hidden;color:var(--text);font-size:.92rem;font-weight:500;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}#library .book-details{display:flex;flex-wrap:wrap;gap:.2rem .55rem;margin-top:.4rem;color:var(--text-mute);font-family:var(--font-mono,monospace);font-size:.68rem;line-height:1.5}#library .book-details>span+span::before{content:"/";margin-right:.55rem;opacity:.45}#library .book-link:hover .book-cover,#library .book-link:focus-visible .book-cover{box-shadow:0 10px 24px rgba(0,0,0,.18);transform:rotate(0)translateY(-.3rem)}#library .book-link:focus-visible{border-radius:2px;outline:2px solid var(--text);outline-offset:.4rem}[data-theme=dark] #library .book-cover{background:#fff;border-color:rgba(255,255,255,.2);box-shadow:0 4px 18px rgba(0,0,0,.42)}.widget{margin-top:2.5rem}.widget-title{margin-bottom:1rem;color:var(--text-mute);font-size:1rem}.widget-list{display:flex;flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none}.visitor-chip{padding:.2rem .55rem;border:1px solid var(--border);border-radius:2px;color:var(--text-mute);font-size:.78rem}#recent-comments{display:block}.comment-item{padding:.65rem 0;border-bottom:1px solid var(--border);line-height:1.65}.comment-item a{color:var(--text-mute);font-size:.82rem}.widget-empty{color:var(--text-mute)}.more-comments{display:none;margin:1.25rem auto 0;padding:.35rem .75rem;color:var(--text);background:0 0;border:1px solid var(--border);border-radius:2px;cursor:pointer}.photo-detail-image{margin:2rem 0 1rem}.photo-detail-image img{display:block;width:100%;height:auto;border-radius:2px}.photo-detail-back{margin-top:2rem}.book-body{line-height:2}.book-body hr{clear:both}.book-body .book-footer{color:var(--text-mute);font-size:1rem}#book-page .book-page-header{position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem}#book-page .book-page-header p{margin:0}#book-page .book-page-header .book-cover{overflow:hidden;border:4px solid #fff;border-radius:2px;box-shadow:0 2px 12px rgba(0,0,0,.15)}#book-page .book-page-header .book-cover img{display:block;width:10rem}#book-page .book-page-header .book-title{filter:url(#x)}#book-page .book-page-header .title-image-container{position:absolute;top:2rem;right:calc(50% - 10rem/2 - 5rem);width:5rem;height:5rem;padding:1rem;background-color:var(--code-bg);border-radius:50%;box-shadow:0 0 .2rem rgba(0,0,0,.2)}#book-page .book-page-header .title-image-container .title-image{width:100%}#post-content .book-cover{display:block;max-width:50%;margin:0 auto;overflow:hidden;border-radius:2px}#post-content .book-cover img{display:block;width:100%}@media screen and (min-width:768px){#library .book-group{grid-template-columns:repeat(5,minmax(0,1fr));gap:2.75rem 1.4rem}#book-page .book-page-header .book-cover img{width:15rem}#book-page .book-page-header .title-image-container{right:calc(50% - 15rem/2 - 5rem)}#post-content .book-cover{display:inline-block;float:left;width:12rem;margin:0 2rem 1.2rem 0}}@media(prefers-reduced-motion:reduce){#library .book-cover,#library .book:nth-child(even) .book-cover,#library .book:nth-child(3n) .book-cover,#library .book-link:hover .book-cover,#library .book-link:focus-visible .book-cover{transition:none;transform:none}}