:root,[data-theme=dark]{--bg-primary: #151515;--bg-secondary: #1a1a1a;--bg-surface: #202020;--text-primary: #eaeaea;--text-secondary: #999;--text-muted: #666;--accent: #4ec955;--accent-hover: #6edd74;--link: #63c0f5;--link-hover: #9dd5f5;--border: #333;--code-bg: #2b2c2f;--font-body: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--max-width: 720px;--space-xs: 0.5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 6rem}[data-theme=light]{--bg-primary: #fafafa;--bg-secondary: #f0f0f0;--bg-surface: #fff;--text-primary: #1a1a1a;--text-secondary: #555;--text-muted: #999;--accent: #2e8b34;--accent-hover: #256d2a;--link: #1a6fb5;--link-hover: #0d4f8b;--border: #ddd;--code-bg: #f0f0f0}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--link);text-decoration:none;transition:color .2s}a:hover{color:var(--link-hover)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md)}.main{min-height:calc(100vh - 160px)}.nav{position:sticky;top:0;z-index:100;background:var(--bg-primary);border-bottom:1px solid var(--border);padding:var(--space-sm) 0}.nav-inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md);display:flex;align-items:center;justify-content:space-between}.nav-brand{font-weight:700;font-size:1.2rem;text-decoration:none;color:var(--accent)}.nav-links{display:flex;gap:var(--space-md)}.nav-links a{text-decoration:none;color:var(--text-secondary);font-size:.85rem;transition:color .2s}.nav-links a:hover{color:var(--accent)}.nav-actions{display:flex;align-items:center;gap:var(--space-xs)}.theme-toggle{background:none;border:1px solid var(--border);border-radius:4px;padding:6px 8px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;transition:border-color .2s,color .2s}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}[data-theme=light] .icon-sun{display:none}[data-theme=light] .icon-moon{display:block}.page{padding:var(--space-lg) 0}.page-header{margin-bottom:var(--space-xs)}.page-header h1{font-size:1.8rem;font-weight:700;line-height:1.2;color:var(--accent);border-bottom:2px solid var(--accent);padding-bottom:var(--space-xs)}.page-subtitle{margin-top:var(--space-sm);color:var(--text-secondary);font-size:.95rem}.content h1{font-size:1.6rem;margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-weight:700;color:var(--accent)}.content h2{font-size:1.3rem;margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-weight:700;color:var(--text-primary);border-bottom:1px solid var(--border);padding-bottom:var(--space-xs)}.content h3{font-size:1rem;margin-top:var(--space-md);margin-bottom:var(--space-xs);font-weight:700}.content p{margin-bottom:var(--space-sm)}.content ul,.content ol{margin-bottom:var(--space-sm);padding-left:var(--space-md)}.content li{margin-bottom:var(--space-xs)}.content li::marker{color:var(--accent)}.content hr{border:none;border-top:1px solid var(--border);margin:var(--space-lg) 0}.content blockquote{border-left:3px dotted var(--accent);padding-left:var(--space-sm);color:var(--text-secondary);margin-bottom:var(--space-sm)}.content code{font-family:var(--font-mono);font-size:.9em;background:var(--code-bg);padding:2px 6px;border-radius:3px}.content pre{background:var(--code-bg);padding:var(--space-sm);border-radius:4px;overflow-x:auto;margin-bottom:var(--space-sm);border:1px solid var(--border)}.content pre code{background:none;padding:0}.content strong{font-weight:700;color:var(--text-primary)}.content em{color:var(--text-secondary)}.cv-page .btn-download{display:inline-block;margin-top:var(--space-sm);padding:8px 16px;border:1px solid var(--accent);border-radius:4px;text-decoration:none;font-size:.8rem;color:var(--accent);transition:all .2s}.cv-page .btn-download:hover{background:var(--accent);color:var(--bg-primary)}.blog-entry{padding:var(--space-sm) 0;border-bottom:1px solid var(--border)}.blog-entry:last-child{border-bottom:none}.blog-entry time{display:block;font-size:.8rem;color:var(--text-muted)}.blog-entry h2{font-size:1.1rem;margin-top:var(--space-xs)}.blog-entry h2 a{text-decoration:none;color:var(--text-primary)}.blog-entry h2 a:hover{color:var(--accent)}.blog-entry .blog-excerpt{margin-top:var(--space-xs);color:var(--text-secondary);font-size:.85rem}.tags{margin-top:var(--space-xs);display:flex;gap:var(--space-xs)}.tag{font-size:.7rem;color:var(--accent);border:1px solid var(--accent);padding:2px 8px;border-radius:3px}.post-header{margin-bottom:var(--space-sm)}.post-header time{font-size:.8rem;color:var(--text-muted)}.post-header h1{margin-top:var(--space-xs)}.post-header .reading-time{font-size:.8rem;color:var(--text-muted)}.pagination{display:flex;justify-content:space-between;padding:var(--space-md) 0;border-top:1px solid var(--border);margin-top:var(--space-md)}.pagination a{color:var(--text-secondary);font-size:.85rem}.pagination a:hover{color:var(--accent)}.footer{border-top:1px solid var(--border);padding:var(--space-md) 0;text-align:center;font-size:.75rem;color:var(--text-muted)}.footer .footer-meta{margin-top:var(--space-xs)}.nav-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:4px}.nav-toggle span{display:block;width:18px;height:2px;background:var(--text-secondary);transition:transform .2s,opacity .2s}.nav-toggle.active span:nth-child(1){transform:rotate(45deg) translate(4px, 4px)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(4px, -4px)}@media (max-width: 640px){:root{--space-xl: 3rem;--space-lg: 2rem}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg-primary);border-bottom:1px solid var(--border);flex-direction:column;padding:var(--space-sm) var(--space-md)}.nav-links.mobile-open{display:flex}.nav-links a{padding:var(--space-xs) 0}.nav-toggle{display:flex}.page-header h1{font-size:1.4rem}}