.projects-hero { padding-bottom: 32px; }
.projects-section { padding-top: 0; border: 0; background: transparent; }
.projects-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.project-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 16px; text-decoration: none; transition: border-color 180ms ease, transform 180ms ease; }
.project-card:hover { border-color: var(--cyan); transform: translateY(-4px); }
.project-preview { position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: #10131c; border-bottom: 1px solid var(--border); }
.project-preview > img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.project-details { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 24px; }
.project-type { margin-bottom: 12px; color: var(--cyan); font-family: "JetBrains Mono", monospace; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.project-details h2 { margin-bottom: 12px; font-size: 1.3rem; }
.project-details p { margin-bottom: 24px; color: var(--text-soft); font-size: .9rem; }
.project-open { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; color: var(--cyan); font-size: .85rem; font-weight: 600; }
@media (max-width: 640px) { .projects-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; } .project-details { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .project-card { transition: none; } .project-card:hover { transform: none; } }
