/* ===== Cyberpunk video presentation layer ===== */

/* Hero cinematic video */
.os-hero-bg .hero-video {
  filter: brightness(0.5) saturate(1.2) contrast(1.08);
  transform: scale(1.02);
  will-change: transform;
  animation: heroKenBurns 20s ease-in-out infinite alternate;
}

@keyframes heroKenBurns {
  from { transform: scale(1.02); }
  to { transform: scale(1.08); }
}

.os-hero-bg .video-fx-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background:
    radial-gradient(ellipse 50% 40% at 75% 50%, rgba(168, 85, 247, 0.12), transparent 60%),
    radial-gradient(ellipse 40% 50% at 20% 80%, rgba(34, 211, 238, 0.08), transparent 50%),
    linear-gradient(90deg, rgba(7,7,13,0.92) 0%, rgba(7,7,13,0.35) 42%, rgba(7,7,13,0.15) 65%, rgba(7,7,13,0.55) 100%);
  mix-blend-mode: normal;
}

.os-hero-bg .scan-fx {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0, 0, 0, 0.04) 2px,
    rgba(0, 0, 0, 0.04) 4px
  );
  animation: scanMove 8s linear infinite;
}

@keyframes scanMove {
  0% { background-position: 0 0; }
  100% { background-position: 0 100px; }
}

.os-hero-bg .cable-deco {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 45%;
  z-index: 1;
  pointer-events: none;
  opacity: 0.15;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 400'%3E%3Cpath d='M20 0 Q80 100 40 200 T60 400' stroke='%23a855f7' fill='none' stroke-width='1'/%3E%3Cpath d='M100 0 Q140 80 120 180 T150 400' stroke='%2322d3ee' fill='none' stroke-width='0.8'/%3E%3Cpath d='M160 0 Q120 120 170 220 T130 400' stroke='%23a855f7' fill='none' stroke-width='0.6'/%3E%3C/svg%3E") center/cover no-repeat;
}

/* Theater enhanced */
.theater-main video {
  filter: contrast(1.06) saturate(1.15) brightness(0.95);
  will-change: auto;
  transition: opacity 0.35s ease;
}

.theater-main .video-glow {
  position: absolute;
  inset: -1px;
  border-radius: 8px;
  pointer-events: none;
  z-index: 4;
  box-shadow:
    inset 0 0 80px rgba(168, 85, 247, 0.08),
    0 0 40px rgba(168, 85, 247, 0.06);
}

.theater-main .theater-scan {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  background: linear-gradient(180deg, transparent 0%, rgba(168,85,247,0.03) 50%, transparent 100%);
  background-size: 100% 200%;
  animation: theaterScan 4s linear infinite;
}

@keyframes theaterScan {
  0% { background-position: 0 -100%; }
  100% { background-position: 0 100%; }
}

/* Mosaic enhanced */
.mosaic-item video {
  filter: brightness(0.65) saturate(1.2) contrast(1.05);
  transition: filter 0.4s, transform 0.4s;
}

.mosaic-item:hover video {
  filter: brightness(0.95) saturate(1.3) contrast(1.1);
  transform: scale(1.05);
}

.mosaic-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(168,85,247,0.1), transparent 50%, rgba(34,211,238,0.08));
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
}

.mosaic-item:hover::after { opacity: 1; }

/* Smooth video rendering */
video {
  image-rendering: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.hero-video,
.theater-main video,
.mosaic-item video {
  transform: translateZ(0);
}

/* Quality badge */
.quality-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 5;
  font-family: var(--font-mono);
  font-size: 0.5rem;
  letter-spacing: 0.12em;
  padding: 0.25rem 0.5rem;
  background: rgba(7,7,13,0.7);
  border: 1px solid rgba(168,85,247,0.3);
  border-radius: 3px;
  color: var(--cyan);
}
