/* JokerHouse animations & micro interactions */
@keyframes floaty {
  0%, 100% { transform: translate(-50%, -50%) translateY(0); }
  50% { transform: translate(-50%, -50%) translateY(-10px); }
}

@keyframes shine {
  0% { transform: translateX(-120%) skewX(-20deg); opacity:0; }
  25% { opacity:.6; }
  55% { opacity:.0; }
  100% { transform: translateX(160%) skewX(-20deg); opacity:0; }
}

@keyframes breathe {
  0%,100% { box-shadow: 0 0 0 0 rgba(22,243,179,.0), 0 18px 45px rgba(0,0,0,.40); }
  50% { box-shadow: 0 0 0 8px rgba(22,243,179,.10), 0 18px 45px rgba(0,0,0,.40); }
}

.brand__logo{
  animation: breathe 4.2s ease-in-out infinite;
}

.table .floating{
  animation: floaty 4.8s ease-in-out infinite;
}

.btn--primary{
  position:relative;
  overflow:hidden;
}
.btn--primary::after{
  content:"";
  position:absolute;
  inset:-20px;
  width: 60%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.50), transparent);
  transform: translateX(-120%) skewX(-20deg);
  opacity:0;
}
.btn--primary:hover::after{
  animation: shine 1.0s ease-in-out forwards;
}


.brand3d__joker{ animation: breathe 4.2s ease-in-out infinite; }
.brand3d:hover .brand3d__joker{ transform: translateY(-20px) rotate(-1deg); }

/* Split header micro motion */
.brand-split:hover::before{ border-color: rgba(255,255,255,.18); }

