/* A simple one-shot trace. The finished border stays visible. */
.immersive-photo [data-scene=automobile]>img{object-position:50% 50%;transform:scale(1);animation:none;scale:1}.photo-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.photo-outline path{fill:none;stroke:var(--acid);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}.motion-ready [data-outline-state=waiting] .photo-outline path{stroke-dashoffset:1}.motion-ready [data-outline-state=tracing] .photo-outline path{animation:aoutch-outline-tour 2.8s linear 1 forwards}.motion-off .photo-outline path{animation:none!important;stroke-dashoffset:0!important}@keyframes aoutch-outline-tour{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@media(max-width:800px){.immersive-photo>.photo-reveal{height:auto;aspect-ratio:3/2}}@media(prefers-reduced-motion:reduce){.photo-outline path{animation:none!important;stroke-dashoffset:0!important}}

.studio-outline{opacity:1}.motion-ready [data-outline-visible=true]>.studio-outline{animation:aoutch-studio-blink 2.4s ease-in-out infinite}.motion-off .studio-outline{animation:none!important;opacity:1!important}@keyframes aoutch-studio-blink{0%,100%{opacity:1}50%{opacity:.15}}@media(prefers-reduced-motion:reduce){.studio-outline{animation:none!important;opacity:1!important}}

.motion-ready [data-energy-state=waiting]>.energy-outline path{stroke-dashoffset:1}.motion-ready [data-energy-state=tracing]>.energy-outline path{animation:aoutch-outline-tour 2.8s linear 1 forwards}.motion-off .energy-outline path{animation:none!important;stroke-dashoffset:0!important}@media(prefers-reduced-motion:reduce){.energy-outline path{animation:none!important;stroke-dashoffset:0!important}}

/* A slow, continuous breath for the landscape frame. */
.motion-ready [data-outline-visible=true]>.calm-outline{animation:aoutch-calm-breath 5.5s cubic-bezier(.45,0,.55,1) infinite}@keyframes aoutch-calm-breath{0%,100%{opacity:.85}50%{opacity:.38}}.motion-off .calm-outline{animation:none!important;opacity:1!important}@media(prefers-reduced-motion:reduce){.calm-outline{animation:none!important;opacity:1!important}}

.motion-ready [data-corners-state=waiting]>.corners-outline path{stroke-dashoffset:var(--corner-offset,.86)}.motion-ready [data-corners-state=tracing]>.corners-outline path{animation:aoutch-corners-expand 2.6s cubic-bezier(.22,.61,.36,1) 1 forwards}@keyframes aoutch-corners-expand{from{stroke-dashoffset:var(--corner-offset,.86)}to{stroke-dashoffset:0}}.motion-off .corners-outline path{animation:none!important;stroke-dashoffset:0!important}@media(prefers-reduced-motion:reduce){.corners-outline path{animation:none!important;stroke-dashoffset:0!important}}

/* One subtle camera approach, synchronized with the green outline. */
.immersive-photo [data-scene=automobile][data-cinematic=playing]>img{animation:aoutch-camera-approach 2.8s cubic-bezier(.22,.61,.36,1) 1 forwards!important;transform-origin:58% 55%;will-change:auto}@keyframes aoutch-camera-approach{from{transform:scale(1)}to{transform:scale(1.055)}}.motion-off .immersive-photo [data-scene=automobile][data-cinematic]>img{animation:none!important;transform:none!important}@media(prefers-reduced-motion:reduce){.immersive-photo [data-scene=automobile][data-cinematic]>img{animation:none!important;transform:none!important}}
