.actor.sprite-actor{transform:translate(-50%,-100%);transition:left 5.5s cubic-bezier(.45,0,.55,1),top 5.5s cubic-bezier(.45,0,.55,1);will-change:left,top;contain:layout style}
.actor.sprite-actor.visiting{z-index:11}
.sprite-actor .sprite-art{transition:none}
.sprite-actor.walking .sprite-art{animation:sprite-walk .86s steps(3,end) infinite}
.sprite-actor.idle .sprite-art{animation:resident-breathe 4.2s ease-in-out infinite;background-position-x:0%}
.sprite-actor.sleeping{opacity:.48;filter:saturate(.6)}
.sprite-actor.sleeping .sprite-art{animation:none;background-position-x:0%}
.activity-tag{position:absolute;left:82%;bottom:24px;padding:3px 7px;background:#1d3237de;border:1px solid #b89e74;color:#ffe3ac;font-size:9px;white-space:nowrap;border-radius:7px;opacity:0;transition:opacity .3s;pointer-events:none}
.sprite-actor.idle .activity-tag,.sprite-actor.sleeping .activity-tag{opacity:1}
.actor-prop{position:absolute;left:72%;bottom:7%;font-size:18px;z-index:2;opacity:0;pointer-events:none;transform:translateY(5px) scale(.8);transition:opacity .65s ease,transform .65s ease;filter:drop-shadow(0 2px 2px #231a13aa)}
.sprite-actor.doing-task.idle .actor-prop{opacity:.95;transform:translateY(0) scale(1);animation:prop-gesture 3.8s ease-in-out infinite}
.sprite-actor.sleeping .actor-prop,.sprite-actor.walking .actor-prop,.sprite-actor.reacting .actor-prop{opacity:0}
@keyframes prop-gesture{0%,100%{translate:0 0;rotate:-4deg}50%{translate:0 -2px;rotate:5deg}}
@keyframes resident-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.3px)}}
@media(prefers-reduced-motion:reduce){.actor.sprite-actor{transition-duration:.1s!important}.sprite-actor .sprite-art,.sleep-zzz,.room-glow{animation:none!important}}
@media(max-width:850px){
 .scene{height:min(82svh,760px);min-height:540px}
 .scene-toolbar{position:relative;left:auto;right:auto;top:auto;padding:9px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;background:#1b2d35;z-index:8;pointer-events:auto;border-bottom:1px solid #43565a}
 .scene-toolbar>span{padding:6px 9px;background:#263e43;font-size:10px}
 .scene-toolbar>div{background:none;gap:4px;padding:0;flex-wrap:wrap;justify-content:center}
 .scene-toolbar button{font-size:11px;padding:7px 9px;min-height:34px}
 .scene-scroll{justify-content:flex-start;overflow:auto;touch-action:pan-x pan-y}
 .building{width:max(480px,100%);max-width:none;margin-left:0;margin-right:0}
 .bottom-note{flex-wrap:wrap;height:auto;min-height:29px;padding:5px 12px}
 .actor.sprite-actor{width:72px;height:72px;scale:1}
 .sprite-actor .actor-name{bottom:71px}
 .sprite-actor .speech-pop{bottom:71px;font-size:11px;max-width:135px;min-width:100px;padding:7px 8px}
 .ambient-layer{overflow:hidden}
 .roof-cat{width:44px;height:44px}
}
@media(max-width:420px){.clock{gap:12px}.brand b{font-size:22px}.top{gap:8px}.controls button{padding:7px 8px;font-size:11px}}
