/* ============================================================================
   dreams-visions.css — Phase 4 styling layer (Cross-World Artifact Transfer)
   Imported once in index.html (cf. Project instructions/MAINPhase 4 - … .md §4).
   Only the keyframes Tailwind can't express live here; all other styling is
   inline via Tailwind classes inside DreamTransferInterface.tsx and
   HolographicVisionInterface.tsx.
   ============================================================================ */

/* Body-level nightmare overlay — toggled by DreamTransferInterface.triggerNightmare. */
body.nightmare-mode {
  animation: nightmare 5s ease-in-out;
}

@keyframes nightmare {
  0%   { filter: brightness(1)   hue-rotate(0deg)   contrast(1)   blur(0px); }
  25%  { filter: brightness(0.3) hue-rotate(45deg)  contrast(1.4) blur(0px); }
  50%  { filter: brightness(1.5) hue-rotate(180deg) contrast(0.7) blur(0px); }
  75%  { filter: brightness(0.5) hue-rotate(270deg) contrast(1.6) blur(4px); }
  100% { filter: brightness(1)   hue-rotate(360deg) contrast(1)   blur(0px); }
}

/* Used by the "lucid" artifact hologram overlay (Tailwind animate-pulse alone
   doesn't carry the gold drop-shadow ramp). */
@keyframes lucidGlow {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 30px gold);
  }
  50% {
    transform: scale(1.1);
    filter: drop-shadow(0 0 50px gold) drop-shadow(0 0 20px white);
  }
}

/* Sacred-geometry rotating overlay — used by HolographicVisionInterface
   when consciousness > 70 and the SVG layer is shown. */
@keyframes geometryRotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.sacred-geometry-overlay {
  position: fixed;
  inset: 0;
  pointer-events: none;
  animation: geometryRotate 60s linear infinite;
  opacity: 0.15;
}

/* Divine-presence sparkle — slow spin + text-shadow pulse. */
@keyframes divineSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes divineGlow {
  0%, 100% { text-shadow: 0 0 10px gold, 0 0 20px gold; }
  50%      { text-shadow: 0 0 25px gold, 0 0 50px white; }
}

.divine-presence {
  animation: divineSpin 10s linear infinite, divineGlow 2s ease-in-out infinite;
}

/* Fade-in for choice buttons; uses an existing Tailwind anim, but expose a
   keyframe alias so non-Tailwind callers (tests, design doc) can reference it. */
@keyframes choiceFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0);    }
}
