.article-card{padding:20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s ease;display:flex;flex-direction:column;gap:12px}.article-card:hover{border-color:var(--border-subtle)}.article-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.article-header-left{display:flex;align-items:center;gap:10px}.article-author-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.article-author-info{display:flex;flex-direction:column;gap:2px}.article-author-name{font-size:13px;font-weight:500;color:var(--text)}.article-author-meta{font-size:11px;color:var(--text-tertiary)}.article-title{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--text);line-height:1.4;letter-spacing:-.01em}.article-description{font-size:13px;line-height:1.6;color:var(--text-secondary)}.article-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:11px;color:var(--accent);padding:2px 8px;border-radius:4px;background:var(--accent-muted)}.article-footer{display:flex;gap:20px;padding-top:12px;border-top:1px solid var(--border);color:var(--text-tertiary);font-size:12px}.metric{display:flex;align-items:center;gap:5px}.metric svg{width:14px;height:14px;fill:currentColor}.article-list{display:flex;flex-direction:column;gap:12px}.theme-toggle{position:fixed;top:20px;right:20px;z-index:100;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;transition:color .15s ease,border-color .15s ease}.theme-toggle:hover{color:var(--text);border-color:var(--border-subtle)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repo-stars{white-space:nowrap}.header{padding:24px 0 56px}.header-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:64px}.header-nav-name{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.02em}.view-toggle{display:flex;gap:2px;padding:3px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.view-toggle-btn{font-family:var(--font-mono);font-size:12px;font-weight:500;padding:6px 14px;border:none;border-radius:4px;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:color .15s ease,background-color .15s ease}.view-toggle-btn:hover{color:var(--text-secondary)}.view-toggle-btn.active{background:var(--accent-muted);color:var(--accent)}.hero-eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--text-tertiary);text-transform:lowercase;letter-spacing:.08em;margin-bottom:12px}.hero-name{font-family:var(--font-sans);font-size:clamp(32px,6vw,44px);font-weight:700;letter-spacing:-.03em;line-height:1.1;color:var(--text);margin-bottom:16px}.hero-tagline{font-size:15px;line-height:1.75;color:var(--text-secondary);width:100%;margin-bottom:8px}.hero-accent{color:var(--accent);font-weight:500}.hero-link{text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}.hero-link:hover{border-bottom-color:var(--accent)}.hero-location{font-size:13px;color:var(--text-tertiary);margin-bottom:28px}.hero-links{display:flex;align-items:center;gap:12px;font-size:13px}.hero-links-sep{color:var(--border-subtle)}@media (max-width: 640px){.header{padding:16px 0 40px}.header-nav{margin-bottom:48px}}.about-link{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}.about-link:hover{border-bottom-color:var(--accent)}.experience-list{display:flex;flex-direction:column;gap:32px}.experience-item{display:grid;grid-template-columns:140px 1fr;gap:24px;padding-bottom:32px;border-bottom:1px solid var(--border)}.experience-item:last-child{padding-bottom:0;border-bottom:none}.experience-duration{font-size:12px;color:var(--text-tertiary);line-height:1.5;white-space:nowrap}.experience-role{font-family:var(--font-sans);font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px}.experience-company{font-size:13px;color:var(--accent);margin-bottom:12px}.experience-description{font-size:13px;line-height:1.7;color:var(--text-secondary)}.experience-highlights{list-style:none;display:flex;flex-direction:column;gap:8px}.experience-highlights li{font-size:13px;line-height:1.65;color:var(--text-secondary);padding-left:14px;position:relative}.experience-highlights li:before{content:"–";position:absolute;left:0;color:var(--text-tertiary)}@media (max-width: 640px){.experience-item{grid-template-columns:1fr;gap:8px}}.skills-groups{display:flex;flex-direction:column;gap:24px}.skill-group-label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-tertiary);text-transform:lowercase;letter-spacing:.06em;margin-bottom:10px}.skills-grid{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,color .15s ease}.skill-tag:hover{border-color:var(--border-subtle);color:var(--text)}.skill-icon{width:14px;height:14px;opacity:.85}.project-card{padding:14px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .15s ease;height:100%;display:flex;flex-direction:column}.project-card:hover{border-color:var(--border-subtle)}.project-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.project-card-title{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.3;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.project-active-badge{font-family:var(--font-mono);font-size:9px;font-weight:500;text-transform:lowercase;color:var(--accent);background:var(--accent-muted);padding:2px 6px;border-radius:4px;letter-spacing:.04em}.project-stars{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--text-tertiary);text-decoration:none;flex-shrink:0;transition:color .15s ease;cursor:pointer;white-space:nowrap}.project-stars:hover{color:var(--accent)}.project-card-description{font-size:11px;line-height:1.55;color:var(--text-secondary);margin-bottom:12px;flex:1;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.project-badges{display:flex;gap:6px;margin-bottom:10px}.project-badges img{height:16px}.project-links{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:auto}.project-link{font-size:11px;color:var(--accent);text-decoration:none;transition:color .15s ease;cursor:pointer}.project-link:hover{color:var(--accent-hover)}.project-link-icon{width:11px;height:11px;margin-right:3px;vertical-align:middle}.project-rating{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--text-tertiary)}.project-rating-count{opacity:.75}.projects-category+.projects-category{margin-top:40px}.projects-category-title{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--text-tertiary);text-transform:lowercase;letter-spacing:.04em;margin-bottom:16px}.projects-category-icon{width:14px;height:14px;opacity:.7}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 640px){.projects-grid{grid-template-columns:1fr;gap:12px}}.interests-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.interest-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding:6px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.interest-icon{font-size:13px;line-height:1}.footer{margin-top:80px;padding-top:24px;border-top:1px solid var(--border);text-align:center;font-size:12px;color:var(--text-tertiary)}:root{--bg: #09090b;--bg-elevated: #18181b;--bg-subtle: #27272a;--text: #fafafa;--text-secondary: #a1a1aa;--text-tertiary: #71717a;--border: #27272a;--border-subtle: #3f3f46;--accent: #00add8;--accent-muted: rgba(0, 173, 216, .12);--accent-hover: #33bddf;--font-sans: "Space Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius: 6px;--radius-lg: 10px;--site-width: 70%;--section-gap: 72px}body.light{--bg: #fafafa;--bg-elevated: #ffffff;--bg-subtle: #f4f4f5;--text: #09090b;--text-secondary: #52525b;--text-tertiary: #71717a;--border: #e4e4e7;--border-subtle: #d4d4d8;--accent-muted: rgba(0, 173, 216, .08)}*{margin:0;padding:0;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.view-section{width:100%}@media (prefers-reduced-motion: no-preference){.view-section{animation:fadeIn .25s ease-out forwards}}body{font-family:var(--font-mono);font-size:14px;line-height:1.7;background:var(--bg);color:var(--text);transition:background-color .2s ease,color .2s ease;-webkit-font-smoothing:antialiased}.site{min-height:100vh;display:flex;flex-direction:column}.container{width:var(--site-width);max-width:1200px;margin:0 auto;padding:0 24px 80px}.main{display:flex;flex-direction:column;gap:var(--section-gap)}.section{scroll-margin-top:80px}.section-label{display:flex;align-items:center;gap:12px;margin-bottom:24px}.section-number{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--accent);letter-spacing:.05em}.section-title{font-family:var(--font-sans);font-size:20px;font-weight:600;color:var(--text);letter-spacing:-.02em}.section-divider{flex:1;height:1px;background:var(--border)}.section-body{color:var(--text-secondary);font-size:15px;line-height:1.75;width:100%}.section-body p+p{margin-top:16px}.external-link{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);text-decoration:none;transition:color .15s ease;cursor:pointer}.external-link:hover{color:var(--accent)}.external-link svg{width:12px;height:12px;opacity:.6}.loading{color:var(--text-tertiary);font-size:13px;padding:40px 0;text-align:center}@media (max-width: 640px){.container{width:92%;padding:0 16px 60px}:root{--section-gap: 56px}}
