@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}:root{--bg:#fafaf7;--text:#1a1a1a;--text-mute:#6b7280;--link:var(--text);--link-hover:var(--text);--border:#e5e5e5;--code-bg:#f4f4f4}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f0f0f;--text:#e5e5e5;--text-mute:#9ca3af;--border:#2a2a2a;--code-bg:#1a1a1a}}:root[data-theme=dark]{--bg:#0f0f0f;--text:#e5e5e5;--text-mute:#9ca3af;--border:#2a2a2a;--code-bg:#1a1a1a}html:not(.theme-transition)::view-transition-old(root),html:not(.theme-transition)::view-transition-new(root){mix-blend-mode:normal;animation:none}html:not(.theme-transition)::view-transition-old(root){opacity:0}html.theme-transition::view-transition-old(root),html.theme-transition::view-transition-new(root){mix-blend-mode:normal;animation:none}html.theme-transition::view-transition-old(root){z-index:1}html.theme-transition::view-transition-new(root),:root[data-theme=dark].theme-transition::view-transition-old(root){z-index:9999}:root[data-theme=dark].theme-transition::view-transition-new(root){z-index:1}html{scrollbar-color:#e5e5e5 var(--bg);font-size:16px}body{color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:JetBrains Mono,IBM Plex Mono,iA Writer Quattro,SF Mono,Menlo,Consolas,Courier New,monospace,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Microsoft Yahei,sans-serif;font-size:1rem;line-height:1.6}::selection{background:#8884}a{color:var(--link);-webkit-tap-highlight-color:transparent;text-decoration:none;transition:color .2s,text-decoration-color .2s}a:focus-visible{color:var(--link-hover);text-underline-offset:3px;text-decoration:underline}a:active{text-underline-offset:3px;opacity:.78;text-decoration:underline}a:focus-visible,button:focus-visible{outline-offset:4px;outline:2px solid}button{-webkit-tap-highlight-color:transparent}.skip-link{z-index:1000;color:var(--text);background:var(--bg);border:1px solid var(--text);padding:.4rem .7rem;position:fixed;top:-4rem;left:1rem}.skip-link:focus-visible{top:1rem}#main-content:focus{outline:none}@media (hover:hover) and (pointer:fine){a:hover{color:var(--link-hover);text-underline-offset:3px;text-decoration:underline}}h1,h2,h3,h4,h5,h6{color:var(--text);margin:1.6em 0 .6em;font-weight:700;line-height:1.3}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin:0 0 .8em}blockquote{border-left:2px solid var(--border);color:var(--text-mute);margin:1em 0;padding:0 1em;font-style:italic}hr{border:0;border-top:1px solid var(--border);margin:2em 0}.muted{color:var(--text-mute);font-size:.9em}code{background:var(--code-bg);border-radius:3px;padding:.12em .35em;font-family:JetBrains Mono,IBM Plex Mono,Menlo,Consolas,monospace;font-size:.92em}pre{background:var(--code-bg);border-radius:4px;padding:1em;font-family:JetBrains Mono,IBM Plex Mono,Menlo,Consolas,monospace;font-size:.92em;line-height:1.55;overflow-x:auto}pre code{background:0 0;padding:0}hr.stars{text-align:center;border:0;margin:2.5em 0;overflow:visible}hr.stars:after{content:"* * *";color:var(--text-mute);letter-spacing:.5em;font-size:.9em}.page-decoration{pointer-events:none;z-index:-1;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle,#0000,#000);mask-image:radial-gradient(circle,#0000,#000)}.page-decoration canvas{width:100%;height:100%;display:block}.page-main,.home-main{z-index:1;position:relative}.hero-row{flex-wrap:wrap;align-items:center;gap:2rem;max-width:1400px;margin:0 auto;padding:1.5rem 2rem;display:flex}.hero-row .brand{color:var(--text);align-items:center;display:inline-flex}.hero-row .brand-logo{opacity:.85;width:36px;height:36px;transition:opacity .2s}.hero-row .logo-path{stroke-dasharray:230;stroke-dashoffset:230px;animation:1.1s cubic-bezier(.22,.61,.36,1) forwards logo-draw}@media (hover:hover) and (pointer:fine){.hero-row .brand:hover .brand-logo{opacity:1}}@keyframes logo-draw{to{stroke-dashoffset:0}}.hero-row .hero-nav{gap:1.5rem;margin-left:auto;display:flex}.hero-row .hero-nav a{color:var(--text);opacity:.6;text-decoration:none;transition:opacity .15s}.hero-row .hero-nav a:focus-visible,.hero-row .hero-nav a.current{opacity:1;text-decoration:none}.hero-row .hero-social{align-items:center;gap:.7rem;margin-left:1rem;display:flex}.hero-row .hero-social a,.hero-row .hero-social .theme-toggle{color:var(--text-mute);cursor:pointer;background:0 0;border:0;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:0;transition:color .15s;display:inline-flex}.hero-row .hero-social .social-disabled{color:var(--text-mute);cursor:default;opacity:.65;display:inline-flex}.hero-row .hero-social a:focus-visible,.hero-row .hero-social .theme-toggle:focus-visible{color:var(--text);text-decoration:none}@media (hover:hover) and (pointer:fine){.hero-row .hero-nav a:hover,.hero-row .hero-social a:hover,.hero-row .hero-social .theme-toggle:hover{color:var(--text);opacity:1;text-decoration:none}}.hero-row .hero-social a[title=Bluesky]{flex:0 0 24px;width:24px;height:24px;margin:-4px}.hero-row .hero-social svg{fill:currentColor;width:16px;height:16px}.hero-row .theme-toggle svg{stroke:currentColor}:root[data-theme=dark] .theme-toggle .icon-sun,:root:not([data-theme=dark]) .theme-toggle .icon-moon{display:none}.page-main{max-width:720px;margin:0 auto;padding:0 1.5rem 4rem}.home-main{z-index:1;max-width:720px;margin:0 auto;padding:0 1.5rem 1.5rem;position:relative}@keyframes slide-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.home-main>:is(.hero-name,.hero-tagline,.hero-bio,.hero-paragraph){opacity:0;animation:.45s ease-out both slide-enter}.home-main>:is(.hero-tagline,.hero-bio,.hero-paragraph){animation-delay:60ms}}.home-section{margin:1.5em 0}.home-section:last-of-type{margin-bottom:0}.home-section h2{color:var(--text-mute);margin:0 0 1em;font-size:1.1rem;font-weight:600}.link-list{margin:0;padding:0;list-style:none}.link-list li{padding:.2em 0}.find-me-list li:before,.copyright{padding-top:1.5em}.copyright{text-align:center;border-top:1px solid var(--border);margin-top:3em}.hero-name{letter-spacing:-.02em;margin:1.5rem 0 .3em;font-size:5rem;font-weight:700;line-height:1.05}.hero-tagline{color:var(--text-mute);margin:0 0 1em;font-size:1.1rem}.hero-bio{max-width:600px;margin:0 0 .3em;line-height:1.55}.hero-bio-label{min-width:8em;color:var(--text-mute);display:inline-block}.hero-paragraph{max-width:600px;margin:1em 0 .4em;line-height:1.65}.home-list-title{color:var(--text-mute);margin:3rem 0 0;font-size:1rem;font-weight:600}.section-title,.post-title{font-size:1.75rem}.all-posts-link{margin-top:2rem}.archive-year{color:var(--text-mute);opacity:.15;letter-spacing:-.03em;pointer-events:none;margin:.65em 0 -.45em;font-size:10rem;font-weight:700;line-height:1}.archive-list{max-width:700px;margin:0;padding:0;list-style:none}.archive-list li{flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.3em 0;display:flex}.archive-list li.has-section-tag{position:relative}.archive-link{min-width:0;color:var(--text);flex-wrap:wrap;flex:1;align-items:center;gap:1.5rem;display:flex}.archive-link:active,.archive-link:focus-visible{opacity:1;text-decoration:none}.archive-title{min-width:0;color:var(--text);flex:1;transition:transform .12s,opacity .12s}@media (hover:hover) and (pointer:fine){.archive-link:hover{color:var(--text);text-decoration:none}.archive-link:hover .archive-title{color:var(--link-hover);text-underline-offset:3px;text-decoration:underline}}.archive-link:active .archive-title{text-underline-offset:3px;opacity:.7;text-decoration:underline;transform:translateY(1px)}.archive-link:focus-visible .archive-title{color:var(--link-hover);text-underline-offset:3px;text-decoration:underline}.archive-meta{color:var(--text-mute);flex-shrink:0;font-size:.85em}.section-tag{color:var(--text-mute);border:1px solid var(--border);white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:.65em;line-height:1.4;position:absolute;top:50%;right:calc(100% + .6rem);transform:translateY(-50%)}.post{max-width:680px;margin:0 auto}.post-toc{display:none}.post-title{margin:1em 0 .25em;font-size:1.75rem;font-weight:700;line-height:1.3}.post-meta{color:var(--text-mute);margin:0 0 1em;font-size:.9em}.post-body{font-size:1rem;line-height:1.75}.post-body h2,.post-body h3,.post-body h4{scroll-margin-top:1.5rem}.post-body ul,.post-body ol{padding-left:1.6em}.post-body li{margin:.35em 0}.post-body li::marker{color:var(--text-mute)}.post-body a{text-underline-offset:3px;text-decoration:underline}.post-body img{border-radius:4px;max-width:100%;height:auto;margin:1.5em auto;display:block}.post-body table{border-collapse:collapse;width:max-content;max-width:100%;margin:1.5em 0;display:block;overflow-x:auto}.post-body th,.post-body td{border:1px solid var(--border);text-align:left;padding:.5em .75em}.post-body th{background:var(--code-bg)}.post-body blockquote>:last-child{margin-bottom:0}.post-body .footnotes{color:var(--text-mute);margin-top:2.5em;font-size:.9em}.post-body .footnotes hr{margin-bottom:1.5em}.post-body .footnote-backref{margin-left:.25em}.post-body figure{margin:1.5em 0}.post-body figcaption{color:var(--text-mute);text-align:center;margin-top:.5em;font-size:.85em}.photo-strip{box-sizing:border-box;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;gap:1rem;width:100vw;margin:2em 0 2em calc(50% - 50vw);padding-inline:max(1rem,50vw - 340px);display:flex;overflow-x:auto}.photo-strip:focus-visible{outline:none}.post-body .photo-strip>figure{flex:0 0 20rem;width:20rem;margin:0}.post-body .photo-strip>figure>a{height:auto;text-decoration:none;display:block}.post-body .photo-strip img{object-fit:cover;width:20rem;max-width:none;height:20rem;margin:0}.post-body .photo-strip figcaption{text-align:left;margin-top:.5rem}.post-body .photo-strip figcaption>*{margin:0}.post-tag{color:inherit}@media (hover:hover) and (pointer:fine){.post-tag:hover{color:var(--text)}}@media (width>=1024px){.post-toc{z-index:20;width:200px;color:var(--text);flex-direction:column;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.8rem;display:flex;position:fixed;top:90px;bottom:0;left:20px;overflow:hidden}.post-toc-icon{color:#8887;flex:none;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin:0 .5rem;transition:color .4s cubic-bezier(.4,0,.2,1);display:flex}.post-toc-icon svg{fill:currentColor;width:1.35rem;height:1.35rem}.post-toc-list{opacity:0;pointer-events:none;border-radius:.25rem;min-height:0;margin-top:.35rem;padding-bottom:1.25rem;transition:opacity .7s cubic-bezier(.4,0,.2,1);overflow-y:auto}.page-main:focus-within .post-toc-icon{color:inherit}.page-main:focus-within .post-toc-list{opacity:.75;pointer-events:auto}@media (hover:hover) and (pointer:fine){.page-main:hover .post-toc-icon{color:inherit}.page-main:hover .post-toc-list{opacity:.75;pointer-events:auto}}.post-toc nav>ul{margin:0;padding:0;list-style:none}.post-toc li{margin:.5em 0;padding-left:.8rem}.post-toc li ul{padding-left:.5rem;list-style:none}.post-toc a{color:inherit;opacity:.75;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.post-toc a:focus-visible{color:var(--text);opacity:1}@media (hover:hover) and (pointer:fine){.post-toc a:hover{color:var(--text);opacity:1}}}@media (width>=1280px){.post-toc{width:300px}}.site-footer{max-width:720px;color:var(--text-mute);text-align:center;border-top:1px solid var(--border);margin:4rem auto 0;padding:2rem 1.5rem 4.5rem;font-size:.85em}.site-footer a{color:var(--text-mute)}@media (hover:hover) and (pointer:fine){.site-footer a:hover{color:var(--text)}}.to-top{width:2.5rem;height:2.5rem;color:var(--text);cursor:pointer;opacity:0;pointer-events:none;z-index:100;background:#8883;border:0;border-radius:50%;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;bottom:1rem;right:1rem}.to-top.visible{opacity:.3;pointer-events:auto}@media (hover:hover) and (pointer:fine){.to-top.visible:hover{opacity:1}}@media (width<=720px){.hero-row{flex-wrap:nowrap;gap:.5rem;padding:1rem}.hero-row .hero-nav{gap:.5rem;margin-left:auto;font-size:.9em}.hero-row .hero-social{gap:0;margin-left:0}.hero-row .hero-social a[title=Bluesky]{margin:0}.hero-row .hero-social svg{width:14px;height:14px}.home-main,.page-main{padding:0 1rem 1.5rem}.site-footer{margin-top:1.5rem;padding:1.5rem 1.5rem 3rem}h1{font-size:1.6rem}.hero-name{font-size:3rem}.post-title{font-size:1.4rem}.archive-list li{flex-wrap:wrap}.archive-list li.has-section-tag{gap:.3rem .65rem}.section-tag{flex-shrink:0;position:static;transform:none}.archive-year{font-size:6rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.page-decoration{display:none}}@media print{:root{--bg:#fff;--text:#000;--text-mute:#555;--border:#ccc;--code-bg:#f5f5f5}body{font-size:11pt;line-height:1.55}.page-decoration,.hero-row,.site-footer,.post-tag,.section-tag,.post-toc,.to-top{display:none!important}.page-main,.home-main,.post{max-width:100%;padding:0}.photo-strip{flex-wrap:wrap;width:100%;margin:2em 0;padding:0;overflow:visible}.post-body .photo-strip>figure{flex:calc(50% - .5rem);width:calc(50% - .5rem)}.post-body .photo-strip img{aspect-ratio:auto;object-fit:contain;width:100%;height:auto}.post-body a{color:var(--text);text-decoration:underline}.post-body a[href^=http]:after{content:" (" attr(href) ")";color:var(--text-mute);font-size:.85em}code,pre{border:1px solid var(--border);background:var(--code-bg)!important}pre{page-break-inside:avoid}h1,h2,h3{page-break-after:avoid}}:root{--text-mute:#726d67}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--text-mute:#a8a29a}}:root[data-theme=dark]{--text-mute:#a8a29a}@font-face{font-family:Source Han Serif CN for Display;src:url(https://static.keiwake.com/fonts/SourceHanSerifCNforDisplay/b58270c76f29b9d8a66b5c2d3386efbb.woff2);font-weight:400;font-style:normal;font-display:swap;unicode-range:U+9192}@font-face{font-family:Source Han Serif CN for Display;src:url(https://static.keiwake.com/fonts/SourceHanSerifCNforDisplay/2bb20d48eccd7a8ee893a5ee7a8525ed.woff2);font-weight:400;font-style:normal;font-display:swap;unicode-range:U+77F3}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{letter-spacing:-.04em;font-family:Source Han Serif CN for Display,Songti SC,STSong,serif;font-weight:400}@keyframes home-hero-name-enter{0%{transform:translateY(8px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.home-main>.hero-name{opacity:1;animation-name:home-hero-name-enter}}.find-me-links{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.find-me-link{align-items:center;gap:.3em;display:inline-flex}.find-me-link svg{fill:currentColor;width:1.1em;height:1.1em}.find-me-link.is-disabled{color:var(--text-mute);cursor:default;opacity:.75}.find-me-email{margin-top:1.25rem}footer,[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{word-wrap:break-word;font-size:1.0625em;line-height:1.6}@media (width<=767px){body{font-size:100%}}pre code{padding:0}.post-body :not(pre)>code{overflow-wrap:anywhere;word-break:break-word}.highlight{max-width:100%;position:relative;overflow:hidden}.astro-code-themes{color:var(--shiki-light);background:var(--code-bg)}.astro-code-themes span{color:var(--shiki-light)}:root[data-theme=dark] .astro-code-themes,:root[data-theme=dark] .astro-code-themes span{color:var(--shiki-dark)}.numbered-code .astro-code code{counter-reset:code-line}.numbered-code .astro-code .line{counter-increment:code-line}.numbered-code .astro-code .line:before{content:counter(code-line);color:#7f7f7f;text-align:right;user-select:none;min-width:3ch;margin-right:.4em;padding-right:.4em;display:inline-block}:root[data-theme=dark] .numbered-code .astro-code .line:before{color:#6e7681}.highlight pre{box-sizing:border-box;scrollbar-gutter:stable;width:100%;max-width:100%;max-height:min(70vh,42rem);overflow:auto}.code-tools{z-index:2;align-items:center;gap:6px;display:flex;position:absolute;top:10px;right:10px}.copy-code-button{width:28px;height:28px;color:var(--text);opacity:0;pointer-events:none;background-color:#fff9;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;transition:opacity .2s;display:inline-flex}.copy-code-button>svg{fill:currentColor;display:block}[data-theme=dark] .copy-code-button{background-color:#00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .copy-code-button{background-color:#00000080}}.highlight:focus-within .copy-code-button{opacity:1;pointer-events:auto;cursor:pointer}@media (hover:hover) and (pointer:fine){.highlight:hover .copy-code-button{opacity:1;pointer-events:auto;cursor:pointer}}.code-lang{box-sizing:border-box;height:28px;color:var(--text-mute);pointer-events:none;user-select:none;background:#fff9;border-radius:6px;align-items:center;padding:0 8px;font-family:JetBrains Mono,IBM Plex Mono,Menlo,Consolas,monospace;font-size:.75rem;line-height:1;display:inline-flex}[data-theme=dark] .code-lang{background:#00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .code-lang{background:#00000080}}@media (width<=400px){.code-tools{gap:4px;top:8px;right:8px}.code-lang{padding:0 6px;font-size:.7rem}}.post-cover{object-fit:contain;object-position:center;width:100%;height:250px;margin-top:1rem;margin-bottom:1rem}figure{margin-inline:0}figure a{height:100%;display:inline-block;border-bottom:none!important;line-height:0!important}figure a img{border-radius:5px;bottom:0!important}.tk-section-heading{color:var(--text-mute);margin:3.5rem 0 1.25rem;font-size:1rem;font-weight:600}.tk-section-heading:before{content:"";vertical-align:.12em;background:#ff5252;width:.42em;height:.42em;margin-right:.5em;display:inline-block}#twikoo>.tk-comments{min-width:0;color:var(--text);margin-top:0;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{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-bottom:.85rem;display:grid}#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);border:0;border-bottom:1px solid var(--border);box-shadow:none;opacity:.58;background:0 0;border-radius:0;font-family:inherit;transition:border-color .2s,opacity .2s}#twikoo>.tk-comments .el-input-group__prepend{color:var(--text-mute);padding:0 .55rem 0 0}#twikoo>.tk-comments .el-input__inner{padding:0 .5rem}#twikoo>.tk-comments .el-input:focus-within .el-input__inner,#twikoo>.tk-comments .el-input:focus-within .el-input-group__prepend{border-color:var(--text-mute);opacity:1}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .el-input:hover .el-input__inner,#twikoo>.tk-comments .el-input:hover .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{color:var(--text);border:0;border-bottom:1px solid var(--border);box-shadow:none;resize:vertical;opacity:.68;background:0 0;border-radius:0;padding:.8rem .9rem;font-family:inherit;line-height:1.7;transition:border-color .2s,opacity .2s;min-height:7.5rem!important}#twikoo>.tk-comments .el-textarea__inner:focus{border-color:var(--text-mute);opacity:1}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .el-textarea__inner:hover{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 .15s}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .tk-submit-action-icon:hover{opacity:1}}#twikoo>.tk-comments .el-button{min-height:auto;color:var(--text-mute);opacity:.6;background:0 0;border:0;border-radius:0;padding:.25rem .15rem;font-family:inherit;transition:color .2s,opacity .2s}#twikoo>.tk-comments .el-button:focus-visible{color:var(--text);opacity:1;background:0 0}#twikoo>.tk-comments .tk-send{color:var(--text);background:0 0}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .el-button:hover{color:var(--text);opacity:1;background:0 0}}#twikoo>.tk-comments .tk-send.is-disabled{color:var(--text-mute);opacity:.28;background:0 0}#twikoo>.tk-comments .tk-comments-title{color:var(--text);border-top:0;align-items:baseline;margin:0;padding:2rem 0 1.25rem;font-size:1rem;font-weight:600}#twikoo>.tk-comments .tk-comments-count{font-size:inherit}#twikoo>.tk-comments .tk-comments-sort,#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 .2s,opacity .2s}#twikoo>.tk-comments .tk-comments-actions .tk-icon:focus-visible{color:var(--text);opacity:1}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .tk-comments-actions .tk-icon:hover{color:var(--text);opacity:1}}#twikoo>.tk-comments .tk-comment{border-top:0;margin:0;padding:1.65rem 0;scroll-margin-top:1.5rem}#twikoo>.tk-comments .tk-comment.tk-comment-deeplink{animation:1.1s cubic-bezier(.22,.61,.36,1) tk-comment-deeplink}@keyframes tk-comment-deeplink{0%{background-color:color-mix(in srgb, var(--text) 8%, transparent)}to{background-color:#0000}}#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-avatar .tk-avatar-img{height:100%}#twikoo>.tk-comments .tk-nick{color:var(--text);font-size:.92rem;font-weight:600}#twikoo>.tk-comments .tk-time{color:var(--text-mute);opacity:.58;font-size:.72rem}#twikoo>.tk-comments .tk-actions button{color:var(--text-mute);font:inherit;opacity:.7;background:0 0;border:0;padding:0;transition:color .2s,opacity .2s}#twikoo>.tk-comments .tk-actions button:focus-visible{color:var(--text);opacity:1}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .tk-actions button:hover{color:var(--text);opacity:1}}#twikoo>.tk-comments .tk-content{max-width:100%;color:var(--text);overflow-wrap:anywhere;word-break:break-word;font-size:.95rem;line-height:1.75}#twikoo>.tk-comments .tk-content img{max-width:100%}#twikoo>.tk-comments .tk-action-link{color:var(--text-mute);opacity:0;transition:opacity .15s}#twikoo>.tk-comments .tk-comment:focus-within>.tk-main>.tk-row .tk-action-link{opacity:.55}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .tk-comment:hover>.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{opacity:.55;color:var(--text-mute)!important}#twikoo>.tk-comments .tk-action .tk-icon svg{fill:currentColor!important}#twikoo>.tk-comments .tk-action .tk-icon.__active,#twikoo>.tk-comments .tk-action .tk-icon:focus-visible{opacity:1;color:var(--text)!important}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .tk-action .tk-icon:hover,#twikoo>.tk-comments .tk-action-link:hover{color:var(--text);opacity:1}}#twikoo>.tk-comments .tk-tag-green{color:var(--text-mute);border:1px solid var(--border);background:0 0}#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 .2s}@media (hover:hover) and (pointer:fine){#twikoo>.tk-comments .tk-content a:hover{border-color:var(--text)}}#twikoo>.tk-comments .tk-replies{border-left:1px solid var(--border);margin-top:1rem;padding-left:1rem}#twikoo>.tk-footer{display:none}@media (width<=640px){.tk-section-heading{margin:2.75rem 0 1.25rem}#twikoo>.tk-comments{margin-top:0}#twikoo>.tk-comments .tk-meta-input{margin-bottom:.75rem;display:block}#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-comments .tk-comment.tk-comment-deeplink{animation:none}}#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{visibility:visible;color:#9ca3af!important;opacity:1!important}@media (hover:hover) and (pointer:fine){#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}.site-footer{flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:.45rem;display:flex}.site-footer>p:not([class]){order:2;margin:.85rem 0 0}.site-footer>p:not([class]):after{content:"·"}@media (width<=355px){.site-footer>p:not([class]):after{content:none}}.blog-footer-extra{color:var(--text-mute);text-align:center;flex-basis:100%;order:1;margin-top:0;font-size:.8rem}.footer-nav,.footer-badges{flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.footer-nav{gap:.35rem}.footer-badges{gap:.65rem;margin-top:.7rem}.footer-badges a{display:inline-flex}.footer-badges img:not(.not-by-ai-badge){opacity:.78;width:auto;height:20px;display:block}@media (width<=355px){.footer-badges{gap:.4rem}.footer-badges img{height:18px}}.not-by-ai-link{border-bottom:0;display:inline-flex}.not-by-ai-badge{width:auto;height:20px;display:block}.not-by-ai-badge.not-by-ai-badge-dark,:root[data-theme=dark] .not-by-ai-badge-light{display:none}:root[data-theme=dark] .not-by-ai-badge-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .not-by-ai-badge-light{display:none}:root:not([data-theme=light]) .not-by-ai-badge-dark{display:block}}.footer-badges .blogfinder-badge.blogfinder-badge-dark{display:none}.footer-badges .blogfinder-badge-dark{opacity:1}:root[data-theme=dark] .blogfinder-badge-light{display:none}:root[data-theme=dark] .blogfinder-badge-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .blogfinder-badge-light{display:none}:root:not([data-theme=light]) .blogfinder-badge-dark{display:block}}.footer-badges .boyouquan-badge.boyouquan-badge-dark,:root[data-theme=dark] .boyouquan-badge-light{display:none}:root[data-theme=dark] .boyouquan-badge-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .boyouquan-badge-light{display:none}:root:not([data-theme=light]) .boyouquan-badge-dark{display:block}}.post-authorship{justify-content:flex-end;margin-top:2.25rem;display:flex}.post-authorship .not-by-ai-badge{height:28px}.footer-credit{order:3;margin:0;font-size:.7rem;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;color:var(--text-mute);margin:.75rem 0 0;font-size:.88rem;line-height:1.7}.section-intro-source{white-space:nowrap;opacity:.75;margin-left:.75em;font-size:.8rem;font-style:normal}.page-section-header .stars{margin:2rem 0 0}.site-timeline{max-width:42rem}.timeline__row{grid-template-columns:7rem minmax(0,1fr);min-height:2.75rem;display:grid}.timeline__time{color:var(--text-mute);text-align:right;padding:.4rem 1.25rem .4rem 0;font-size:.78rem;line-height:1.6}.timeline__content{border-left:1px solid var(--border);padding:.4rem 0 1rem 1.25rem;position:relative}.timeline__content:before{background:var(--text-mute);content:"";border-radius:50%;width:.42rem;height:.42rem;position:absolute;top:.78rem;left:-.25rem}.timeline__description{color:var(--text);font-size:.9rem;line-height:1.6}.timeline__description a{text-underline-offset:.2em;text-decoration:underline}.timeline__image{cursor:zoom-in;width:160px;max-width:100%;margin-top:.75rem;display:block}.timeline__image img{width:100%;height:auto;display:block}.timeline__row--future{margin-top:2.75rem;position:relative}.timeline__row--future:before{background:var(--text-mute);width:.2rem;height:.2rem;box-shadow:0 .55rem var(--text-mute), 0 1.1rem var(--text-mute);content:"";opacity:.5;border-radius:50%;position:absolute;top:-2rem;left:6.9rem}.timeline__row--future .timeline__content:before{box-sizing:border-box;background:var(--bg);border:1px solid var(--text-mute);width:.46rem;height:.46rem;left:-.26rem}.timeline__row--future .timeline__content:after{background:linear-gradient(to bottom, var(--border), transparent);content:"";width:1px;height:1.5rem;position:absolute;top:100%;left:-1px}.timeline__row--future .timeline__description{color:var(--text-mute)}@media (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}.timeline__row--future:before{left:5.4rem}}#library .library-category{margin-top:3.5rem}#library .category-title{color:var(--text);font-family:var(--font-mono,monospace);letter-spacing:.08em;align-items:baseline;gap:.65rem;margin:0 0 1.5rem;font-size:1rem;font-weight:500;display:flex}#library .category-count{color:var(--text-mute);letter-spacing:0;font-size:.72rem;font-weight:400}#library .category-count:before{content:"["}#library .category-count:after{content:"]"}#library .book-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 1.2rem;display:grid}#library .book,#library .book-link,#library .book-cover,#library .book-meta,#library .book-title,#library .book-details{min-width:0}#library .book-link{color:inherit;text-decoration:none;display:block}#library .book-cover{transform-origin:bottom;background:#fff;border:1px solid #00000014;border-radius:1px;min-height:6rem;padding:.42rem;transition:transform .18s,box-shadow .18s;display:block;position:relative;overflow:hidden;transform:rotate(-1.4deg);box-shadow:0 4px 14px #0000001f}#library .book:nth-child(2n) .book-cover{transform:rotate(1.6deg)}#library .book:nth-child(3n) .book-cover{transform:rotate(-.6deg)}#library .book-cover img{z-index:1;background:#f2f2ef;width:100%;height:auto;display:block;position:relative}#library .book-cover-fallback{color:#8a8a86;background:#f2f2ef;justify-content:center;align-items:center;font-size:.68rem;display:flex;position:absolute;inset:.42rem}#library .book-meta{padding:.85rem .15rem 0;display:block}#library .book-title{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.92rem;font-weight:500;line-height:1.45;display:-webkit-box;overflow:hidden}#library .book-details{color:var(--text-mute);font-family:var(--font-mono,monospace);flex-wrap:wrap;gap:.2rem .55rem;margin-top:.4rem;font-size:.68rem;line-height:1.5;display:flex}#library .book-details>span+span:before{content:"/";opacity:.45;margin-right:.55rem}#library .book-link:not(.book-link--static):focus-visible .book-cover{transform:rotate(0)translateY(-.3rem);box-shadow:0 10px 24px #0000002e}@media (hover:hover) and (pointer:fine){#library .book-link:not(.book-link--static):hover .book-cover{transform:rotate(0)translateY(-.3rem);box-shadow:0 10px 24px #0000002e}}#library .book-link:not(.book-link--static):focus-visible{outline:2px solid var(--text);outline-offset:.4rem;border-radius:2px}#library .book-link--static{cursor:default}[data-theme=dark] #library .book-cover{background:#fff;border-color:#fff3;box-shadow:0 4px 18px #0000006b}.widget{margin-top:2.5rem}.widget-title{color:var(--text-mute);margin-bottom:1rem;font-size:1rem;font-weight:600}.widget-title:before,.links-heading>span:first-child:before{content:"";vertical-align:.12em;background:#ff5252;width:.42em;height:.42em;margin-right:.5em;display:inline-block}.widget-list{flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.visitor-chip{border:1px solid var(--border);color:var(--text-mute);border-radius:2px;padding:.2rem .55rem;font-size:.78rem}#recent-comments{display:block}.comment-item{border-bottom:1px solid var(--border);padding:.65rem 0;line-height:1.65}.comment-item a{color:var(--text-mute);font-size:.82rem}.widget-empty{color:var(--text-mute)}.more-comments{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:2px;margin:1.25rem auto 0;padding:.35rem .75rem;display:none}.book-body{line-height:2}.book-body hr{clear:both}.book-body .book-footer{color:var(--text-mute);font-size:1rem}#post-content .book-cover{border-radius:2px;max-width:50%;margin:0 auto;display:block;overflow:hidden}#post-content .book-cover img{width:100%;display:block}@media screen and (width>=768px){#library .book-group{grid-template-columns:repeat(5,minmax(0,1fr));gap:2.75rem 1.4rem}#post-content .book-cover{float:left;width:12rem;margin:0 2rem 1.2rem 0;display:inline-block}}@media (prefers-reduced-motion:reduce){#library .book-cover,#library .book:nth-child(2n) .book-cover,#library .book:nth-child(3n) .book-cover,#library .book-link:focus-visible .book-cover{transition:none;transform:none}}@media (prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){#library .book-link:hover .book-cover{transition:none;transform:none}}.brand-seal-strokes path{stroke-dasharray:1;stroke-dashoffset:1px;animation:2.8s cubic-bezier(.22,.61,.36,1) forwards brand-seal-draw}.brand-seal-strokes path:nth-child(2){animation-delay:.18s}.brand-seal-strokes path:nth-child(3){animation-delay:.36s}.brand-seal-strokes path:nth-child(4){animation-delay:.54s}@keyframes brand-seal-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.brand-seal-strokes path{stroke-dashoffset:0;animation:none}}.links-heading{color:var(--text-mute);align-items:baseline;gap:.65rem;margin:0 0 1.25rem;font-size:1rem;font-weight:600;display:flex}.links-count{color:var(--text-mute);letter-spacing:0;font-size:.72rem;font-weight:400}.links-count:before{content:"["}.links-count:after{content:"]"}.links-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.links-item{border-bottom:1px solid var(--border)}.links-link{color:inherit;padding:.9rem .6rem;text-decoration:none;transition:background-color .16s;display:block}.links-link:focus-visible{background:color-mix(in srgb, var(--text) 5%, transparent)}@media (hover:hover) and (pointer:fine){.links-link:hover{background:color-mix(in srgb, var(--text) 5%, transparent)}}.links-link:focus-visible{outline:2px solid var(--text);outline-offset:-2px;border-radius:2px}.links-head{align-items:baseline;gap:.75rem;display:flex}.links-name{color:var(--text);font-size:.95rem;font-weight:500}.links-domain{color:var(--text-mute);font-family:var(--font-mono,monospace);letter-spacing:.02em;margin-left:auto;font-size:.72rem}.links-arrow{color:var(--text-mute);font-family:var(--font-mono,monospace);font-size:.8rem;transition:transform .16s,color .16s}.links-link:focus-visible .links-arrow{color:var(--text);transform:translate(4px)}@media (hover:hover) and (pointer:fine){.links-link:hover .links-arrow{color:var(--text);transform:translate(4px)}}.links-desc{color:var(--text-mute);margin-top:.25rem;font-size:.85rem;line-height:1.6;display:block}.links-apply{margin-top:3rem}.post-body .friends-cards{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1.25rem 2rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.post-body .friends-cards li{margin:0;padding:0}.post-body .friends-cards li:before{content:none}.post-body .friends-cards a{color:var(--text);border:0;text-decoration:none;display:block}.friends-name{text-underline-offset:5px;font-weight:600;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px;transition:text-decoration-color .22s;display:inline-block}.friends-desc{color:var(--text-mute);margin-top:.2rem;font-size:.85rem;line-height:1.6;display:block}.post-body .friends-all{margin-top:1.75rem;font-size:.85rem}.post-body .friends-all a{color:var(--text-mute);border-bottom:0}.post-body .friends-cards a:focus-visible .friends-name{text-decoration-line:underline;text-decoration-color:color-mix(in srgb, var(--text-mute) 55%, transparent)}@media (hover:hover) and (pointer:fine){.post-body .friends-cards a:hover .friends-name{text-decoration-line:underline;text-decoration-color:color-mix(in srgb, var(--text-mute) 55%, transparent)}.post-body .friends-all a:hover{color:var(--text)}}@media (prefers-reduced-motion:reduce){.links-link,.links-arrow{transition:none}.links-link:focus-visible .links-arrow{transform:none}}@media (prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){.links-link:hover .links-arrow{transform:none}}#twikoo{min-height:100px}.hero-row .hero-nav a{white-space:nowrap}@media (width<=720px){.hero-row .hero-nav{gap:.85rem}.hero-row .hero-social>a,.hero-row .hero-social>.social-disabled{display:none}.hero-row .hero-social .theme-toggle{flex:0 0 32px;width:32px}}@media (width<=767px),(pointer:coarse){.hero-row .hero-nav a{align-items:center;min-height:44px;display:inline-flex}.hero-row .hero-social a,.hero-row .hero-social .theme-toggle{position:relative}.hero-row .hero-social a:after,.hero-row .hero-social .theme-toggle:after{content:"";position:absolute;inset:-15px -5px}#twikoo .tk-submit .tk-row.actions .el-button{min-width:44px;min-height:44px}#twikoo .tk-action-link{align-items:center;min-width:44px;min-height:44px;display:inline-flex}}.archive-year{letter-spacing:-.02em;color:#0000;-webkit-text-stroke:1.75px #aaa;opacity:.11;-webkit-user-select:none;user-select:none;pointer-events:none;height:0;margin:0;font-size:7.25rem;font-weight:400;line-height:1;position:relative;top:-1.8rem;left:-2.6rem}.archive-list+.archive-year{margin-top:3.65rem}.archive-year+.archive-list{position:relative}.home-list-title:not(.home-feature-title){margin-bottom:1.15rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .archive-year{-webkit-text-stroke-color:#888;opacity:.14}}:root[data-theme=dark] .archive-year{-webkit-text-stroke-color:#888;opacity:.14}@media (width<=720px){.archive-year{font-size:5.5rem;top:-1.4rem;left:-.5rem}.archive-list+.archive-year{margin-top:2.9rem}.home-list-title:not(.home-feature-title){margin-bottom:1rem}}#library .book-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 1.2rem}@media (width>=641px){#library .book-group{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem 1.4rem}}@media (width>=961px){#library .book-group{grid-template-columns:repeat(4,minmax(0,1fr))}}#library .book-cover,#library .book:nth-child(2n) .book-cover,#library .book:nth-child(3n) .book-cover{aspect-ratio:3/4;min-height:0;box-shadow:none;background:0 0;border:0;justify-content:center;align-items:flex-end;padding:0;display:flex;overflow:visible;transform:none;container-type:size}[data-theme=dark] #library .book-cover{box-shadow:none;background:0 0;border:0}#library .book-frame{box-sizing:border-box;transform-origin:bottom;background:#fff;border:1px solid #00000014;border-radius:1px;padding:.42rem;line-height:0;transition:transform .18s,box-shadow .18s;display:block;position:relative;transform:rotate(-1.4deg);box-shadow:0 4px 14px #0000001f}#library .book:nth-child(2n) .book-frame{transform:rotate(1.6deg)}#library .book:nth-child(3n) .book-frame{transform:rotate(-.6deg)}[data-theme=dark] #library .book-frame{border-color:#fff3;box-shadow:0 4px 18px #0000006b}#library .book-cover img{object-fit:contain;background:0 0;width:auto;max-width:calc(100cqw - .84rem - 2px);height:auto;max-height:calc(100cqh - .84rem - 2px)}#library .book-seal{z-index:2;background:url(/logo.svg) 50%/contain no-repeat;width:1.3rem;height:1.3rem;position:absolute;bottom:-.6rem;right:.7rem}#library .book-cover-fallback{display:none;inset:0}#library .book-cover--missing .book-cover-fallback{display:flex}#library .book-cover--missing img{visibility:hidden}#library .book-link:not(.book-link--static):focus-visible .book-cover,#library .book-link:not(.book-link--static):hover .book-cover{box-shadow:none;transform:none}#library .book-link:not(.book-link--static):focus-visible .book-frame{transform:rotate(0)translateY(-.3rem);box-shadow:0 10px 24px #0000002e}@media (hover:hover) and (pointer:fine){#library .book-link:not(.book-link--static):hover .book-frame{transform:rotate(0)translateY(-.3rem);box-shadow:0 10px 24px #0000002e}}#library .book-details>span+span:before{content:none}#library .book-details{font-family:inherit;font-size:12px;display:block}#library .book-sub{color:var(--text-mute);margin-top:.15rem;font-size:12px;line-height:1.5;display:block}#library .book-sep{opacity:.6}#library .book-rating{letter-spacing:.05em;font-size:max(12px,1em)}#library .book-rating .star-on{color:#726d67}#library .book-rating .star-off{color:#c9c4bc}:root[data-theme=dark] #library .book-rating .star-on{color:#a8a29a}:root[data-theme=dark] #library .book-rating .star-off{color:#5a5650}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) #library .book-rating .star-on{color:#a8a29a}:root:not([data-theme=light]) #library .book-rating .star-off{color:#5a5650}}#library .library-all{margin-top:2.5rem}#twikoo .tk-comment-folded,#twikoo.tk-is-folded .tk-comments-container>.tk-expand-wrap{display:none!important}#twikoo .tk-fold-toggle{color:var(--text-mute);font:inherit;cursor:pointer;background:0 0;border:0;margin:.75rem auto 0;padding:.25rem 0;font-size:.85em;transition:color .2s;display:block}@media (hover:hover) and (pointer:fine){#twikoo .tk-fold-toggle:hover{color:var(--text);text-underline-offset:3px;text-decoration:underline}}.post-body img,figure a img,#post-content .book-cover,#post-content .book-cover img,#library .book-cover,#library .book-cover img{border-radius:0}a,a:hover,a:focus-visible,a:active{text-decoration:none}.archive-list li,.archive-link{align-items:baseline}@media (width<=720px){.archive-link{gap:.75rem}}.archive-title{text-underline-offset:5px;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px;transition:text-decoration-color .22s,transform .12s,opacity .12s}.archive-link:focus-visible .archive-title{text-decoration-line:underline;text-decoration-color:color-mix(in srgb, var(--text-mute) 55%, transparent)}@media (hover:hover) and (pointer:fine){.archive-link:hover .archive-title{text-decoration-line:underline;text-decoration-color:color-mix(in srgb, var(--text-mute) 55%, transparent)}}.post-body a,.timeline__description a{border-bottom:1px solid color-mix(in srgb, var(--text-mute) 32%, transparent);text-decoration:none;transition:border-color .2s,color .2s}@media (hover:hover) and (pointer:fine){.post-body a:hover,.timeline__description a:hover{border-bottom-color:var(--text);text-decoration:none}}.post-body .friends-cards a,.post-body .friends-all a{border-bottom:0}.all-posts-link a,.home-feature-foot a,.home-pair .link-list a,.find-me-link,.section-intro a{color:var(--text-mute);transition:color .18s}@media (hover:hover) and (pointer:fine){.all-posts-link a:hover,.home-feature-foot a:hover,.home-pair .link-list a:hover,.find-me-link:hover,.section-intro a:hover,#twikoo .tk-fold-toggle:hover{color:var(--text);text-decoration:none}}@media (prefers-reduced-motion:reduce){.archive-title,.friends-name,.post-body a,.timeline__description a{transition:none}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
