.ld-scene{position:absolute;inset:0;overflow:hidden;isolation:isolate;touch-action:pan-y}
.ld-scene-world{position:absolute;left:0;top:0;width:430px;height:410px;transform-origin:0 0;overflow:hidden}
.ld-scene-background{position:absolute;inset:0;width:430px;height:410px;max-width:none;pointer-events:none;user-select:none}
.ld-character{position:absolute;left:146px;top:133px;width:140px;height:234px;padding:0;border:0;background:transparent;z-index:3;cursor:pointer;outline-offset:-10px!important;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:left 1.5s ease-in-out,top 1.5s ease-in-out;transform-origin:70px 218px}
.ld-character:active{transform:none}
/* The same unmodified PNG and exact crop geometry as the approved v1 .avatar-sprite. */
.ld-approved-avatar{--avatar-height:218px;display:block;position:relative;width:calc(var(--avatar-height)*.605);height:var(--avatar-height);margin:0 auto;overflow:hidden;flex-shrink:0;transform-origin:50% 100%;pointer-events:none}
.ld-approved-avatar img{display:block;position:absolute;top:0;left:calc(var(--avatar-height)*-.19);height:var(--avatar-height);width:calc(var(--avatar-height)*1.5);max-width:none;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none}
.ld-approved-avatar.girl{clip-path:inset(0 5% 0 0)}
.ld-approved-avatar.boy img{left:calc(var(--avatar-height)*-.774)}
.ld-action-props{position:absolute;left:0;top:0;display:block;width:140px;height:210px;overflow:visible;pointer-events:none}
.ld-props{transform-origin:70px 150px;pointer-events:none}
.ld-scene-status{position:absolute;left:108px;top:94px;width:214px;text-align:center;z-index:5;pointer-events:none}
.ld-action-bubble{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:7px 13px;border-radius:15px;background:#fffceded;color:#596644;font:600 12px/1.45 "PingFang SC","Microsoft YaHei",sans-serif;box-shadow:0 3px 0 #80694718;opacity:0;transition:opacity .2s;white-space:nowrap}
.ld-action-bubble.visible{opacity:1}
.ld-action-bubble:after{content:"";position:absolute;left:50%;bottom:-4px;width:8px;height:8px;background:#fffced;transform:rotate(45deg)}
.ld-character-tag{position:absolute;bottom:0;left:0;right:0;text-align:center;font:700 11px/1.2 "PingFang SC",sans-serif;letter-spacing:.6px;color:#596646;text-shadow:0 1px #fff9e3;pointer-events:none}
.ld-cat{position:absolute;left:0;top:0;width:58px;height:55px;padding:0;border:0;background:transparent;z-index:4;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transform-origin:29px 50px;will-change:transform}
.ld-cat:active{filter:brightness(1.06)}
.ld-cat-face{display:block;position:absolute;inset:0;transform-origin:50% 80%}
.ld-cat img{display:block;width:58px;height:50px;object-fit:contain;max-width:none;pointer-events:none;filter:drop-shadow(0 2px 0 #8e784b15)}
.ld-cat-shadow{position:absolute;width:34px;height:6px;left:12px;bottom:1px;border-radius:50%;background:#826b4129}
.ld-cat.is-walking .ld-cat-face{animation:ld-cat-step .24s ease-in-out infinite alternate}
.ld-cat.is-jumping .ld-cat-face{animation:ld-cat-jump .8s ease-in-out}
.ld-cat.is-petting:after{content:"♥";position:absolute;left:22px;top:-15px;color:#e48a8e;font-size:19px;animation:ld-cat-heart 1.5s ease-out both;pointer-events:none}
.ld-water-effect{position:absolute;width:144px;height:33px;left:270px;top:343px;border-radius:50%;background:#7ccbd5bd;border-bottom:3px solid #bcece7;z-index:4;pointer-events:none;opacity:0;transition:opacity .2s}
.ld-water-effect.visible{opacity:1}
.ld-water-effect:after{content:"";position:absolute;left:17px;right:16px;top:14px;height:7px;border-top:3px dashed #dcf5e8;border-radius:50%;animation:ld-ripple 1s linear infinite}
.ld-sparkles{position:absolute;left:185px;top:266px;width:60px;height:60px;border:3px solid #e9ce78;border-radius:50%;opacity:0;pointer-events:none;z-index:2}
.ld-sparkles.visible{opacity:.75;animation:ld-aura 2s ease-in-out infinite alternate}
.ld-sparkles:before,.ld-sparkles:after{content:"✦";position:absolute;color:#efc75e;font-size:21px;top:-20px;left:-15px}
.ld-sparkles:after{top:27px;left:57px;font-size:15px}
.ld-gold-bars{animation:ld-chart 2s steps(4,end) infinite;transform-origin:27px 48px}
.ld-steam{animation:ld-steam 1.6s ease-in-out infinite;transform-origin:center}
.ld-scene[data-scene=cinema] .ld-character-tag{color:#fff1d9;text-shadow:0 1px #60546d}
.ld-scene[data-scene=cinema] .ld-action-bubble{background:#fff4dfef;color:#6f5265}
.ld-movement-mark{opacity:0}
.ld-character[data-mode=running] .ld-movement-mark,.ld-character[data-mode=incline] .ld-movement-mark{opacity:1}
.ld-bench-effect{position:absolute;left:149px;top:336px;width:139px;height:12px;border-radius:6px;background:#CDA17B;border-bottom:4px solid #AC805F;z-index:2;opacity:0;pointer-events:none}
.ld-bench-effect.visible{opacity:1}
.ld-bench-effect:before,.ld-bench-effect:after{content:"";position:absolute;top:12px;left:14px;width:8px;height:24px;border-radius:3px;background:#748B84}
.ld-bench-effect:after{left:auto;right:14px}
@keyframes ld-cat-step{from{translate:0 0;rotate:-2deg}to{translate:0 -2px;rotate:2deg}}
@keyframes ld-cat-jump{0%,100%{scale:1 1}25%{scale:.93 1.08}70%{scale:1.06 .94}}
@keyframes ld-cat-heart{0%{opacity:0;translate:0 0;scale:.7}25%{opacity:1}100%{opacity:0;translate:4px -25px;scale:1.1}}
@keyframes ld-ripple{to{transform:translateX(9px)}}
@keyframes ld-aura{from{scale:1;opacity:.35}to{scale:1.13;opacity:.8}}
@keyframes ld-chart{0%,100%{scale:1 1}50%{scale:1 .8}}
@keyframes ld-steam{0%,100%{opacity:.3;translate:0 1px}50%{opacity:.9;translate:0 -4px}}
@media(prefers-reduced-motion:reduce){.ld-character,.ld-action-bubble,.ld-water-effect{transition:none}.ld-cat-face,.ld-cat.is-walking .ld-cat-face,.ld-cat.is-jumping .ld-cat-face,.ld-cat.is-petting:after,.ld-water-effect:after,.ld-sparkles.visible,.ld-gold-bars,.ld-steam{animation:none!important}.ld-cat.is-petting:after{opacity:1}}
