:root{--color-bg: #fafafa;--color-text: #1a1a1a;--color-text-secondary: #666;--color-text-tertiary: #999;--color-link: #1a1a1a;--color-link-hover: #000;--color-tldr-bg: #f5f5f0;--color-tag-bg: #eee;--font-serif: "Georgia", "Noto Serif CJK SC", "Source Han Serif SC", "STSong", "Songti SC", serif;--font-sans: "Inter", "Noto Sans CJK SC", "Source Han Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Menlo", monospace;--max-width: 680px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-serif);color:var(--color-text);background:var(--color-bg);line-height:1.8;padding:0 2rem}header{max-width:var(--max-width);margin:3rem auto 0;padding-bottom:1.5rem}nav{display:flex;align-items:baseline;justify-content:space-between}.site-title{font-size:1rem;font-weight:600;color:var(--color-text);text-decoration:none;letter-spacing:.02em}.site-title:hover{color:var(--color-text)}.nav-links{display:flex;gap:1.5rem}.nav-links a{font-family:var(--font-sans);font-size:.8rem;color:var(--color-text-tertiary);text-decoration:none;text-transform:lowercase;letter-spacing:.05em;transition:color .15s}.nav-links a:hover,.nav-links a.active{color:var(--color-text)}main{max-width:var(--max-width);margin:0 auto 4rem;min-height:60vh}footer{max-width:var(--max-width);margin:0 auto 3rem;padding-top:1.5rem}footer p{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-tertiary)}.post-list{list-style:none}.post-item{padding:1.5rem 0 0}.post-item:last-child{padding-bottom:0}.post-item a{color:var(--color-text);text-decoration:none;display:block}.post-item a:hover .post-title{text-decoration:underline;text-underline-offset:2px}.post-meta{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-tertiary);margin-bottom:.25rem}.post-title{font-size:1.1rem;line-height:1.4;font-weight:400}.post-tldr{font-family:var(--font-sans);font-size:.82rem;color:var(--color-text-secondary);margin-top:.3rem;line-height:1.5}.post-tags{display:flex;gap:.4rem;margin-top:.4rem;flex-wrap:wrap}.tag{font-family:var(--font-sans);font-size:.7rem;color:var(--color-text-tertiary);background:var(--color-tag-bg);padding:.1rem .5rem;border-radius:2px}.month-label{font-family:var(--font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-tertiary);padding-top:2rem;padding-bottom:.3rem}.month-label:first-child{padding-top:0}.prose h1{font-size:1.6rem;font-weight:500;margin-bottom:.5rem;line-height:1.3}.prose .article-meta{font-family:var(--font-sans);font-size:.8rem;color:var(--color-text-tertiary);margin-bottom:2rem}.prose .tldr-block{font-family:var(--font-sans);background:var(--color-tldr-bg);padding:.8rem 1rem;border-radius:3px;margin-bottom:2rem;font-size:.85rem;line-height:1.6;color:var(--color-text-secondary)}.prose .tldr-block:before{content:"TL;DR";font-weight:600;display:block;margin-bottom:.3rem;color:var(--color-text);font-size:.75rem;letter-spacing:.08em}.prose h2{font-size:1.25rem;font-weight:500;margin-top:2.5rem;margin-bottom:.8rem}.prose h3{font-size:1.05rem;font-weight:500;margin-top:2rem;margin-bottom:.5rem}.prose p{margin-bottom:1.2rem}.prose a{color:var(--color-link);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.prose a:hover{color:var(--color-link-hover)}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--color-tag-bg);padding:.1rem .3rem;border-radius:2px}.prose pre{background:#1a1a1a;color:#e5e5e5;padding:1rem;border-radius:3px;overflow-x:auto;margin-bottom:1.5rem;font-size:.85rem;line-height:1.6}.prose pre code{background:none;padding:0}.prose blockquote{border-left:2px solid var(--color-border);padding-left:1rem;color:var(--color-text-secondary);margin-bottom:1.5rem}.prose ul,.prose ol{padding-left:1.5rem;margin-bottom:1.5rem}.prose li{margin-bottom:.3rem}.prose hr{border:none;margin:2rem 0;height:1px;background:var(--color-text-tertiary);opacity:.3}.prose img{max-width:100%;margin:1.5rem 0;border-radius:2px}.lang-switcher{display:flex;gap:.5rem;margin-bottom:2rem}.lang-switcher a,.lang-switcher span{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-tertiary);text-decoration:none;padding:.2rem .6rem;border:1px solid var(--color-border);border-radius:2px;text-transform:uppercase;transition:all .15s}.lang-switcher a:hover{color:var(--color-text);border-color:var(--color-text-secondary)}.lang-switcher .current,.lang-switcher span.current{color:var(--color-text);background:var(--color-tag-bg);border-color:var(--color-text-secondary)}.uses-category{margin-bottom:2.5rem}.uses-category h2{font-family:var(--font-sans);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-tertiary);margin-bottom:1rem}.uses-item{margin-bottom:.8rem;font-size:.95rem}.uses-item strong{font-weight:500}.uses-item .note{color:var(--color-text-secondary);font-size:.85rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}::view-transition-old(main){animation:fade-out .12s ease-out}::view-transition-new(main){animation:fade-in .12s ease-out}@media(max-width:600px){body{padding:0 1.25rem}nav{flex-direction:column;gap:.5rem}.prose h1{font-size:1.3rem}}@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(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
