/* Only transforms: layout bounds and route anchors remain unchanged. */
@media(prefers-reduced-motion:no-preference){
 [data-ambient-motion="step"]{animation:ambient-breathe 3.6s ease-in-out infinite;animation-play-state:paused;transform-origin:center}
 [data-ambient-motion="step"].ambient-running{animation-play-state:running}
 .daily-task[data-ambient-motion]:has(:focus-visible),.daily-task[data-ambient-motion]:hover{animation-play-state:paused}
 [data-ambient-motion="mascot"],[data-ambient-motion="driver"]{animation:ambient-sway 6s ease-in-out infinite;animation-play-state:paused;transform-origin:50% 90%;--sway:1.2deg;--lift:-2px}
 [data-ambient-motion="driver"]{--sway:.8deg;--lift:-1.5px}
 [data-ambient-motion="pulse"]{animation:ambient-pulse 4s ease-in-out infinite;animation-play-state:paused;transform-origin:center}
 [data-ambient-motion].ambient-running{animation-play-state:running}
 [data-ambient-motion="particles"]:before,[data-ambient-motion="particles"]:after,[data-ambient-motion="particles"]>i{animation:ambient-particle-float 7.2s ease-in-out infinite;animation-play-state:paused;--particle-x:2px;--particle-y:-4px}
 [data-ambient-motion="particles"]:after{animation-duration:8.6s;animation-delay:-2.8s;--particle-x:-2px;--particle-y:3px}
 [data-ambient-motion="particles"]>i{animation-duration:7.8s;animation-delay:-4.2s;--particle-x:2px;--particle-y:-3px}
 [data-ambient-motion="particles"]>i:last-child{animation-duration:9s;animation-delay:-1.6s;--particle-x:-3px;--particle-y:-4px}
 [data-ambient-motion="particles"].ambient-running:before,[data-ambient-motion="particles"].ambient-running:after,[data-ambient-motion="particles"].ambient-running>i{animation-play-state:running}
 @keyframes ambient-particle-float{0%,100%{transform:translate(0,0) scale(1);opacity:.75}50%{transform:translate(var(--particle-x),var(--particle-y)) scale(.92);opacity:1}}
 .hero-intro-enter .hero-intro-copy{animation:hero-copy-enter .8s cubic-bezier(.22,1,.36,1) both}
 .hero-intro-enter .hero-intro-art{animation:hero-art-enter 1.1s cubic-bezier(.22,1,.36,1) both;transform-origin:50% 90%}
 @keyframes hero-copy-enter{from{opacity:.5;translate:-6px 0}to{opacity:1;translate:0 0}}
 @keyframes hero-art-enter{from{opacity:.45;translate:0 10px;scale:.94}to{opacity:1;translate:0 0;scale:1}}
 .plan-greeting-scene .plan-greeting-bubble{animation:plan-greeting-speech 10s ease-in-out infinite;animation-play-state:paused}
 .plan-greeting-scene .plan-headlight{animation:plan-greeting-lights 10s ease-in-out infinite;animation-play-state:paused}
 .plan-greeting-scene.ambient-running .plan-greeting-bubble,.plan-greeting-scene.ambient-running .plan-headlight{animation-play-state:running}
 @keyframes plan-greeting-speech{0%,6%,48%,100%{opacity:0;transform:translateY(5px) scale(.94)}14%,40%{opacity:1;transform:translateY(0) scale(1)}}
 @keyframes plan-greeting-lights{0%,9%,15%,23%,40%,48%,100%{opacity:0}12%,19%,44%{opacity:1}}
 @keyframes ambient-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
 @keyframes ambient-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
 @keyframes ambient-sway{0%,100%{transform:translate(var(--sway-x,0px),0) rotate(0)}25%{transform:translate(var(--sway-x,0px),calc(var(--lift) / 2)) rotate(calc(-1 * var(--sway)))}50%{transform:translate(var(--sway-x,0px),var(--lift)) rotate(0)}75%{transform:translate(var(--sway-x,0px),calc(var(--lift) / 2)) rotate(var(--sway))}}
 @media(max-width:720px){.route-hero-stage>img[data-ambient-motion]{--sway-x:8px}}
}
