/* Воронка сцены (M1–M2): обложка начала истории в ленте чата (screens/chat/sceneCover.js), подарок «🎁 Открыть»
   (components/giftMedia.js) и обещание «📸 Попроси любое фото или видео…» (components/mediaPromise.js) — в пустом
   чате и на карточке персонажа. Подключается из chat.css (@import): стили карточки персонажа — здесь же, файл один. */

/* ---------- обложка начала истории ---------- */
.scene-cover { display: flex; flex-direction: column; align-items: center; gap: 8px; width: min(420px, 92%); margin: 6px 0 10px; }
.scene-cover__card {
  position: relative;
  width: 100%;
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--r-lg);
  background: var(--grad-soft), var(--card);
  border: 1px solid rgba(139, 92, 246, 0.3);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
.scene-cover__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.scene-cover__text {
  position: absolute; left: 0; right: 0; bottom: 0;
  display: flex; flex-direction: column; gap: 2px;
  padding: 28px 14px 12px;
  text-align: left;
  color: #fff;
  background: linear-gradient(180deg, transparent, rgba(8, 6, 16, 0.82) 60%);
}
.scene-cover__title { font-size: var(--fs-base); font-weight: var(--fw-heavy); line-height: 1.25; }
.scene-cover__teaser {
  font-size: 12.5px; line-height: 1.35; color: var(--text-2);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.scene-cover--plain { width: auto; }

/* ---------- обещание ---------- */
.media-promise { margin: 0; font-size: 12.5px; font-weight: var(--fw-semibold); line-height: 1.35; color: var(--text-2); }
.scene-cover__promise {
  padding: 7px 14px; border-radius: var(--r-pill);
  background: var(--glass-bg); border: 1px solid rgba(255, 45, 120, 0.28);
}
.char-info__promise { text-align: center; color: var(--muted); }
/* Низкий экран: «Написать / Позвонить» важнее — обещание прячем (оно есть и в пустом чате) */
.h-short .char-info__promise, .h-compact .char-info__promise { display: none; }

/* ---------- подарок ---------- */
.gift-msg { gap: 6px; }
.gift-media {
  position: relative;
  width: clamp(150px, 46vw, 200px);
  aspect-ratio: 3 / 4;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  border-radius: 18px;
  background: var(--grad-soft), var(--card);
  border: 1px solid rgba(255, 45, 120, 0.45);
  box-shadow: var(--glow);
  color: #fff;
  cursor: pointer;
  transition: transform var(--t-fast) var(--ease);
}
.gift-media:active { transform: scale(0.97); }
.gift-media__blur {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  filter: blur(8px) saturate(1.3) brightness(0.8);
  transform: scale(1.3);
  z-index: -1;
}
.gift-media__badge {
  position: absolute; top: 50%; left: 50%;
  width: 56px; height: 56px; margin: -40px 0 0 -28px;
  display: flex; align-items: center; justify-content: center;
  font-size: 30px;
  border-radius: 50%;
  background: rgba(11, 10, 20, 0.38);
  border: 1px solid rgba(255, 255, 255, 0.28);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  animation: gift-pulse 1.8s var(--ease) infinite;
}
.gift-media__kind {
  position: absolute; top: 8px; right: 8px;
  display: flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%;
  background: rgba(11, 10, 20, 0.45);
}
.gift-media__kind .icon { width: 14px; height: 14px; }
.gift-media__cta {
  position: absolute; left: 8px; right: 8px; bottom: 8px;
  display: flex; flex-direction: column; align-items: center; gap: 1px;
  padding: 6px 8px;
  border-radius: 14px;
  font-size: 12px; line-height: 1.2;
  background: var(--grad);
}
.gift-media__cta b { font-size: 14px; font-weight: var(--fw-heavy); }
@keyframes gift-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .gift-media__badge { animation: none; } }
