/* --- Video gate page --- */
.video-gate-main {
  position: relative;
  z-index: 1;
}

.video-gate-title,
.video-gate-ad-title {
  color: var(--color-text);
}

.video-gate-logo {
  background: var(--color-bg-elevated);
}

.video-gate-reload-link {
  color: var(--color-icon);
}

.video-gate-kicker {
  color: var(--color-blue-200);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.video-gate-muted,
.video-gate-help {
  color: var(--color-text-muted);
}

.video-gate-sponsor-bar,
.video-gate-status-panel {
  background: rgba(15, 15, 17, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.video-gate-logo {
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.video-gate-sponsor-link {
  color: var(--color-blue-200);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.video-gate-sponsor-link:hover {
  background: rgba(255, 255, 255, 0.1);
}

.video-gate-sponsor-link:focus-visible,
.video-gate-primary-button:focus-visible {
  --tw-ring-color: rgba(255, 255, 255, 0.6);
}

.video-gate-manual-play {
  background: rgba(15, 15, 17, 0.8);
}

.video-gate-primary-button {
  background: var(--color-accent);
  box-shadow: 0 10px 15px -3px rgba(255, 255, 255, 0.24),
    0 4px 6px -4px rgba(255, 255, 255, 0.2);
}

.video-gate-primary-button:hover {
  background: var(--color-accent-hover);
}

.video-gate-volume {
  accent-color: #fff;
}

.video-gate-volume:hover {
  accent-color: var(--color-accent-light);
}

.video-gate-status-text {
  color: var(--color-text-secondary);
}

.video-gate-reload-link:hover {
  color: #c5c8ff;
}

    #gateVideo { max-height: min(65vh, 560px); cursor: default; }

    /* ── Custom player controls ── */
    .player-controls {
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 20;
      display: flex; align-items: center; gap: 0.625rem;
      padding: 0.5rem 0.75rem;
      background: linear-gradient(transparent, rgba(0,0,0,0.7));
      border-radius: 0 0 0.25rem 0.25rem;
      opacity: 0; transition: opacity 0.25s ease;
    }
    .video-wrapper:hover .player-controls,
    .player-controls.force-show { opacity: 1; }

    .player-controls button {
      background: none; border: none; color: #fff; cursor: pointer;
      width: 1.75rem; height: 1.75rem; display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; font-size: 0.8rem; opacity: 0.9; transition: opacity 0.15s;
    }
    .player-controls button:hover { opacity: 1; }

    .progress-bar-wrap {
      flex: 1; height: 4px; background: rgba(255,255,255,0.2); border-radius: 0.25rem;
      cursor: default; position: relative; overflow: hidden;
    }
    .progress-bar-fill {
      height: 100%; background: var(--color-accent-light); border-radius: 0.25rem;
      width: 0%; transition: width 0.15s linear; pointer-events: none;
    }

    .player-time {
      font-family: var(--font-mono); font-size: 0.7rem; color: rgba(255,255,255,0.7);
      white-space: nowrap; flex-shrink: 0; min-width: 5.5ch; text-align: right;
    }
