/* =========================================================
   Walrus Party Easter Egg — Styles
   Namespace: .walrus-party-* / .wp-*
   Safe to concatenate with existing stylesheets; no resets,
   no global selectors.
   ========================================================= */

.walrus-party-disco {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 2147483645;
  mix-blend-mode: overlay;
  background:
    radial-gradient(circle at 20% 30%, rgba(255, 0, 255, 0.55), transparent 35%),
    radial-gradient(circle at 80% 25%, rgba(0, 220, 255, 0.55), transparent 35%),
    radial-gradient(circle at 50% 75%, rgba(255, 230, 0, 0.55), transparent 35%),
    radial-gradient(circle at 25% 80%, rgba(255, 60, 60, 0.55), transparent 35%),
    radial-gradient(circle at 85% 70%, rgba(120, 255, 120, 0.55), transparent 35%);
  animation:
    wp-disco-pulse 0.5s ease-in-out infinite,
    wp-disco-hue 4s linear infinite;
}

@keyframes wp-disco-pulse {
  0%, 100% { opacity: 0.55; }
  50%      { opacity: 0.90; }
}

@keyframes wp-disco-hue {
  from { filter: hue-rotate(0deg); }
  to   { filter: hue-rotate(360deg); }
}

.walrus-party-confetti {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 2147483646;
}

.walrus-party-walrus {
  position: fixed;
  width: 90px;
  height: 75px;
  pointer-events: none;
  z-index: 2147483647;
  will-change: transform;
  transform-origin: center center;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

.walrus-party-walrus svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Three dance variants — assigned randomly by JS */
.wp-dance-bounce { animation-name: wp-bounce; }
.wp-dance-wiggle { animation-name: wp-wiggle; }
.wp-dance-spin   { animation-name: wp-spin; }

@keyframes wp-bounce {
  0%, 100% { transform: translateY(0)     rotate(-6deg) scale(1); }
  50%      { transform: translateY(-28px) rotate(6deg)  scale(1.05); }
}

@keyframes wp-wiggle {
  0%, 100% { transform: rotate(-18deg) scale(1); }
  50%      { transform: rotate(18deg)  scale(1.1); }
}

@keyframes wp-spin {
  0%   { transform: rotate(0deg)   translateY(0); }
  50%  { transform: rotate(180deg) translateY(-14px); }
  100% { transform: rotate(360deg) translateY(0); }
}

/* Reduced-motion fallback: if JS config RESPECT_REDUCED_MOTION is true,
   the disco and confetti are skipped entirely. Walruses still show
   but with a gentle bob via this media query. */
@media (prefers-reduced-motion: reduce) {
  .walrus-party-walrus {
    animation-name: wp-bob !important;
    animation-duration: 1.5s !important;
  }
}

@keyframes wp-bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
