/* Efectos de «blog»: generado desde assets/css/src/fx/ (blog, cierre-senal). */
/* ---------- Blog: duotono oscuro y ámbar sobre las imágenes destacadas (solo CSS; los archivos no se tocan) ----------
   Gris → capa ámbar en multiply → viñeta oscura. Las miniaturas entran en la paleta y siguen siendo reconocibles. */
.article-card__media, .featured__media, .article__cover { position: relative; isolation: isolate; background: var(--ink-1); }
:is(.article-card__media, .featured__media, .article__cover) img { filter: grayscale(1) contrast(1.1) brightness(.95); transition: transform .9s var(--ease); }
:is(.article-card__media, .featured__media, .article__cover)::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: multiply;
  background: linear-gradient(135deg, var(--amber), var(--amber-deep));
}
:is(.article-card__media, .featured__media, .article__cover)::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; border-radius: inherit;
  background: radial-gradient(ellipse at 50% 45%, transparent 42%, rgba(5, 10, 9, .7));
  box-shadow: inset 0 0 0 1px transparent; transition: box-shadow .4s var(--ease);
}
/* Mismo zoom y filo de luz que el resto de tarjetas (hover; en táctil, al entrar en pantalla). */
:is(.article-card, .featured):hover :is(.article-card__media, .featured__media) img, :is(.article-card, .featured).is-hot :is(.article-card__media, .featured__media) img { transform: scale(1.05); }
:is(.article-card, .featured):hover :is(.article-card__media, .featured__media)::after, :is(.article-card, .featured).is-hot :is(.article-card__media, .featured__media)::after, .article__cover.is-hot::after { box-shadow: inset 0 0 0 1px var(--amber-40), inset 0 0 40px rgba(244, 181, 61, .14); }
.article-card.is-hot h3 { background-size: 100% 1px; }

/* Cierre de Blog y artículos: la señal de la antena, en ondas que se abren desde abajo. */
.wave {
  position: absolute; left: 50%; bottom: 0; width: max(70vw, 620px); aspect-ratio: 1; border-radius: 50%;
  border: 1px solid var(--amber); transform: translate(-50%, 50%) scale(calc(.3 + var(--i) * .24)); opacity: calc(.3 - var(--i) * .07);
}
.wave:nth-child(1) { --i: 0; } .wave:nth-child(2) { --i: 1; } .wave:nth-child(3) { --i: 2; } .wave:nth-child(4) { --i: 3; }
.wave:nth-child(n+3) { border-color: var(--mint); }
.motion .band.is-live .wave { animation: swf-wave 7s linear infinite; animation-delay: calc(var(--i) * -1.75s); }
@keyframes swf-wave {
  0% { transform: translate(-50%, 50%) scale(.12); opacity: 0; border-color: var(--amber); }
  18% { opacity: .42; }
  100% { transform: translate(-50%, 50%) scale(1.25); opacity: 0; border-color: var(--mint); }
}
