/* A short celebration in the picture itself. Original task objects end in hands. */
.wp-game .tp-dock{align-self:center;flex:none;width:100%;max-width:1000px;min-width:0;margin:10px auto 0;border:1px solid #ded4ba;border-radius:18px;background:linear-gradient(180deg,#fffaf0,#f4f6ed);color:#504b5d;overflow:hidden;isolation:isolate;pointer-events:none}
.tp-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:8px 12px;background:#fff9e9ed;border-bottom:1px solid #e4dcc9;font:750 15px/1.3 'Trebuchet MS',sans-serif;pointer-events:none;z-index:4}
.tp-controls>span{min-width:0;flex:1}.wp-game .tp-controls>button{flex:none;pointer-events:auto;min-width:110px;min-height:44px;padding:10px 13px;border:1px solid #bdadcb;border-radius:12px;background:#f2eaf7;color:#665073;font:750 14px/1.2 'Trebuchet MS',sans-serif;cursor:pointer;box-shadow:0 2px 0 #b4a2c32b}.wp-game .tp-controls>button:focus-visible{outline:3px solid #8c68ac;outline-offset:2px}
.tp-quiet .tp-controls{border-bottom:0}
.wp-game .tp-scene-parent{position:relative!important;isolation:isolate;overflow:hidden!important}
.wp-game .tp-scene-parent>.tp-dock.tp-scene-dock{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;max-width:none;margin:0!important;border:0;border-radius:inherit;background:linear-gradient(180deg,transparent 30%,#fff9e920 58%,#e3ebd3bb)}
.tp-scene-dock .tp-controls{flex:none}.tp-scene-dock .tp-parade{flex:1;min-height:100px;height:auto;overflow:visible}
.tp-parade{--tp-size:104px;position:relative;width:100%;height:188px;overflow:hidden;perspective:900px;pointer-events:none!important}
/* Keep the sheet's own 3D fold context orthographic. Distant stage perspective
   must not pull a rotating corner away from the hand in the task's CSS plane. */
.tp-party{position:absolute;inset:0;transform-style:flat}
.tp-friends{position:absolute;inset:0;transform-style:preserve-3d}
.tp-puppet{position:absolute;left:var(--tp-actor-x,0px)!important;top:var(--tp-actor-y,0px);bottom:auto;width:var(--tp-size)!important;height:var(--tp-actor-h,calc(var(--tp-size)*1.32))!important;transform-style:preserve-3d;z-index:3;will-change:left,top}
.tp-pippo{left:0}.tp-kid{left:calc(var(--tp-size)*.94);height:calc(var(--tp-size)*1.4)}.tp-bello{left:calc(var(--tp-size)*1.88);width:calc(var(--tp-size)*1.02);height:calc(var(--tp-size)*1.25)}
.tp-body{display:block;width:100%;height:100%;transform-origin:50% 92%;filter:drop-shadow(3px 5px 2px #38314733);backface-visibility:visible;transform-style:preserve-3d}.tp-body svg{display:block;width:100%;height:100%;max-width:none!important}
.tp-floor{position:absolute;left:-5%;right:-5%;bottom:-7px;height:19px;border-radius:50%;background:radial-gradient(ellipse,#6b785b3b,transparent 72%)}
.tp-arrive .tp-friends{animation:tpArrive .5s cubic-bezier(.2,.7,.3,1) both}.tp-arrive .tp-body{animation:tpRun .18s ease-in-out infinite alternate}.tp-arrive .tp-bello .tp-body{animation-delay:-.08s}
.tp-dance .tp-pippo .tp-body{animation:tpGroovePippo 2s ease-in-out var(--jf-delay,0ms) both}.tp-dance .tp-kid .tp-body{animation:tpGrooveKid 2s ease-in-out var(--jf-delay,0ms) both}.tp-dance .tp-bello .tp-body{animation:tpGrooveBello 2s ease-in-out var(--jf-delay,0ms) both}
.tp-dance .jf-limb,.tp-dance .jf-handwear,.tp-dance .jf-eye{animation-duration:2s;animation-delay:var(--jf-delay,0ms)}
.tp-dance svg[data-jf-who] .jf-left-arm{animation-name:tpGrooveArmLeft}.tp-dance svg[data-jf-who] .jf-right-arm,.tp-dance .jf-handwear{animation-name:tpGrooveArmRight}
.tp-dance svg[data-jf-who] .jf-left-foot{animation-name:tpGrooveFootLeft}.tp-dance svg[data-jf-who] .jf-right-foot{animation-name:tpGrooveFootRight}
.tp-scene-host{box-sizing:border-box;overflow:hidden!important}
.tp-scene-host>.tp-scene-dock{background:linear-gradient(180deg,#eaf2df55,#e3ebd3bb)!important}
.tp-friends{z-index:3}
.tp-task-sheet{position:absolute;z-index:2;left:0;top:0;width:var(--tp-sheet-w);height:var(--tp-sheet-h);border-radius:12px;background:transparent;transform-origin:0 0;transform:translate(var(--tp-x,var(--tp-sheet-x)),var(--tp-y,var(--tp-sheet-y))) scale(var(--tp-scale,1));transform-style:preserve-3d;pointer-events:none}
.tp-sheet-live{position:absolute;inset:0;overflow:hidden;border-radius:12px;background:#fff8e6;clip-path:polygon(0 0,var(--tp-clip-x,100%) 0,var(--tp-clip-x,100%) var(--tp-clip-y,100%),0 var(--tp-clip-y,100%))}
.tp-sheet-live>*{position:relative!important;inset:auto!important;width:var(--tp-sheet-w)!important;height:var(--tp-sheet-h)!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;box-sizing:border-box;pointer-events:none!important}
.tp-sheet-live *{pointer-events:none!important;transition:none!important;animation:none!important}
.tp-fold-x,.tp-fold-y{position:absolute;display:block;z-index:2;transform-style:preserve-3d;pointer-events:none}
.tp-fold-x{left:50%;top:0;width:50%;height:100%;transform-origin:0 50%;transform:rotateY(calc(-1 * var(--tp-fx,0deg)));clip-path:inset(0 0 calc(100% - var(--tp-clip-y,100%)))}
.tp-fold-y{left:0;top:50%;width:50%;height:50%;transform-origin:50% 0;z-index:3;transform:rotateX(var(--tp-fy,0deg))}
.tp-fold-x>i,.tp-fold-y>i{display:block;position:absolute;inset:0;backface-visibility:hidden;background:repeating-linear-gradient(0deg,#fff8e500 0 4px,#ab967d12 4px 5px),repeating-linear-gradient(90deg,#fff8e5 0 5px,#f4e5c8 5px 6px);border:2px solid #c4ac83;border-radius:10px;box-shadow:inset 0 0 0 6px #fff9e6,inset 0 0 0 8px #d5bd8c,inset 0 -5px 5px #87715035,0 3px 0 #e4d1a7,0 5px 0 #a9967340}
.tp-fold-x>i>b,.tp-fold-y>i>b{position:absolute;inset:13px;border:2px dashed #c8ac75;border-radius:5px;background:radial-gradient(ellipse at 18% 20%,#ffffffa1,transparent 50%);box-shadow:0 0 5px #ffffff91}
.tp-fold-x::after,.tp-fold-y::after{content:'';position:absolute;inset:0;border-radius:10px;background:linear-gradient(90deg,#4b443d99,transparent 30%,#fff7df33);opacity:var(--tp-fold-shade,0);backface-visibility:hidden;transform:rotateY(180deg)}
.tp-fold-y::after{background:linear-gradient(0deg,#4b443d99,transparent 35%);opacity:var(--tp-fold-shade-y,0);transform:rotateX(180deg)}
.tp-fold-x>i{transform:rotateY(180deg)}.tp-fold-y>i{transform:rotateX(180deg)}
.tp-crease-x,.tp-crease-y{position:absolute;z-index:4;pointer-events:none;background:linear-gradient(90deg,#67553e66,#fff7d9cc 40%,#67553e55);border-radius:2px}
.tp-crease-x{left:0;top:0;height:50%;width:5px;opacity:var(--tp-crease-x,0)}.tp-crease-y{left:0;top:0;width:50%;height:5px;opacity:var(--tp-crease-y,0);background:linear-gradient(0deg,#67553e66,#fff7d9cc 40%,#67553e55)}
.tp-sheet-wrap{position:absolute;z-index:5;left:0;top:0;width:50%;height:50%;border-radius:8px;pointer-events:none}
.tp-ribbon-across,.tp-ribbon-down{position:absolute;display:block;background:linear-gradient(180deg,#d5e7d0 0 12%,#83ab9e 13% 38%,#b9d6bc 44% 63%,#729b8c 78% 89%,#d8e7ca 90%);box-shadow:0 2px 2px #394b4140}
.tp-ribbon-across{left:0;top:44%;width:100%;height:12%;transform-origin:0 50%;transform:scaleX(clamp(0,calc(var(--tp-wrap,0)*2),1))}
.tp-ribbon-down{left:44%;top:0;width:12%;height:100%;transform-origin:50% 100%;transform:scaleY(clamp(0,calc((var(--tp-wrap,0) - .25)*2),1));background:linear-gradient(90deg,#d5e7d0,#83ab9e 25%,#b9d6bc 50%,#729b8c 82%,#d8e7ca)}
.tp-ribbon-knot{position:absolute;left:44%;top:44%;width:12%;height:12%;border-radius:35%;background:#a4c5aa;box-shadow:0 2px 2px #4b675b66,inset 1px 1px 2px #f4ffe0;transform:scale(clamp(0,calc((var(--tp-wrap,0) - .65)*2.86),1))}
.tp-ribbon-knot>i{position:absolute;right:55%;bottom:35%;width:180%;height:110%;border:5px solid #9fbea8;border-radius:60% 75% 25% 65%;transform:rotate(28deg);box-shadow:inset 0 2px 2px #fff7,0 2px 2px #48615144}.tp-ribbon-knot>i+i{right:auto;left:55%;transform:rotate(-28deg) scaleX(-1)}
.tp-working .tp-body{animation:none!important;transform:scaleY(var(--tp-squat,1));transform-origin:0 0}
.tp-collect .jf-left-foot,.tp-carry .jf-left-foot{animation:tpFootLeft .36s ease-in-out infinite alternate}.tp-collect .jf-right-foot,.tp-carry .jf-right-foot{animation:tpFootRight .36s ease-in-out infinite alternate}
.tp-party[data-step="lift"] .jf-left-foot,.tp-party[data-step="lift"] .jf-right-foot,.tp-party[data-step="pack"] .jf-left-foot,.tp-party[data-step="pack"] .jf-right-foot{animation:none!important;transform:none}
.tp-party:is([data-step="fold-right"],[data-step="change-grip"],[data-step="fold-bottom"]) :is(.jf-left-foot,.jf-right-foot){animation:none!important;transform:none}
.tp-party:is([data-step="fold-right"],[data-step="fold-bottom"]) .tp-bello .jf-tail{animation:jfTailWag .4s ease-in-out infinite alternate}
.tp-carry .tp-task-sheet{filter:drop-shadow(1px 4px 2px #52634550)}
.tp-five{position:absolute;left:37%;top:25%;width:calc(var(--tp-size)*.35);height:calc(var(--tp-size)*.35);opacity:0;filter:drop-shadow(0 2px 1px #fff7dd);z-index:5}.tp-five>svg{width:100%;height:100%;display:block}.tp-dance .tp-five{animation:tpHighFive 2.7s ease-out both}
.tp-beat{position:absolute;left:15%;bottom:-3px;width:calc(var(--tp-size)*.9);height:13px;border:3px solid #e9b463aa;border-radius:50%;opacity:0}.tp-beat-b{left:44%;border-color:#8eacc4aa}.tp-dance .tp-beat-a{animation:tpBeat 2.7s both}.tp-dance .tp-beat-b{animation:tpBeat 2.7s .08s both}
body.tp-presenting .mlw-joy,body.tp-presenting .roamers{visibility:hidden;pointer-events:none}
.tp-new-task .wg-area{animation:tpNewTask .4s ease-out both}
@keyframes tpArrive{from{opacity:0;transform:translateX(45px)}70%{opacity:1;transform:translateX(-3px)}to{opacity:1;transform:none}}
@keyframes tpRun{from{transform:translateY(-1px) rotate(-4deg)}to{transform:translateY(-6px) rotate(4deg)}}
@keyframes tpGroovePippo{0%,100%{transform:none}12.5%,37.5%,62.5%{transform:translateY(4px) scale(1.03,.95)}25%{transform:translateX(-8px) rotate(-7deg);transform-origin:36% 92%}50%{transform:translateX(8px) rotate(7deg);transform-origin:64% 92%}75%{transform:translateY(-14px) scale(.98,1.02)}87.5%{transform:translateY(3px) scale(1.04,.95)}}
@keyframes tpGrooveKid{0%,100%{transform:none}12.5%,37.5%,62.5%{transform:translateY(5px) scale(1.03,.95)}25%{transform:translateX(-7px) rotate(-6deg);transform-origin:40% 92%}50%{transform:translateX(7px) rotate(6deg);transform-origin:60% 92%}75%{transform:translateY(-16px) scale(.98,1.02)}87.5%{transform:translateY(3px) scale(1.04,.95)}}
@keyframes tpGrooveBello{0%,100%{transform:none}12.5%,37.5%,62.5%{transform:translateY(5px) scaleY(.92)}25%{transform:translateX(-5px) rotate(-5deg)}50%{transform:translateX(5px) rotate(5deg)}75%{transform:translateY(-10px)}87.5%{transform:translateY(3px) scale(1.04,.95)}}
@keyframes tpGrooveArmLeft{0%,100%{transform:none}25%{transform:rotate(-38deg)}50%{transform:rotate(36deg)}62.5%{transform:rotate(55deg)}75%{transform:rotate(100deg)}87.5%{transform:rotate(50deg)}}
@keyframes tpGrooveArmRight{0%,100%{transform:none}25%{transform:rotate(-36deg)}50%{transform:rotate(38deg)}62.5%{transform:rotate(-36deg)}75%{transform:rotate(-55deg)}87.5%{transform:rotate(-15deg)}}
@keyframes tpGrooveFootLeft{0%,100%,50%,62.5%,87.5%{transform:none}25%{transform:translate(-6px,-4px) rotate(18deg)}75%{transform:rotate(12deg)}}
@keyframes tpGrooveFootRight{0%,100%,25%,62.5%,87.5%{transform:none}50%{transform:translate(6px,-4px) rotate(-18deg)}75%{transform:rotate(-12deg)}}
@keyframes tpHighFive{0%,79%,100%{opacity:0;transform:scale(.5)}85%,94%{opacity:1;transform:translateY(-5px) scale(1.15)}}
@keyframes tpMeetLeft{0%,75%,100%{transform:none}85%,95%{transform:translateX(calc(var(--tp-size)*.2))}}
@keyframes tpMeetRight{0%,75%,100%{transform:none}85%,95%{transform:translateX(calc(var(--tp-size)*-.2))}}
@keyframes tpFlipperFive{0%,100%{transform:none}7%,22%{transform:rotate(25deg)}14%,29%{transform:rotate(-40deg)}42%,49%{transform:rotate(52deg)}55%,62%{transform:rotate(80deg)}68%{transform:rotate(45deg)}80%{transform:rotate(-35deg)}88%,95%{transform:rotate(20deg)}}
@keyframes tpKidFive{0%,100%{transform:none}7%,22%{transform:rotate(-44deg)}14%,29%{transform:rotate(27deg)}43%{transform:rotate(-60deg)}50%{transform:rotate(70deg)}56%,62%{transform:rotate(104deg)}69%{transform:rotate(55deg)}80%{transform:rotate(112deg)}88%,95%{transform:rotate(135deg)}}
@keyframes tpReachPippo{0%,100%{transform:none}9%,38%{transform:translate(9px,4px) rotate(12deg) scaleY(.94)}55%{transform:translate(-5px,5px) rotate(-10deg)}75%{transform:translateY(-3px) rotate(-3deg)}}
@keyframes tpReachKid{0%,100%{transform:none}9%,38%{transform:translate(6px,5px) rotate(9deg) scaleY(.94)}55%{transform:translate(-5px,4px) rotate(-12deg)}75%{transform:translateY(-4px) rotate(-3deg)}}
@keyframes tpReachBello{0%,100%{transform:none}12%,32%{transform:translate(5px,6px) rotate(8deg) scaleY(.92)}58%,70%{transform:translateY(-8px) rotate(-5deg)}}


@keyframes tpCarryWalk{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-4px) rotate(2deg)}}
@keyframes tpFootLeft{from{transform:rotate(14deg)}to{transform:translateY(-3px) rotate(-14deg)}}
@keyframes tpFootRight{from{transform:translateY(-3px) rotate(-14deg)}to{transform:rotate(14deg)}}
@keyframes tpCarry{0%{left:50%;transform:translateX(-50%);opacity:1}90%{opacity:1}100%{left:calc(100% + 8px);transform:translateX(0);opacity:.7}}
@keyframes tpBeat{0%,34%,52%,75%,100%{opacity:0;transform:scale(.4)}43%,65%{opacity:.7;transform:scale(1.15)}}
@keyframes tpNewTask{from{opacity:.6}to{opacity:1}}
@media(max-width:620px){.wp-game .tp-dock{border-radius:14px;margin-top:7px}.tp-controls{min-height:58px;gap:8px;padding:7px 8px;font-size:13px}.wp-game .tp-controls>button{min-width:102px;font-size:13px;padding:9px 10px}.tp-parade{--tp-size:85px;height:155px}}
@media(max-width:350px){.tp-parade{--tp-size:74px;height:145px}.tp-controls{font-size:12px}.wp-game .tp-controls>button{min-width:96px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.tp-parade{display:none!important}.tp-new-task .wg-area{animation:none!important}}
body.motion-off .tp-parade{display:none!important}body.motion-off .tp-new-task .wg-area{animation:none!important}
@media print{.tp-dock{display:none!important}}
