@charset "UTF-8";
/* ==========================================================================
   Pointerfy landing — module-owned styles
   Layered on top of the shared landing.css. Scoped to Pointerfy-only surfaces
   (the hover-to-play "demos" section). Consumes the shared --landing-* and
   --brand* custom properties defined by the shared landing engine.
   Compiled to public/css/landings/pointerfy.css (see webpack.mix.js).
   ========================================================================== */
.landing-demo-media {
  position: relative;
  aspect-ratio: 16/10;
  border-radius: var(--landing-radius);
  overflow: hidden;
  background: var(--landing-surface-2);
  border: 1px solid var(--landing-border);
}

.landing-demo-media .landing-demo-video,
.landing-demo-media > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.landing-demo-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(var(--brand-rgb), 0.85);
  background: radial-gradient(120% 120% at 50% 0%, rgba(var(--brand-rgb), 0.12), var(--landing-surface-2));
}

.landing-demo-play {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.625rem;
  border-radius: var(--landing-radius-pill);
  font-size: 0.75rem;
  font-weight: 600;
  color: #fff;
  background: rgba(10, 10, 10, 0.72);
  opacity: 0;
  transform: translateY(0.25rem);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.landing-demo-media.is-playable:hover .landing-demo-play,
.landing-demo-media.is-playable:focus-within .landing-demo-play {
  opacity: 1;
  transform: translateY(0);
}

.landing-demo-media.is-placeholder .landing-demo-play {
  position: static;
  opacity: 1;
  transform: none;
  margin-top: 0.75rem;
  background: transparent;
  color: var(--landing-muted);
}

@media (prefers-reduced-motion: reduce) {
  .landing-demo-play {
    transition: none;
  }
}
