:root{--color-bg:#fff;--color-surface:#f8f9fa;--color-text:#1a1a2e;--color-text-secondary:#555e6e;--color-text-muted:#8892a4;--color-border:#e9ecef;--color-accent:var(--ghost-accent-color,#3b49df);--color-accent-hover:color-mix(in srgb,var(--color-accent) 85%,#000);--color-link:var(--color-accent);--font-body:"Source Serif 4",Georgia,"Times New Roman",serif;--font-heading:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code","Cascadia Code",monospace;--font-ui:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-base:1.125rem;--font-size-sm:0.875rem;--font-size-xs:0.8125rem;--font-size-lg:1.25rem;--line-height-body:1.7;--line-height-heading:1.25;--line-height-tight:1.15;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--content-width:42rem;--wide-width:56rem;--max-width:72rem;--sidebar-width:14rem;--header-height:4rem;--transition-fast:150ms ease;--transition-base:250ms ease;--radius-sm:4px;--radius-md:8px;--radius-lg:12px}.has-sans-body{--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--line-height-body:1.6}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-body);transition:background-color var(--transition-base),color var(--transition-base)}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}a{color:var(--color-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-family:var(--font-heading);font-weight:700;line-height:var(--line-height-heading)}h1{font-size:2.5rem;font-weight:800;letter-spacing:-.03em;line-height:var(--line-height-tight)}h2{font-size:1.75rem;letter-spacing:-.02em}h3{font-size:1.375rem;letter-spacing:-.01em}h4{font-size:1.125rem}p+p{margin-top:1.5em}code{border-radius:var(--radius-sm);font-size:.875em;padding:.15em .4em}code,pre{background:var(--color-surface);font-family:var(--font-mono)}pre{border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.6;overflow-x:auto;padding:var(--space-lg)}pre code{background:none;border-radius:0;padding:0}blockquote{border-left:3px solid var(--color-accent);color:var(--color-text-secondary);font-style:italic;margin:var(--space-xl) 0;padding-left:var(--space-lg)}.separator{margin:0 .35em;opacity:.5}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.container{margin:0 auto;max-width:var(--max-width);padding:0 var(--space-lg);width:100%}.site-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);height:var(--header-height);position:sticky;top:0;transition:background-color var(--transition-base),border-color var(--transition-base);z-index:100}.header-inner{align-items:center;display:flex;gap:var(--space-lg);height:100%;justify-content:space-between}.header-left{flex-shrink:0}.site-logo{align-items:center;color:var(--color-text);display:flex;font-family:var(--font-heading);font-size:1.25rem;font-weight:800;letter-spacing:-.02em}.site-logo img{height:2rem;width:auto}.site-logo:hover{color:var(--color-text);opacity:.8}.header-nav,.header-nav ul{align-items:center;display:flex;gap:var(--space-lg)}.header-nav ul{list-style:none}.header-nav li,.header-nav ul{margin:0;padding:0}.header-nav a{color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:500;transition:color var(--transition-fast)}.header-nav a:hover{color:var(--color-text)}.header-right{align-items:center;display:flex;gap:var(--space-md)}.btn{align-items:center;border:none;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:var(--font-ui);font-weight:500;justify-content:center;text-decoration:none;transition:all var(--transition-fast)}.btn-sm{font-size:var(--font-size-sm);padding:.4rem .9rem}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-hover);color:#fff}.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.btn-ghost:hover{border-color:var(--color-text-muted);color:var(--color-text)}.theme-toggle{align-items:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;display:flex;height:2.25rem;justify-content:center;transition:color var(--transition-fast),background var(--transition-fast);width:2.25rem}.theme-toggle:hover{background:var(--color-surface);color:var(--color-text)}.theme-toggle .icon-moon{display:block}.theme-toggle .icon-sun,[data-theme=dark] .theme-toggle .icon-moon{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}.mobile-menu-toggle{align-items:center;background:transparent;border:none;color:var(--color-text);cursor:pointer;display:none;height:2.25rem;justify-content:center;width:2.25rem}.mobile-menu-toggle .icon-close{display:none}@media (max-width:768px){.header-nav{background:var(--color-bg);border-bottom:1px solid var(--color-border);display:none;left:0;padding:var(--space-lg);position:absolute;right:0;top:var(--header-height)}.header-nav ul{flex-direction:column;gap:var(--space-md)}.header-nav.is-open{display:block}.mobile-menu-toggle{display:flex}body.menu-open .mobile-menu-toggle .icon-menu{display:none}body.menu-open .mobile-menu-toggle .icon-close{display:block}.btn-sm{display:none}}.site-footer{border-top:1px solid var(--color-border);margin-top:var(--space-3xl);padding:var(--space-xl) 0}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:space-between}.footer-left .copyright{color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-sm)}.footer-nav ul{align-items:center;display:flex;gap:var(--space-md);list-style:none}.footer-nav li,.footer-nav ul{margin:0;padding:0}.footer-nav a{color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--font-size-sm)}.footer-nav a:hover{color:var(--color-text)}.social-link{color:var(--color-text-muted);transition:color var(--transition-fast)}.social-link:hover{color:var(--color-text)}.site-main{min-height:calc(100vh - var(--header-height) - 12rem)}.home-header{padding:var(--space-2xl) 0 var(--space-lg);text-align:center}.site-tagline{color:var(--color-text);font-family:var(--font-heading);font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 auto;max-width:36rem}.site-title{font-size:2.5rem;font-weight:800;letter-spacing:-.03em}.site-description{color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--font-size-lg);margin-left:auto;margin-right:auto;margin-top:var(--space-sm);max-width:36rem}.topic-nav{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2xl)}.topic-nav .container{-ms-overflow-style:none;align-items:center;display:flex;gap:var(--space-lg);overflow-x:auto;padding-bottom:var(--space-md);padding-top:var(--space-md);scrollbar-width:none}.topic-nav .container::-webkit-scrollbar{display:none}.topic-link{border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:500;padding:var(--space-xs) var(--space-sm);transition:color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.topic-link:hover{background:var(--color-surface);color:var(--color-text)}.topic-link.is-active{color:var(--color-text);font-weight:600}.hero-post{border-bottom:1px solid var(--color-border);padding:var(--space-xl) 0}.hero-post .container{max-width:var(--content-width)}.hero-tag{color:var(--color-accent);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.hero-title{font-size:2.25rem;margin-top:var(--space-sm)}.hero-title a{color:var(--color-text)}.hero-title a:hover{color:var(--color-accent)}.hero-meta{color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-sm);margin-top:var(--space-md)}.hero-excerpt{color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:1.6;margin-top:var(--space-lg)}.hero-read-link{color:var(--color-accent);display:inline-block;font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:600;margin-top:var(--space-lg)}.hero-read-link:hover{color:var(--color-accent-hover)}.post-list-section{padding:var(--space-xl) 0}.post-list-section .container{max-width:var(--content-width)}.section-heading{color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.08em;margin-bottom:var(--space-lg);text-transform:uppercase}.post-list{display:flex;flex-direction:column;gap:0}.post-list-item{align-items:baseline;border-bottom:1px solid var(--color-border);color:var(--color-text);display:flex;gap:var(--space-lg);justify-content:space-between;padding:var(--space-md) 0;transition:background var(--transition-fast)}.post-list-item:first-child{border-top:1px solid var(--color-border)}.post-list-item:hover{background:var(--color-surface);border-radius:var(--radius-sm);margin:0 calc(var(--space-sm)*-1);padding-left:var(--space-sm);padding-right:var(--space-sm)}.post-list-content{flex:1;min-width:0}.post-list-title{font-family:var(--font-heading);font-size:1rem;font-weight:600}.post-list-excerpt,.post-list-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-list-excerpt{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.post-list-meta{align-items:center;color:var(--color-text-muted);display:flex;flex-shrink:0;font-family:var(--font-ui);font-size:var(--font-size-xs);gap:var(--space-sm)}.post-list-tag{background:var(--color-surface);border-radius:var(--radius-sm);padding:.1em .5em}.post-list-reading-time{white-space:nowrap}.post-header{padding:var(--space-2xl) 0 var(--space-xl)}.post-header .container{max-width:var(--content-width)}.post-tag{color:var(--color-accent);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.post-title{font-size:2.75rem;letter-spacing:-.03em;margin-top:var(--space-sm)}.post-excerpt{color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:1.5;margin-top:var(--space-md)}.post-meta{flex-wrap:wrap;gap:var(--space-lg);margin-top:var(--space-xl)}.post-meta,.post-meta-author{align-items:center;display:flex}.post-meta-author{gap:var(--space-sm)}.author-avatar{border-radius:50%;height:2rem;object-fit:cover;width:2rem}.author-name{color:var(--color-text);font-weight:500}.author-name,.post-meta-details{font-family:var(--font-ui);font-size:var(--font-size-sm)}.post-meta-details{color:var(--color-text-muted)}.post-feature-image{margin:0 auto var(--space-2xl);max-width:var(--wide-width);padding:0 var(--space-lg)}.post-feature-image img{border-radius:var(--radius-md);height:auto;width:100%}.post-feature-image figcaption{color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-xs);margin-top:var(--space-sm);text-align:center}.post-body-wrapper{display:grid;gap:var(--space-2xl);grid-template-columns:1fr;margin:0 auto;max-width:var(--wide-width);padding:0 var(--space-lg);position:relative}@media (min-width:1200px){.post-body-wrapper{grid-template-columns:var(--sidebar-width) 1fr}}.toc-sidebar{display:none}.toc-sidebar.has-toc{display:block}@media (min-width:1200px){.toc-sidebar{display:block}.toc-sidebar:not(.has-toc){visibility:hidden}.toc-container{position:sticky;top:calc(var(--header-height) + var(--space-xl))}}.toc-container .toc-list{font-family:var(--font-ui);font-size:var(--font-size-xs);line-height:1.8;list-style:none;padding:0}.toc-container .toc-list .toc-list{padding-left:var(--space-md)}.toc-container .toc-link{color:var(--color-text-muted);transition:color var(--transition-fast)}.toc-container .toc-link:hover{color:var(--color-text)}.toc-container .is-active-link{color:var(--color-accent);font-weight:500}.post-content{max-width:var(--content-width)}.post-footer{border-top:1px solid var(--color-border);margin-top:var(--space-2xl);padding-top:var(--space-xl)}.post-footer .container{max-width:var(--content-width)}.post-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.post-tag-link{background:var(--color-surface);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:500;padding:.25em .7em;transition:all var(--transition-fast)}.post-tag-link:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent)}.related-posts{background:var(--color-surface);margin-top:var(--space-xl);padding:var(--space-2xl) 0}.related-posts .container{max-width:var(--content-width)}.post-card{border-radius:var(--radius-md);color:var(--color-text);display:block;overflow:hidden;transition:box-shadow var(--transition-base)}.post-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.08)}.post-card-image img{height:12rem;object-fit:cover;width:100%}.post-card-content{padding:var(--space-lg)}.post-card-tag{color:var(--color-accent);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.post-card-title{font-size:1.25rem;margin-top:var(--space-xs)}.post-card-excerpt{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-sm)}.post-card-meta{color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-xs);margin-top:var(--space-md)}.pagination{align-items:center;display:flex;font-family:var(--font-ui);font-size:var(--font-size-sm);gap:var(--space-lg);justify-content:center;margin-top:var(--space-2xl)}.pagination-link{color:var(--color-accent);font-weight:500}.pagination-info{color:var(--color-text-muted)}.page-title{font-size:2rem;margin-bottom:var(--space-xl)}@media (max-width:768px){.home-header{padding:var(--space-2xl) 0 var(--space-lg)}.site-title{font-size:2rem}.hero-title{font-size:1.75rem}.post-title{font-size:2rem}.post-list-item{align-items:flex-start;flex-direction:column;gap:var(--space-xs)}.post-list-excerpt{display:none}}.gh-content{font-size:var(--font-size-base);line-height:var(--line-height-body)}.gh-content>*+*{margin-top:1.5em}.gh-content h2{margin-bottom:.5em;margin-top:2.5em}.gh-content h3{margin-bottom:.4em;margin-top:2em}.gh-content h4{margin-bottom:.3em;margin-top:1.5em}.gh-content a{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-accent) 40%,transparent);text-underline-offset:2px}.gh-content a:hover{text-decoration-color:var(--color-accent)}.gh-content ol,.gh-content ul{padding-left:1.5em}.gh-content li+li{margin-top:.5em}.gh-content .kg-gallery-card,.gh-content .kg-image-card{margin-bottom:2em;margin-top:2em}.gh-content .kg-image{border-radius:var(--radius-md)}.gh-content .kg-width-wide{margin-left:calc(50% - min(50vw, calc(var(--wide-width) / 2)));margin-right:calc(50% - min(50vw, calc(var(--wide-width) / 2)));max-width:var(--wide-width)}.gh-content .kg-width-full{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:100vw}.gh-content figcaption{color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-xs);margin-top:var(--space-sm);text-align:center}.gh-content .kg-blockquote-alt{border-left:3px solid var(--color-accent);color:var(--color-text);font-family:var(--font-heading);font-size:1.5rem;font-style:italic;font-weight:600;line-height:1.4;padding-left:var(--space-lg)}.gh-content .kg-bookmark-card,.gh-content pre{margin-bottom:2em;margin-top:2em}.gh-content .kg-bookmark-card{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.gh-content .kg-bookmark-container{color:var(--color-text);display:flex;text-decoration:none}.gh-content .kg-bookmark-content{flex:1;padding:var(--space-lg)}.gh-content .kg-bookmark-title{font-family:var(--font-heading);font-size:1rem;font-weight:600}.gh-content .kg-bookmark-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--color-text-secondary);display:-webkit-box;font-size:var(--font-size-sm);margin-top:var(--space-sm);overflow:hidden}.gh-content .kg-bookmark-metadata{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--font-size-xs);gap:var(--space-sm);margin-top:var(--space-md)}.gh-content .kg-bookmark-icon{height:1rem;width:1rem}.gh-content .kg-bookmark-thumbnail{flex-shrink:0;width:10rem}.gh-content .kg-bookmark-thumbnail img{height:100%;object-fit:cover;width:100%}.gh-content .kg-audio-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.gh-content .kg-callout-card{border-radius:var(--radius-md);margin-bottom:2em;margin-top:2em;padding:var(--space-lg)}.gh-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-2xl) 0}.gh-content table{border-collapse:collapse;font-size:var(--font-size-sm);margin-bottom:2em;margin-top:2em;width:100%}.gh-content td,.gh-content th{border-bottom:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);text-align:left}.gh-content th{color:var(--color-text);font-family:var(--font-ui);font-weight:600}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0f0f1a;--color-surface:#1a1a2e;--color-text:#e8e8f0;--color-text-secondary:#a0a0b8;--color-text-muted:#6e6e8a;--color-border:#2a2a3e;--color-accent-hover:color-mix(in srgb,var(--color-accent) 85%,#fff)}}[data-theme=dark]{--color-bg:#0f0f1a;--color-surface:#1a1a2e;--color-text:#e8e8f0;--color-text-secondary:#a0a0b8;--color-text-muted:#6e6e8a;--color-border:#2a2a3e;--color-accent-hover:color-mix(in srgb,var(--color-accent) 85%,#fff)}:root:not([data-theme=light]) .post-card:hover,[data-theme=dark] .post-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.3)}:root:not([data-theme=light]) code,[data-theme=dark] code{background:var(--color-surface)}:root:not([data-theme=light]) pre,[data-theme=dark] pre{background:var(--color-surface);border:1px solid var(--color-border)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) code{background:var(--color-surface)}:root:not([data-theme=light]) pre{background:var(--color-surface);border:1px solid var(--color-border)}}