/**
 * ksp-drift.css
 * Semantic Drift Animation Styles
 * 呼吸する構文密度バーの視覚効果
 */

/* ===== Base Breathing Animation ===== */
.ksp-summary-bar-fill {
  animation: kspBreath 6s ease-in-out infinite alternate;
  transform-origin: left center;
}

@keyframes kspBreath {
  0% {
    filter: brightness(0.95);
    box-shadow: 0 0 3px rgba(255, 255, 255, 0.1);
  }
  50% {
    filter: brightness(1.05);
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
  }
  100% {
    filter: brightness(0.95);
    box-shadow: 0 0 3px rgba(255, 255, 255, 0.1);
  }
}

/* ===== EIDBO Individual Patterns ===== */

/* Emotion (感情) - ゆるい波動 */
.ksp-summary-bar-item[data-eidbo="emotion"] .ksp-summary-bar-fill {
  animation: emotionWave 5s ease-in-out infinite;
}

@keyframes emotionWave {
  0%, 100% {
    filter: brightness(0.8) saturate(0.9);
    box-shadow: 0 0 2px var(--eidbo-emotion, #ff6b9d);
  }
  50% {
    filter: brightness(1.4) saturate(1.5);
    box-shadow: 0 0 20px var(--eidbo-emotion, #ff6b9d);
    transform: scaleX(1.02);
  }
}

/* Intention (意図) - 思考の点滅 */
.ksp-summary-bar-item[data-eidbo="intention"] .ksp-summary-bar-fill {
  animation: intentionPulse 4s ease-in-out infinite;
}

@keyframes intentionPulse {
  0%, 80%, 100% {
    filter: brightness(0.85);
    box-shadow: 0 0 2px var(--eidbo-intention, #52a9ff);
  }
  90% {
    filter: brightness(1.6);
    box-shadow: 0 0 25px var(--eidbo-intention, #52a9ff);
    transform: scaleX(1.03);
  }
}

/* Deployment (展開) - 構文の波紋 */
.ksp-summary-bar-item[data-eidbo="deployment"] .ksp-summary-bar-fill {
  animation: deploymentRipple 7s ease-in-out infinite;
}

@keyframes deploymentRipple {
  0%, 100% {
    filter: brightness(0.95);
    box-shadow: 0 0 4px var(--eidbo-deployment, #9f7aea);
  }
  30% {
    filter: brightness(1.05);
    box-shadow: 0 0 8px var(--eidbo-deployment, #9f7aea);
  }
  70% {
    filter: brightness(1.05);
    box-shadow: 0 0 8px var(--eidbo-deployment, #9f7aea);
  }
}

/* Behavior (行動) - 突発的フラッシュ */
.ksp-summary-bar-item[data-eidbo="behavior"] .ksp-summary-bar-fill {
  animation: behaviorFlash 6s ease-in-out infinite;
}

@keyframes behaviorFlash {
  0%, 60%, 100% {
    filter: brightness(0.8);
    box-shadow: 0 0 2px var(--eidbo-behavior, #00ff00);
  }
  65% {
    filter: brightness(1.8);
    box-shadow: 0 0 30px var(--eidbo-behavior, #00ff00);
    transform: scaleX(1.05);
  }
  70% {
    filter: brightness(0.8);
    box-shadow: 0 0 2px var(--eidbo-behavior, #00ff00);
  }
}

/* Outcome (成果) - 安定した収束 */
.ksp-summary-bar-item[data-eidbo="outcome"] .ksp-summary-bar-fill {
  animation: outcomeStable 8s ease-in-out infinite;
}

@keyframes outcomeStable {
  0%, 100% {
    filter: brightness(0.98);
    box-shadow: 0 0 5px var(--eidbo-outcome, #ffaa00);
  }
  50% {
    filter: brightness(1.03);
    box-shadow: 0 0 8px var(--eidbo-outcome, #ffaa00);
  }
}

/* ===== Hover State (観察モード) ===== */
.ksp-summary-bar-item:hover .ksp-summary-bar-fill {
  animation: none !important;
  filter: brightness(1.1) !important;
  box-shadow: 0 0 12px currentColor !important;
  transition: all 0.3s ease !important;
}

/* ===== Double Click Hint ===== */
.ksp-summary-bar-item {
  cursor: pointer;
  position: relative;
}

.ksp-summary-bar-item::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 8px;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
  background: radial-gradient(circle at center, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
}

.ksp-summary-bar-item:active::after {
  opacity: 1;
}

/* ===== Shimmer Effect (キラめき) ===== */
@keyframes shimmerDrift {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

.ksp-summary-bar-fill::before {
  animation-duration: 3s; /* ゆっくりめのシマー */
}

/* ===== Collapsed State (折りたたみ時も呼吸継続) ===== */
.ksp-semantic-summary-wrapper.collapsed .ksp-summary-bar-fill {
  animation-play-state: running;
}

/* ===== Reduced Motion Support ===== */
@media (prefers-reduced-motion: reduce) {
  .ksp-summary-bar-fill {
    animation: none !important;
  }

  .ksp-summary-bar-fill::before {
    animation: none !important;
  }
}

/* ===== Performance Optimization ===== */
.ksp-summary-bar-fill {
  will-change: filter, box-shadow;
  backface-visibility: hidden;
  transform: translateZ(0);
}
