.portfolio-page{min-height:100vh;padding:var(--spacing-xl) 0}.page-header{text-align:center;margin-bottom:var(--spacing-lg)}.page-header h1{font-size:3rem;margin-bottom:var(--spacing-sm);color:var(--color-text)}.page-header p{font-size:1.25rem}.empty-state,.page-header p{color:var(--color-text-light)}.empty-state{text-align:center;padding:var(--spacing-xl)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));grid-gap:var(--spacing-lg);gap:var(--spacing-lg)}.project-card{background:var(--color-background);border-radius:12px;overflow:hidden;border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.1)}.project-image{width:100%;height:250px;overflow:hidden;position:relative}.project-image img{width:100%;height:100%;object-fit:cover}.project-content{padding:var(--spacing-md);flex:1 1;display:flex;flex-direction:column}.project-content h3{font-size:1.5rem;margin-bottom:var(--spacing-sm);color:var(--color-text)}.project-description{color:var(--color-text-light);margin-bottom:var(--spacing-md);line-height:1.6;flex:1 1}.project-technologies{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.tech-tag{background:var(--color-background-alt);color:var(--color-text);padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.project-links{display:flex;gap:var(--spacing-sm);margin-top:auto}.project-link{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-primary);color:white;border-radius:6px;font-weight:600;transition:background .2s ease}.project-link:hover{background:var(--color-primary-dark);color:white}.project-link.secondary{background:var(--color-background-alt);color:var(--color-text)}.project-link.secondary:hover{background:var(--color-border)}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}.page-header h1{font-size:2rem}}