.mechanism-figure[data-animated=false] .motion-transient{display:none}.mechanism-figure[data-animated=true] .mechanism-traveller{offset-distance:0;offset-rotate:0deg;animation:mechanism-travel 2.4s linear infinite}.mechanism-figure[data-animated=true] .mechanism-command .mechanism-traveller{animation-duration:.8s;animation-delay:80ms;animation-iteration-count:1;animation-fill-mode:both}.mechanism-figure[data-animated=true] .mechanism-radio-pulse{animation:mechanism-broadcast 2.4s linear infinite}.mechanism-figure[data-animated=true] .mechanism-shell{transition:opacity .45s ease-out}.mechanism-figure[data-animated=true][data-step="1"] .mechanism-ticket-present{animation:mechanism-present var(--stage-duration) cubic-bezier(.16,1,.3,1) both}.mechanism-figure[data-animated=true] .mechanism-scanner{animation:mechanism-scan .8s ease-in-out 3}.mechanism-figure[data-animated=true] .mechanism-gate-open{animation:mechanism-open-gate var(--stage-duration) cubic-bezier(.16,1,.3,1) both}.mechanism-figure[data-animated=true] .mechanism-motor{animation:mechanism-motor var(--stage-duration) ease-in-out both}.mechanism-figure[data-animated=true][data-step="1"] .mechanism-room{animation:mechanism-room 1.5s cubic-bezier(.16,1,.3,1) both}.mechanism-figure[data-animated=true][data-step="3"] .mechanism-route{stroke-dasharray:1;animation:mechanism-draw-route var(--stage-duration) ease-in-out both}.mechanism-figure[data-animated=true] .mechanism-walker{offset-rotate:0deg;animation:mechanism-travel var(--stage-duration) ease-in-out both}.mechanism-figure[data-animated=true] .mechanism-exhibit-awake{animation:mechanism-wake var(--stage-duration) ease-out both}.mechanism-figure[data-animated=true] .mechanism-audio-bar{animation:mechanism-waveform .68s ease-in-out infinite alternate}.mechanism-figure[data-animated=true] .mechanism-catalog-scan{animation:mechanism-catalog 1.2s ease-in-out 2}.mechanism-figure[data-animated=true] .mechanism-playhead{animation:mechanism-align var(--stage-duration) cubic-bezier(.16,1,.3,1) both}.mechanism-figure[data-animated=true] .mechanism-camera-flash{animation:mechanism-exposure 2.4s ease-out infinite both}.mechanism-figure[data-animated=true][data-step="3"] .mechanism-splat-sample{animation:mechanism-fit-sample calc(var(--stage-duration) - .78s) cubic-bezier(.16,1,.3,1) both}.mechanism-figure[data-animated=true][data-step="4"] .mechanism-splat-sample{animation:mechanism-parallax var(--stage-duration) cubic-bezier(.45,0,.2,1) both}.mechanism-figure[data-animated=true][data-step="1"] .mechanism-robot-arm{animation:mechanism-acknowledge var(--stage-duration) cubic-bezier(.16,1,.3,1) both}.mechanism-figure[data-animated=true][data-step="1"] .mechanism-robot-head{transform-box:fill-box;transform-origin:center bottom;animation:mechanism-nod var(--stage-duration) ease-in-out both}.mechanism-figure[data-animated=true] .mechanism-door-open{animation:mechanism-open-door var(--stage-duration) cubic-bezier(.16,1,.3,1) both}.mechanism-figure[data-running=false] *,.workshop-bench[data-motion-paused] .workshop-step-progress{animation-play-state:paused!important}.workshop-view-controls{display:flex;align-items:center;gap:20px}.workshop-motion-toggle{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 3px;border:0;color:var(--workshop-green);background:none;font-size:.75rem!important}.workshop-motion-toggle:hover{text-decoration:underline;text-underline-offset:4px}.workshop-play[aria-pressed=true]{color:var(--workshop-green);font-weight:650}.workshop-play{flex-shrink:0;white-space:nowrap}.workshop-playback h2{font-size:1.25rem;white-space:nowrap}.workshop-steps button{position:relative;overflow:hidden}.workshop-steps button[data-running]{border-color:var(--workshop-green)}.workshop-steps button>.workshop-step-progress{position:absolute;left:0;right:0;bottom:0;height:3px;border:0;border-radius:0;background:#dce5bd;transform-origin:left;animation:workshop-step-progress var(--stage-duration) linear both}@keyframes mechanism-travel{0%{offset-distance:0}to{offset-distance:100%}}@keyframes mechanism-broadcast{0%{transform:scale(.08);opacity:0}12%{opacity:.7}75%{opacity:.26}to{transform:scale(1);opacity:0}}@keyframes mechanism-present{0%{transform:var(--present-from)}to{transform:translate(0)}}@keyframes mechanism-scan{0%,to{transform:translate(0);opacity:.3}50%{transform:translate(-23px,10px);opacity:1}}@keyframes mechanism-open-gate{0%,33%{transform:rotate(0deg)}to{transform:rotate(-78deg)}}@keyframes mechanism-motor{0%,33%{transform:rotate(0deg)}to{transform:rotate(540deg)}}@keyframes mechanism-room{0%{opacity:.12;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes mechanism-draw-route{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes mechanism-wake{0%,32%{opacity:.15}72%,to{opacity:1}}@keyframes mechanism-waveform{0%{transform:scaleY(.3)}to{transform:scaleY(1.1)}}@keyframes mechanism-catalog{0%,to{transform:translate(0)}50%{transform:translate(-25px,10px)}}@keyframes mechanism-align{0%,20%{transform:translateX(0)}to{transform:translateX(134px)}}@keyframes mechanism-exposure{0%,35%,8%,to{opacity:0}15%,22%{opacity:.35}}@keyframes mechanism-fit-sample{0%{transform:var(--sample-from);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes mechanism-parallax{0%{transform:translate(0)}to{transform:var(--parallax-shift)}}@keyframes mechanism-acknowledge{0%,14%{transform:translateY(20px)}50%,to{transform:translateY(0)}}@keyframes mechanism-nod{0%,15%,to{transform:rotate(0deg)}35%{transform:rotate(4deg)}65%{transform:rotate(-2deg)}}@keyframes mechanism-open-door{0%,33%{transform:matrix(1,0,0,1,0,0)}to{transform:matrix(.22,-.3,0,1,0,0)}}@keyframes workshop-step-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (max-width:640px){.workshop-view-controls{gap:12px}.workshop-motion-toggle{font-size:.7rem!important}.workshop-motion-toggle>span{display:none}.workshop-motion-toggle{min-width:44px;justify-content:center}}@media (prefers-reduced-motion:reduce){.mechanism-figure *,.workshop-step-progress{animation:none!important;transition:none!important}.mechanism-figure .motion-transient{display:none}}