/* ==========================================================================
   PREMIUM ANIMATIONS & MOTION EFFECTS
   ========================================================================== */

/* Base Selection */
::selection {
  background: #1D4ED8;
  color: white;
}

/* ==========================================================================
   KEYFRAMES
   ========================================================================== */

@keyframes shimmerGlow {
  0% { transform: translateX(-100%) skewX(-15deg); }
  100% { transform: translateX(200%) skewX(-15deg); }
}

@keyframes breathePulse {
  0% { transform: scale(1); }
  100% { transform: scale(1.015); }
}

@keyframes floatY {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}

@keyframes revealMask {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}

@keyframes counterUp {
  from {
    opacity: 0;
    transform: translateY(100%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.92);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes glowPulse {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}

/* ==========================================================================
   REVEAL ON SCROLL CLASSES
   ========================================================================== */

.reveal-on-scroll {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), 
              transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-on-scroll.revealed {
  opacity: 1;
  transform: translateY(0);
}

.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }
.stagger-5 { transition-delay: 0.5s; }
.stagger-6 { transition-delay: 0.6s; }

/* ==========================================================================
   PREMIUM UTILITY CLASSES
   ========================================================================== */

.anim-float {
  animation: floatY 5s ease-in-out infinite;
}

.anim-breathe {
  animation: breathePulse 3s ease-in-out infinite alternate;
}

.anim-glow-pulse {
  animation: glowPulse 3s infinite alternate;
}

.shimmer-border {
  position: relative;
  overflow: hidden;
}

.shimmer-border::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    45deg,
    transparent 20%,
    rgba(255, 255, 255, 0.5) 50%,
    transparent 80%
  );
  animation: shimmerGlow 2.5s infinite linear;
  pointer-events: none;
}

.cursor-glow {
  /* Used with JS to follow mouse or static ambient effect */
  position: relative;
}

.cursor-glow::before {
  display: none;
}

.mobile-nav-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(3, 7, 18, 0.78);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  z-index: 99998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.mobile-nav-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.mobile-nav-drawer {
  position: fixed;
  top: 0;
  right: 0;
  transform: translateX(100%);
  width: 85%;
  max-width: 340px;
  height: 100%;
  background: #060B19;
  border-left: 1px solid rgba(0, 240, 255, 0.3);
  box-shadow: -10px 0 40px rgba(0, 0, 0, 0.8), inset 0 0 20px rgba(0, 240, 255, 0.05);
  z-index: 99999;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 30px 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow-y: auto;
}

.mobile-nav-drawer.open {
  transform: translateX(0);
}

.mobile-nav-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.4);
  backdrop-filter: blur(4px);
  z-index: 1040;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.mobile-nav-backdrop.open {
  opacity: 1;
  visibility: visible;
}

/* ==========================================================================
   BORDER BEAM ROTATING LASER ENGINE (APPLIED TO ALL GLASS BLOCKS)
   ========================================================================== */
@property --border-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0turn;
}

@keyframes borderRotate {
  0% { --border-angle: 0turn; }
  100% { --border-angle: 1turn; }
}

/* Universal border beam positioning */
.glass-card,
.trust-ribbon-card,
.comparison-table-wrapper,
.focus-card,
.focus-comparison-banner,
.calculator-box,
.calc-metric-card,
.audience-card,
.audience-summary-banner,
.pricing-card,
.pricing-bonus-banner,
.accordion-item,
.modal-dialog {
  position: relative;
}

/* Beam pseudo-element overlay */
.glass-card::after,
.trust-ribbon-card::after,
.comparison-table-wrapper::after,
.focus-card::after,
.focus-comparison-banner::after,
.calculator-box::after,
.calc-metric-card::after,
.audience-card::after,
.audience-summary-banner::after,
.pricing-card::after,
.pricing-bonus-banner::after,
.accordion-item::after,
.modal-dialog::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: conic-gradient(from var(--border-angle), transparent 70%, rgba(0, 240, 255, 0.45) 86%, #00F0FF 96%, #FFFFFF 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: borderRotate 5s linear infinite;
  animation-play-state: var(--beam-state, paused);
  pointer-events: none;
  z-index: 3;
}

/* Green laser beam for high-ticket / success cards */
.focus-card-sales::after,
.audience-card-fit::after,
.pricing-card-popular::after {
  background: conic-gradient(from var(--border-angle), transparent 70%, rgba(16, 185, 129, 0.45) 86%, #10B981 96%, #FFFFFF 100%);
  animation-duration: 5.5s;
}

/* Red / Warning laser beam for unfit card */
.audience-card-unfit::after {
  background: conic-gradient(from var(--border-angle), transparent 70%, rgba(239, 68, 68, 0.45) 86%, #F43F5E 96%, #FFFFFF 100%);
  animation-duration: 6.5s;
}

/* Natural desynchronization & staggered animation delays across blocks */
.focus-card:nth-child(1)::after { animation-delay: -1.2s; animation-duration: 5.8s; }
.focus-card:nth-child(2)::after { animation-delay: -3.5s; animation-duration: 6.2s; }
.audience-card:nth-child(1)::after { animation-delay: -0.8s; animation-duration: 6.5s; }
.audience-card:nth-child(2)::after { animation-delay: -2.7s; animation-duration: 5.5s; }
.accordion-item:nth-child(1)::after { animation-delay: -0.5s; }
.accordion-item:nth-child(2)::after { animation-delay: -1.7s; }
.accordion-item:nth-child(3)::after { animation-delay: -2.9s; }
.accordion-item:nth-child(4)::after { animation-delay: -4.1s; }
.accordion-item:nth-child(5)::after { animation-delay: -5.3s; }
.calc-metric-card:nth-child(1)::after { animation-delay: -0.6s; }
.calc-metric-card:nth-child(2)::after { animation-delay: -1.8s; }
.calc-metric-card:nth-child(3)::after { animation-delay: -3.0s; }
.calc-metric-card:nth-child(4)::after { animation-delay: -4.2s; }
.calc-metric-card:nth-child(5)::after { animation-delay: -5.4s; }

