/* Prescy motion — pair with the inline SVG markup in prescy-motion.html.
   Motion must be INLINE SVG. Animation embedded in a standalone .svg loaded
   via <img> is not reliable; these classes drive inlined nodes instead. */

@keyframes prescy-spin   { to { transform: rotate(360deg); } }
@keyframes prescy-gap    { 0%, 100% { stroke-dasharray: 122.5 0; } 50% { stroke-dasharray: 96 26.5; } }
@keyframes prescy-breathe{ 0%, 100% { transform: scale(1); } 50% { transform: scale(0.82); } }
@keyframes prescy-radar  { 0% { transform: scale(0.32); opacity: 0.85; } 100% { transform: scale(1); opacity: 0; } }
@keyframes prescy-draw   { 0% { stroke-dashoffset: 122.5; } 45%, 100% { stroke-dashoffset: 0; } }
@keyframes prescy-pupil  { 0%, 30% { transform: scale(0); } 48% { transform: scale(1.18); } 58%, 100% { transform: scale(1); } }
@keyframes prescy-word   { 0%, 40% { opacity: 0; transform: translateX(-14px); } 62%, 100% { opacity: 1; transform: translateX(0); } }

.prescy-ring, .prescy-pupil, .prescy-pulse { transform-box: fill-box; transform-origin: center; }

/* Scanning loader — gap travels round the ring */
.prescy-scanning .prescy-ring  { animation: prescy-spin 1.4s linear infinite, prescy-gap 2.8s ease-in-out infinite; }
.prescy-scanning .prescy-pupil { animation: prescy-breathe 2.8s ease-in-out infinite; }

/* Live scan — pulse out of the pupil */
.prescy-livescan .prescy-pulse   { animation: prescy-radar 2s ease-out infinite; }
.prescy-livescan .prescy-pulse-b { animation-delay: 1s; }

/* Brand reveal — 2.4s, plays once, holds final frame */
.prescy-reveal .prescy-ring  { stroke-dasharray: 122.5; animation: prescy-draw 2.4s cubic-bezier(0.65,0,0.35,1) both; }
.prescy-reveal .prescy-pupil { animation: prescy-pupil 2.4s cubic-bezier(0.34,1.4,0.64,1) both; }
.prescy-reveal .prescy-word  { animation: prescy-word 2.4s cubic-bezier(0.22,1,0.36,1) both; }

/* Nav hover — the aperture blinks once */
.prescy-logo svg { transform-origin: center; transition: transform 0.3s cubic-bezier(0.34,1.4,0.64,1); }
.prescy-logo:hover svg { transform: scaleY(0.14); }

@media (prefers-reduced-motion: reduce) {
  .prescy-scanning .prescy-ring,
  .prescy-scanning .prescy-pupil,
  .prescy-livescan .prescy-pulse,
  .prescy-reveal .prescy-ring,
  .prescy-reveal .prescy-pupil,
  .prescy-reveal .prescy-word { animation: none; }
  .prescy-reveal .prescy-ring { stroke-dasharray: none; }
  .prescy-livescan .prescy-pulse { display: none; }
  .prescy-logo:hover svg { transform: none; }
}
