.project-card:where(.astro-twgkaktg){border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);transition:transform var(--dur-med) var(--ease), border-color var(--dur-med) var(--ease);flex-direction:column;display:flex;overflow:hidden}.project-card:where(.astro-twgkaktg)[hidden]{display:none}.project-card:where(.astro-twgkaktg):hover,.project-card:where(.astro-twgkaktg):focus-within{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));transform:translateY(-3px)}.card-banner:where(.astro-twgkaktg){padding:10px 10px 0;display:block}.card-banner:where(.astro-twgkaktg) .project-banner{border-radius:var(--radius-sm)}.card-body:where(.astro-twgkaktg){flex-direction:column;flex:1;padding:16px;display:flex}header:where(.astro-twgkaktg){flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}h3:where(.astro-twgkaktg){font:600 1.25rem var(--display);letter-spacing:-.02em;margin:0}h3:where(.astro-twgkaktg) a:where(.astro-twgkaktg):hover,h3:where(.astro-twgkaktg) a:where(.astro-twgkaktg):focus-visible{color:var(--accent)}.summary:where(.astro-twgkaktg){color:var(--soft);font-size:var(--text-sm);margin:10px 0 0;line-height:1.55}.meta:where(.astro-twgkaktg){grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 0;display:grid}.meta:where(.astro-twgkaktg) dt:where(.astro-twgkaktg){color:var(--muted);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.meta:where(.astro-twgkaktg) dd:where(.astro-twgkaktg){font-size:var(--text-xs);color:var(--soft);margin:3px 0 0}footer:where(.astro-twgkaktg){gap:14px;margin-top:auto;padding-top:16px;display:flex}.card-link:where(.astro-twgkaktg){color:var(--accent);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.card-link:where(.astro-twgkaktg):hover,.card-link:where(.astro-twgkaktg):focus-visible{text-underline-offset:3px;text-decoration:underline}@media (prefers-reduced-motion:reduce){.project-card:where(.astro-twgkaktg):hover,.project-card:where(.astro-twgkaktg):focus-within{transform:none}}
