/*
 * Theme: theme-Serenity
 * Author: Serenity
 * Build: 2026-02-07 12:42:37
 * Fingerprint: 55018a22b54d5708
 * Copyright © 2026 Serenity. All rights reserved.
 * Unauthorized copying or distribution is prohibited.
 */
.projects-page{padding-top:calc(var(--header-height) + var(--space-8));padding-bottom:var(--space-10);min-height:100vh}.projects-header{text-align:center;margin-bottom:var(--space-8)}.projects-stats{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-4)}.projects-stat{text-align:center}.projects-stat-num{font-size:1.5rem;font-weight:700;color:var(--color-accent);font-family:var(--font-mono)}.projects-stat-label{font-size:11px;color:var(--color-text-muted)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-8);width:100%}.projects-loading{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10) 0;color:var(--color-text-muted)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:var(--space-3)}@keyframes spin{to{transform:rotate(360deg)}}.projects-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10) 0;color:var(--color-text-muted)}.projects-empty svg{width:64px;height:64px;margin-bottom:var(--space-3);opacity:0.5}.projects-empty p{font-size:1.1rem;font-weight:600;margin-bottom:var(--space-2)}.projects-empty span{font-size:0.9rem}.project-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);height:120px;width:100%;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:var(--radius-lg);transition:all var(--duration-fast);text-decoration:none;color:inherit;box-sizing:border-box;overflow:hidden}[data-theme="light"] .project-card{background:rgba(255,255,255,0.6);border-color:rgba(0,0,0,0.05)}.project-card:hover{transform:translateY(-2px);border-color:var(--color-accent);box-shadow:0 8px 20px rgba(0,0,0,0.1)}.project-avatar{width:64px;height:64px;border-radius:var(--radius-md);background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.project-avatar.no-image{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-secondary))}.project-avatar svg{width:32px;height:32px;color:white}.project-avatar-img{width:100%;height:100%;object-fit:cover;background:transparent}.project-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.project-name{display:block;font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card:hover .project-name{color:var(--color-accent)}.project-description{font-size:12px;color:var(--color-text-muted);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-meta{display:flex;align-items:center;gap:var(--space-2);font-size:11px;color:var(--color-text-muted);flex-wrap:wrap}.project-meta-item{display:flex;align-items:center;gap:4px;white-space:nowrap}.project-meta-item svg{width:12px;height:12px;flex-shrink:0}.project-language{display:flex;align-items:center;gap:4px}.language-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.project-topics{display:flex;flex-wrap:wrap;gap:4px}.project-topic{padding:2px 6px;background:rgba(var(--color-accent-rgb),0.1);color:var(--color-accent);border-radius:var(--radius-sm);font-size:10px;font-weight:500;white-space:nowrap}.project-arrow{width:40px;height:40px;border-radius:50%;background:var(--color-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.2s}.project-arrow svg{width:20px;height:20px;color:white}.project-card:hover .project-arrow{background:var(--color-accent-secondary);transform:translateX(2px)}@media (max-width:1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}.projects-stats{gap:var(--space-4)}.project-card{height:auto;min-height:100px}}