/* The actual Peek-a-Boo models, shared by Doctor, Slide and their Home covers. */
.lisa-character-idle{transform-origin:180px 385px;animation:lisa-character-breathe 4s ease-in-out infinite}
.lisa-character-blink{opacity:0;pointer-events:none;animation:lisa-character-blink 3.4s linear infinite;animation-delay:var(--blink-delay,0s)}
.character-standing .lisa-character-idle{animation-duration:2.9s}
.character-happy .lisa-character-idle{animation-duration:2.8s}
.doctor-patients{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:1000px;margin:auto}
.doctor-patient-choice{min-width:0;max-width:none;padding:6px;border-radius:23px}
.doctor-patient-choice svg{height:clamp(115px,18svh,165px)}
.doctor-patient-choice strong{font-size:16px;padding:3px}
.doctor-patient-choice .lisa-character-idle,.slide-rider-choices .lisa-character-idle{animation:none}
.slide-rider-choices{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}
.slide-rider-choices button{min-height:106px}
.slide-rider-animal .lisa-character-idle{animation-duration:3s}
.slide-rider-animal svg.lisa-character{height:116%;bottom:-14%}
/* Let the feet dangle over the front of the tube, instead of cropping them off. */
.slide-rider-animal{inset:0 6% 0;overflow:visible}
.slide-rider-animal svg.lisa-character{height:100%;bottom:0}
.slide-rider-tube{z-index:1}
@keyframes lisa-character-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
/* Short natural blinks, offset so a group never blinks in unison. */
@keyframes lisa-character-blink{0%,39%,45%,100%{opacity:0}40%,44%{opacity:1}}
@media(max-width:760px){.doctor-choose{padding:14px}.doctor-patients{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.doctor-patient-choice svg{height:125px}.slide-rider-choices{grid-template-columns:repeat(5,minmax(0,1fr))}.slide-rider-choices button{min-height:93px}}
@media(max-width:420px){.doctor-patient-choice svg{height:107px}.doctor-patient-choice strong{font-size:13px}.slide-rider-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.slide-rider-choices svg{height:64px}.slide-rider-choices button{min-height:89px}}
@media(prefers-reduced-motion:reduce){.lisa-character-idle,.lisa-character-blink{animation:none!important}}

.lisa-motion-layer{pointer-events:none;overflow:visible}
.lisa-character-canvas{display:block;width:100%;height:100%;pointer-events:none}
.limbs-animated>.lisa-character-idle>image{visibility:hidden}
/* Keep care spots stationary while a tool is aimed or applied. */
#doctor-stage:has(.doctor-target.suggested) .lisa-character-idle,#doctor-stage.treating .lisa-character-idle{animation:none}
#doctor-patient.care-happy{animation:none}
/* Eyelids paint over the native canvas without adding an opaque character box. */
#doctor-patient>.lisa-character{z-index:1}
#doctor-patient .doctor-motion-layer{z-index:0}
.victory-animal>.lisa-character{position:relative;z-index:1}
.lisa-party-motion-layer{position:absolute;inset:0;pointer-events:none;z-index:0}
.lisa-party-motion-layer canvas{object-fit:contain}
.victory-animal .lisa-character-idle{animation:none}

/* Bird uses actual seated wing/blink frames rather than borrowing a mammal rig. */
.bird-rest-frame{opacity:1;animation:bird-rest-pose 6s step-end infinite}.bird-blink-frame{opacity:0;animation:bird-blink-pose 6s step-end infinite}.bird-flutter-frame{opacity:0;animation:bird-wing-pose 6s step-end infinite}
@keyframes bird-rest-pose{0%,34%,74%,82%,100%{opacity:1}30%,70%,78%{opacity:0}}
@keyframes bird-blink-pose{0%,34%,100%{opacity:0}30%{opacity:1}}
@keyframes bird-wing-pose{0%,74%,82%,100%{opacity:0}70%,78%{opacity:1}}
#doctor-stage:has(.doctor-target.suggested) .character-bird image,#doctor-stage.treating .character-bird image{animation:none}
#doctor-stage .character-bird .bird-rest-frame{opacity:1}
#doctor-stage .character-bird .bird-blink-frame,#doctor-stage .character-bird .bird-flutter-frame{opacity:0}
.slide-field.paused .character-bird image{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.character-bird image{animation:none!important}}

/* Ten rider options retain a finger-sized minimum on narrow screens. */
.slide-rider-choices{flex-wrap:wrap}.slide-rider-choices button{min-width:76px}
