/* =====================================================================
   Feed Video Tiles & Media Badges
   ===================================================================== */

.media-stack.feed .media-item.video {
  position: relative;
  background: #0d1117;                          /* Deep obsidian base */
  cursor: pointer;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid var(--border-subtle, #edebe6);
  transition: transform 0.15s ease, filter 0.15s ease;
}

.media-stack.feed .media-item.video:hover {
  filter: brightness(1.02);
}

/* Portrait video constraint */
.media-stack.feed.grid-1 .media-item.video.portrait {
  max-width: 280px;
  max-height: 70vh;
}

.media-stack.feed .media-item.video .video-poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.25s ease;
}

.media-stack.feed .media-item.video:hover .video-poster {
  transform: scale(1.015);
}

/* Modern Frosted Glass Video Duration Badge */
.media-stack.feed .media-item .video-badge {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(13, 17, 23, 0.72);           /* Glassmorphic obsidian */
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #ffffff;
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  line-height: 1.4;
  pointer-events: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

/* Processing State */
.media-stack.feed .media-item.video.is-processing .video-poster {
  filter: brightness(0.55) saturate(0.8);
}

.media-stack.feed .media-item .video-badge.is-processing {
  background: rgba(79, 70, 229, 0.85);          /* Brand indigo pill */
  border-color: rgba(255, 255, 255, 0.25);
  animation: feed-video-pulse 1.6s ease-in-out infinite;
}

/* Flash animation on tap while still processing */
.media-stack.feed .media-item .video-badge.is-processing.is-flash {
  animation: feed-video-bump 0.5s cubic-bezier(0.16, 1, 0.3, 1),
             feed-video-pulse 1.6s ease-in-out 0.5s infinite;
}

@keyframes feed-video-pulse {
  50% { opacity: 0.55; }
}

@keyframes feed-video-bump {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.12); }
  100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .media-stack.feed .media-item .video-badge.is-processing,
  .media-stack.feed .media-item .video-badge.is-processing.is-flash {
    animation: none;
  }
}

/* =====================================================================
   Composer Gallery Picked Video Preview
   ===================================================================== */

file-preview-gallery .preview-item.video {
  position: relative;
  background: #0d1117;
  border-radius: 10px;
  overflow: hidden;
}

file-preview-gallery .preview-item.video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

file-preview-gallery .preview-video-badge {
  position: absolute;
  left: 8px;
  bottom: 8px;
  padding: 2px 7px;
  border-radius: 6px;
  background: rgba(13, 17, 23, 0.75);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  pointer-events: none;
}