@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#fafafa;--bg-secondary:#f4f4f5;--fg:#09090b;--fg-muted:#71717a;--fg-subtle:#a1a1aa;--border:#e4e4e7;--accent:#18181b;--accent-hover:#3f3f46;--tag-bg:#f4f4f5;--tag-fg:#52525b;--radius:8px;--max-w:680px;--nav-h:60px;--transition:.2s ease;--font-mono:"JetBrains Mono", monospace;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a}[data-theme=dark]{--bg:#09090b;--bg-secondary:#111113;--fg:#fafafa;--fg-muted:#a1a1aa;--fg-subtle:#52525b;--border:#27272a;--accent:#fafafa;--accent-hover:#d4d4d8;--tag-bg:#18181b;--tag-fg:#a1a1aa;--shadow:0 1px 3px #0006, 0 1px 2px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;transition:background-color var(--transition), color var(--transition);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}@media (width<=640px){.container{padding:0 20px}}.page{min-height:calc(100vh - var(--nav-h));padding:64px 0 96px}h1{letter-spacing:-.03em;font-size:1.75rem;font-weight:600;line-height:1.2}h2{letter-spacing:-.02em;font-size:1.25rem;font-weight:600;line-height:1.3}h3{font-size:1rem;font-weight:500;line-height:1.4}p{color:var(--fg-muted);line-height:1.75}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-subtle);margin-bottom:20px;font-size:.7rem;font-weight:600}.navbar{z-index:100;height:var(--nav-h);background-color:var(--bg);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);transition:background-color var(--transition);position:sticky;top:0}.navbar .container{justify-content:space-between;align-items:center;height:100%;display:flex}.nav-logo{letter-spacing:-.02em;color:var(--fg);transition:opacity var(--transition);font-size:.9rem;font-weight:600}.nav-logo:hover{opacity:.7}.nav-links{align-items:center;gap:4px;display:flex}.nav-link{color:var(--fg-muted);border-radius:var(--radius);transition:color var(--transition), background-color var(--transition);padding:6px 10px;font-size:.85rem}.nav-link:hover{color:var(--fg);background-color:var(--bg-secondary)}.nav-link.active{color:var(--fg)}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:34px;height:34px;color:var(--fg-muted);transition:color var(--transition), border-color var(--transition), background-color var(--transition);background:0 0;justify-content:center;align-items:center;margin-left:8px;font-size:14px;display:flex}.theme-toggle:hover{color:var(--fg);background-color:var(--bg-secondary)}.footer{border-top:1px solid var(--border);padding:32px 0}.footer .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.footer-left{color:var(--fg-subtle);font-size:.8rem}.footer-links{gap:16px;display:flex}.footer-link{color:var(--fg-subtle);transition:color var(--transition);font-size:.8rem}.footer-link:hover{color:var(--fg)}.tag{font-family:var(--font-mono);background-color:var(--tag-bg);color:var(--tag-fg);white-space:nowrap;border-radius:4px;align-items:center;padding:3px 8px;font-size:.7rem;font-weight:500;display:inline-flex}.tags{flex-wrap:wrap;gap:6px;display:flex}.divider{border:none;border-top:1px solid var(--border);margin:40px 0}.btn{border-radius:var(--radius);border:1px solid var(--border);background-color:var(--bg-secondary);color:var(--fg);cursor:pointer;transition:background-color var(--transition), border-color var(--transition), opacity var(--transition);align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background-color:var(--border)}.btn-primary{background-color:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-primary:hover{background-color:var(--accent-hover);border-color:var(--accent-hover)}.home-hero{margin-bottom:64px}.home-hero h1{margin-bottom:12px}.home-hero .subtitle{color:var(--fg-muted);margin-bottom:28px;font-size:1rem;line-height:1.7}.hero-ctas{flex-wrap:wrap;gap:10px;display:flex}.home-section{margin-bottom:56px}.home-section-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.home-section-header a{color:var(--fg-muted);transition:color var(--transition);font-size:.8rem}.home-section-header a:hover{color:var(--fg)}.article-item{border-bottom:1px solid var(--border);transition:opacity var(--transition);justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;display:flex}.article-item:first-child{border-top:1px solid var(--border)}.article-item:hover{opacity:.75}.article-item-title{color:var(--fg);font-size:.9rem;font-weight:500}.article-item-meta{color:var(--fg-subtle);white-space:nowrap;font-size:.78rem;font-family:var(--font-mono)}.project-card{border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition), box-shadow var(--transition);background-color:var(--bg);margin-bottom:12px;padding:20px}.project-card:hover{border-color:var(--fg-subtle);box-shadow:var(--shadow)}.project-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.project-card h3{color:var(--fg);font-size:.9rem;font-weight:600}.project-card p{margin-bottom:14px;font-size:.85rem}.project-links{gap:10px;margin-top:14px;display:flex}.project-link{color:var(--fg-muted);transition:color var(--transition);align-items:center;gap:4px;font-size:.78rem;display:flex}.project-link:hover{color:var(--fg)}.projects-grid{flex-direction:column;gap:0;display:flex}.filter-tabs{flex-wrap:wrap;gap:6px;margin-bottom:28px;display:flex}.filter-tab{border:1px solid var(--border);color:var(--fg-muted);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:4px;padding:5px 12px;font-family:inherit;font-size:.78rem}.filter-tab:hover{color:var(--fg)}.filter-tab.active{background-color:var(--accent);color:var(--bg);border-color:var(--accent)}.writing-list{flex-direction:column;display:flex}.writing-card{border-bottom:1px solid var(--border);transition:opacity var(--transition);padding:20px 0}.writing-card:first-child{border-top:1px solid var(--border)}.writing-card:hover{opacity:.75}.writing-card-title{color:var(--fg);margin-bottom:4px;font-size:1rem;font-weight:500}.writing-card-excerpt{color:var(--fg-muted);margin-bottom:10px;font-size:.85rem}.writing-card-meta{color:var(--fg-subtle);font-size:.75rem;font-family:var(--font-mono);gap:12px;display:flex}.article-back{color:var(--fg-muted);transition:color var(--transition);align-items:center;gap:6px;margin-bottom:40px;font-size:.82rem;display:inline-flex}.article-back:hover{color:var(--fg)}.article-header{margin-bottom:40px}.article-header h1{margin-bottom:12px}.article-header-meta{color:var(--fg-subtle);font-size:.78rem;font-family:var(--font-mono);gap:16px;display:flex}.article-body{line-height:1.8}.article-body h1,.article-body h2,.article-body h3{color:var(--fg);margin:36px 0 12px}.article-body h2{font-size:1.15rem}.article-body h3{font-size:.95rem}.article-body p{color:var(--fg-muted);margin-bottom:18px}.article-body a{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.article-body ul,.article-body ol{color:var(--fg-muted);margin:0 0 18px 20px}.article-body li{margin-bottom:6px;line-height:1.7}.article-body code{font-family:var(--font-mono);background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:.82em}.article-body pre{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 18px;padding:20px;overflow-x:auto}.article-body pre code{background:0 0;border:none;padding:0;font-size:.83rem;line-height:1.6}.article-body blockquote{border-left:3px solid var(--border);color:var(--fg-muted);margin:0 0 18px;padding-left:16px;font-style:italic}.article-body hr{border:none;border-top:1px solid var(--border);margin:32px 0}.about-intro{margin-bottom:48px}.about-intro h1{margin-bottom:16px}.about-intro p{font-size:.95rem}.timeline{position:relative}.timeline-item{padding:0 0 36px}.timeline-item:last-child{padding-bottom:0}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.timeline-role{color:var(--fg);font-size:.9rem;font-weight:600}.timeline-period{color:var(--fg-subtle);font-size:.75rem;font-family:var(--font-mono);white-space:nowrap}.timeline-company{color:var(--fg-muted);margin-bottom:12px;font-size:.82rem}.timeline-bullets{padding:0;list-style:none}.timeline-bullets li{color:var(--fg-muted);padding:4px 0 4px 14px;font-size:.85rem;line-height:1.65;position:relative}.timeline-bullets li:before{content:"—";color:var(--fg-subtle);position:absolute;left:0}.skills-grid{gap:20px;display:grid}.skill-group-title{color:var(--fg);margin-bottom:10px;font-size:.8rem;font-weight:600}.skill-chips{flex-wrap:wrap;gap:6px;display:flex}.status-dot{color:var(--fg-muted);align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.dot{background-color:#22c55e;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@media (width<=640px){:root{--nav-h:56px}h1{font-size:1.5rem}h2{font-size:1.15rem}.page{padding:40px 0 64px}.navbar .container{padding:0 16px}.nav-logo{font-size:.85rem}.nav-links{gap:2px}.nav-link{padding:6px 8px;font-size:.78rem}.theme-toggle{width:32px;height:32px;margin-left:4px}.home-hero{margin-bottom:40px}.hero-ctas{gap:8px}.btn{flex:140px;justify-content:center;padding:10px 14px;font-size:.8rem}.project-card{padding:16px}.timeline-header{flex-direction:column;gap:4px}.timeline-period{order:-1;margin-bottom:2px}.footer .container{flex-direction:column;align-items:flex-start;gap:20px}.footer-links{justify-content:flex-start;gap:20px;width:100%}}@media (width<=400px){.nav-links{background:var(--bg);border:1px solid var(--border);z-index:1000;border-radius:100px;justify-content:center;gap:4px;padding:8px;position:fixed;bottom:20px;left:20px;right:20px;box-shadow:0 10px 20px #0000001a}.nav-link{padding:10px 12px;font-size:.85rem}[data-theme=dark] .nav-links{box-shadow:0 10px 30px #00000080}.navbar .nav-links{display:none}.navbar .theme-toggle{position:absolute;top:12px;right:16px}.page{padding-bottom:120px}}
