/* ==========================================================================
   KAIKUSE FITNESS — Web Logo Animations & Tokens
   Version: 1.0.0 (Master Vector Suite 2026)
   ========================================================================== */

:root {
  --kaikuse-volt: #FFB800;
  --kaikuse-black: #000000;
  --kaikuse-dark: #070708;
  --kaikuse-slate: #0F172A;
  --kaikuse-glow: rgba(255, 184, 0, 0.7);
  --kaikuse-anim-duration: 2.2s;
}

/* Base Emblem */
.kaikuse-emblem {
  display: block;
  width: 100%;
  height: 100%;
  transform-origin: center center;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), filter 0.3s ease;
}

.kaikuse-emblem:hover {
  filter: drop-shadow(0 0 16px var(--kaikuse-glow));
}

/* Mode 1: Stroke Draw & Fill Reveal */
.kaikuse-anim-draw #master-path,
.kaikuse-anim-draw .kaikuse-stroke-target {
  stroke: var(--kaikuse-volt);
  stroke-width: 4px;
  stroke-dasharray: 4800;
  stroke-dashoffset: 4800;
  fill: var(--kaikuse-volt);
  animation: kaikuseDrawAndFill var(--kaikuse-anim-duration) cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes kaikuseDrawAndFill {
  0% {
    stroke-dashoffset: 4800;
    fill-opacity: 0;
  }
  65% {
    stroke-dashoffset: 0;
    fill-opacity: 0.15;
  }
  100% {
    stroke-dashoffset: 0;
    fill-opacity: 1;
    filter: drop-shadow(0 0 20px var(--kaikuse-glow));
  }
}

/* Mode 2: Symmetrical Snap (Modular Assembly) */
.kaikuse-anim-snap #part-left-side {
  animation: kaikuseSnapLeft 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.kaikuse-anim-snap #part-right-side {
  animation: kaikuseSnapRight 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.kaikuse-anim-snap .eye-layer {
  animation: kaikuseEyeFlare 1.8s ease forwards;
}

@keyframes kaikuseSnapLeft {
  0% { transform: translateX(-140px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}
@keyframes kaikuseSnapRight {
  0% { transform: translateX(140px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}
@keyframes kaikuseEyeFlare {
  0%, 65% { fill: #000000; filter: none; }
  100% { fill: var(--kaikuse-volt); filter: drop-shadow(0 0 14px var(--kaikuse-volt)); }
}

/* Mode 3: Cardio / Fitness Pulse */
.kaikuse-anim-pulse {
  animation: kaikuseCardioPulse 1.6s ease-in-out infinite;
  transform-origin: 540px 540px;
}

@keyframes kaikuseCardioPulse {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 8px rgba(255, 184, 0, 0.3));
  }
  25% {
    transform: scale(1.04);
    filter: drop-shadow(0 0 25px var(--kaikuse-volt)) drop-shadow(0 0 45px var(--kaikuse-volt));
  }
  38% { transform: scale(0.99); }
  50% {
    transform: scale(1.02);
    filter: drop-shadow(0 0 16px var(--kaikuse-volt));
  }
  65% { transform: scale(1); }
}

/* Mode 4: Floating Luxury Halo */
.kaikuse-anim-floating {
  animation: kaikuseFloat 4s ease-in-out infinite alternate;
  transform-origin: 540px 540px;
}

@keyframes kaikuseFloat {
  0% {
    transform: translateY(8px) rotate(-0.5deg);
    filter: drop-shadow(0 15px 30px rgba(0,0,0,0.8)) drop-shadow(0 0 10px rgba(255,255,59,0.2));
  }
  100% {
    transform: translateY(-10px) rotate(0.5deg);
    filter: drop-shadow(0 25px 50px rgba(0,0,0,0.9)) drop-shadow(0 0 24px rgba(255,255,59,0.5));
  }
}
