.project_card.svelte-oviq8z{display:flex;flex-direction:column;border-radius:20px;overflow:hidden;transition:transform var(--transition),box-shadow var(--transition);height:100%}.project_card.svelte-oviq8z:hover{transform:translateY(-8px);box-shadow:0 20px 40px #0003;border-color:var(--accent)}.media-container.svelte-oviq8z{position:relative;width:100%;aspect-ratio:16 / 10;overflow:hidden;background:var(--bg-surface)}.thumbnail.svelte-oviq8z{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1)}.project_card.svelte-oviq8z:hover .thumbnail:where(.svelte-oviq8z){transform:scale(1.05)}.foss-badge.svelte-oviq8z,.non-foss-badge.svelte-oviq8z{position:absolute;top:12px;right:12px;padding:4px 10px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--accent);font-size:.7rem;font-weight:700;text-transform:uppercase;border-radius:100px;border:1px solid var(--accent-muted);letter-spacing:.05em}.non-foss-badge.svelte-oviq8z{color:var(--glass-bg)}.card-content.svelte-oviq8z{padding:24px;display:flex;flex-direction:column;flex-grow:1;gap:16px}.header-row.svelte-oviq8z{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.project-title.svelte-oviq8z{font-size:1.25rem;font-weight:600;color:var(--text-primary);line-height:1.2}.project-date.svelte-oviq8z{font-size:.85rem;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.description.svelte-oviq8z{font-size:.95rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.footer-row.svelte-oviq8z{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px}.stack-tags.svelte-oviq8z{display:flex;flex-wrap:wrap;gap:6px}.tag.svelte-oviq8z{font-size:.75rem;padding:2px 8px;background:var(--accent-muted);color:var(--accent);border-radius:4px;font-weight:500}.repo-link.svelte-oviq8z{font-size:.9rem;color:var(--text-primary);text-decoration:none;font-weight:600;transition:color var(--transition),transform var(--transition);white-space:nowrap}.repo-link.svelte-oviq8z:hover{color:var(--accent);transform:translate(4px)}
