:root{--primary-color: #3b82f6;--primary-dark: #1d4ed8;--primary-light: #60a5fa;--primary-gradient: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);--secondary-color: #64748b;--secondary-dark: #475569;--secondary-light: #94a3b8;--accent-color: #10b981;--accent-dark: #059669;--accent-light: #34d399;--text-primary: #1f2937;--text-secondary: #6b7280;--text-muted: #9ca3af;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--bg-code: #f3f4f6;--bg-hover: #f3f4f6;--border-color: #e5e7eb;--border-dark: #d1d5db;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--font-family-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--font-family-mono: 'JetBrains Mono', 'Fira Code', Consolas, 'Monaco', monospace;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-xs: 0.25rem;--space-sm: 0.5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--container-max-width: 1200px;--content-max-width: 800px;--border-radius: 0.5rem;--border-radius-lg: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--transition-fast: 150ms ease-in-out;--transition-normal: 250ms ease-in-out;--transition-slow: 350ms ease-in-out}@media (prefers-color-scheme: dark){:root{--text-primary: #f9fafb;--text-secondary: #d1d5db;--text-muted: #9ca3af;--bg-primary: #111827;--bg-secondary: #1f2937;--bg-code: #374151;--bg-hover: #374151;--border-color: #374151;--border-dark: #4b5563}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--space-md);color:var(--text-primary)}h1{font-size:var(--font-size-4xl);margin-bottom:var(--space-lg)}h2{font-size:var(--font-size-3xl);margin-top:var(--space-2xl);margin-bottom:var(--space-lg)}h3{font-size:var(--font-size-2xl);margin-top:var(--space-xl)}h4{font-size:var(--font-size-xl);margin-top:var(--space-lg)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-lg);color:var(--text-secondary);line-height:var(--line-height-relaxed)}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark);text-decoration:underline}strong,b{font-weight:var(--font-weight-semibold);color:var(--text-primary)}em,i{font-style:italic}ul,ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl)}li{margin-bottom:var(--space-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}ul li{list-style-type:disc}ol li{list-style-type:decimal}code{font-family:var(--font-family-mono);font-size:0.9em;background-color:var(--bg-code);padding:0.2em 0.4em;border-radius:0.25rem;color:var(--text-primary)}pre{font-family:var(--font-family-mono);background-color:var(--bg-code);padding:var(--space-lg);border-radius:var(--border-radius);overflow-x:auto;margin-bottom:var(--space-lg);border:1px solid var(--border-color)}pre code{background:none;padding:0;color:inherit}blockquote{border-left:4px solid var(--primary-color);padding-left:var(--space-lg);margin:var(--space-xl) 0;font-style:italic;color:var(--text-secondary);background-color:var(--bg-secondary);padding:var(--space-lg);border-radius:var(--border-radius)}blockquote p{margin-bottom:0}table{width:100%;border-collapse:collapse;margin-bottom:var(--space-lg);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}th,td{padding:var(--space-md);text-align:left;border-bottom:1px solid var(--border-color)}th{background-color:var(--bg-secondary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}tr:last-child td{border-bottom:none}tr:hover{background-color:var(--bg-hover)}img{max-width:100%;height:auto;border-radius:var(--border-radius)}hr{border:none;height:1px;background-color:var(--border-color);margin:var(--space-2xl) 0}.btn{display:inline-block;padding:var(--space-md) var(--space-lg);border-radius:var(--border-radius);font-weight:var(--font-weight-medium);text-decoration:none;transition:all var(--transition-fast);border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:var(--font-size-base)}.btn-primary{background:var(--primary-gradient);color:white !important;box-shadow:var(--shadow-md);border:none}.btn-primary:hover{background:linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);text-decoration:none;color:white !important;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-secondary{background-color:var(--secondary-color);color:white !important}.btn-secondary:hover{background-color:var(--secondary-dark);text-decoration:none;color:white !important}.btn-outline{background-color:transparent;color:var(--primary-color);border-color:var(--primary-color)}.btn-outline:hover{background-color:var(--primary-color);color:white;text-decoration:none}ul,ol,li{list-style:none !important;list-style-type:none !important}ul::before,ol::before,li::before{display:none !important}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--space-lg)}.main-content{min-height:calc(100vh - 200px);padding:var(--space-2xl) 0}.site-header{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:var(--space-lg) 0;position:sticky;top:0;z-index:100;backdrop-filter:blur(10px)}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-lg)}.site-branding{flex:1}.site-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);text-decoration:none}.site-title:hover{color:var(--primary-color);text-decoration:none}.site-tagline{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-xs);margin-bottom:0}.main-navigation{display:flex;align-items:center}.nav-menu{display:flex;list-style:none !important;list-style-type:none !important;margin:0 !important;padding:0 !important;gap:var(--space-lg)}.nav-item{list-style:none !important;list-style-type:none !important;margin:0 !important;padding:0 !important}.nav-item::before{display:none !important}.nav-link{color:var(--text-secondary);font-weight:var(--font-weight-medium);padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius);transition:all var(--transition-fast)}.nav-link:hover{color:var(--primary-color);background-color:var(--bg-hover);text-decoration:none}.nav-link.active{color:white !important;background:var(--primary-gradient);text-decoration:none;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.mobile-menu-toggle{display:none;flex-direction:column;background:none;border:none;cursor:pointer;padding:var(--space-sm);gap:4px;border-radius:var(--border-radius);transition:all var(--transition-fast)}.mobile-menu-toggle:hover{background-color:var(--bg-hover)}.mobile-menu-toggle span{width:24px;height:3px;background-color:var(--text-primary);transition:all var(--transition-fast);border-radius:2px}.mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:99}.mobile-nav-menu{list-style:none !important;list-style-type:none !important;margin:0 !important;padding:0 !important}.mobile-nav-item{list-style:none !important;list-style-type:none !important;margin:0 !important;padding:0 !important}.mobile-nav-item::before{display:none !important}.mobile-nav-link{display:block;padding:var(--space-lg) var(--space-xl);color:var(--text-secondary);font-weight:var(--font-weight-medium);border-bottom:1px solid var(--border-color);transition:all var(--transition-fast)}.mobile-nav-link:last-child{border-bottom:none}.mobile-nav-link:hover{color:var(--primary-color);background-color:var(--bg-hover);text-decoration:none;padding-left:calc(var(--space-xl) + var(--space-sm))}.mobile-nav-link.active{color:white !important;background:var(--primary-gradient);text-decoration:none}.site-footer{background:linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);border-top:1px solid var(--border-color);padding:var(--space-3xl) 0 var(--space-lg);margin-top:var(--space-3xl);position:relative}.site-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--primary-gradient)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-2xl);margin-bottom:var(--space-2xl)}.footer-col{display:flex;flex-direction:column}.footer-heading{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-lg) 0;line-height:1.2}.footer-description{color:var(--text-secondary);line-height:1.6;margin:0;font-size:var(--font-size-base)}.footer-links-container{display:flex;flex-direction:column;gap:var(--space-sm)}.footer-nav-link{color:var(--text-secondary);text-decoration:none;padding:var(--space-xs) 0;display:inline-block;transition:all var(--transition-fast);border-radius:var(--border-radius-sm)}.footer-nav-link:hover{color:var(--primary-color);transform:translateX(6px)}.social-icons-container{display:flex;gap:var(--space-md);margin-top:var(--space-sm)}.social-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);text-decoration:none;transition:all var(--transition-fast)}.social-icon:hover{background:var(--primary-color);border-color:var(--primary-color);color:white;transform:translateY(-2px)}.social-icon svg{fill:currentColor}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-lg);border-top:1px solid var(--border-color);flex-wrap:wrap;gap:var(--space-md)}.footer-copyright p,.footer-credits p{font-size:var(--font-size-sm);color:var(--text-muted);margin:0;line-height:1.4}.footer-credits a{color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast)}.footer-credits a:hover{color:var(--primary-color)}@media (max-width: 768px){.footer-grid{grid-template-columns:1fr;gap:var(--space-xl);text-align:center}.footer-nav-link:hover{transform:none;color:var(--primary-color)}.social-icons-container{justify-content:center}.footer-bottom{flex-direction:column;text-align:center;gap:var(--space-sm)}}@media (max-width: 480px){.footer-grid{gap:var(--space-lg)}.footer-heading{font-size:var(--font-size-md);margin-bottom:var(--space-md)}}.home-hero{background:linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);padding:var(--space-3xl) 0;text-align:center}.hero-content{max-width:var(--content-max-width);margin:0 auto}.hero-title{font-size:var(--font-size-4xl);margin-bottom:var(--space-lg);color:var(--text-primary)}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--space-2xl)}.hero-stats{margin-bottom:var(--space-xl)}.hero-stats img{max-width:100%;height:auto;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg)}.hero-actions{display:flex;justify-content:center;gap:var(--space-lg);flex-wrap:wrap;margin-top:var(--space-xl)}.hero-link{padding:var(--space-md) var(--space-lg);background-color:var(--primary-color);color:white !important;border-radius:var(--border-radius);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);text-decoration:none}.hero-link:hover{background-color:var(--primary-dark);text-decoration:none;color:white !important;transform:translateY(-2px)}.section-title{font-size:var(--font-size-3xl);text-align:center;margin-bottom:var(--space-2xl);color:var(--text-primary)}.recent-posts{padding:var(--space-3xl) 0}.home-about{background-color:var(--bg-secondary);padding:var(--space-3xl) 0}.about-content{max-width:var(--content-max-width);margin:0 auto;text-align:center}.posts-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:var(--space-2xl);margin-bottom:var(--space-2xl)}.post-card{background-color:var(--bg-primary);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:all var(--transition-normal);border:1px solid var(--border-color);position:relative}.post-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--primary-gradient);transform:scaleX(0);transition:transform var(--transition-normal)}.post-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,0.1)}.post-card:hover::before{transform:scaleX(1)}.post-card-image{width:100%;height:200px;overflow:hidden}.post-card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.post-card:hover .post-card-image img{transform:scale(1.05)}.post-card-content{padding:var(--space-xl)}.post-card-title{margin-bottom:var(--space-md)}.post-card-title a{color:var(--text-primary);text-decoration:none;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.post-card-title a:hover{color:var(--primary-color)}.post-card-meta{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.post-card-meta time{font-size:var(--font-size-sm);color:var(--text-muted)}.post-card-tags{display:flex;gap:var(--space-sm);flex-wrap:wrap}.post-card-excerpt{color:var(--text-secondary);margin-bottom:var(--space-lg);line-height:var(--line-height-relaxed)}.read-more{color:var(--primary-color);font-weight:var(--font-weight-medium);text-decoration:none;transition:color var(--transition-fast)}.read-more:hover{color:var(--primary-dark);text-decoration:underline}.tag,.tag-link{display:inline-block;background:rgba(255,255,255,0.2);color:white !important;padding:var(--space-xs) var(--space-md);border-radius:20px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-decoration:none;transition:all var(--transition-fast);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.3)}.tag-link:hover,.tag:hover{background:rgba(255,255,255,0.3);color:white !important;text-decoration:none;transform:translateY(-1px)}.post{max-width:var(--content-max-width);margin:0 auto;background:var(--bg-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.post-header{text-align:center;margin-bottom:var(--space-3xl);padding:var(--space-2xl) var(--space-xl);background:var(--primary-gradient);color:white;position:relative}.post-header::after{content:'';position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:20px solid var(--primary-color)}.post-title{font-size:var(--font-size-4xl);margin-bottom:var(--space-lg);color:white;text-shadow:0 2px 4px rgba(0,0,0,0.3);font-weight:var(--font-weight-bold)}.post-meta{display:flex;justify-content:center;align-items:center;gap:var(--space-lg);flex-wrap:wrap;color:rgba(255,255,255,0.9);font-size:var(--font-size-sm)}.post-date{font-size:var(--font-size-sm)}.post-author{font-size:var(--font-size-sm)}.post-tags{display:flex;gap:var(--space-sm);flex-wrap:wrap;justify-content:center}.post-featured-image{margin-bottom:var(--space-2xl);text-align:center}.post-featured-image img{width:100%;max-width:800px;height:auto;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg)}.post-content{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);padding:var(--space-2xl);margin-top:var(--space-xl)}.post-footer{margin-top:var(--space-3xl);padding-top:var(--space-2xl);border-top:1px solid var(--border-color)}.post-sharing{margin-bottom:var(--space-2xl)}.post-sharing h4{font-size:var(--font-size-lg);margin-bottom:var(--space-lg)}.share-buttons{display:flex;gap:var(--space-md);flex-wrap:wrap}.share-button{padding:var(--space-sm) var(--space-lg);border-radius:var(--border-radius);color:white;text-decoration:none;font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.share-button.twitter{background-color:#1da1f2}.share-button.linkedin{background-color:#0077b5}.share-button.email{background-color:var(--secondary-color)}.share-button:hover{transform:translateY(-2px);text-decoration:none;color:white}.post-tags-footer h4{font-size:var(--font-size-lg);margin-bottom:var(--space-lg)}.post-navigation{display:flex;justify-content:space-between;margin:var(--space-3xl) var(--space-2xl) var(--space-2xl);gap:var(--space-lg)}.prev-post,.next-post{flex:1;padding:var(--space-lg);background-color:var(--bg-secondary);border-radius:var(--border-radius-lg);text-decoration:none;color:var(--text-primary);transition:all var(--transition-fast);border:1px solid var(--border-color)}.prev-post:hover,.next-post:hover{background-color:var(--bg-hover);text-decoration:none;color:var(--text-primary)}.next-post{text-align:right}.nav-label{display:block;font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--space-sm)}.nav-title{display:block;font-weight:var(--font-weight-medium);color:var(--text-primary)}.blog-header{margin-bottom:var(--space-2xl)}.blog-search{display:flex;max-width:400px;margin:0 auto;gap:var(--space-sm)}.search-input{flex:1;padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base);background-color:var(--bg-primary);color:var(--text-primary)}.search-input:focus{outline:none;border-color:var(--primary-color)}.search-button{padding:var(--space-md) var(--space-lg);background-color:var(--primary-color);color:white;border:none;border-radius:var(--border-radius);cursor:pointer;font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast)}.search-button:hover{background-color:var(--primary-dark)}.post-preview{margin-bottom:var(--space-3xl)}.post-preview-header{margin-bottom:var(--space-lg)}.post-preview-title{font-size:var(--font-size-3xl);margin-bottom:var(--space-md)}.post-preview-title a{color:var(--text-primary);text-decoration:none}.post-preview-title a:hover{color:var(--primary-color)}.post-preview-meta{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap;color:var(--text-muted)}.post-preview-meta time{font-size:var(--font-size-sm)}.post-preview-tags{display:flex;gap:var(--space-sm);flex-wrap:wrap}.post-preview-image{margin-bottom:var(--space-lg)}.post-preview-image a{display:block}.post-preview-image img{width:100%;height:250px;object-fit:cover;border-radius:var(--border-radius-lg)}.post-preview-content{color:var(--text-secondary);line-height:var(--line-height-relaxed)}.read-more-link{display:inline-block;margin-top:var(--space-lg);color:var(--primary-color);font-weight:var(--font-weight-medium);text-decoration:none}.read-more-link:hover{color:var(--primary-dark);text-decoration:underline}.post-divider{margin:var(--space-3xl) 0}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%, 100%{transform:scale(1)}50%{transform:scale(1.05)}}.post-card{animation:fadeInUp 0.6s ease-out}.post-card:nth-child(2){animation-delay:0.1s}.post-card:nth-child(3){animation-delay:0.2s}.view-all-posts{text-align:center;margin-top:var(--space-2xl)}.no-posts,.no-posts-message{text-align:center;padding:var(--space-3xl);color:var(--text-secondary)}.page-content{max-width:var(--content-max-width);margin:0 auto}.page-header{text-align:center;margin-bottom:var(--space-2xl)}.page-title{font-size:var(--font-size-4xl);margin-bottom:var(--space-lg)}.page-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:0}.projects-section{margin:var(--space-3xl) 0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(350px, 1fr));gap:var(--space-2xl);margin-top:var(--space-2xl)}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);overflow:hidden;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.project-card-header{position:relative;overflow:hidden}.project-image{width:100%;height:250px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%)}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.project-card:hover .project-image img{transform:scale(1.05)}.project-preview-placeholder{background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);position:relative}.preview-loader{color:white;font-size:var(--font-size-sm);text-align:center;opacity:0.8}.preview-generated{width:100% !important;height:100% !important;object-fit:cover}.preview-language{position:absolute;top:var(--space-sm);right:var(--space-sm);background:rgba(0,0,0,0.7);color:white;padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:500}.project-card-content{padding:var(--space-xl)}.project-card-title{margin:0 0 var(--space-md) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:1.3}.project-card-title a{color:var(--text-primary);text-decoration:none;transition:color var(--transition-fast)}.project-card-title a:hover{color:var(--primary-color)}.project-card-description{color:var(--text-secondary);line-height:1.6;margin:0 0 var(--space-lg) 0;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-tech-stack{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-lg)}.tech-badge{background:var(--bg-primary);color:var(--text-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:500;border:1px solid var(--border-color)}.tech-more{background:var(--primary-color);color:white;border-color:var(--primary-color)}.project-card-footer{display:flex;justify-content:space-between;align-items:center}.project-links{display:flex;gap:var(--space-sm)}.project-link-sm{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);transition:all var(--transition-fast)}.project-link-sm:hover{background:var(--primary-color);border-color:var(--primary-color);color:white;transform:translateY(-1px)}.project-link-sm svg{fill:currentColor}.project-status{font-size:var(--font-size-xs);font-weight:600;padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius);text-transform:uppercase;letter-spacing:0.5px}.project-status-active{background:rgba(34,197,94,0.1);color:#22c55e;border:1px solid rgba(34,197,94,0.2)}.project-status-completed{background:rgba(59,130,246,0.1);color:#3b82f6;border:1px solid rgba(59,130,246,0.2)}.project-status-archived{background:rgba(156,163,175,0.1);color:#9ca3af;border:1px solid rgba(156,163,175,0.2)}.project-detail{padding:var(--space-2xl) 0}.project-header{text-align:center;margin-bottom:var(--space-3xl)}.project-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-md) 0;color:var(--text-primary)}.project-tagline{font-size:var(--font-size-lg);color:var(--text-secondary);margin:0 0 var(--space-xl) 0;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.6}.project-meta{display:flex;flex-direction:column;gap:var(--space-lg);align-items:center}.tech-stack{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;justify-content:center}.meta-label{font-weight:600;color:var(--text-primary);margin-right:var(--space-sm)}.tech-tag{background:var(--primary-gradient);color:white;padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500}.project-links{display:flex;gap:var(--space-md)}.project-link{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);color:var(--text-primary);text-decoration:none;border:1px solid var(--border-color);border-radius:var(--border-radius);font-weight:500;transition:all var(--transition-fast)}.project-link:hover{background:var(--primary-color);border-color:var(--primary-color);color:white;transform:translateY(-2px);box-shadow:var(--shadow-md)}.project-link svg{fill:currentColor}.project-preview{margin-bottom:var(--space-3xl);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.project-image{width:100%;height:auto;display:block}.project-content{max-width:800px;margin:0 auto var(--space-3xl);line-height:1.8}.project-content h2,.project-content h3{margin-top:var(--space-2xl);margin-bottom:var(--space-lg)}.project-features{background:var(--bg-secondary);padding:var(--space-2xl);border-radius:var(--border-radius-lg);border:1px solid var(--border-color)}.project-features h3{margin-top:0;color:var(--text-primary)}.project-features ul{margin:var(--space-lg) 0 0 0;padding-left:var(--space-lg)}.project-features li{margin-bottom:var(--space-sm);line-height:1.6}.projects-page-header{text-align:center;margin-bottom:var(--space-3xl)}.projects-page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-md) 0;color:var(--text-primary)}.projects-page-description{font-size:var(--font-size-lg);color:var(--text-secondary);max-width:600px;margin:0 auto;line-height:1.6}.featured-projects{margin:var(--space-3xl) 0}.featured-projects-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2xl)}.featured-projects-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0;color:var(--text-primary)}.view-all-projects{color:var(--primary-color);text-decoration:none;font-weight:500;transition:color var(--transition-fast)}.view-all-projects:hover{color:var(--primary-dark);text-decoration:underline}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr;gap:var(--space-xl)}.project-card-content{padding:var(--space-lg)}.project-meta{align-items:stretch}.tech-stack,.project-links{justify-content:center}.featured-projects-header{flex-direction:column;gap:var(--space-md);text-align:center}}@media (max-width: 480px){.projects-grid{grid-template-columns:1fr}.project-card-content{padding:var(--space-md)}.project-links{flex-direction:column}.project-link{justify-content:center;text-align:center}}.highlight{background-color:var(--bg-code);border-radius:var(--border-radius);padding:var(--space-lg);overflow-x:auto;margin-bottom:var(--space-lg);border:1px solid var(--border-color)}.highlight pre{margin:0;padding:0;background:transparent;border:none}.highlight code{background:transparent;padding:0;border-radius:0;font-size:var(--font-size-sm)}.highlight .c{color:#6a737d;font-style:italic}.highlight .err{color:#cb2431}.highlight .k{color:#d73a49;font-weight:bold}.highlight .o{color:#032f62}.highlight .cm{color:#6a737d;font-style:italic}.highlight .cp{color:#d73a49;font-weight:bold}.highlight .c1{color:#6a737d;font-style:italic}.highlight .cs{color:#6a737d;font-weight:bold;font-style:italic}.highlight .gd{color:#cb2431;background-color:#ffeef0}.highlight .ge{font-style:italic}.highlight .gr{color:#cb2431}.highlight .gh{color:#005cc5;font-weight:bold}.highlight .gi{color:#22863a;background-color:#f0fff4}.highlight .go{color:#586069}.highlight .gp{color:#586069}.highlight .gs{font-weight:bold}.highlight .gu{color:#6f42c1;font-weight:bold}.highlight .gt{color:#cb2431}.highlight .kc{color:#005cc5;font-weight:bold}.highlight .kd{color:#d73a49;font-weight:bold}.highlight .kn{color:#d73a49;font-weight:bold}.highlight .kp{color:#d73a49;font-weight:bold}.highlight .kr{color:#d73a49;font-weight:bold}.highlight .kt{color:#d73a49;font-weight:bold}.highlight .m{color:#005cc5}.highlight .s{color:#032f62}.highlight .na{color:#6f42c1}.highlight .nb{color:#005cc5}.highlight .nc{color:#6f42c1;font-weight:bold}.highlight .no{color:#005cc5}.highlight .nd{color:#6f42c1;font-weight:bold}.highlight .ni{color:#005cc5}.highlight .ne{color:#cb2431;font-weight:bold}.highlight .nf{color:#6f42c1;font-weight:bold}.highlight .nl{color:#005cc5;font-weight:bold}.highlight .nn{color:#6f42c1;font-weight:bold}.highlight .nt{color:#22863a;font-weight:bold}.highlight .nv{color:#e36209}.highlight .ow{color:#d73a49;font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#005cc5}.highlight .mh{color:#005cc5}.highlight .mi{color:#005cc5}.highlight .mo{color:#005cc5}.highlight .sb{color:#032f62}.highlight .sc{color:#032f62}.highlight .sd{color:#032f62}.highlight .s2{color:#032f62}.highlight .se{color:#032f62}.highlight .sh{color:#032f62}.highlight .si{color:#005cc5}.highlight .sx{color:#032f62}.highlight .sr{color:#22863a}.highlight .s1{color:#032f62}.highlight .ss{color:#005cc5}.highlight .bp{color:#005cc5}.highlight .vc{color:#e36209}.highlight .vg{color:#e36209}.highlight .vi{color:#e36209}.highlight .il{color:#005cc5}@media (prefers-color-scheme: dark){.highlight .c{color:#8b949e;font-style:italic}.highlight .err{color:#f85149}.highlight .k{color:#ff7b72;font-weight:bold}.highlight .o{color:#79c0ff}.highlight .cm{color:#8b949e;font-style:italic}.highlight .cp{color:#ff7b72;font-weight:bold}.highlight .c1{color:#8b949e;font-style:italic}.highlight .cs{color:#8b949e;font-weight:bold;font-style:italic}.highlight .gd{color:#f85149;background-color:#67060c}.highlight .ge{font-style:italic}.highlight .gr{color:#f85149}.highlight .gh{color:#79c0ff;font-weight:bold}.highlight .gi{color:#56d364;background-color:#0d4429}.highlight .go{color:#8b949e}.highlight .gp{color:#8b949e}.highlight .gs{font-weight:bold}.highlight .gu{color:#d2a8ff;font-weight:bold}.highlight .gt{color:#f85149}.highlight .kc{color:#79c0ff;font-weight:bold}.highlight .kd{color:#ff7b72;font-weight:bold}.highlight .kn{color:#ff7b72;font-weight:bold}.highlight .kp{color:#ff7b72;font-weight:bold}.highlight .kr{color:#ff7b72;font-weight:bold}.highlight .kt{color:#ff7b72;font-weight:bold}.highlight .m{color:#79c0ff}.highlight .s{color:#a5d6ff}.highlight .na{color:#d2a8ff}.highlight .nb{color:#79c0ff}.highlight .nc{color:#d2a8ff;font-weight:bold}.highlight .no{color:#79c0ff}.highlight .nd{color:#d2a8ff;font-weight:bold}.highlight .ni{color:#79c0ff}.highlight .ne{color:#f85149;font-weight:bold}.highlight .nf{color:#d2a8ff;font-weight:bold}.highlight .nl{color:#79c0ff;font-weight:bold}.highlight .nn{color:#d2a8ff;font-weight:bold}.highlight .nt{color:#56d364;font-weight:bold}.highlight .nv{color:#ffa657}.highlight .ow{color:#ff7b72;font-weight:bold}.highlight .w{color:#6e7681}.highlight .mf{color:#79c0ff}.highlight .mh{color:#79c0ff}.highlight .mi{color:#79c0ff}.highlight .mo{color:#79c0ff}.highlight .sb{color:#a5d6ff}.highlight .sc{color:#a5d6ff}.highlight .sd{color:#a5d6ff}.highlight .s2{color:#a5d6ff}.highlight .se{color:#a5d6ff}.highlight .sh{color:#a5d6ff}.highlight .si{color:#79c0ff}.highlight .sx{color:#a5d6ff}.highlight .sr{color:#56d364}.highlight .s1{color:#a5d6ff}.highlight .ss{color:#79c0ff}.highlight .bp{color:#79c0ff}.highlight .vc{color:#ffa657}.highlight .vg{color:#ffa657}.highlight .vi{color:#ffa657}.highlight .il{color:#79c0ff}}@media (max-width: 768px){.container{padding:0 var(--space-md)}.site-header{padding:var(--space-md) 0}.header-content{flex-direction:row;align-items:center;justify-content:space-between}.site-branding{flex:none}.main-navigation{position:relative}.nav-menu{display:none}.mobile-menu-toggle{display:flex;position:relative;z-index:101}.mobile-menu.active{display:block}.hero-title,.page-title{font-size:var(--font-size-3xl)}.section-title{font-size:var(--font-size-2xl)}.post-title{font-size:var(--font-size-3xl)}.post-preview-title{font-size:var(--font-size-2xl)}.main-content{padding:var(--space-xl) 0}.home-hero{padding:var(--space-2xl) 0}.recent-posts,.home-about{padding:var(--space-2xl) 0}.posts-grid{grid-template-columns:1fr;gap:var(--space-xl)}.footer-content{grid-template-columns:1fr;gap:var(--space-xl)}.footer-bottom{flex-direction:column;text-align:center}.post-navigation{flex-direction:column}.prev-post,.next-post{text-align:left}.post-meta,.post-preview-meta{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.post-card-meta{flex-direction:column;align-items:flex-start}.hero-actions{flex-direction:column;align-items:center}.hero-actions .btn{width:200px;text-align:center}.share-buttons{justify-content:center}.blog-search{flex-direction:column;max-width:100%}table{font-size:var(--font-size-sm)}th,td{padding:var(--space-sm)}.highlight{padding:var(--space-md)}pre{padding:var(--space-md)}}@media (min-width: 769px) and (max-width: 1024px){.posts-grid{grid-template-columns:repeat(2, 1fr)}.footer-content{grid-template-columns:repeat(2, 1fr)}.hero-title,.page-title{font-size:var(--font-size-4xl)}}@media (min-width: 1025px){.posts-grid{grid-template-columns:repeat(3, 1fr)}.footer-content{grid-template-columns:repeat(3, 1fr)}}@media (min-width: 1440px){:root{--container-max-width: 1400px;--content-max-width: 900px}}@media (max-width: 768px){.mobile-menu{max-height:0;overflow:hidden;transition:max-height var(--transition-normal) ease-in-out;opacity:0}.mobile-menu.active{max-height:400px;opacity:1}.mobile-menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(6px, 6px)}.mobile-menu-toggle.active span:nth-child(2){opacity:0;transform:scale(0)}.mobile-menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(6px, -6px)}}@media print{.site-header,.site-footer,.post-navigation,.post-sharing,.mobile-menu-toggle,.mobile-menu{display:none}body{font-size:12pt;line-height:1.4;color:black;background:white}.post,.page-content{max-width:none;margin:0}a{color:black;text-decoration:underline}.highlight{border:1px solid #ccc;background:#f5f5f5}}@media (prefers-contrast: high){:root{--border-color: #000000;--border-dark: #000000;--bg-code: #f0f0f0;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.2);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.2), 0 2px 4px -2px rgb(0 0 0 / 0.2);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.2), 0 4px 6px -4px rgb(0 0 0 / 0.2)}.btn{border-width:2px}}@media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}.post-card:hover{transform:none}.post-card:hover .post-card-image img{transform:none}.share-button:hover{transform:none}.hero-link:hover{transform:none}}
