/* =========================================================
   BookMyVenue Premium Motion System
   Safe global animation layer: no PHP/database logic touched.
   Theme: navy + teal/green, glass, 3D scroll, premium venue UI.
========================================================= */
:root {
  --bmv-motion-dark: #050914;
  --bmv-motion-navy: #10223f;
  --bmv-motion-green: #20d38b;
  --bmv-motion-teal: #19b8b0;
  --bmv-motion-soft: #d8fff3;
  --bmv-motion-line: rgba(216,255,243,.16);
  --bmv-motion-ease: cubic-bezier(.2,.8,.2,1);
}

html { scroll-behavior: smooth; }

body {
  position: relative;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at var(--bmv-cursor-x, 50%) var(--bmv-cursor-y, 12%), rgba(32,211,139,.18), transparent 22rem),
    radial-gradient(circle at 10% 15%, rgba(25,184,176,.12), transparent 25rem),
    radial-gradient(circle at 90% 20%, rgba(32,211,139,.10), transparent 26rem);
  opacity: .9;
  transition: opacity .35s ease;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.027) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.027) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(circle at 50% 18%, black, transparent 76%);
  opacity: .42;
}

.bmv-motion-bg {
  position: fixed;
  inset: 0;
  z-index: -3;
  overflow: hidden;
  pointer-events: none;
}

.bmv-motion-bg span {
  position: absolute;
  width: clamp(14rem, 24vw, 28rem);
  aspect-ratio: 1;
  border-radius: 999px;
  filter: blur(72px);
  opacity: .22;
  transform: translate3d(0,0,0);
  animation: bmvOrbFloat 14s var(--bmv-motion-ease) infinite alternate;
}

.bmv-motion-bg span:nth-child(1) {
  left: -8rem;
  top: 16%;
  background: var(--bmv-motion-green);
}

.bmv-motion-bg span:nth-child(2) {
  right: -10rem;
  top: 6%;
  background: var(--bmv-motion-teal);
  animation-delay: -5s;
}

.bmv-motion-bg span:nth-child(3) {
  left: 35%;
  bottom: -14rem;
  background: #44ffd0;
  animation-delay: -8s;
  opacity: .14;
}

@keyframes bmvOrbFloat {
  0% { transform: translate3d(0,0,0) scale(1); }
  100% { transform: translate3d(28px,-34px,0) scale(1.12); }
}

/* Scroll reveal */
.reveal-on-scroll,
.bmv-reveal,
section,
.lux-section,
.lux-hero-panel,
.glass-card,
.venue-card,
.vendor-card,
.blog-card,
.work-card,
.category-card,
.footer-col,
.footer-brand {
  --bmv-reveal-y: 34px;
}

.reveal-on-scroll:not(.is-visible),
.bmv-reveal:not(.is-visible) {
  opacity: 0;
  transform: translate3d(0,var(--bmv-reveal-y),0) scale(.985);
  filter: blur(8px);
}

.reveal-on-scroll.is-visible,
.bmv-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: blur(0);
  transition:
    opacity .72s var(--bmv-motion-ease),
    transform .72s var(--bmv-motion-ease),
    filter .72s var(--bmv-motion-ease);
}

/* Premium card motion */
.glass-card,
.lux-glass,
.venue-card,
.vendor-card,
.blog-card,
.work-card,
.category-card,
.testimonial-card,
.card,
[class*="-card"] {
  position: relative;
  transform-style: preserve-3d;
  transition:
    transform .32s var(--bmv-motion-ease),
    box-shadow .32s var(--bmv-motion-ease),
    border-color .32s var(--bmv-motion-ease),
    background .32s var(--bmv-motion-ease);
  will-change: transform;
}

.glass-card::before,
.lux-glass::before,
.venue-card::before,
.vendor-card::before,
.blog-card::before,
.work-card::before,
.category-card::before,
.testimonial-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(circle at var(--bmv-card-x, 50%) var(--bmv-card-y, 50%), rgba(216,255,243,.22), transparent 18rem),
    linear-gradient(135deg, rgba(255,255,255,.12), transparent 42%);
  transition: opacity .28s ease;
}

.glass-card:hover::before,
.lux-glass:hover::before,
.venue-card:hover::before,
.vendor-card:hover::before,
.blog-card:hover::before,
.work-card:hover::before,
.category-card:hover::before,
.testimonial-card:hover::before {
  opacity: 1;
}

.bmv-tilt:hover,
.tilt-card:hover,
.glass-card:hover,
.venue-card:hover,
.vendor-card:hover,
.blog-card:hover,
.work-card:hover,
.category-card:hover {
  transform: translateY(-8px) rotateX(var(--bmv-tilt-y, 0deg)) rotateY(var(--bmv-tilt-x, 0deg));
  box-shadow: 0 30px 90px rgba(0,0,0,.35), 0 0 42px rgba(32,211,139,.10);
}

/* Buttons */
.btn,
.lux-btn,
.nav-pill,
button,
a[class*="btn"] {
  transition:
    transform .25s var(--bmv-motion-ease),
    box-shadow .25s var(--bmv-motion-ease),
    border-color .25s var(--bmv-motion-ease),
    background .25s var(--bmv-motion-ease),
    color .25s var(--bmv-motion-ease);
}

.btn:hover,
.lux-btn:hover,
.nav-pill:hover,
button:hover,
a[class*="btn"]:hover {
  transform: translateY(-2px);
}

/* Text shine */
.bmv-shine,
.lux-title span,
.hero-title span,
.section-title span {
  background-size: 220% auto !important;
  animation: bmvTextShine 5.5s linear infinite;
}

@keyframes bmvTextShine {
  0% { background-position: 0% center; }
  100% { background-position: 220% center; }
}

/* Floating animation */
.bmv-float,
.lux-chip,
.hero-badge,
.stats-card {
  animation: bmvSoftFloat 5.8s ease-in-out infinite;
}

.bmv-float:nth-child(2n),
.lux-chip:nth-child(2n),
.hero-badge:nth-child(2n),
.stats-card:nth-child(2n) {
  animation-delay: -2.2s;
}

@keyframes bmvSoftFloat {
  0%,100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(0,-8px,0); }
}

/* Smooth page entry */
body.bmv-loaded main,
body.bmv-loaded .lux-hero,
body.bmv-loaded .hero-section {
  animation: bmvPageIn .75s var(--bmv-motion-ease) both;
}

@keyframes bmvPageIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Mobile */
@media (max-width: 768px) {
  body::after {
    background-size: 54px 54px;
    opacity: .30;
  }

  .glass-card:hover,
  .venue-card:hover,
  .vendor-card:hover,
  .blog-card:hover,
  .work-card:hover,
  .category-card:hover {
    transform: translateY(-4px);
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }

  .reveal-on-scroll:not(.is-visible),
  .bmv-reveal:not(.is-visible) {
    opacity: 1;
    transform: none;
    filter: none;
  }
}








