
/* Mismo lenguaje de interacción que ZT Fact, con identidad ZT Psico. */
.psico-response-lane { position:relative; height:76px; margin:22px 30px 0; }
.psico-lane-label { display:block; text-align:center; color:#9dacca; font-size:8px; letter-spacing:1.4px; font-weight:700; }
.psico-lane-line { position:absolute; top:46px; left:10%; right:10%; height:1px; background:linear-gradient(90deg,#ae97e820,#ae97e866,#ae97e820); }
.psico-packet { position:absolute; left:16%; top:30px; transform:translateX(-50%); display:flex; white-space:nowrap; padding:8px 13px; border-radius:22px; font:700 10px system-ui,sans-serif; z-index:3; transition:left 850ms cubic-bezier(.4,0,.2,1); }
.psico-packet[hidden] { display:none; }
.psico-packet.is-request { background:#173b65; border:1px solid #84bdff; color:#d8ebff; box-shadow:0 0 24px #69afff35; }
.psico-packet.is-processing { background:#704719; border:1px solid #f6c66d; color:#fff0c9; box-shadow:0 0 24px #f5b84c35; }
.psico-packet.is-response { background:#164b40; border:1px solid #a5f2cd; color:#c0f7de; box-shadow:0 0 24px #8de8bd2b; }
.psico-packet.is-registered { background:#1e6048; letter-spacing:1px; }
.validation-track .validation-participant,.validation-track .validation-record,.validation-track .validation-engine,.validation-track .validation-result { transition:opacity .45s,background .45s,border-color .45s,box-shadow .45s; }
.validation-track .validation-participant:not(.active),.validation-track .validation-record:not(.sector-active),.validation-track .validation-engine:not(.sector-active),.validation-track .validation-result:not(.sector-active) { opacity:.56; background:#0c182a; border-color:#647b9e30; box-shadow:none; }
.validation-track .validation-participant.active { opacity:1; background:#362951; border-color:#baa0f4; box-shadow:0 0 30px #b396ef22; }
.validation-track .sector-active { opacity:1; border-color:#b396efaa; background:#302742; box-shadow:0 0 30px #b396ef16; }
.validation-track .validation-engine { border:1px solid transparent; border-radius:18px; padding:16px 12px; }
.validation-track .validation-engine:not(.sector-active) .orbit-dot { animation-play-state:paused; }
.validation-track.is-processing .validation-participant[data-participant="2"].active { background:#463721; border-color:#efc173; }
.validation-track.is-processing .validation-participant[data-participant="2"] .participant-icon { animation:psico-processing .8s ease-in-out infinite alternate; }
.validation-track .validation-participant { position:relative; }
.validation-track.response-born .validation-participant[data-participant="2"]:after { content:''; position:absolute; inset:-2px; border:2px solid #9df1cb; border-radius:inherit; animation:psico-confirm 1s ease-out both; pointer-events:none; }
.validation-track.response-born .result-seal { color:#a8efd0; background:#62d6ab20; border-color:#9df1cb; }
.psico-packet.is-generated { animation:psico-response-born .85s cubic-bezier(.22,1,.36,1) both; }
.validation-console.is-complete .validation-result:not(.sector-active) .result-seal { box-shadow:none; transform:none; }
@keyframes psico-processing { to { opacity:.5; box-shadow:0 0 20px #f6c66d55; } }
@keyframes psico-confirm { from { opacity:1; transform:scale(1); } to { opacity:0; transform:scale(1.12); } }
@keyframes psico-response-born { 0% { opacity:.3; transform:translateX(-50%) scale(.72); filter:brightness(1.8); } 55% { opacity:1; transform:translateX(-50%) scale(1.13); } 100% { opacity:1; transform:translateX(-50%) scale(1); filter:brightness(1); } }
@media(max-width:620px) { .psico-response-lane { margin:18px 20px 0; }.psico-lane-label { font-size:8px; }.validation-track .validation-engine { padding:14px 10px; } }
@media(prefers-reduced-motion:reduce) { .psico-packet,.validation-track .validation-participant,.validation-track .validation-record,.validation-track .validation-engine,.validation-track .validation-result { transition:none; }.psico-packet.is-generated,.validation-track.response-born .validation-participant:after,.validation-track.is-processing .participant-icon { animation:none!important; } }

/* Invitación a probar la simulación; se detiene durante la ejecución. */
#validation-play:not(:disabled) { animation:psico-invite 2s ease-in-out infinite; }
#validation-play:hover,#validation-play:focus-visible { animation:none; }
@keyframes psico-invite {
 0%,100% { box-shadow:0 0 0 0 rgba(120,175,230,0); filter:brightness(1); }
 50% { box-shadow:0 0 0 7px rgba(120,175,230,.12),0 0 24px rgba(120,175,230,.24); filter:brightness(1.12); }
}
@media(prefers-reduced-motion:reduce) { #validation-play:not(:disabled) { animation:none; } }

#validation-play:not(:disabled) { animation:psico-button-call 1.2s ease-in-out infinite; }
#validation-play:hover,#validation-play:focus-visible { animation-play-state:paused; }
@keyframes psico-button-call {
 0%,100% { background-color:#ac91ef; box-shadow:0 0 0 0 rgba(185,151,255,0); }
 50% { background-color:#ddccff; box-shadow:0 0 0 8px rgba(185,151,255,.3),0 0 38px rgba(185,151,255,.7); filter:brightness(1.18); }
}
@media(prefers-reduced-motion:reduce) { #validation-play:not(:disabled) { animation:none; } }
