/* No CSS autoplay. WAAPI playback is explicitly unlocked by the reveal lifecycle. */
.vocabulary-motion{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:100%}
.vocabulary-motion-scene{display:block;width:min(100%,320px);height:auto;max-height:220px;border-radius:20px}
.vocabulary-motion [data-motion-part="front-arm"],.vocabulary-motion [data-motion-part="back-arm"]{transform-origin:5px -23px}
.vocabulary-motion [data-motion-part="front-leg"],.vocabulary-motion [data-motion-part="back-leg"]{transform-origin:0 9px}
.vocabulary-motion[data-vocabulary-motion="swim"] [data-motion-part="front-arm"]{transform-origin:155px 124px}
.vocabulary-motion[data-vocabulary-motion="swim"] [data-motion-part="back-leg"]{transform-origin:114px 132px}
.vocabulary-motion-replay{font:inherit;font-size:.82rem;font-weight:700;min-height:36px;padding:6px 14px;border:1px solid #a9c7bd;border-radius:999px;background:#f2f8f5;color:#244c47;cursor:pointer}
.vocabulary-motion-replay:focus-visible{outline:3px solid #397cbd;outline-offset:3px}
.vocabulary-motion-replay:disabled{opacity:.5;cursor:default}
.vocabulary-motion-replay[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.vocabulary-motion-replay{display:none}}
/* The legacy picture entrance must not animate the entire semantic scene. */
.oral-model .vocabulary-motion .vocabulary-motion-scene{animation:none;width:min(100%,320px);height:auto;max-height:220px}
@media(max-width:650px){.oral-model .vocabulary-motion .vocabulary-motion-scene{max-height:180px}}
/* Fit the complete reveal (scene, Replay, word and guidance) inside its card. */
.oral-model.picture-card:has(.vocabulary-motion){display:grid;grid-template-rows:minmax(0,1fr) auto auto;justify-items:center;align-content:stretch;gap:4px}
.oral-model.picture-card .vocabulary-motion{display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;width:min(100%,320px);height:100%;min-height:0;gap:4px}
.oral-model.picture-card .vocabulary-motion .vocabulary-motion-scene{width:100%;height:100%;max-height:100%;min-height:0;object-fit:contain;animation:none}
.oral-model.picture-card:has(.vocabulary-motion) .oral-word,.oral-model.picture-card:has(.vocabulary-motion) .model-label{margin:0;min-width:0}
@media(prefers-reduced-motion:reduce){.oral-model.picture-card .vocabulary-motion{grid-template-rows:minmax(0,1fr)}}
