/*!
 * kohan-drive.css — the car the avatar drives.
 *
 * The car is a child of the avatar root, so it inherits the root's position and
 * every existing movement path (double-click tween, arrow keys, drag) moves it
 * for free. It is centred on the avatar and sits BEHIND it in the stack, which
 * matters because the sprite already contains the driver: while driving the
 * avatar itself is hidden and only the car is seen.
 *
 * Nothing here changes the avatar's own look. Every rule is scoped to
 * .kohan-car or to [data-kohan-driving], an attribute that exists only while a
 * drive is in progress.
 */:root{--kohan-car-w:232px;--kohan-car-door-ms:420ms}@media (prefers-reduced-motion:reduce){:root{--kohan-car-door-ms:0ms}}.kohan-car{position:absolute;left:50%;top:50%;width:var(--kohan-car-w);aspect-ratio:768/516;translate:-50% -38%;z-index:0;pointer-events:none;background-repeat:no-repeat;background-position:center;background-size:contain;opacity:0;scale:.92;will-change:opacity,scale}.kohan-car[data-kohan-car=driving],.kohan-car[data-kohan-car=entering],.kohan-car[data-kohan-car=exiting]{opacity:1;scale:1;animation:kohan-car-in 240ms cubic-bezier(.2,.9,.3,1.2) both}@keyframes kohan-car-in{from{opacity:0;scale:.92}to{opacity:1;scale:1}}.kohan-car[data-kohan-car=driving]{animation:kohan-car-in 240ms cubic-bezier(.2,.9,.3,1.2) both,kohan-car-roll .9s ease-in-out 240ms infinite}@keyframes kohan-car-roll{0%,100%{translate:-50% -38%}50%{translate:-50% calc(-38% - 2px)}}.kohan-car[data-kohan-car=entering],.kohan-car[data-kohan-car=exiting]{transition:opacity var(--kohan-car-door-ms) ease,scale var(--kohan-car-door-ms) ease}[data-kohan-driving]>:not(.kohan-car){visibility:hidden}[data-kohan-driving]{background-image:none!important}[data-kohan-driving]>.kdcv-pet-panel,[data-kohan-driving]>.kohan-chat-panel{visibility:visible}@media (prefers-reduced-motion:reduce){.kohan-car{transition:none}.kohan-car[data-kohan-car=driving]{animation:none}}@media (max-width:640px){:root{--kohan-car-w:168px}}