.hands-assistant{position:fixed;right:20px;bottom:18px;width:152px;z-index:12;font-family:'Courier New',monospace;color:var(--ivory)}
.hands-assistant[hidden],.hands-card[hidden],.hands-promo[hidden]{display:none}
.hands-assistant[data-mischief=swat] .hand-right{animation:hand-swat .5s ease-out!important}.cursor-swat{position:fixed;inset:0;z-index:100;pointer-events:none;overflow:hidden}.cursor-ghost{position:absolute;left:0;top:0;width:32px;height:40px;animation:cursor-knock 1.35s ease-out both;filter:drop-shadow(2px 3px 2px #000)}.cursor-ghost svg{width:100%;height:100%}.cursor-stars{position:absolute;left:var(--edge-x);top:var(--edge-y);width:75px;height:35px;transform:translate(-50%,-70%);animation:stars-dizzy 1.35s ease-out both}.cursor-stars i{position:absolute;color:#e8bd62;font:22px Georgia,serif;font-style:normal;text-shadow:0 1px 3px #000}.cursor-stars i:nth-child(1){left:0;top:10px}.cursor-stars i:nth-child(2){left:20px;top:0}.cursor-stars i:nth-child(3){left:42px;top:3px}.cursor-stars i:nth-child(4){left:60px;top:15px}.cursor-stars i:nth-child(5){left:28px;top:20px}.cursor-dizzy,.cursor-dizzy *{cursor:none!important}.cursor-swat.is-still .cursor-ghost{display:none}.cursor-swat.is-still .cursor-stars{left:var(--poke-x);top:var(--poke-y);animation:none}@keyframes hand-swat{0%{transform:rotate(0)}40%{transform:translate(-18px,-24px) rotate(-55deg)}70%{transform:translate(12px,-10px) rotate(24deg)}100%{transform:none}}@keyframes cursor-knock{0%{transform:translate(var(--poke-x),var(--poke-y)) rotate(0);opacity:1}30%{transform:translate(var(--edge-x),var(--edge-y)) rotate(140deg)}45%{transform:translate(calc(var(--edge-x) + 12px),calc(var(--edge-y) + 10px)) rotate(175deg)}60%{transform:translate(calc(var(--edge-x) - 8px),var(--edge-y)) rotate(150deg)}85%{transform:translate(var(--edge-x),var(--edge-y)) rotate(165deg);opacity:1}100%{transform:translate(var(--edge-x),var(--edge-y)) rotate(165deg);opacity:0}}@keyframes stars-dizzy{0%,25%{opacity:0;transform:translate(-50%,-70%) rotate(-30deg)}40%,80%{opacity:1}100%{opacity:0;transform:translate(-50%,-70%) rotate(40deg)}}@media(prefers-reduced-motion:reduce){.hands-assistant[data-mischief=swat] .hand-right{animation:none!important}.cursor-stars{animation:none!important}.cursor-ghost{display:none!important}}
.hands-toggle{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;border:0;background:transparent;color:#c7b29d;padding:0;cursor:pointer;font:8px 'Courier New',monospace;letter-spacing:1px;text-transform:uppercase;min-height:44px}
.hands-pair{display:flex;width:152px;height:82px;filter:drop-shadow(0 3px 9px #000)}
.hand{display:block;width:76px;height:76px;background-image:url('assets/design-ideas/assistant-hands.png');background-size:200% 100%;background-repeat:no-repeat;transform-origin:50% 90%}.hand-left{background-position:left center}.hand-right{background-position:right center}
.hands-toggle:hover .hand-left{transform:translateY(-4px) rotate(-6deg)}
.hands-card{position:absolute;right:0;bottom:112px;width:260px;border:1px solid #a580714d;border-top:2px solid var(--blood);padding:24px 18px 16px;background:#0d090bf5;box-shadow:0 10px 45px #000b}
.hands-eyebrow{font-size:7px;letter-spacing:2px;color:#927c6f;margin:0 35px 13px 0}
#hands-message{font:12px/1.65 Georgia,serif;margin:0 0 13px;overflow-wrap:anywhere}
.hands-close{position:absolute;top:3px;right:3px;width:44px;height:44px;border:0;background:none;color:#d5c4af;font-size:22px;cursor:pointer}
.hands-links{display:flex;gap:10px;justify-content:space-between;border-top:1px solid var(--line);padding-top:5px;margin-top:8px}.hands-card button{font-family:inherit}.hands-links button,.hands-options button,.hands-promo{background:none;border:0;color:#d2bcaa;cursor:pointer;text-transform:uppercase;letter-spacing:1px;font-size:8px;min-height:44px;padding:8px 3px}.hands-promo{color:#df9aab;text-align:left;font-size:9px;padding-left:0}.hands-options{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line)}.hands-options button{font-size:7px;color:#a18d7e}
.hands-assistant[data-quiet='true']{width:98px}.hands-assistant[data-quiet='true'] .hands-pair{display:none}.hands-assistant[data-quiet='true'] .hands-toggle{border:1px solid #e9e0cf22;background:#080607c9;padding:12px 8px;font-size:7px}
.hands-assistant[data-trick='knock'] .hand-right{animation:hand-knock 1.3s ease-in-out}.hands-assistant[data-trick='bump'] .hand-left{animation:hand-bump-left 1.3s ease-in-out}.hands-assistant[data-trick='bump'] .hand-right{animation:hand-bump-right 1.3s ease-in-out}.hands-assistant[data-trick='point'] .hand-left{animation:hand-point 1.3s ease-in-out}.hands-assistant[data-trick='crawl'] .hand-left{animation:hand-crawl 1.3s ease-in-out}.hands-assistant[data-trick='crawl'] .hand-right{animation:hand-crawl 1.3s .12s ease-in-out}.hands-assistant[data-trick='wave'] .hand-left{animation:hand-wave 1.3s ease-in-out}
@keyframes hand-knock{0%,100%{transform:translateY(0) rotate(0)}20%,55%{transform:translateY(-12px) rotate(-10deg)}35%,70%{transform:translateY(5px) rotate(5deg)}}
@keyframes hand-bump-left{0%,100%{transform:none}50%{transform:translateX(23px) rotate(15deg)}}@keyframes hand-bump-right{0%,100%{transform:none}50%{transform:translateX(-23px) rotate(-15deg)}}
@keyframes hand-point{0%,100%{transform:none}45%{transform:translate(-5px,-22px) rotate(-18deg)}70%{transform:translate(-3px,-16px) rotate(-10deg)}}
@keyframes hand-crawl{0%,100%{transform:none}25%{transform:translate(-8px,-8px) rotate(-8deg)}50%{transform:translate(-15px,3px) rotate(7deg)}75%{transform:translate(-5px,-7px) rotate(-5deg)}}
@keyframes hand-wave{0%,100%{transform:rotate(0)}25%{transform:rotate(-16deg)}50%{transform:rotate(10deg)}75%{transform:rotate(-10deg)}}
@media(max-width:720px){.hands-assistant{width:82px;right:9px;bottom:10px}.hands-pair{width:82px;height:48px}.hand{width:41px;height:41px}.hands-toggle{font-size:6px;letter-spacing:.5px}.hands-card{position:fixed;top:112px;right:12px;bottom:auto;width:min(260px,calc(100vw - 24px));max-height:calc(100svh - 150px);overflow:auto}.hands-assistant[data-quiet='true']{width:76px}.hands-assistant[data-quiet='true'] .hands-toggle{font-size:6px}}
@media(prefers-reduced-motion:reduce){.hand{animation:none!important;transition:none!important;transform:none!important}.hands-toggle:hover .hand-left{transform:none}}
/* The same companion hands take the slider, wind up, and hit the next frame. */
.hands-assistant[data-director]{left:0;top:0;right:auto;bottom:auto;width:110px;transform:translate3d(var(--director-x,0px),var(--director-y,0px),0);transition:transform .32s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.hands-assistant[data-director] .hands-pair{width:110px;height:65px}.hands-assistant[data-director] .hand{width:55px;height:55px;animation:none!important}.hands-assistant[data-director] #hands-label,.hands-assistant[data-director] .hands-card{display:none}
.hands-assistant[data-director=drag]{transition:transform .08s linear}.hands-assistant[data-director=drag] .hand-left{transform:rotate(28deg) translate(10px,-5px)}.hands-assistant[data-director=drag] .hand-right{transform:rotate(-25deg) translate(-9px,-4px)}
.hands-assistant[data-director=windup] .hand-right{transform:translate(20px,5px) rotate(32deg);transition:transform .3s}.hands-assistant[data-director=punch] .hand-right{animation:director-punch .7s cubic-bezier(.2,.8,.2,1) both!important}.hands-assistant[data-director=punch] .hand-left{transform:rotate(-30deg)}
@keyframes director-punch{0%{transform:translate(20px,5px) rotate(32deg)}65%,100%{transform:translate(-48px,-10px) rotate(-65deg) scale(1.3)}}
.photo-impact{position:absolute;inset:0;pointer-events:none;overflow:hidden;display:none;z-index:5}.is-hand-hit .photo-impact{display:block}.photo-impact i{position:absolute;left:70%;top:55%;width:6px;height:38px;background:#bc927b;animation:photo-hit .6s ease-out both;--hit-angle:0deg}.photo-impact i:nth-child(2){--hit-angle:45deg}.photo-impact i:nth-child(3){--hit-angle:90deg}.photo-impact i:nth-child(4){--hit-angle:135deg}.photo-impact i:nth-child(5){--hit-angle:180deg}.photo-impact i:nth-child(6){--hit-angle:225deg}.photo-impact i:nth-child(7){--hit-angle:270deg}.photo-impact i:nth-child(8){--hit-angle:315deg}
@keyframes photo-hit{0%{opacity:.8;transform:rotate(var(--hit-angle)) translateY(20px) scaleY(.3)}100%{opacity:0;transform:rotate(var(--hit-angle)) translateY(130px) scaleY(1.4)}}
@media(prefers-reduced-motion:reduce){.hands-assistant[data-director]{transform:none;transition:none}.photo-impact{display:none!important}}
