.project-card{gap:var(--gap-md);width:100%;padding-block:var(--padding-card-block);border:var(--border-card);border-radius:var(--radius-sm);background:var(--color-bg-surface);box-shadow:var(--shadow-card);flex-direction:column;padding-inline:0;text-decoration:none;display:flex}.project-card-header{align-items:center;gap:var(--gap-md);width:100%;padding-inline:var(--padding-card-inline);display:flex}.project-card-title{min-width:0;color:var(--color-text-primary);font-size:var(--text-body-size);font-weight:var(--weight-semibold);line-height:var(--text-body-line-height-fixed);letter-spacing:var(--letter-spacing-body);flex:1 0 0}.project-card-type{color:var(--color-text-label);font-size:var(--text-body-size);font-weight:var(--text-body-weight);letter-spacing:var(--letter-spacing-body);white-space:nowrap;flex-shrink:0;line-height:normal}.project-card-type-text{display:inline-block}.project-card-footer{gap:var(--gap-sm);width:100%;padding-inline:var(--padding-card-inline);flex-direction:column;display:flex}.project-card-timeline{color:var(--color-text-muted);font-size:var(--text-body-size);font-weight:var(--weight-medium);letter-spacing:var(--letter-spacing-body);transition:color var(--transition-fast);margin:0;line-height:normal}.project-card-description{color:var(--color-text-label);font-size:var(--text-body-size);font-weight:var(--text-body-weight);line-height:var(--text-body-line-height-fixed);letter-spacing:var(--letter-spacing-body);transition:color var(--transition-fast);margin:0}.project-card:hover .project-card-description{color:var(--color-text-primary)}.project-card:hover .project-card-timeline{color:var(--color-accent)}.project-card:hover{background-color:var(--color-card-hover)}.project-card:active{transition:scale var(--transition-fast);scale:.99}@keyframes project-card-type-marquee{0%,15%{transform:translate(0)}85%,to{transform:translateX(calc(var(--card-type-max-width) - 100%))}}@media (max-width:68.6875rem){.project-card-type{max-width:var(--card-type-max-width);min-width:0;overflow:hidden}.project-card-type.is-marquee .project-card-type-text{animation:project-card-type-marquee var(--duration-card-type-marquee) var(--ease-card-type-marquee) infinite}}@media (max-width:68.6875rem) and (prefers-reduced-motion:reduce){.project-card-type.is-marquee{text-overflow:ellipsis}.project-card-type.is-marquee .project-card-type-text{text-overflow:ellipsis;animation:none;display:block;overflow:hidden}}
