/* Holding page extras */
.home-hero .soon { margin-top: 24px; max-width: 64ch; font-size: var(--small); color: var(--muted); }
.home-hero .soon::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--dot); margin-right: 10px; transform: translateY(-1px); }
article.project .go { text-decoration: none; }
article.project:hover .go { background: #fff; transform: none; }
article.project .go:hover, article.project .go:focus-visible { background: var(--dot); }
article.project .go:active { transform: scale(0.97); }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  article.project .go:hover { transform: translateX(6px); }
  article.project .go:active { transform: translateX(6px) scale(0.97); }
}

/* No hero images: the intro sits on open white space */

/* Unreleased project: blurred screens, a stamp, and no case study link yet */
.wraps-tag { display: inline-block; width: fit-content; align-self: flex-start; justify-self: start; margin-bottom: 14px; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, 0.6); border-radius: 999px; font-size: var(--small); font-weight: var(--bold); color: #fff; }
.soon-note { display: inline-flex; align-items: center; gap: 10px; margin-top: 8px; font-size: var(--small); font-weight: var(--bold); color: #fff; }
.soon-note::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--dot); }
@media (prefers-reduced-motion: no-preference) { .soon-note::before { animation: soon-pulse 2.4s var(--ease) infinite; } }
@keyframes soon-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
