/* card.css */ .post-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; transition: var(--transition); display: flex; gap: var(--gap-md); } .post-card:hover { border-color: var(--accent); box-shadow: 0 0 20px rgba(168, 85, 247, 0.2); } .post-card-image { width: 120px; height: 100px; flex-shrink: 0; object-fit: cover; background: linear-gradient(135deg, var(--border), var(--bg2)); border-right: 1px solid var(--border); } @media (min-width: 768px) { .post-card-image { width: 160px; height: 120px; } } .post-card-body { padding: var(--gap-md); display: flex; flex-direction: column; justify-content: center; flex-grow: 1; } .post-type-badge { display: inline-block; font-family: var(--font-mono); font-size: var(--fs-badge); font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.35rem 0.7rem; border-radius: 20px; margin-bottom: 0.5rem; width: fit-content; } /* Type-specific badge colors */ .post-type-badge.tech { background: color-mix(in srgb, var(--type-tech) 15%, transparent); border: 1px solid color-mix(in srgb, var(--type-tech) 30%, transparent); color: var(--type-tech); } .post-type-badge.life { background: color-mix(in srgb, var(--type-life) 15%, transparent); border: 1px solid color-mix(in srgb, var(--type-life) 30%, transparent); color: var(--type-life); } .post-type-badge.quote { background: color-mix(in srgb, var(--type-quote) 15%, transparent); border: 1px solid color-mix(in srgb, var(--type-quote) 30%, transparent); color: var(--type-quote); } .post-type-badge.link { background: color-mix(in srgb, var(--type-link) 15%, transparent); border: 1px solid color-mix(in srgb, var(--type-link) 30%, transparent); color: var(--type-link); } .post-type-badge.photo { background: color-mix(in srgb, var(--type-photo) 15%, transparent); border: 1px solid color-mix(in srgb, var(--type-photo) 30%, transparent); color: var(--type-photo); } .post-card-title { font-family: var(--font-head); font-size: 1.1rem; font-weight: 700; line-height: 1.3; margin-bottom: 0.5rem; color: var(--text); } .post-card-title a { color: var(--text); text-decoration: none; } .post-card-title a:hover { color: var(--accent); } .post-card-excerpt { color: var(--text-dim); font-size: 0.9rem; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 0.5rem; } .post-card-meta { display: flex; gap: 1rem; font-family: var(--font-mono); font-size: 0.75rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; } /* Featured card in grid */ .post-card.featured { grid-row: span 2; } .post-card.featured .post-card-image { width: 100%; height: 180px; border-right: none; border-bottom: 1px solid var(--border); } .post-card.featured .post-card-body { padding: var(--gap-lg); } @media (max-width: 768px) { .post-card { flex-direction: column; } .post-card-image { width: 100%; height: 150px; border-right: none; border-bottom: 1px solid var(--border); } .post-card.featured .post-card-image { height: 150px; } }