/* The idle scene only changes presentation; all page content stays in place. */
.idle-companion{position:fixed;left:0;top:0;width:134px;height:174px;z-index:94;pointer-events:none;--idle-pixel:#83dcff;--idle-glow:#83dcff45;will-change:transform}
.idle-companion[hidden],.idle-invitation[hidden],.idle-hatch[hidden]{display:none!important}
.idle-robot{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 8px 7px #182b4928) drop-shadow(0 0 12px var(--idle-glow))}
.idle-robot-shadow{transform-origin:80px 202px;animation:idle-shadow-breathe 1s ease-in-out infinite}
.idle-head{transform-origin:80px 84px;animation:idle-head-look 3s ease-in-out infinite}
.idle-leg-left{transform-origin:64px 145px}.idle-leg-right{transform-origin:96px 145px}
.idle-arm-left{transform-origin:47px 107px}.idle-arm-right{transform-origin:113px 107px}
.idle-torso{transform-origin:80px 141px}
.idle-companion[data-pose="run"] .idle-leg-left{animation:idle-leg-run .3s ease-in-out infinite}
.idle-companion[data-pose="run"] .idle-leg-right{animation:idle-leg-run .3s -.15s ease-in-out infinite}
.idle-companion[data-pose="run"] .idle-arm-left{animation:idle-arm-run .3s -.15s ease-in-out infinite}
.idle-companion[data-pose="run"] .idle-arm-right{animation:idle-arm-run .3s ease-in-out infinite}
.idle-companion[data-pose="run"] .idle-torso{animation:idle-body-run .15s ease-in-out infinite}
.idle-companion[data-pose="push"] .idle-arm-left{animation:idle-push-left .45s ease-in-out infinite}
.idle-companion[data-pose="push"] .idle-arm-right{animation:idle-push-right .45s ease-in-out infinite}
.idle-companion[data-pose="carry"] .idle-arm-left{transform:rotate(-67deg)}
.idle-companion[data-pose="carry"] .idle-arm-right{transform:rotate(67deg)}
.idle-companion[data-pose="wave"] .idle-arm-right{animation:idle-arm-wave .6s ease-in-out infinite}
.idle-companion[data-pose="wave"] .idle-arm-left{animation:idle-arm-wave-left 1.2s ease-in-out infinite}
.idle-companion[data-pose="wave"] .idle-torso{animation:idle-body-run .6s ease-in-out infinite}
.idle-companion[data-pose="fall"] .idle-arm-left{transform:rotate(110deg)}
.idle-companion[data-pose="fall"] .idle-arm-right{transform:rotate(-110deg)}
.idle-companion[data-pose="fall"] .idle-leg-left{transform:rotate(-22deg)}
.idle-companion[data-pose="fall"] .idle-leg-right{transform:rotate(22deg)}
.idle-face-pixel{fill:var(--idle-pixel)}
.idle-invitation{position:absolute;bottom:calc(100% + 10px);left:calc(50% + var(--idle-bubble-shift,0px));transform:translateX(-50%);width:max-content;max-width:min(260px,calc(100vw - 32px));padding:15px 19px;border:1px solid var(--line);border-radius:21px 21px 21px 7px;background:var(--paper);color:var(--ink);box-shadow:0 12px 42px #182b4920;font:700 15px/1.45 Manrope,Arial,sans-serif;cursor:pointer;pointer-events:auto;text-align:center;animation:idle-bubble-in .3s ease-out both}
.idle-invitation::after{content:'';position:absolute;bottom:-7px;left:calc(50% - 6px);width:12px;height:12px;background:var(--paper);border-bottom:1px solid var(--line);border-right:1px solid var(--line);transform:rotate(45deg)}
.idle-invitation:hover{color:var(--accent);box-shadow:0 12px 42px #80aaff35}
.idle-invitation:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.idle-companion[data-bubble-below="true"] .idle-invitation{bottom:auto;top:calc(100% + 10px);border-radius:7px 21px 21px}
.idle-companion[data-bubble-below="true"] .idle-invitation::after{bottom:auto;top:-7px;transform:rotate(225deg)}
.idle-hatch{position:fixed;width:90px;height:17px;z-index:93;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse,#e9f6ffdc,#83dcff55 55%,transparent 73%);box-shadow:0 0 25px #83dcff40;animation:idle-hatch-glow 1.4s ease-in-out infinite}
.idle-letter{position:fixed;z-index:95;pointer-events:none;white-space:pre;will-change:transform,opacity}
html[data-theme="dark"] .idle-companion{--idle-pixel:#a0f4bd;--idle-glow:#a0f4bd45}
html[data-theme="dark"] .idle-invitation{background:#22334bee;border-color:#506e85;color:#b0f4c6}
html[data-theme="dark"] .idle-invitation::after{background:#22334b}
html[data-theme="dark"] .idle-hatch{background:radial-gradient(ellipse,#d7ffe5dc,#94f4b255 55%,transparent 73%);box-shadow:0 0 25px #94f4b245}
html.idle-show-active{overflow-x:clip}
@keyframes idle-head-look{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-2px)}}
@keyframes idle-leg-run{0%,100%{transform:rotate(25deg)}50%{transform:rotate(-25deg)}}
@keyframes idle-arm-run{0%,100%{transform:rotate(-27deg)}50%{transform:rotate(27deg)}}
@keyframes idle-body-run{50%{transform:translateY(-3px)}}
@keyframes idle-arm-wave{0%,100%{transform:rotate(-120deg)}50%{transform:rotate(-155deg)}}
@keyframes idle-arm-wave-left{0%,100%{transform:rotate(35deg)}50%{transform:rotate(65deg)}}
@keyframes idle-push-left{0%,100%{transform:rotate(-67deg)}50%{transform:rotate(-78deg) translateX(-3px)}}
@keyframes idle-push-right{0%,100%{transform:rotate(67deg)}50%{transform:rotate(78deg) translateX(3px)}}
@keyframes idle-shadow-breathe{50%{transform:scaleX(.87);opacity:.07}}
@keyframes idle-bubble-in{from{opacity:0;translate:0 8px;scale:.94}to{opacity:1;translate:0 0;scale:1}}
@keyframes idle-hatch-glow{50%{opacity:.55;transform:scaleX(.85)}}
@media(max-width:600px){.idle-companion{width:108px;height:140px}.idle-invitation{max-width:212px;font-size:13px;padding:12px 15px}}
@media(prefers-reduced-motion:reduce){.idle-companion,.idle-hatch,.idle-letter{display:none!important}}
/* The stage is viewport-fixed; only props and the robot move, never the page. */
.idle-stage{position:fixed;inset:0;z-index:93;pointer-events:none;overflow:hidden}
.idle-ground{position:absolute;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,#879ab940 20%,#879ab958 80%,transparent)}
.idle-prop{position:absolute;left:0;top:0;will-change:transform;filter:drop-shadow(0 4px 3px #20325328)}
.idle-prop svg{display:block;width:100%;height:100%;overflow:visible}
.idle-prop[data-placed="true"]::after{content:'';position:absolute;bottom:-3px;left:6%;width:88%;height:4px;border-radius:50%;background:#172a4520;filter:blur(2px)}
.idle-rope{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.idle-rope[hidden]{display:none}
.idle-seated-legs{display:none;transform-origin:80px 145px}
.idle-pointing-arm{display:none;transform-origin:113px 107px}
.idle-companion[data-phase="building"] .idle-robot-shadow,.idle-companion[data-phase="sad"] .idle-robot-shadow,.idle-companion[data-phase="settling"] .idle-robot-shadow{animation:none;opacity:.08}
.idle-companion[data-pose="carry-walk"] .idle-leg-left{animation:idle-leg-run .45s ease-in-out infinite}
.idle-companion[data-pose="carry-walk"] .idle-leg-right{animation:idle-leg-run .45s -.225s ease-in-out infinite}
.idle-companion[data-pose="carry-walk"] .idle-arm-left,.idle-companion[data-pose="place"] .idle-arm-left{transform:rotate(-67deg)}
.idle-companion[data-pose="carry-walk"] .idle-arm-right,.idle-companion[data-pose="place"] .idle-arm-right{transform:rotate(67deg)}
.idle-companion[data-pose="climb"] .idle-head{animation:none;transform:rotate(-8deg)}
.idle-companion[data-pose="climb"] .idle-arm-left{animation:idle-grip-left .8s ease-in-out infinite}
.idle-companion[data-pose="climb"] .idle-arm-right{animation:idle-grip-right .8s -.4s ease-in-out infinite}
.idle-companion[data-pose="climb"] .idle-leg-left{animation:idle-climb-step .8s ease-in-out infinite}
.idle-companion[data-pose="climb"] .idle-leg-right{animation:idle-climb-step .8s -.4s ease-in-out infinite}
.idle-companion[data-pose="step-down"] .idle-arm-left{transform:rotate(60deg)}
.idle-companion[data-pose="step-down"] .idle-arm-right{transform:rotate(-60deg)}
.idle-companion[data-pose="step-down"] .idle-leg-left{animation:idle-climb-step .8s ease-in-out infinite}
.idle-companion[data-pose="step-down"] .idle-leg-right{animation:idle-climb-step .8s -.4s ease-in-out infinite}
.idle-companion[data-pose="rope"] .idle-arm-left{animation:idle-haul .6s ease-in-out infinite}
.idle-companion[data-pose="rope"] .idle-arm-right{animation:idle-haul .6s -.3s ease-in-out infinite}
.idle-companion[data-pose="rope"] .idle-head{animation:idle-effort .6s ease-in-out infinite}
.idle-companion[data-pose="reach"] .idle-torso,.idle-companion[data-pose="search"] .idle-torso{transform:rotate(12deg) translateY(7px)}
.idle-companion[data-pose="reach"] .idle-head,.idle-companion[data-pose="search"] .idle-head{animation:none;transform:translateY(12px) rotate(12deg)}
.idle-companion[data-pose="jump"] .idle-arm-left,.idle-companion[data-pose="celebrate"] .idle-arm-left{transform:rotate(155deg)}
.idle-companion[data-pose="jump"] .idle-arm-right,.idle-companion[data-pose="celebrate"] .idle-arm-right{transform:rotate(-155deg)}
.idle-companion[data-pose="jump"] .idle-leg-left{transform:rotate(-20deg)}
.idle-companion[data-pose="jump"] .idle-leg-right{transform:rotate(20deg)}
.idle-companion:is([data-pose="sit"],[data-pose="sad"],[data-pose="point-down"]) .idle-leg-left,.idle-companion:is([data-pose="sit"],[data-pose="sad"],[data-pose="point-down"]) .idle-leg-right{display:none}
.idle-companion:is([data-pose="sit"],[data-pose="sad"],[data-pose="point-down"]) .idle-seated-legs{display:block;animation:idle-dangle 3s ease-in-out infinite}
.idle-companion[data-pose="point-down"] .idle-arm-right{display:none}
.idle-companion[data-pose="point-down"] .idle-pointing-arm{display:block;animation:idle-point-down 2s ease-in-out infinite}
.idle-companion[data-pose="point-down"] .idle-arm-left{transform:rotate(-20deg) translateY(5px)}
.idle-companion[data-pose="point-down"] .idle-head{animation:idle-remember 1s ease-out both,idle-look-below 3s 1s ease-in-out infinite}
.idle-companion[data-pose="point-down"] .idle-robot-shadow{animation:none;opacity:.08}
.idle-game-arrow{stroke:var(--idle-pixel);animation:idle-arrow-down 1.4s ease-out infinite}
.idle-companion[data-pose="sad"] .idle-head{animation:idle-sigh 5s ease-in-out infinite}
.idle-companion[data-pose="sad"] .idle-torso{transform:translateY(3px)}
.idle-companion[data-pose="sad"] .idle-arm-left{transform:rotate(-20deg) translateY(5px)}
.idle-companion[data-pose="sad"] .idle-arm-right{transform:rotate(20deg) translateY(5px)}
.idle-companion[data-phase="building"] .idle-invitation,.idle-companion[data-phase="sad"] .idle-invitation,.idle-companion[data-phase="settling"] .idle-invitation{left:calc(50% + var(--idle-bubble-shift,0px))}
@keyframes idle-grip-left{0%,100%{transform:rotate(120deg)}50%{transform:rotate(75deg)}}
@keyframes idle-grip-right{0%,100%{transform:rotate(-120deg)}50%{transform:rotate(-75deg)}}
@keyframes idle-climb-step{0%,100%{transform:rotate(30deg) translateY(-7px)}50%{transform:rotate(-15deg)}}
@keyframes idle-haul{0%,100%{transform:rotate(-65deg) translateY(-12px)}50%{transform:rotate(-15deg) translateY(6px)}}
@keyframes idle-effort{50%{transform:translateY(3px) rotate(-7deg)}}
@keyframes idle-dangle{50%{transform:rotate(3deg)}}
@keyframes idle-sigh{0%,100%{transform:translateY(7px) rotate(9deg)}50%{transform:translateY(10px) rotate(12deg)}}
@keyframes idle-remember{from{transform:translateY(7px) rotate(9deg)}to{transform:translateY(-3px) rotate(-5deg)}}
@keyframes idle-look-below{0%,100%{transform:translateY(-3px) rotate(-5deg)}55%{transform:translateY(2px) rotate(9deg)}}
@keyframes idle-point-down{0%,100%{transform:rotate(-5deg) translateY(-3px)}50%{transform:rotate(3deg) translateY(6px)}}
@keyframes idle-arrow-down{0%{opacity:0;transform:translateY(-5px)}35%{opacity:.85}100%{opacity:0;transform:translateY(10px)}}
@media(prefers-reduced-motion:reduce){.idle-stage{display:none!important}}

.idle-companion[data-pose="carry-walk"] .idle-arm-left{transform:rotate(-175deg)}
.idle-companion[data-pose="carry-walk"] .idle-arm-right{transform:rotate(175deg)}

/* Articulated climbing replaces whole-limb rotation with world-pinned hands. */
.idle-companion[data-articulated="true"] .idle-arm-left,
.idle-companion[data-articulated="true"] .idle-arm-right,
.idle-companion[data-articulated="true"] .idle-leg-left,
.idle-companion[data-articulated="true"] .idle-leg-right{display:none}
.idle-companion[data-articulated="true"] .idle-robot-shadow{opacity:0}
.idle-companion[data-articulated="true"] .idle-head{animation:none;transform:rotate(calc(5deg * var(--idle-climb-direction,1)))}
.idle-companion[data-articulated="true"] .idle-torso{transform:rotate(calc(3deg * var(--idle-climb-direction,1)))}

::highlight(gv-idle-picked){color:transparent;text-shadow:none}
.idle-companion[data-holding="true"] .idle-arm-left,.idle-companion[data-holding="true"] .idle-arm-right{display:none}
.idle-companion[data-holding="true"] [data-limb="leftLeg"],.idle-companion[data-holding="true"] [data-limb="rightLeg"]{display:none}
/* Hand contact, carrying letters and pushing use one articulated frame clock. */
.idle-companion[data-cleaning="true"] .idle-arm-left,
.idle-companion[data-cleaning="true"] .idle-arm-right,
.idle-companion[data-cleaning="true"] .idle-leg-left,
.idle-companion[data-cleaning="true"] .idle-leg-right{display:none}
.idle-companion[data-cleaning="true"] .idle-torso{animation:none;transform:rotate(var(--idle-clean-lean,0deg))}
.idle-companion[data-cleaning="true"] .idle-head{animation:none;transform:rotate(var(--idle-clean-look,0deg))}
.idle-companion[data-cleaning="true"] .idle-robot-shadow{animation:none;opacity:.08}
.idle-clearing-rig [data-limb$="Arm"]>circle:last-child{transition:r .1s}
.idle-companion[data-clean-action="grip"] .idle-clearing-rig [data-limb$="Arm"]>circle:last-child,
.idle-companion[data-clean-action="windup"] .idle-clearing-rig [data-limb$="Arm"]>circle:last-child{r:6.5}

/* The shovel is a world-space prop: its blade paints in front of the glyphs,
   while two world-pinned gloves follow the same shaft coordinates as the rig. */
.idle-clearing-shovel{position:fixed;inset:0;width:100vw;height:100vh;z-index:96;overflow:hidden;pointer-events:none}
.idle-clearing-shovel *{pointer-events:none}
.idle-shovel-shape{filter:drop-shadow(0 4px 3px #182b4925)}
.idle-shovel-pocket{pointer-events:none}
.idle-companion[data-shovel] .idle-clearing-rig [data-limb$="Arm"]>circle:last-child{r:6.5}
html[data-theme="dark"] .idle-shovel-blade{fill:#b4cbdc;stroke:#65869f}
html[data-theme="dark"] .idle-shovel-blade-edge{stroke:#e5f4ff}
@media(prefers-reduced-motion:reduce){.idle-clearing-shovel{display:none!important}}
