.project-card[data-v-339c33b0]{cursor:pointer;height:400px;perspective:1000px;position:relative}.project-card__face[data-v-339c33b0]{backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--color-surface,#161616);border:1px solid var(--color-border,#2a2a2a);inset:0;overflow:hidden;position:absolute;transition:transform .5s cubic-bezier(.23,1,.32,1)}.project-card__front[data-v-339c33b0]{transform:rotateY(0)}.project-card__back[data-v-339c33b0]{display:flex;flex-direction:column;transform:rotateY(180deg)}.project-card.is-flipped .project-card__front[data-v-339c33b0]{transform:rotateY(-180deg)}.project-card.is-flipped .project-card__back[data-v-339c33b0]{transform:rotateY(0)}.project-card__image[data-v-339c33b0]{background:var(--color-border,#2a2a2a);height:200px;overflow:hidden}.project-card__image img[data-v-339c33b0]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.project-card__image--placeholder[data-v-339c33b0]{background:#1a1a1a}.project-card__body[data-v-339c33b0]{display:flex;flex-direction:column;gap:.4rem;padding:1rem}.project-card__badge[data-v-339c33b0]{border:1px solid;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:.7rem;letter-spacing:.08em;padding:.2em .6em;text-transform:uppercase;width:-moz-fit-content;width:fit-content}.project-card__badge--civic[data-v-339c33b0]{border-color:var(--color-accent,#c41e3a);color:var(--color-accent,#c41e3a)}.project-card__badge--open-source[data-v-339c33b0],.project-card__badge--personal[data-v-339c33b0],.project-card__badge--professional[data-v-339c33b0]{color:#6b6763}.project-card__title[data-v-339c33b0]{color:var(--color-text,#f0ede6);font-family:var(--font-display,"Playfair Display",serif);font-size:1.125rem;font-weight:700;line-height:1.2;margin:0}.project-card__tagline[data-v-339c33b0]{color:var(--color-muted,#6b6763);font-size:.875rem;line-height:1.4;margin:0}.project-card__hint[data-v-339c33b0]{color:#3a3a3a;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:.7rem;letter-spacing:.06em;margin-top:auto;text-transform:uppercase}.project-card__back-body[data-v-339c33b0]{display:flex;flex-direction:column;gap:.75rem;height:100%;overflow-y:auto;padding:1.25rem}.project-card__tech-tags[data-v-339c33b0]{display:flex;flex-wrap:wrap;gap:.3rem}.project-card__tech-tag[data-v-339c33b0]{background:#c41e3a1a;border-radius:2px;color:var(--color-accent,#c41e3a);font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:.7rem;padding:.15em .5em}.project-card__description[data-v-339c33b0]{color:var(--color-muted,#6b6763);flex:1;font-size:.875rem;line-height:1.6}.project-card__description[data-v-339c33b0] p{margin:0}.project-card__links[data-v-339c33b0]{display:flex;gap:1rem}.project-card__link[data-v-339c33b0]{color:var(--color-accent,#c41e3a);font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:.8rem;text-decoration:none}.project-card__link[data-v-339c33b0]:hover{text-decoration:underline}.project-card__status[data-v-339c33b0]{align-self:flex-end;color:var(--color-muted,#6b6763);font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:.7rem;letter-spacing:.06em;margin-top:auto;text-transform:uppercase}
