/* =========================================================
   Theme ritual — core-only morph on tab switch
   (no rings / wash / orbit sparks around the core)
   ========================================================= */

/* —— core personalities —— */
.phase-core.is-ritual-couple,
.phase-core.is-ritual-friends,
.phase-core.is-ritual-family {
  z-index: 4;
}

.phase-core.is-ritual-couple {
  animation: ritualCoreCouple 1.35s cubic-bezier(0.34, 1.45, 0.64, 1) both !important;
  filter: drop-shadow(0 0 36px rgba(255, 105, 140, 0.65));
}

.phase-core.is-ritual-friends {
  animation: ritualCoreFriends 1.25s cubic-bezier(0.34, 1.6, 0.64, 1) both !important;
  filter: drop-shadow(0 0 34px rgba(255, 213, 74, 0.65));
}

.phase-core.is-ritual-family {
  animation: ritualCoreFamily 1.4s cubic-bezier(0.22, 1.15, 0.36, 1) both !important;
  filter: drop-shadow(0 0 38px rgba(96, 165, 250, 0.65));
  perspective: 600px;
}

.phase-core.is-ritual-couple .core-glow {
  animation: ritualGlowCouple 1.35s cubic-bezier(0.34, 1.3, 0.64, 1) both;
}

.phase-core.is-ritual-friends .core-glow {
  animation: ritualGlowFriends 1.25s cubic-bezier(0.34, 1.4, 0.64, 1) both;
}

.phase-core.is-ritual-family .core-glow {
  animation: ritualGlowFamily 1.4s cubic-bezier(0.22, 1.1, 0.36, 1) both;
}

.phase-core.is-ritual-couple .core-heart {
  opacity: 1 !important;
  visibility: visible !important;
  animation: ritualHeartBeat 1.35s cubic-bezier(0.34, 1.5, 0.64, 1) both;
}

.phase-core.is-ritual-friends .core-face {
  opacity: 1 !important;
  visibility: visible !important;
  animation: ritualFacePop 1.25s cubic-bezier(0.34, 1.6, 0.64, 1) both;
}

.phase-core.is-ritual-family .core-dna {
  opacity: 1 !important;
  visibility: visible !important;
  animation: ritualDnaSpin 1.4s cubic-bezier(0.22, 1.15, 0.36, 1) both;
}

.phase-core.is-ritual-couple .core-shine,
.phase-core.is-ritual-friends .core-shine,
.phase-core.is-ritual-family .core-shine {
  animation: ritualShineBurst 1.2s ease-out both;
}

@keyframes ritualCoreCouple {
  0% { transform: scale(0.62) rotate(-14deg); }
  18% { transform: scale(1.22) rotate(6deg); }
  32% { transform: scale(0.9) rotate(-5deg); }
  48% { transform: scale(1.16) rotate(4deg); }
  64% { transform: scale(0.96) rotate(-2deg); }
  80% { transform: scale(1.06) rotate(1deg); }
  100% { transform: scale(1) rotate(0deg); }
}

@keyframes ritualCoreFriends {
  0% { transform: scale(0.48) rotate(-24deg) translateY(12px); }
  28% { transform: scale(1.28) rotate(14deg) translateY(-14px); }
  44% { transform: scale(0.86) rotate(-10deg) translateY(8px); }
  62% { transform: scale(1.16) rotate(8deg) translateY(-6px); }
  82% { transform: scale(0.96) rotate(-3deg) translateY(2px); }
  100% { transform: scale(1) rotate(0deg) translateY(0); }
}

@keyframes ritualCoreFamily {
  0% { transform: scale(0.72) rotateY(95deg) rotateZ(-16deg); }
  35% { transform: scale(1.14) rotateY(-32deg) rotateZ(10deg); }
  58% { transform: scale(0.96) rotateY(18deg) rotateZ(-6deg); }
  78% { transform: scale(1.06) rotateY(-8deg) rotateZ(3deg); }
  100% { transform: scale(1) rotateY(0deg) rotateZ(0deg); }
}

@keyframes ritualGlowCouple {
  0% { transform: scale(0.7); filter: blur(2px) brightness(1.4); }
  40% { transform: scale(1.18); filter: blur(0.5px) brightness(1.25); }
  100% { transform: scale(1); filter: blur(1px) brightness(1); }
}

@keyframes ritualGlowFriends {
  0% { transform: scale(0.55) rotate(-12deg); filter: blur(2px) brightness(1.5); }
  45% { transform: scale(1.2) rotate(8deg); filter: blur(0.5px) brightness(1.3); }
  100% { transform: scale(1) rotate(0deg); filter: blur(1px) brightness(1); }
}

@keyframes ritualGlowFamily {
  0% { transform: scale(0.65) rotate(-20deg); filter: blur(3px) brightness(1.45) hue-rotate(-20deg); }
  50% { transform: scale(1.15) rotate(10deg); filter: blur(0.5px) brightness(1.2) hue-rotate(8deg); }
  100% { transform: scale(1) rotate(0deg); filter: blur(1px) brightness(1) hue-rotate(0deg); }
}

@keyframes ritualHeartBeat {
  0% { transform: scale(0.55) rotate(-8deg); opacity: 0; }
  25% { transform: scale(1.28) rotate(4deg); opacity: 1; }
  42% { transform: scale(0.88) rotate(-3deg); }
  58% { transform: scale(1.18) rotate(2deg); }
  74% { transform: scale(0.96) rotate(-1deg); }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

@keyframes ritualFacePop {
  0% { transform: scale(0.4) rotate(-18deg) translateY(16px); opacity: 0; }
  35% { transform: scale(1.3) rotate(10deg) translateY(-10px); opacity: 1; }
  55% { transform: scale(0.9) rotate(-6deg) translateY(4px); }
  75% { transform: scale(1.12) rotate(4deg) translateY(-3px); }
  100% { transform: scale(1) rotate(0deg) translateY(0); opacity: 1; }
}

@keyframes ritualDnaSpin {
  0% { transform: scale(0.5) rotate(-40deg) rotateY(70deg); opacity: 0; }
  40% { transform: scale(1.2) rotate(20deg) rotateY(-25deg); opacity: 1; }
  70% { transform: scale(0.95) rotate(-8deg) rotateY(12deg); }
  100% { transform: scale(1) rotate(0deg) rotateY(0deg); opacity: 1; }
}

@keyframes ritualShineBurst {
  0% { opacity: 0; transform: scale(0.6) rotate(0deg); }
  35% { opacity: 1; transform: scale(1.35) rotate(40deg); }
  100% { opacity: 0.85; transform: scale(1) rotate(120deg); }
}

/* relation pick — handled in design-delight.css */
.btn-relation.is-picked-relation {
  /* keep ritual file from fighting delight */
}

.relation-actions:has(.is-picked-relation) .btn-relation:not(.is-picked-relation) {
  /* delight owns sibling dim */
}

@media (prefers-reduced-motion: reduce) {
  .phase-core.is-ritual-couple,
  .phase-core.is-ritual-friends,
  .phase-core.is-ritual-family,
  .phase-core.is-ritual-couple .core-glow,
  .phase-core.is-ritual-friends .core-glow,
  .phase-core.is-ritual-family .core-glow,
  .phase-core.is-ritual-couple .core-heart,
  .phase-core.is-ritual-friends .core-face,
  .phase-core.is-ritual-family .core-dna {
    animation: none !important;
  }
}
