.residents-living .resident-actor{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.resident-figure{translate:var(--play-x,0px) var(--play-y,0px)}.resident-actor[data-state=dragging]{cursor:grabbing!important;z-index:14!important}.resident-actor[data-state=dragging] .resident-figure{transform:translateY(-9px) rotate(var(--drag-tilt,0deg));filter:drop-shadow(0 14px 8px #5e69553d);transition:filter .2s}.resident-actor[data-state=dragging] .resident-shadow{opacity:0}.resident-actor[data-state=dragging] .resident-body{animation:resident-dangle .8s ease-in-out infinite alternate}.resident-actor[data-state=dragging] .resident-foot-left{animation:resident-dangle-foot .5s ease-in-out infinite alternate}.resident-actor[data-state=dragging] .resident-foot-right{animation:resident-dangle-foot .6s -.3s ease-in-out infinite alternate}.resident-actor[data-state=dragging] .resident-arm-left{transform:rotate(-50deg)}.resident-actor[data-state=dragging] .resident-arm-right{transform:rotate(50deg)}.resident-actor[data-state=landing] .resident-figure{animation:resident-soft-landing .65s ease-out}.resident-actor[data-action=pull] .resident-body{animation:none;transform:rotate(var(--resident-lean,0deg))}.resident-actor[data-action=pull][data-phase=release] .resident-arm-right{opacity:1;transform:rotate(30deg)}.resident-actor[data-action=pull][data-phase=release] .resident-arm-left{opacity:1;transform:rotate(-30deg)}.resident-actor[data-action=tap] .resident-body{animation:resident-nod 1.8s ease-in-out infinite}.resident-actor[data-action=polish] .resident-body{animation:resident-polish 1.3s ease-in-out infinite}.resident-actor[data-action=peek] .resident-body{animation:resident-tip-toes 3.2s ease-in-out infinite}.resident-actor[data-state=sharing] .resident-arm-right{animation:resident-gesture 2.3s ease-in-out infinite}.resident-actor[data-state=receiving] .resident-arm-left{transform:rotate(-60deg)}
.resident-house{pointer-events:auto;opacity:1;z-index:1;width:96px;height:80px}.resident-house-button{position:relative;width:96px;height:80px;padding:0;border:0;background:transparent;cursor:pointer;transition:filter .2s,scale .2s;touch-action:manipulation}.resident-house-button:hover{filter:drop-shadow(0 4px 3px #65745025)}.resident-house-button:focus-visible{outline:2px solid #8ba773;outline-offset:6px;border-radius:18px}.resident-house-button svg{overflow:visible;display:block;width:96px;height:80px}.house-badge{position:absolute;top:75px;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid #dbe2cb;background:#fffdf2ed;border-radius:20px;padding:3px 9px;color:#91a178;font:8px var(--sans);box-shadow:0 2px 8px #546c4110}.house-windows{color:#d4d7c5;transition:color .5s}.resident-house:not([data-occupied="0"]) .house-windows{color:#ffe69b;filter:drop-shadow(0 0 4px #f2d88999)}.house-peeker{opacity:0}.resident-house:not([data-occupied="0"]) .house-peeker{animation:resident-window-peek 9s ease-in-out infinite}.house-door{transform-origin:48px 74px;transition:transform .4s}.resident-house[data-open=true] .house-door,.resident-house.is-drop-target .house-door{transform:perspective(150px) rotateY(-68deg)}.house-smoke{opacity:0}.resident-house:not([data-occupied="0"]) .house-smoke{animation:resident-house-smoke 4s ease-out infinite}.resident-house.is-drop-target .resident-house-button{scale:1.12;filter:drop-shadow(0 0 12px #a9ca78aa)}.resident-house.is-drop-target .house-badge{background:#edf6db;color:#78974e}.resident-house.menu-open{z-index:15}.resident-house-menu{position:absolute;bottom:94px;right:-10px;width:235px;padding:17px;background:#fffef7;border:1px solid #dce5d0;border-radius:14px;box-shadow:0 12px 36px #45533522;color:#7e9368;cursor:default}.resident-house-menu[hidden]{display:none}.resident-house.is-left .resident-house-menu{left:-10px;right:auto}.resident-house-menu>strong{font:20px var(--serif);color:#6f8459}.resident-house-menu>p{font:10px/1.7 var(--sans);margin:9px 0 13px;color:#98a389}.resident-house-menu>button{display:block;width:100%;padding:8px 10px;margin-top:6px;border:1px solid #dce5cd;border-radius:8px;font:10px var(--sans);text-align:left;color:#7d9561;background:#f4f7eb}.resident-house-menu>button:hover{background:#ebf2dd}.resident-house-menu>button:disabled{opacity:.45;cursor:default}.resident-house-menu>small{display:block;font:8px/1.6 var(--sans);margin-top:12px;color:#a4ad96}.resident-actor[data-state=entering]{pointer-events:none}.resident-actor[data-state=entering] .resident-figure{animation:resident-enter-home 1.2s ease-in forwards;transform-origin:50% 60%}.resident-actor[data-state=leaving] .resident-figure{animation:resident-exit-home 1.1s ease-out both;transform-origin:50% 60%}.resident-actor:is([data-state=entering],[data-state=leaving]) .resident-shadow{opacity:0}.resident-actor[hidden]{display:none!important}.residents-paused .resident-actor[data-state=dragging] .resident-figure{animation-play-state:running}.residents-paused .house-smoke,.residents-paused .house-peeker{animation-play-state:paused}
@keyframes resident-dangle{to{transform:translateY(2px) rotate(3deg)}}@keyframes resident-dangle-foot{to{transform:rotate(-16deg) translateY(3px)}}@keyframes resident-soft-landing{0%{transform:translateY(-12px) scale(.96,1.04)}35%{transform:translateY(3px) scale(1.12,.86)}70%{transform:translateY(-3px) scale(.97,1.04)}100%{transform:none}}@keyframes resident-polish{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg) translateY(2px)}}@keyframes resident-tip-toes{0%,100%{transform:translateY(0) rotate(-2deg)}40%,65%{transform:translateY(-7px) rotate(3deg)}}@keyframes resident-enter-home{0%{transform:translateY(0) scale(1);opacity:1}65%{opacity:1}100%{transform:translateY(-18px) scale(.25);opacity:0}}@keyframes resident-exit-home{0%{transform:translateY(-18px) scale(.25);opacity:0}25%{opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}@keyframes resident-house-smoke{0%{opacity:0;transform:translateY(2px) scale(.9)}25%{opacity:.6}100%{opacity:0;transform:translate(5px,-13px) scale(1.1)}}@keyframes resident-window-peek{0%,25%,75%,100%{opacity:0;transform:translateY(4px)}35%,65%{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.resident-actor .resident-figure,.resident-actor .resident-body,.resident-actor .resident-foot,.house-smoke,.house-peeker{animation:none!important}.house-door,.resident-house-button{transition:none}.resident-actor[data-state=entering] .resident-figure{opacity:0}}
.residents-paused .resident-actor:is([data-state=dragging],[data-state=landing],[data-state=entering]) :is(.resident-figure,.resident-body,.resident-foot){animation-play-state:running!important}
