/* Photographic mechanisms: separate components move inside a stationary stage. */
.live-mechanism{position:absolute;inset:14% 7% 9%;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s;isolation:isolate}
.service-lab[data-stage="1"] .live-mechanism{opacity:1;visibility:visible}
.service-lab[data-stage="1"] .machine-image-wrap{opacity:0;visibility:hidden}
.service-lab[data-stage="1"] .photo-pin:not(.pin-1),.service-lab[data-stage="1"] .photo-leaders path:not(.is-active){opacity:0;pointer-events:none}
.rig-piece{position:absolute;aspect-ratio:4/3;transform:translate(-50%,-50%)}
.rig-moving,.rig-sprite{display:block;width:100%;height:100%;transform-origin:50% 52%}
.rig-sprite{background-image:url('images/photoreal/motion-atlas.webp');background-size:400% 400%;background-repeat:no-repeat}
.rig-sprite.original-atlas{background-image:url('images/photoreal/parts-atlas.webp')}
.rig-still{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.live-mechanism *{animation-play-state:paused!important}
.service-lab.in-view[data-stage="1"]:not(.mechanism-paused):not(.document-paused) .live-mechanism *{animation-play-state:running!important}
.mechanism-controls{display:flex;align-items:center;gap:18px;padding:17px 0 3px;border-top:1px solid #ffffff18;margin-top:20px}
.mechanism-controls button{display:inline-flex;gap:9px;align-items:center;justify-content:center;flex-shrink:0;min-height:43px;padding:10px 15px;border:1px solid #ffffff38;border-radius:6px;background:#ffffff08;color:#fff;font:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s}
.mechanism-controls button:hover{background:#e8322728;border-color:#e83227}.mechanism-controls button:focus-visible{outline:2px solid #fff;outline-offset:4px}.mechanism-controls button:disabled{opacity:.55;cursor:default}.mechanism-controls p{font-size:11px;line-height:1.6;color:#a5a7ae;margin:0;max-width:430px}.motion-symbol{color:#ff655b;width:14px;font-size:11px}
.scanner-display{position:absolute;left:23%;top:29%;width:54%;height:35%;overflow:hidden;background:linear-gradient(#84d99a08 1px,transparent 1px),linear-gradient(90deg,#84d99a08 1px,transparent 1px);background-size:20px 20px;border-radius:2px}
.scanner-display svg{width:160%;height:100%;overflow:visible}.scanner-display path{fill:none;stroke:#9eeab2;stroke-width:1.8}.scanner-display .second-signal{stroke:#ff9e7d;stroke-width:1.2}.signal-track{animation:signal-flow 2.6s linear infinite}
.filter-cup{position:absolute;left:33%;top:49%;width:31%;height:32%;border-radius:8% 8% 32% 32%;background:linear-gradient(90deg,#222b30,#879599 18%,#e7e9e3 45%,#707d82 77%,#202a30);box-shadow:inset 0 4px 9px #0008,0 15px 25px #0005;z-index:2}.filter-cup:before{content:'';position:absolute;top:-9%;width:100%;height:20%;border-radius:50%;background:radial-gradient(ellipse,#131b20 55%,#94a3a8 60%,#35434a 72%)}.filter-rise{z-index:1}.filter-rise .rig-moving{animation:filter-lift 3.6s ease-in-out infinite}.oil-stream{position:absolute;left:46%;top:15%;width:6%;height:42%;z-index:3}.oil-stream i{position:absolute;left:calc(50% + var(--spread)*.4%);width:2px;height:10px;border-radius:100%;background:#e0b35c;animation:oil-drop 1.3s linear infinite;animation-delay:calc(var(--n)*-.12s)}.oil-pool{position:absolute;left:38%;top:85%;width:21%;height:2%;border-radius:50%;background:#d3a45288;filter:blur(4px)}
.crankshaft{position:absolute;left:11%;top:76%;width:78%;height:4%;border-radius:6px;background:linear-gradient(#263037,#b0bec5 42%,#39444c 75%);box-shadow:0 8px 12px #0006}.piston-motion .rig-moving{animation:piston-stroke 1.4s ease-in-out infinite;animation-delay:var(--phase)}.crank-gear .rig-moving{animation:rig-spin 1.4s linear infinite}
.brake-rotor .rig-moving{animation:brake-turn 4s linear infinite}.caliper-motion .rig-moving{animation:caliper-press 4s ease-in-out infinite}.pad-motion .rig-moving{animation:pad-press 4s ease-in-out infinite}
.strut-motion .rig-moving{animation:strut-travel 2s ease-in-out infinite;animation-delay:var(--phase)}.spring-motion .rig-moving{transform-origin:50% 82%;animation:spring-compress 2s ease-in-out infinite;animation-delay:var(--phase)}
.alignment-left{clip-path:inset(0 50% 0 0);transform-origin:25% 60%;animation:align-left 4.5s ease-in-out infinite}.alignment-right{clip-path:inset(0 0 0 50%);transform-origin:75% 60%;animation:align-right 4.5s ease-in-out infinite}.alignment-laser{position:absolute;left:8%;right:8%;top:64%;height:1px;background:#ff574d;box-shadow:0 0 9px #e83227;animation:laser-measure 4.5s ease-in-out infinite}.alignment-reference{position:absolute;inset:28% 22%;border-left:1px dashed #ffffff24;border-right:1px dashed #ffffff24}
.balanced-wheel .rig-moving{animation:rig-spin 2.4s linear infinite}.balance-light{position:absolute;left:14%;top:53%;width:14%;height:1px;background:#ff6258;box-shadow:0 0 8px #ff6258}.balancing-weight{position:absolute;left:78%;top:67%;width:4%;height:7%;border-radius:2px;background:linear-gradient(90deg,#566067,#b0b6bb,#3c474d);box-shadow:0 3px 8px #0006}
.alternator-pulley{clip-path:circle(17% at 50% 52%)}.alternator-pulley .rig-moving{animation:rig-spin 1s linear infinite}.power-cable{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#3b424a;stroke-width:3}.power-current{stroke:#ff655b;stroke-width:2;stroke-dasharray:7 50;animation:current-flow 1.6s linear infinite}
.gear-a .rig-moving{animation:rig-spin 4s linear infinite}.gear-b .rig-moving{animation:rig-spin 3.16s linear infinite reverse}.gear-c .rig-moving{animation:rig-spin 2.67s linear infinite}
.rack-fixed{clip-path:inset(0 38% 0 39%)}.rack-left{clip-path:inset(0 60% 0 0)}.rack-right{clip-path:inset(0 0 0 61%)}.rack-left .rig-moving,.rack-right .rig-moving{animation:rack-travel 3s ease-in-out infinite}.steering-pinion .rig-moving{animation:pinion-turn 3s ease-in-out infinite}
.radiator-fan .rig-moving{animation:rig-spin 1.2s linear infinite}.cooling-air{position:absolute;inset:28% 3% 18% 62%;overflow:hidden}.cooling-air i{position:absolute;left:-20%;top:calc(var(--n)*10%);width:30%;height:1px;background:linear-gradient(90deg,transparent,#c0ddea80,transparent);animation:air-flow 1.4s linear infinite;animation-delay:calc(var(--n)*-.17s)}
.exhaust-body{animation:exhaust-vibration .14s linear infinite alternate}.exhaust-flow{position:absolute;left:69%;top:48%;width:29%;height:26%;overflow:hidden}.exhaust-flow i{position:absolute;left:0;top:calc(45% + var(--spread)*.5%);width:24%;height:13%;border-radius:50%;background:#d9e0e624;filter:blur(5px);animation:vapor-flow 2s ease-out infinite;animation-delay:calc(var(--n)*-.17s)}
.injector-unit{position:absolute;top:0;width:23%;height:100%;transform:translateX(-50%)}.injector-valve .rig-moving{animation:injector-pulse 1.8s ease-in-out infinite;animation-delay:var(--phase)}.fuel-mist{position:absolute;left:22%;top:47%;width:56%;height:35%;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(#e3e9e580,#e1e7e010);filter:blur(3px);animation:fuel-spray 1.8s linear infinite;animation-delay:var(--phase)}.fuel-drops{position:absolute;left:25%;top:48%;width:50%;height:35%;overflow:hidden}.fuel-drops i{position:absolute;left:calc(50% + var(--spread)*.65%);width:1px;height:4px;background:#f0ece8a0;animation:fuel-fall .6s linear infinite;animation-delay:calc(var(--phase) + var(--n)*-.09s)}
.cleaning-reveal{animation:clean-surface 6s ease-in-out infinite}.cleaning-jet{position:absolute;top:28%;left:80%;width:3%;height:50%;background:linear-gradient(transparent,#e8f5ff70,transparent);filter:blur(6px);transform:rotate(20deg);animation:clean-jet 6s ease-in-out infinite}
.kit-part .rig-moving{animation:kit-arrive 5s ease-in-out infinite;animation-delay:var(--phase)}
@keyframes rig-spin{to{transform:rotate(360deg)}}
@keyframes signal-flow{to{transform:translateX(-200px)}}
@keyframes piston-stroke{0%,100%{transform:translateY(-9%)}50%{transform:translateY(9%)}}
@keyframes filter-lift{0%,100%{transform:translateY(7%)}40%,65%{transform:translateY(-18%)}}
@keyframes oil-drop{from{transform:translateY(0);opacity:0}20%{opacity:.8}to{transform:translateY(150px);opacity:0}}
@keyframes brake-turn{0%{transform:rotate(0)}55%{transform:rotate(360deg)}75%,100%{transform:rotate(405deg)}}
@keyframes caliper-press{0%,35%,100%{transform:translateX(5%)}60%,85%{transform:translateX(-9%)}}
@keyframes pad-press{0%,35%,100%{transform:translateX(-5%)}60%,85%{transform:translateX(15%)}}
@keyframes strut-travel{0%,100%{transform:translateY(-3%)}50%{transform:translateY(5%)}}
@keyframes spring-compress{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.72)}}
@keyframes align-left{0%,100%{transform:perspective(650px) rotateY(17deg)}45%,75%{transform:perspective(650px) rotateY(0)}}
@keyframes align-right{0%,100%{transform:perspective(650px) rotateY(-17deg)}45%,75%{transform:perspective(650px) rotateY(0)}}
@keyframes laser-measure{0%,100%{transform:translateY(-25px);opacity:.35}50%,75%{transform:translateY(0);opacity:1}}
@keyframes current-flow{to{stroke-dashoffset:-114}}
@keyframes rack-travel{0%,100%{transform:translateX(-3%)}50%{transform:translateX(3%)}}
@keyframes pinion-turn{0%,100%{transform:rotate(-30deg)}50%{transform:rotate(30deg)}}
@keyframes air-flow{from{transform:translateX(0);opacity:0}20%{opacity:.7}to{transform:translateX(160px);opacity:0}}
@keyframes exhaust-vibration{to{transform:translateY(1px)}}
@keyframes vapor-flow{from{transform:translate(0,0) scale(.5);opacity:0}25%{opacity:.7}to{transform:translate(120px,-12px) scale(1.8);opacity:0}}
@keyframes injector-pulse{0%,15%,100%{transform:translateY(0)}25%,45%{transform:translateY(2%)}}
@keyframes fuel-spray{0%,15%,60%,100%{opacity:.1}25%,45%{opacity:.85}}
@keyframes fuel-fall{from{transform:translateY(0);opacity:0}30%{opacity:.8}to{transform:translateY(95px);opacity:0}}
@keyframes clean-surface{0%,8%{clip-path:inset(0 0 0 100%)}75%,95%{clip-path:inset(0)}100%{clip-path:inset(0 0 0 100%)}}
@keyframes clean-jet{0%,8%{left:85%;opacity:0}20%{opacity:.7}75%{left:15%;opacity:.7}90%,100%{left:15%;opacity:0}}
@keyframes kit-arrive{0%,100%{transform:translateY(22px) rotate(-8deg);opacity:.15}20%,80%{transform:translateY(0) rotate(0);opacity:1}}
@media(max-width:600px){.live-mechanism{inset:15% 0 12%}.mechanism-controls{gap:12px;align-items:flex-start;flex-direction:column;margin-top:14px;padding-top:14px}.mechanism-controls button{font-size:11px}.mechanism-controls p{font-size:10px}.scanner-display{left:23%;top:32%;height:29%}}
html[data-motion="off"] .live-mechanism{display:none}html[data-motion="off"] .service-lab[data-stage="1"] .machine-image-wrap{opacity:1;visibility:visible}
@media(prefers-reduced-motion:reduce){.live-mechanism{display:none}.service-lab[data-stage="1"] .machine-image-wrap{opacity:1;visibility:visible}}
