/* v1.4 sideview visual patch: replace broken articulated look with approved side-view climber sprites. */
.character-skeleton{display:none!important}
.contact-hold-layer{display:none!important}
.climber-rig{overflow:visible;isolation:isolate}
.sideview-puppet{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:visible}
.sideview-puppet .sprite{position:absolute;left:50%;bottom:0;height:100%;width:auto;max-width:140%;object-fit:contain;transform:translateX(-50%) rotate(0deg);transform-origin:50% 80%;filter:drop-shadow(0 10px 12px rgba(0,0,0,.30));transition:transform .22s ease,filter .22s ease,opacity .22s ease}
.sideview-puppet .sprite.back{opacity:.16;filter:blur(1px)}
.sideview-puppet .sprite.front{opacity:1}
.climber-rig[data-facing='right'] .sideview-puppet .sprite{transform:translateX(-50%) scaleX(1)}
.climber-rig[data-facing='left'] .sideview-puppet .sprite{transform:translateX(-50%) scaleX(-1)}
.climber-rig.is-climbing .sideview-puppet .sprite.front{animation:sideviewClimb 1.15s ease-in-out infinite}
.climber-rig.is-climbing .sideview-puppet .sprite.back{animation:sideviewClimbBack 1.15s ease-in-out infinite}
.climber-rig.is-falling .sideview-puppet .sprite.front,
.climber-rig.is-falling .sideview-puppet .sprite.back{animation:sideviewFall .95s cubic-bezier(.18,.78,.27,1) both}
.climber-rig.is-recovering .sideview-puppet .sprite.front,
.climber-rig.is-recovering .sideview-puppet .sprite.back{animation:sideviewRecover .45s ease-out both}
.climber-rig:not(.is-climbing):not(.is-falling):not(.is-recovering) .sideview-puppet .sprite.front{animation:sideviewIdle 2.8s ease-in-out infinite}
.climber-rig:not(.is-climbing):not(.is-falling):not(.is-recovering) .sideview-puppet .sprite.back{animation:sideviewIdleBack 2.8s ease-in-out infinite}
.sideview-puppet.variant-aksara-blue .sprite{filter:hue-rotate(145deg) saturate(1.1) drop-shadow(0 10px 12px rgba(0,0,0,.30))}
.sideview-puppet.variant-mysha-green .sprite{filter:hue-rotate(108deg) saturate(1.1) drop-shadow(0 10px 12px rgba(0,0,0,.30))}
.sideview-puppet.variant-aksara-blue .sprite.back,.sideview-puppet.variant-mysha-green .sprite.back{opacity:.14}
@keyframes sideviewIdle{0%,100%{transform:translateX(-50%) translateY(0) rotate(0deg) scale(1)}50%{transform:translateX(-50%) translateY(-2.5%) rotate(-1.6deg) scale(1.012)}}
@keyframes sideviewIdleBack{0%,100%{transform:translateX(-52%) translateY(0) rotate(0deg) scale(.985)}50%{transform:translateX(-48%) translateY(-2%) rotate(1.2deg) scale(.995)}}
@keyframes sideviewClimb{0%{transform:translateX(-52%) translateY(0) rotate(-3deg) scale(1)}25%{transform:translateX(-48%) translateY(-4%) rotate(2deg) scale(1.015)}50%{transform:translateX(-51%) translateY(-7%) rotate(-1deg) scale(1.018)}75%{transform:translateX(-49%) translateY(-4%) rotate(2.4deg) scale(1.01)}100%{transform:translateX(-52%) translateY(0) rotate(-3deg) scale(1)}}
@keyframes sideviewClimbBack{0%{transform:translateX(-49%) translateY(1%) rotate(2deg) scale(.98)}25%{transform:translateX(-52%) translateY(-2.5%) rotate(-1.5deg) scale(.99)}50%{transform:translateX(-48%) translateY(-5%) rotate(1deg) scale(.995)}75%{transform:translateX(-51%) translateY(-2%) rotate(-1deg) scale(.99)}100%{transform:translateX(-49%) translateY(1%) rotate(2deg) scale(.98)}}
@keyframes sideviewFall{0%{transform:translateX(-50%) translateY(0) rotate(0deg) scale(1)}35%{transform:translateX(-46%) translateY(6%) rotate(11deg) scale(.995)}70%{transform:translateX(-55%) translateY(13%) rotate(-8deg) scale(.988)}100%{transform:translateX(-50%) translateY(4%) rotate(3deg) scale(.992)}}
@keyframes sideviewRecover{0%{transform:translateX(-50%) translateY(4%) rotate(3deg)}60%{transform:translateX(-50%) translateY(-2%) rotate(-1deg)}100%{transform:translateX(-50%) translateY(0) rotate(0deg)}}
@media (max-width:720px){.sideview-puppet .sprite{max-width:155%}}
