.projects-section { flex: 0 0 340px; display: flex; flex-direction: column; gap: 18px; padding: 32px 24px; background: rgba(20, 20, 30, 0.10); backdrop-filter: blur(24px) saturate(140%) brightness(1.08); -webkit-backdrop-filter: blur(24px) saturate(140%) brightness(1.08); border-radius: var(--border-radius-large); box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.10); min-width: 280px; max-width: 340px; margin-left: 20px; align-self: stretch; } .projects-title { font-size: 1.6rem; font-weight: 700; margin-bottom: 10px; color: var(--text-color); letter-spacing: 0.03em; background: linear-gradient(135deg, var(--secondary-color) 0%, var(--text-color) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .project { padding: 18px 16px; border-radius: var(--border-radius); box-shadow: 0 2px 12px 0 rgba(31, 38, 135, 0.10); margin-bottom: 0; display: flex; flex-direction: column; gap: 6px; transition: transform 0.28s cubic-bezier(0.4, 0.2, 0.2, 1), box-shadow 0.28s cubic-bezier(0.4, 0.2, 0.2, 1); } .project:hover { transform: scale(1.012); box-shadow: 0 4px 24px 0 rgba(31, 38, 135, 0.13), 0 1.5px 4px 0 rgba(255, 255, 255, 0.08) inset; filter: brightness(1.04) saturate(1.08); } .project:nth-child(odd) { background: linear-gradient(135deg, rgba(20, 30, 60, 0.75) 0%, rgba(40, 50, 120, 0.75) 100%); } .project:nth-child(even) { background: linear-gradient(135deg, rgba(10, 10, 10, 0.82) 0%, rgba(30, 30, 30, 0.82) 100%); } .project-title { font-size: 1.15rem; font-weight: 600; color: var(--text-color); margin-bottom: 2px; letter-spacing: 0.01em; background: linear-gradient(90deg, var(--text-color) 0%, var(--secondary-color) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; position: relative; display: flex; align-items: center; justify-content: space-between; gap: 8px; } .project-icons { display: flex; gap: 8px; align-items: center; flex: 0 0 auto; flex-wrap: nowrap; } /* Ensure long titles don't push icons to a new line */ .project-title > span:first-child { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .project-icon-link { display: inline-flex; align-items: center; justify-content: center; color: var(--text-color); transition: all 0.2s; } .project-icon-link:hover { color: var(--primary-color); } .project-desc { font-size: 0.98rem; color: var(--text-color-light); font-weight: 400; line-height: 1.5; } @media (max-width: 1024px) { .projects-section { flex: unset; max-width: 100%; margin-left: 0; margin-top: 24px; min-width: unset; } } @media (max-width: 768px) { .projects-section { padding: 28px 20px; gap: 16px; } .projects-title { font-size: 1.5rem; text-align: center; margin-bottom: 12px; } } @media (max-width: 480px) { .projects-section { padding: 24px 16px; gap: 14px; } .projects-title { font-size: 1.4rem; } .project { padding: 16px 14px; } .project-title { font-size: 1.1rem; } .project-desc { font-size: 0.95rem; } .project-icons { gap: 6px; } } @media (max-width: 380px) { .project { padding: 14px 12px; } .project-title { font-size: 1.05rem; /* Keep a single row layout even on very small screens */ flex-direction: row; align-items: center; gap: 8px; } }