/* ==========================================================================
   Gumdrop Workflows — blog.css
   The /blog/ index. Currently a "coming soon" holding page; the topic grid
   below is the same shape a real post grid will take, so swapping placeholder
   cards for published posts is a markup change only.
   ========================================================================== */

/* ==========================================================================
   1. Page header
   ========================================================================== */

.page-head {
  position: relative;
  padding-top: calc(var(--nav-h) + clamp(3rem, 2rem + 5vw, 6rem));
  padding-bottom: clamp(2.5rem, 2rem + 3vw, 4rem);
  overflow: clip;
}

/* Same horizon arc as the landing hero, shallower — ties the pages together
   without repeating the full hero treatment. */
.page-head__arc {
  position: absolute;
  top: -6vw;
  left: 50%;
  translate: -50% 0;
  width: max(1400px, 190vw);
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, transparent 61.4%, rgba(136, 85, 255, .26) 62%, transparent 64.5%);
  mask-image: linear-gradient(180deg, #000 0%, #000 26%, rgba(0, 0, 0, .3) 58%, transparent 84%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 26%, rgba(0, 0, 0, .3) 58%, transparent 84%);
}

.page-head__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.35rem;
}

.page-head h1 { max-width: 14ch; }

.page-head .lead { max-width: 56ch; }

/* ==========================================================================
   2. Coming-soon marker
   ========================================================================== */

.soon-pill {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .5rem 1.1rem;
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .045);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--text-2);
}

/* Three dots cycling, like something is being worked on */
.soon-pill i {
  display: flex;
  gap: 4px;
}
.soon-pill i span {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--violet-lite);
  box-shadow: 0 0 8px 1px rgba(136, 85, 255, .8);
  animation: soon-blink 1.5s var(--ease-io) infinite;
}
.soon-pill i span:nth-child(2) { animation-delay: .22s; }
.soon-pill i span:nth-child(3) { animation-delay: .44s; }

@keyframes soon-blink {
  0%, 100% { opacity: .25; transform: scale(.75); }
  40%      { opacity: 1;   transform: scale(1); }
}

/* ==========================================================================
   3. Topic grid  (placeholder cards now, post cards later)
   ========================================================================== */

.topics {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 660px)  { .topics { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .topics { grid-template-columns: repeat(3, 1fr); } }

.topic {
  padding: 1.7rem;
  display: flex;
  flex-direction: column;
  gap: .85rem;
  min-height: 240px;
}

.topic__tag {
  font-family: var(--font-ui);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--violet-soft);
}

.topic h3 { font-size: 1.12rem; }

.topic p {
  font-size: var(--fs-sm);
  color: var(--text-3);
  line-height: 1.62;
}

/* Faux "read time / date" slot that a real post card will fill */
.topic__meta {
  margin-top: auto;
  padding-top: 1.2rem;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: var(--fs-xs);
  color: var(--text-4);
}
.topic__meta svg { width: 14px; height: 14px; flex: none; }

/* ==========================================================================
   4. Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .soon-pill i span { animation: none; opacity: .9; transform: none; }
}
