*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", "Fira Mono", Menlo, monospace;--font-serif: "Newsreader", "Georgia", "Times New Roman", serif;--color-bg: #ffffff;--color-surface: #ffffff;--color-text: #1a1a1a;--color-text-secondary: #555;--color-text-muted: #888;--color-border: #e5e5e5;--color-border-light: #f0f0f0;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-code-bg: #f6f8fa;--color-tag-bg: #f0f4ff;--color-tag-text: #3b5998;--max-width: 780px;--sidebar-width: 260px;--header-height: 56px;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.7;min-height:100vh}a{color:var(--color-accent);text-decoration:none;transition:color .15s}a:hover{color:var(--color-accent-hover);text-decoration:underline}img{max-width:100%;height:auto}.site-header{height:var(--header-height);background:var(--color-bg);display:flex;align-items:center;padding:0 var(--space-xl);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffd9}html.dark .site-header{background:#111111d9}.site-header__inner{max-width:1200px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.site-header__title{font-size:.9rem;font-weight:500;color:var(--color-text);letter-spacing:.02em;font-family:var(--font-mono)}.site-header__title:hover{color:var(--color-text-muted);text-decoration:none}.site-header__nav{display:flex;gap:var(--space-lg)}.site-header__nav a{font-size:.875rem;color:var(--color-text-secondary);font-weight:450}.site-header__nav a:hover{color:var(--color-text);text-decoration:none}.header-controls{display:flex;align-items:center;gap:12px}.version-toggle{display:flex;background:var(--color-code-bg);border-radius:6px;padding:2px;gap:2px}.version-btn{font-size:.7rem;font-weight:500;padding:4px 10px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .15s;font-family:var(--font-body);letter-spacing:.01em}.version-btn.active{background:var(--color-text);color:var(--color-bg)}.version-btn:hover:not(.active){color:var(--color-text)}.theme-toggle{background:none;border:1px solid var(--color-border);border-radius:6px;padding:5px;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;transition:all .15s}.theme-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted)}html.dark{--color-bg: #111;--color-surface: #111;--color-text: #e5e5e5;--color-text-secondary: #999;--color-text-muted: #666;--color-border: #333;--color-border-light: #222;--color-code-bg: #1a1a1a;--color-tag-bg: #1a2332;--color-tag-text: #7baaf7;--color-accent: #5b9cf5;--color-accent-hover: #7baaf7}html.dark .site-header{border-bottom-color:#333}html.dark .author-card{border-left-color:#fff}html.dark .prose pre{background:#0d0d0d!important;border-color:#2a2a2a;color:#e5e5e5}html.dark .prose pre code{background:none;color:#e5e5e5}html.dark .prose pre code .keyword,html.dark .prose pre code .string{color:#7ec8e3}html.dark .prose pre code .comment{color:#666}html.dark .prose pre code .function{color:#c9a0dc}html.dark .prose code{background:#1a1a1a;color:#e5e5e5}.astro-code{background-color:var(--color-code-bg)!important}html.dark .astro-code{background-color:#0d0d0d!important}html.dark .astro-code span{color:var(--shiki-dark, #e5e5e5)!important}html.dark .mermaid{background:#1a1a1a;border-color:#2a2a2a}html.dark .mermaid text,html.dark .mermaid .nodeLabel,html.dark .mermaid .edgeLabel,html.dark .mermaid .label,html.dark .mermaid span,html.dark .mermaid .messageText,html.dark .mermaid .noteText,html.dark .mermaid .loopText,html.dark .mermaid .labelText{color:#e5e5e5!important;fill:#e5e5e5!important}html.dark .mermaid .node rect,html.dark .mermaid .node polygon{stroke:#555!important}html.dark .mermaid line,html.dark .mermaid path.path{stroke:#666!important}html.dark .mermaid .arrowheadPath{fill:#666!important}html.dark .mermaid .note{fill:#2a2a2a!important;stroke:#444!important}html.dark .version-toggle{background:#1a1a1a}html.dark .version-btn.active{background:#e5e5e5;color:#111}html.dark img{opacity:.92}html.dark .theme-toggle .icon-sun{display:none}html.dark .theme-toggle .icon-moon{display:block!important}.page-container{max-width:var(--max-width);margin:0 auto;padding:var(--space-3xl) var(--space-xl)}.page-title{font-size:1.75rem;font-weight:700;letter-spacing:-.025em;margin-bottom:var(--space-sm)}.page-subtitle{color:var(--color-text-muted);font-size:.95rem;margin-bottom:var(--space-3xl)}.post-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-xl)}.post-card{padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-border-light)}.post-card:last-child{border-bottom:none}.post-card__date{font-size:.8rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-bottom:var(--space-xs)}.post-card__title{font-size:1.2rem;font-weight:600;letter-spacing:-.015em;line-height:1.35;margin-bottom:var(--space-sm)}.post-card__title a{color:var(--color-text)}.post-card__title a:hover{color:var(--color-accent);text-decoration:none}.post-card__excerpt{color:var(--color-text-secondary);font-size:.925rem;line-height:1.6}.post-card__tags{display:flex;gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap}.post-card__tag{font-size:.75rem;background:var(--color-tag-bg);color:var(--color-tag-text);padding:2px 8px;border-radius:4px;font-weight:500}.post-layout{max-width:1200px;margin:0 auto;padding:var(--space-2xl) var(--space-xl);display:grid;grid-template-columns:var(--sidebar-width) 1fr;gap:var(--space-3xl)}.sidebar{position:sticky;top:calc(var(--header-height) + var(--space-2xl));align-self:start}.author-card{padding:var(--space-lg);background:var(--color-bg);border-left:2px solid #1a1a1a;border-radius:0}.author-card__avatar{margin-bottom:var(--space-md)}.author-card__avatar img{width:64px;height:64px;border-radius:50%;object-fit:cover}.author-card__name{font-size:.9rem;font-weight:600;margin-bottom:2px;letter-spacing:-.01em}.author-card__role{font-size:.75rem;color:var(--color-text-muted);margin-bottom:var(--space-md);line-height:1.4}.author-card__bio{font-size:.78rem;color:var(--color-text-secondary);line-height:1.55;margin-bottom:var(--space-md)}.author-card__more{font-size:.75rem;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.author-card__more:hover{color:var(--color-text);text-decoration:none}.author-card__links{display:flex;flex-direction:column;gap:6px}.author-card__links a{font-size:.75rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:6px;transition:color .15s}.author-card__links a:hover{color:var(--color-text);text-decoration:none}.author-card__links svg{width:14px;height:14px;flex-shrink:0}.article{max-width:var(--max-width);min-width:0}.article .prose table{max-width:100%;width:100%}.article__header{margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-border-light)}.article__title{font-size:1.85rem;font-weight:750;letter-spacing:-.03em;line-height:1.2;margin-bottom:var(--space-md)}.article__meta{display:flex;align-items:center;gap:var(--space-md);font-size:.85rem;color:var(--color-text-muted);flex-wrap:wrap}.article__meta-sep{color:var(--color-border)}.article__md-link{font-size:.8rem;background:var(--color-code-bg);padding:3px 10px;border-radius:4px;border:1px solid var(--color-border);color:var(--color-text-secondary)!important;font-family:var(--font-mono);font-weight:500}.article__md-link:hover{background:var(--color-tag-bg);color:var(--color-accent)!important;text-decoration:none!important}.article__tags{display:flex;gap:var(--space-sm);flex-wrap:wrap}.prose h2{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;margin-top:var(--space-3xl);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border-light)}.prose h3{font-size:1.15rem;font-weight:650;letter-spacing:-.01em;margin-top:var(--space-2xl);margin-bottom:var(--space-sm)}.prose h4{font-size:1rem;font-weight:600;margin-top:var(--space-xl);margin-bottom:var(--space-sm)}.prose p{margin-bottom:var(--space-md)}.prose ul,.prose ol{margin-bottom:var(--space-md);padding-left:var(--space-xl)}.prose li{margin-bottom:var(--space-xs)}.prose li>ul,.prose li>ol{margin-top:var(--space-xs);margin-bottom:0}.prose blockquote{border-left:3px solid var(--color-accent);padding:var(--space-sm) var(--space-lg);margin:var(--space-lg) 0;background:var(--color-code-bg);border-radius:0 6px 6px 0;color:var(--color-text-secondary);font-style:italic}.prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-2xl) 0}.prose strong{font-weight:650}.prose em{font-style:italic}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--color-code-bg);padding:2px 6px;border-radius:4px;font-weight:450}.prose pre{background:var(--color-code-bg)!important;border:1px solid var(--color-border);border-radius:8px;padding:var(--space-lg);margin:var(--space-lg) 0;overflow-x:auto;font-size:.84rem;line-height:1.6}.prose pre code{background:none;padding:0;border-radius:0;font-size:inherit}.prose table{width:100%;border-collapse:collapse;margin:var(--space-lg) 0;font-size:.78rem;table-layout:fixed}.prose thead th{background:var(--color-code-bg);font-weight:600;text-align:left;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);word-wrap:break-word;overflow-wrap:break-word}.prose thead th:first-child{width:22%}.prose tbody td{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);word-wrap:break-word;overflow-wrap:break-word}.prose tbody tr:nth-child(2n){background:var(--color-code-bg)}.mermaid{margin:var(--space-lg) 0;text-align:center;background:var(--color-surface);padding:var(--space-lg);border:1px solid var(--color-border-light);border-radius:8px}html:not(.dark) .mermaid text,html:not(.dark) .mermaid .nodeLabel,html:not(.dark) .mermaid .edgeLabel,html:not(.dark) .mermaid .label,html:not(.dark) .mermaid span,html:not(.dark) .mermaid .messageText,html:not(.dark) .mermaid .noteText{color:#1a1a1a!important;fill:#1a1a1a!important}html:not(.dark) .mermaid .node rect,html:not(.dark) .mermaid .node polygon{stroke:#333!important}.prose a{text-decoration:underline;text-decoration-color:#2563eb4d;text-underline-offset:2px}.prose a:hover{text-decoration-color:var(--color-accent)}.site-footer{border-top:1px solid var(--color-border-light);padding:var(--space-xl) var(--space-xl) var(--space-lg);text-align:center;font-size:.8rem;color:var(--color-text-muted);margin-top:var(--space-3xl)}.site-footer__links{margin-bottom:var(--space-sm)}.site-footer__links a{color:var(--color-text-secondary);font-size:.8rem}.site-footer__links a:hover{color:var(--color-accent)}.site-footer__sep{margin:0 var(--space-sm);color:var(--color-border)}.site-footer__copy{font-size:.75rem}.author-bio-footer{margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border-light)}.author-bio-footer em,.author-bio-footer p{font-size:.82rem;color:var(--color-text-muted);line-height:1.6}.author-bio-footer a{color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}.author-bio-footer a:hover{color:var(--color-text-secondary)}.machine-version{max-width:800px}.machine-version__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.machine-version__badge{font-family:var(--font-mono);font-size:.75rem;font-weight:500;padding:4px 10px;background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:4px}.machine-version__copy{font-family:var(--font-mono);font-size:.7rem;padding:4px 12px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.machine-version__copy:hover{border-color:var(--color-text-muted);color:var(--color-text)}.machine-version__content{font-family:var(--font-mono);font-size:.78rem;line-height:1.6;background:var(--color-code-bg);padding:var(--space-lg);border-radius:8px;border:1px solid var(--color-border-light);overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.machine-version__content code{background:none;padding:0;font-size:inherit}.about-layout{max-width:1200px;margin:0 auto;padding:var(--space-2xl) var(--space-xl);display:grid;grid-template-columns:var(--sidebar-width) 1fr;gap:var(--space-3xl)}.about-sidebar{position:sticky;top:calc(var(--header-height) + var(--space-2xl));align-self:start}.about-content h1{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin-bottom:var(--space-xl)}.about-content h2{margin-top:var(--space-2xl)}.home-layout{max-width:1200px;margin:0 auto;padding:var(--space-2xl) var(--space-xl);display:grid;grid-template-columns:var(--sidebar-width) 1fr;gap:var(--space-3xl)}.home-sidebar{position:sticky;top:calc(var(--header-height) + var(--space-2xl));align-self:start}.post-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.post-tile{display:block;padding:var(--space-lg);border:1px solid var(--color-border-light);border-radius:8px;transition:border-color .15s,background .15s;text-decoration:none;color:var(--color-text)}.post-tile:hover{border-color:var(--color-text-muted);background:var(--color-code-bg);text-decoration:none}.post-tile__date{font-size:.7rem;color:var(--color-text-muted);font-family:var(--font-mono);margin-bottom:6px;letter-spacing:.02em}.post-tile__title{font-size:.95rem;font-weight:600;letter-spacing:-.01em;line-height:1.35;margin-bottom:6px}.post-tile__excerpt{font-size:.78rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-tile__tags{display:flex;gap:4px;flex-wrap:wrap}.post-tile__tag{font-size:.65rem;padding:2px 6px;border-radius:3px;background:var(--color-tag-bg);color:var(--color-tag-text);font-weight:500}@media(max-width:840px){.post-layout,.about-layout{grid-template-columns:1fr;gap:0;padding:var(--space-lg)}.sidebar,.home-sidebar,.about-sidebar{position:static;order:-1}.home-layout{grid-template-columns:1fr;gap:0;padding:var(--space-lg)}.post-grid{grid-template-columns:1fr}.author-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-left:none;border-bottom:1px solid var(--color-border-light);margin-bottom:var(--space-xl)}.author-card__avatar{margin-bottom:0;flex-shrink:0}.author-card__avatar img{width:48px;height:48px}.author-card__bio{display:none}.author-card__name{font-size:.85rem;margin-bottom:0}.author-card__role{font-size:.7rem;margin-bottom:4px}.author-card__links{flex-direction:row;flex-wrap:wrap;gap:var(--space-sm)}.author-card__links a span,.author-card__links a{font-size:.7rem}.article__title{font-size:1.5rem}.page-container{padding:var(--space-xl) var(--space-lg)}.header-controls{gap:8px}.version-btn{font-size:.65rem;padding:3px 8px}}@media(max-width:480px){.article__title{font-size:1.3rem}.prose h2{font-size:1.2rem}.prose pre{font-size:.78rem;padding:var(--space-md);border-radius:6px}.prose table{font-size:.7rem}}
