.projects .section-subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl);max-width:600px}.projects-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.project-card{padding:var(--space-lg);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-lg);transition:all var(--transition-base);border:1px solid #ffffff1a;flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--gradient-accent);opacity:0;height:2px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.project-card:hover{border-color:#0ea5e94d;transform:translateY(-4px);box-shadow:0 12px 40px #0ea5e91a,0 4px 12px #0000000d}.project-card:hover:before{opacity:1}.project-card.featured{background:linear-gradient(135deg, #0ea5e90d 0%, var(--glass-bg) 50%, #a855f708 100%);border-color:#0ea5e933}.project-card.featured:before{opacity:.6}.project-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.project-category{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-primary);text-transform:uppercase;letter-spacing:.05em}.featured-badge{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-inverse);background:var(--gradient-accent);border-radius:var(--radius-full);font-weight:var(--font-medium);padding:2px 8px}.project-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-xs);line-height:var(--leading-snug)}.project-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-md);flex-grow:0}.project-tech{gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.tech-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-primary);border-radius:var(--radius-full);transition:all var(--transition-fast);background:#0ea5e91a;border:1px solid #0ea5e926;padding:4px 10px}.tech-tag:hover{background:#0ea5e926;border-color:#0ea5e94d}.project-demonstrates-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--accent-primary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-2xs) 0}.project-features{margin:0 0 var(--space-lg) 0;flex-grow:1;padding:0;list-style:none}.project-features li{font-size:var(--text-sm);color:var(--text-tertiary);padding:var(--space-2xs) 0;padding-left:var(--space-md);position:relative}.project-features li:before{content:"→";color:var(--accent-primary);font-family:var(--font-mono);font-size:var(--text-xs);opacity:.7;position:absolute;left:0}.project-footer{align-items:center;gap:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle);margin-top:auto;display:flex}.project-link{align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);text-decoration:none;display:inline-flex}.project-link:hover{color:var(--accent-primary);background:#0ea5e91a}.project-link svg{width:16px;height:16px}.project-link.demo{color:var(--accent-primary)}.project-stars{align-items:center;gap:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);display:inline-flex}.project-stars svg{color:#f59e0b;width:14px;height:14px}.projects-cta{margin-top:var(--space-2xl);justify-content:center;display:flex}.view-all-link{align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-sm) var(--space-lg);border:1px solid var(--border-default);border-radius:var(--radius-full);transition:all var(--transition-base);text-decoration:none;display:inline-flex}.view-all-link:hover{color:var(--accent-primary);border-color:var(--accent-primary);background:#0ea5e90d;transform:translateY(-2px)}.view-all-link svg{width:18px;height:18px}.projects-empty{color:var(--text-muted);text-align:center;padding:var(--space-xl);font-style:italic}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}.project-card{padding:var(--space-md)}.project-header{align-items:flex-start;gap:var(--space-xs);flex-direction:column}}@media (max-width:480px){.project-tech{gap:var(--space-2xs)}.tech-tag{padding:3px 8px;font-size:10px}.project-footer{flex-wrap:wrap}}
