.card.svelte-oviq8z{border:1px solid var(--color-outline);background:var(--color-surface);color:inherit;border-radius:8px;flex-direction:column;text-decoration:none;transition:border-color .15s,background-color .15s;display:flex;overflow:hidden}.card.svelte-oviq8z:hover,.card.svelte-oviq8z:focus-visible{border-color:var(--portfolio-accent);background-color:var(--color-surface-bright)}.card-body.svelte-oviq8z{flex-direction:column;flex:1;gap:.6rem;padding:1.25rem;display:flex}.card-caption.svelte-oviq8z{font-family:var(--font-mono);color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:.72rem;display:flex}.card-tag.svelte-oviq8z{color:var(--portfolio-accent)}.card-title.svelte-oviq8z{color:var(--color-text);margin:0;font-size:1.1rem;font-weight:700;line-height:1.3}.card-summary.svelte-oviq8z{color:var(--color-text-muted);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.875rem;line-height:1.5;display:-webkit-box;overflow:hidden}.card-tech.svelte-oviq8z{flex-wrap:wrap;gap:.35rem;margin-top:auto;display:flex}.tech-tag.svelte-oviq8z{font-family:var(--font-mono);color:var(--color-text-muted);background:var(--color-surface-muted);border-radius:4px;padding:.15rem .4rem;font-size:.68rem}.card-links.svelte-oviq8z{gap:1rem;display:flex}.card-link.svelte-oviq8z{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.75rem;transition:color .15s}.card.svelte-oviq8z:hover .card-link:where(.svelte-oviq8z),.card.svelte-oviq8z:focus-visible .card-link:where(.svelte-oviq8z){color:var(--portfolio-accent)}
