.projects-body{background:#f8fafc}.projects-container{color:#0f172a;margin:0 auto;max-width:1400px;padding:var(--space-10) var(--space-6)}.projects-search{align-items:center;animation:fadeInUp .6s ease both;display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-10)}.projects-search .search-context{max-width:800px;text-align:center;width:100%}.projects-search .search-context .search-description{color:#475569;font-size:var(--text-base);font-weight:var(--font-regular);line-height:var(--leading-relaxed);margin:0 0 var(--space-2) 0}.projects-search .search-label{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;color:#1e293b;display:flex;gap:var(--space-3);max-width:520px;padding:var(--space-3) var(--space-4);transition:all .2s ease;width:100%}.projects-search .search-label:hover{border-color:rgba(59,130,246,.35)}.projects-search .search-label:focus-within{border-color:rgba(59,130,246,.6);box-shadow:0 0 0 4px rgba(59,130,246,.15)}.projects-search .search-label i{color:#3b82f6;font-size:var(--text-base);opacity:.8}.projects-search .search-label input{background:transparent;border:none;color:#0f172a;flex:1;font-size:var(--text-base);font-weight:var(--font-regular);outline:none}.projects-search .search-label input::placeholder{color:#94a3b8}.status-message{animation:fadeInUp .6s ease .15s both;color:#475569;font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-4);padding:var(--space-3) 0;text-align:center}.status-message:not([hidden]){display:block}.status-message.status-error{color:#dc2626}.status-message.status-success{color:#2563eb}.loading-state{animation:fadeInUp .6s ease .2s both;padding:var(--space-12) 0;text-align:center}.loading-state .spinner-wrapper{margin-bottom:var(--space-4)}.loading-state .spinner-wrapper .spinner-border{border-width:.3rem;color:var(--surf-secondary);height:3rem;width:3rem}.loading-state .loading-text{color:#475569;font-size:var(--text-lg);margin:0}.empty-state{animation:fadeInUp .6s ease .2s both;color:#475569;padding:var(--space-12) 0;text-align:center}.empty-state .empty-icon{color:#cbd5f5;font-size:48px;margin-bottom:var(--space-4)}.empty-state .empty-icon i{opacity:.5}.empty-state .empty-text{font-size:var(--text-lg);margin:0}.projects-section{animation:fadeInUp .6s ease .3s both;margin-bottom:var(--space-12)}.projects-section h2{color:#0f172a;font-family:var(--font-headings);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:var(--font-extrabold);letter-spacing:-.02em;margin:0 0 var(--space-6) 0;text-align:left}#ongoing-projects-section{margin-top:0}#past-projects-section{margin-top:var(--space-8)}.projects-grid{display:grid;gap:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.project-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;display:flex;flex-direction:column;gap:0;overflow:hidden;padding:0;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.project-card:before{background:#3b82f6;content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease;z-index:2}.project-card:hover{border-color:rgba(59,130,246,.4);box-shadow:0 24px 48px rgba(15,23,42,.12);transform:translateY(-4px)}.project-card:hover:before{opacity:1}.project-card:hover .project-card__thumbnail img{transform:scale(1.05)}.project-card__thumbnail{align-items:center;background:#f8fafc;display:flex;height:200px;justify-content:center;overflow:hidden;padding:var(--space-4);position:relative;width:100%}.project-card__thumbnail img{display:block;height:100%;object-fit:contain;object-position:center;transition:transform .3s ease;width:100%}.project-card__thumbnail.thumbnail-error i,.project-card__thumbnail.thumbnail-placeholder i{color:#cbd5f5;font-size:4rem}.project-card__thumbnail.placeholder{background:#f1f5f9;padding:var(--space-6)}.project-card__thumbnail.placeholder .project-placeholder-initials{color:#1e293b;font-size:clamp(2.5rem,5vw,3.5rem);font-weight:var(--font-bold);letter-spacing:.03em;line-height:1;text-transform:uppercase}.project-card__content{display:flex;flex:1;flex-direction:column;gap:var(--space-4);padding:var(--space-6)}.project-card__actions{margin-top:auto;padding:0 var(--space-6) var(--space-6)}.project-website-button{align-items:center;background:#f8fafc;border:1px solid #bfdbfe;border-radius:12px;color:#2563eb;cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-2);justify-content:center;padding:var(--space-3) var(--space-4);text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.project-website-button i{font-size:var(--text-base);transition:transform .3s ease}.project-website-button:hover{background:#2563eb;border-color:#2563eb;box-shadow:0 12px 20px rgba(37,99,235,.25);color:#fff;transform:translateY(-2px)}.project-website-button:hover i{transform:translateX(3px)}.project-website-button:active{transform:translateY(0)}.project-card__badges{display:flex;justify-content:flex-end;margin-bottom:var(--space-1)}.project-status-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-semibold);gap:var(--space-1-5);letter-spacing:.5px;padding:var(--space-1-5) var(--space-3);text-transform:uppercase;transition:all .3s ease}.project-status-badge i{font-size:.75em}.project-status-badge.status-ongoing{background:#ecfdf5;border:1px solid rgba(5,150,105,.25);color:#059669}.project-status-badge.status-ongoing i{animation:pulse 2s ease-in-out infinite}.project-status-badge.status-past{background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.project-card__type{margin-bottom:var(--space-2)}.project-type-badge{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-2);padding:var(--space-2) var(--space-4);transition:all .3s ease}.project-type-badge i{font-size:1em}.project-type-badge.type-eu-research{background:#eff6ff;border:1px solid rgba(37,99,235,.25);color:#1d4ed8}.project-type-badge.type-industrial{background:#fff7ed;border:1px solid rgba(217,119,6,.25);color:#d97706}.project-type-badge.type-technology{background:#eef2ff;border:1px solid rgba(79,70,229,.25);color:#4f46e5}.project-type-badge.type-operational{background:#ecfdf5;border:1px solid rgba(5,150,105,.25);color:#059669}.project-type-badge.type-default{background:#f1f5f9;border:1px solid #e2e8f0;color:#334155}.project-card__title{color:#0f172a;font-family:var(--font-headings);font-size:clamp(1.125rem,2vw,1.375rem);font-weight:var(--font-bold);line-height:var(--leading-tight);margin:0}.project-card__title a{border-bottom:2px solid transparent;color:inherit;display:inline;text-decoration:none;transition:all .2s ease}.project-card__title a:hover{border-bottom-color:rgba(37,99,235,.4);color:#2563eb}.project-card__subtitle{color:#64748b;font-size:var(--text-sm);font-style:italic;font-weight:var(--font-medium);line-height:1.5;margin:var(--space-1) 0 0 0}.project-card__details{border-bottom:1px solid #e2e8f0;border-top:1px solid #e2e8f0;display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:var(--space-4) 0}.project-detail-item{display:flex;flex-direction:column;gap:var(--space-1)}.detail-label{color:#64748b;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.6px;text-transform:uppercase}.detail-value{color:#334155;font-size:var(--text-sm);font-weight:var(--font-medium)}.project-card__meta{border-bottom:1px solid #e2e8f0;border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-2) 0;padding:var(--space-3) 0}.project-meta-item{align-items:center;color:#64748b;display:inline-flex;font-size:var(--text-xs);gap:var(--space-1-5)}.project-meta-item i{color:#3b82f6;font-size:.875em}.project-card__partners{background:#f8fafc;border-left:2px solid rgba(59,130,246,.4);border-radius:4px;color:#475569;font-size:var(--text-xs);margin:var(--space-2) 0;padding:var(--space-2-5) var(--space-3)}.project-card__partners .partners-label{align-items:center;color:#1d4ed8;display:inline-flex;font-weight:var(--font-semibold);gap:var(--space-1-5);margin-right:var(--space-2)}.project-card__partners .partners-label i{font-size:.875em}.project-card__partners .partners-list{color:#475569}.project-card__description,.project-card__overview{color:#475569;flex:1;font-size:clamp(.9375rem,1.5vw,1rem);line-height:1.7;margin:0}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.project-tag{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#1d4ed8;font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:.3px;padding:var(--space-1) var(--space-2-5);transition:all .2s ease}.project-tag:hover{background:#dbeafe;border-color:#93c5fd;transform:translateY(-1px)}.project-card__footer{border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:var(--space-3);margin-top:auto;padding-top:var(--space-3)}.project-period{align-items:center;color:#64748b;display:flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2)}.project-period i{color:#3b82f6;opacity:.7}.project-link{align-items:center;background:#f8fafc;border:1px solid #bfdbfe;border-radius:10px;color:#2563eb;display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-2);justify-content:center;padding:var(--space-2-5) var(--space-4);text-decoration:none;transition:all .3s ease}.project-link i{font-size:.9em;transition:transform .3s ease}.project-link:hover{background:#2563eb;border-color:#2563eb;box-shadow:0 12px 20px rgba(37,99,235,.25);color:#fff;transform:translateY(-2px)}.project-link:hover i{transform:translateX(2px)}@media(max-width:768px){.projects-container{padding:var(--space-6) var(--space-4)}.projects-search .search-label{max-width:100%}.filter-section{margin-bottom:var(--space-6)}.filter-tabs{gap:var(--space-2)}.filter-tabs__tab{font-size:var(--text-xs);padding:var(--space-2) var(--space-4)}.filter-tabs__tab span{display:none}.filter-tabs__tab i{margin-right:0}.projects-grid{gap:var(--space-5);grid-template-columns:1fr}.project-card{padding:var(--space-5)}.project-card__title{font-size:clamp(1rem,3vw,1.25rem)}.project-card__description{font-size:var(--text-sm)}.project-card__details{grid-template-columns:1fr}}@media(max-width:1100px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:769px)and (max-width:1024px){.filter-tabs__tab span{display:none}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}