/* Approved artwork, quiet composition, optional navigation. */
#drift,#orbit{display:none}
#universe{touch-action:pan-y;cursor:default;min-height:620px}
#universe.exploring{touch-action:none;cursor:grab}
#universe.exploring.dragging{cursor:grabbing}
.camera-controls{bottom:8px}.camera-controls #explore-toggle{font-size:10px;letter-spacing:1.4px;color:#bbc6d6}
.camera-controls #explore-toggle[aria-pressed=true]{background:#d8e8f2;color:#101827}
#universe:not(.exploring) #zoom-in,#universe:not(.exploring) #zoom-out,#universe:not(.exploring) #camera-home,#universe:not(.exploring) .gesture-hint{display:none}
#universe.exploring .gesture-hint{display:block}
.gesture-hint{font-size:9px;letter-spacing:2px;bottom:22px}
.world .number{top:5%;left:0;opacity:.6}.world .name{margin-top:0;font-size:11px}.world .genre{font-size:9px;letter-spacing:1.2px}
.world .art{filter:drop-shadow(0 0 9px #0005)}
.world[data-world=EAR] .art{transform-origin:50% 75%;animation:cradle-rock 8s linear infinite}
.world[data-world=SUN] .art{animation:sun-breathe 6s ease-in-out infinite}
.world[data-world=VEN] .art{animation:mist-breathe 10s ease-in-out infinite}
.world:hover .art,.world:focus-visible .art{animation-play-state:paused;filter:brightness(1.14);scale:1.08}
.art-ai img{object-fit:contain}.art-you img{object-fit:contain}
@keyframes cradle-rock{0%,24%,100%{rotate:-1deg}40%{rotate:3deg}56%{rotate:-2deg}72%{rotate:1deg}88%{rotate:-.4deg}}
@keyframes sun-breathe{0%,100%{filter:brightness(1) drop-shadow(0 0 6px #ff66221c)}50%{filter:brightness(1.1) drop-shadow(0 0 13px #ff662240)}}
@keyframes mist-breathe{0%,100%{opacity:.88}50%{opacity:1}}
@media(max-width:900px){main{height:auto;min-height:100svh}#universe{flex:none;height:max(760px,calc(100svh - 135px));min-height:760px;max-height:none}.camera-controls{bottom:8px}.gesture-hint{bottom:67px}.world .name{font-size:11px}.world .genre{font-size:9px}header{padding-top:20px}nav{position:absolute;right:6vw;top:63px;margin:0}footer{padding-top:12px}}
@media(prefers-reduced-motion:reduce){.world .art{animation:none!important}}

/* One shared beat: a tiny foot nudge sets the cradle rocking. */
.world[data-world=AI] .art{width:calc(var(--size)*1.8)}
.robot-body,.robot-foot{position:absolute;inset:0;display:block;pointer-events:none}
.robot-body{clip-path:polygon(0 0,100% 0,100% 57%,80% 57%,80% 100%,0 100%)}
.robot-foot{clip-path:polygon(80% 57%,100% 57%,100% 100%,80% 100%)}
.world[data-world=AI] .robot-foot{transform-origin:80% 78%;animation:cradle-nudge 8s linear infinite}
@keyframes cradle-nudge{0%,24%,62%,100%{transform:translateX(0) rotate(0)}34%{transform:translateX(12px) rotate(-2deg)}42%{transform:translateX(8px) rotate(1deg)}}
.world[data-world=EAR]:hover .art,.world[data-world=EAR]:focus-visible .art,.world[data-world=AI]:hover .art,.world[data-world=AI]:focus-visible .art{animation-play-state:running;scale:1;transform:none}
@media(prefers-reduced-motion:reduce){.world .robot-foot{animation:none!important}}

/* A small Earth-side wayfinding arrow, still a full touch target. */
.world[data-world=YOU]{min-width:74px;min-height:74px;z-index:2}
.world[data-world=YOU] .name{font-size:10px;letter-spacing:2px;margin-top:0}
.world[data-world=YOU] .genre{font-size:8px;letter-spacing:1.3px;margin-top:3px;color:#ab8b92}
.world[data-world=YOU]:hover .art{transform:scale(1.08)}
