*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-text: #1f2937;--color-text-light: #6b7280;--color-background: #ffffff;--color-background-alt: #f9fafb;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--spacing-xs: 0.5rem;--spacing-sm: 0.75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);--container-max-width: 1200px}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-background);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:var(--spacing-2xl) 0}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--spacing-lg)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md);color:var(--color-text)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-bottom:var(--spacing-md);line-height:1.7}a{color:var(--color-primary);text-decoration:none;transition:color 0.2s ease}a:hover{color:var(--color-primary-hover)}.btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:500;text-align:center;cursor:pointer;transition:all 0.2s ease;border:2px solid transparent}.btn-primary{background-color:var(--color-primary);color:white;border-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);color:white;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-ghost{display:inline-flex;align-items:center;gap:var(--spacing-xs);background-color:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-ghost:hover{color:var(--color-text);border-color:var(--color-text);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-icon{flex-shrink:0}.navbar{background-color:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-md) 0;position:sticky;top:0;z-index:100;backdrop-filter:blur(10px);background-color:rgba(255,255,255,0.95)}.navbar .container{display:flex;justify-content:space-between;align-items:center}.navbar-brand .logo{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-size:1.25rem;font-weight:700;color:var(--color-text);letter-spacing:-0.5px}.navbar-brand .logo-icon{width:28px;height:28px;border-radius:var(--radius-sm);flex-shrink:0}.navbar-menu{display:flex;gap:var(--spacing-lg)}.nav-link{color:var(--color-text-light);font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:all 0.2s ease}.nav-link:hover,.nav-link.active{color:var(--color-primary);background-color:var(--color-background-alt)}.articles-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 380px));justify-content:center;gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:var(--spacing-lg)}.project-card{display:flex;flex-direction:column;gap:var(--spacing-sm);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);color:var(--color-text);transition:all 0.25s ease;height:100%}.project-card:hover{border-color:var(--color-primary);transform:translateY(-3px);box-shadow:var(--shadow-md);color:var(--color-text)}.project-card-head{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--color-primary)}.project-icon{flex-shrink:0}.project-name{font-weight:600;font-size:1.05rem;word-break:break-word}.project-desc{color:var(--color-text-light);font-size:0.95rem;line-height:1.5;margin:0;flex:1}.project-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:0.85rem;color:var(--color-text-light);margin-top:var(--spacing-xs)}.project-lang{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.lang-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.project-stars{font-weight:500}.article-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all 0.3s ease;height:100%;display:flex;flex-direction:column}.article-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-link{color:inherit;text-decoration:none;display:flex;flex-direction:column;height:100%;cursor:pointer}.card-header{margin-bottom:var(--spacing-md)}.card-title{font-size:1.5rem;margin-bottom:var(--spacing-xs);color:var(--color-text)}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.25rem 0.75rem;font-size:0.875rem;color:var(--color-text-light)}.card-meta>*{white-space:nowrap}.card-author{font-weight:500}.card-separator{color:var(--color-text-lighter)}.card-date{font-size:0.875rem;color:var(--color-text-light)}.card-body{flex:1;display:flex;flex-direction:column}.card-excerpt{color:var(--color-text-light);line-height:1.6;flex:1}.card-footer{padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light);margin-top:var(--spacing-md)}.read-more{color:var(--color-primary);font-weight:500;font-size:0.875rem;display:inline-block;transition:all 0.2s ease}.article-card:hover .read-more{color:var(--color-primary-hover);transform:translateX(4px)}.tag-badge{display:inline-block;padding:0.35em 0.65em;font-size:0.75rem;font-weight:600;line-height:1;color:#212529;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.375rem;text-decoration:none;transition:all 0.15s ease-in-out;margin-right:0.25rem;margin-bottom:0.25rem}.tag-badge:hover{filter:brightness(0.92);transform:translateY(-1px)}.tag-badge.active{box-shadow:0 0 0 0.25rem rgba(13,110,253,0.25);filter:brightness(0.85)}.card-tags{display:flex;flex-wrap:wrap;gap:0.25rem;margin-top:var(--spacing-sm);padding-top:0}.post-tags{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:var(--spacing-sm)}.tag-filter{background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-xl)}.tag-filter-label{font-weight:600;font-size:0.875rem;color:var(--color-text);margin-bottom:var(--spacing-sm)}.tag-filter-list{display:flex;flex-wrap:wrap;gap:0.5rem}.footer{background-color:var(--color-background-alt);border-top:1px solid var(--color-border);padding:var(--spacing-2xl) 0 var(--spacing-lg);margin-top:auto}.footer-content{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.footer-section h3{font-size:1.125rem;margin-bottom:var(--spacing-sm)}.footer-section h4{font-size:0.875rem;text-transform:uppercase;letter-spacing:0.5px;color:var(--color-text-light);margin-bottom:var(--spacing-sm)}.footer-section p{color:var(--color-text-light);font-size:0.875rem;margin-bottom:0}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-xs)}.footer-section ul li a{color:var(--color-text-light);font-size:0.875rem;transition:color 0.2s ease}.footer-section ul li a:hover{color:var(--color-primary)}.footer-bottom{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.footer-bottom p{color:var(--color-text-light);font-size:0.875rem;margin:0}.comments-section{margin-top:var(--spacing-2xl);padding-top:var(--spacing-2xl);border-top:2px solid var(--color-border)}.comments-title{font-size:1.75rem;margin-bottom:var(--spacing-xl);color:var(--color-text)}.no-comments{color:var(--color-text-light);text-align:center;padding:var(--spacing-xl) 0;font-style:italic}.pending-comments-notice{background-color:#fff3cd;border:1px solid #ffc107;border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);text-align:center}.pending-comments-notice p{margin:0;color:#856404;font-size:0.875rem}.comments-list{margin-bottom:var(--spacing-2xl)}.comment{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.comment-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.comment-author{font-weight:600;color:var(--color-text)}.comment-date{font-size:0.875rem;color:var(--color-text-light)}.comment-content{color:var(--color-text-light);line-height:1.6;margin-bottom:var(--spacing-md)}.comment-actions{display:flex;gap:var(--spacing-md)}.btn-link{background:none;border:none;color:var(--color-primary);font-size:0.875rem;font-weight:500;cursor:pointer;padding:0;transition:color 0.2s ease}.btn-link:hover{color:var(--color-primary-hover);text-decoration:underline}.delete-btn{color:#dc3545}.delete-btn:hover{color:#bb2d3b}.comment-replies{margin-top:var(--spacing-lg);margin-left:var(--spacing-xl);padding-left:var(--spacing-lg);border-left:2px solid var(--color-border)}.reply-form-container{margin-top:var(--spacing-md)}.comment-form-section{margin-top:var(--spacing-2xl);padding:var(--spacing-xl);background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.comment-form-title{font-size:1.25rem;margin-bottom:var(--spacing-lg);color:var(--color-text)}.comment-form{width:100%}.comment-form-fields{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column}.form-label{font-weight:600;margin-bottom:var(--spacing-xs);color:var(--color-text);font-size:0.875rem}.form-input,.form-textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;transition:all 0.2s ease;background-color:var(--color-background);color:var(--color-text)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(13,110,253,0.1)}.form-textarea{resize:vertical;min-height:100px;line-height:1.5}.form-hint{font-size:0.75rem;color:var(--color-text-light);margin-top:var(--spacing-xs)}.form-actions{display:flex;gap:var(--spacing-sm);align-items:center}.btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:500;font-size:0.875rem;cursor:pointer;transition:all 0.2s ease;border:none;text-decoration:none;display:inline-block}.btn-primary{background-color:var(--color-primary);color:white}.btn-primary:hover{background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-background);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-background-alt)}.cancel-reply{margin-left:var(--spacing-xs)}.site-stats-section{margin-top:var(--spacing-2xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);text-align:center}.site-stats{font-size:0.875rem;color:var(--color-text-light);display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.stat-separator{color:var(--color-text-lighter)}.stat-item strong{color:var(--color-text);font-weight:600}@media (max-width: 768px){.comment-replies{margin-left:var(--spacing-md);padding-left:var(--spacing-md)}.comments-title{font-size:1.5rem}.comment-form-section{padding:var(--spacing-md)}}.home-hero{display:flex;align-items:center;gap:var(--spacing-2xl);padding:var(--spacing-2xl) 0 var(--spacing-3xl);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-3xl)}.hero-avatar{width:140px;height:140px;border-radius:50%;object-fit:cover;border:3px solid var(--color-background);box-shadow:var(--shadow-lg);flex-shrink:0}.hero-content{flex:1;min-width:0}.hero-greeting{font-size:1.1rem;color:var(--color-text-light);margin-bottom:var(--spacing-xs)}.hero-name{font-size:2.75rem;font-weight:700;letter-spacing:-1px;line-height:1.1;margin-bottom:var(--spacing-xs)}.hero-role{font-size:1.15rem;font-weight:600;color:var(--color-primary);margin-bottom:var(--spacing-md)}.hero-bio{font-size:1.05rem;color:var(--color-text-light);max-width:620px;margin-bottom:var(--spacing-lg)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.section-head{text-align:center;margin-bottom:var(--spacing-xl)}.section-title{font-size:2rem;margin-bottom:var(--spacing-xs)}.section-subtitle{color:var(--color-text-light);font-size:1.05rem;margin-bottom:0}.section-foot{text-align:center;margin-top:var(--spacing-xl)}.link-more{font-weight:600}.featured-projects{margin-bottom:var(--spacing-3xl)}.latest-articles{margin-bottom:var(--spacing-2xl)}.more-articles{text-align:center;margin-top:var(--spacing-xl)}.blog-layout{display:grid;grid-template-columns:1fr 300px;gap:var(--spacing-2xl)}.page-title{font-size:2.5rem;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border)}.posts-list{display:flex;flex-direction:column;gap:var(--spacing-xl)}.post-item{padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all 0.2s ease}.post-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.post-link{color:inherit;text-decoration:none;display:block}.post-title{font-size:1.75rem;margin-bottom:var(--spacing-xs);color:var(--color-text)}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs) var(--spacing-md);margin-bottom:var(--spacing-md)}.post-date{font-size:0.875rem;color:var(--color-text-light)}.post-excerpt{color:var(--color-text-light);margin-bottom:var(--spacing-md)}.blog-sidebar{position:sticky;top:calc(var(--spacing-2xl) + 60px);align-self:start}.sidebar-section{background-color:var(--color-background-alt);padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.sidebar-title{font-size:1.25rem;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.archive-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.archive-year summary,.archive-month summary{cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-sm);font-weight:500;transition:background-color 0.2s ease;user-select:none}.archive-year summary:hover,.archive-month summary:hover{background-color:var(--color-background)}.archive-year{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-xs)}.archive-months{margin-top:var(--spacing-sm);padding-left:var(--spacing-md)}.archive-month{margin-bottom:var(--spacing-sm)}.archive-posts{list-style:none;padding-left:var(--spacing-md);margin-top:var(--spacing-sm)}.archive-posts li{margin-bottom:var(--spacing-xs)}.archive-posts li a{font-size:0.875rem;color:var(--color-text-light);transition:color 0.2s ease}.archive-posts li a:hover{color:var(--color-primary)}.post-content{max-width:800px;margin:0 auto}.post-header{text-align:center;margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border)}.post-header .post-title{font-size:2.5rem;margin-bottom:var(--spacing-md)}.post-header .post-meta{justify-content:center;color:var(--color-text-light);font-size:0.875rem}.post-header .post-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:0.5rem;margin-top:var(--spacing-md)}.markdown-content{font-size:1.125rem;line-height:1.8}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-md)}.markdown-content h1{font-size:2rem}.markdown-content h2{font-size:1.75rem}.markdown-content h3{font-size:1.5rem}.markdown-content p{margin-bottom:var(--spacing-lg)}.markdown-content ul,.markdown-content ol{margin-bottom:var(--spacing-lg);padding-left:var(--spacing-xl)}.markdown-content li{margin-bottom:var(--spacing-xs)}.markdown-content code{background-color:var(--color-background-alt);padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:0.875em;color:var(--color-primary)}.markdown-content pre{background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);overflow-x:auto;margin-bottom:var(--spacing-lg)}.markdown-content pre code{background-color:transparent;padding:0;color:var(--color-text);font-size:0.9rem}.markdown-content blockquote{border-left:4px solid var(--color-primary);padding-left:var(--spacing-lg);margin:var(--spacing-lg) 0;color:var(--color-text-light);font-style:italic}.markdown-content img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:var(--spacing-lg) 0}.markdown-content table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-lg);font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.markdown-content thead{background-color:var(--color-background-alt)}.markdown-content th,.markdown-content td{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);text-align:left;vertical-align:top}.markdown-content th{font-weight:600;color:var(--color-text)}.markdown-content tbody tr:nth-child(even){background-color:var(--color-background-alt)}.markdown-content a{color:var(--color-primary);text-decoration:underline}.markdown-content a:hover{color:var(--color-primary-hover)}.post-footer{margin-top:var(--spacing-3xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.back-link{color:var(--color-text-light);font-weight:500;transition:color 0.2s ease}.back-link:hover{color:var(--color-primary)}.pagination{display:flex;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-2xl);padding:var(--spacing-lg) 0}.pagination a,.pagination span{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);transition:all 0.2s ease}.pagination a:hover{border-color:var(--color-primary);background-color:var(--color-background-alt)}.pagination .current{background-color:var(--color-primary);color:white;border-color:var(--color-primary)}@media (max-width: 768px){.home-hero{flex-direction:column;text-align:center;gap:var(--spacing-lg);padding-top:var(--spacing-lg)}.markdown-content table{display:block;overflow-x:auto;white-space:nowrap}.hero-avatar{width:110px;height:110px}.hero-name{font-size:2rem}.hero-bio{font-size:1rem}.hero-actions{justify-content:center}.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.projects-grid{grid-template-columns:1fr}.articles-grid{grid-template-columns:1fr}.blog-layout{grid-template-columns:1fr}.blog-sidebar{position:static;margin-top:var(--spacing-2xl)}.navbar .container{flex-direction:column;gap:var(--spacing-md)}.footer-content{grid-template-columns:1fr}}
