/* Engineering motion: all effects share the pause and reduced-motion controls. */
.app-logo{display:block;width:64px;height:64px;flex-shrink:0;border-radius:12px;overflow:hidden;border:1px solid #416078;background:#0b1e2c}
.app-logo img{display:block;width:100%;height:100%;object-fit:contain}
.card-top{gap:18px;margin-bottom:18px}.card-top .category{text-align:right;max-width:68%;overflow-wrap:anywhere}
.tool-motion{height:56px;margin-bottom:24px;color:#78adcf;border-bottom:1px solid #294052;background:linear-gradient(90deg,#17324944,transparent)}
.tool-motion svg{display:block;width:160px;height:52px;max-width:100%}
.portfolio-controls{display:flex;justify-content:flex-end;margin:-14px 0 18px}
.mini-belt{stroke:#c7ef8b;animation:mini-transport 2s linear infinite}
.mini-scan{stroke:#67e8f9;animation:mini-scan 5s ease-in-out infinite}
.mini-fan{transform-origin:38px 26px;animation:roller-turn 5s linear infinite}
.mini-stream{stroke:#95d8ea;animation:mini-transport 3s linear infinite}
.mini-check{stroke:#c7ef8b;animation:mini-glow 4s ease-in-out infinite}
.mini-node{fill:#16364c;animation:mini-glow 4s ease-in-out infinite}.mini-node:nth-of-type(2){animation-delay:1s}.mini-node:nth-of-type(3){animation-delay:2s}
@keyframes mini-transport{to{stroke-dashoffset:-48}}
@keyframes mini-scan{0%,100%{transform:translateX(0)}50%{transform:translateX(98px)}}
@keyframes mini-glow{0%,100%{opacity:.4}50%{opacity:1}}
.motion-paused .tool-motion *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.tool-motion *{animation:none!important}}
.conveyor-figure{margin:24px 0 0;border-bottom:1px solid #36546b;padding-bottom:16px;position:relative;overflow:hidden}
.schematic-label{display:flex;justify-content:space-between;font:11px Consolas,monospace;letter-spacing:1px;color:#a6c1d5}
.conveyor-diagram{display:block;width:100%;height:auto;max-height:145px;margin:12px auto 0}
.conveyor-figure figcaption{color:#adc5d7;font-size:12px;margin-top:3px}
.roller-spin{animation:roller-turn 3s linear infinite;transform-origin:0 0}
.belt-travel{animation:belt-advance 1.1s linear infinite}
.conveyor-figure:after{content:'';position:absolute;pointer-events:none;top:25px;bottom:30px;width:1px;background:#70c4ff88;box-shadow:0 0 12px 2px #70c4ff20;animation:scan-sweep 7s ease-in-out infinite}
.blueprint .flow-row{animation:workflow-focus 9s ease-in-out infinite}
.blueprint .flow-row:nth-child(2){animation-delay:3s}
.blueprint .flow-row:nth-child(3){animation-delay:6s}
.motion-toggle{position:relative;z-index:1;background:transparent;border:1px solid #52718a;border-radius:4px;color:#c5dcec;padding:7px 9px;font:12px Arial,sans-serif;cursor:pointer;white-space:nowrap;min-height:32px}
.motion-toggle:hover{background:#24445d}
.motion-toggle[hidden]{display:none}
.plate-bottom{align-items:center;letter-spacing:.6px}
.system{padding:20px 0}.system-brand{margin-bottom:18px}
@keyframes roller-turn{to{transform:rotate(360deg)}}
@keyframes belt-advance{to{stroke-dashoffset:-44}}
@keyframes scan-sweep{0%,100%{left:5%;opacity:0}10%,90%{opacity:.7}50%{left:95%;opacity:.7}}
@keyframes workflow-focus{0%,32%,100%{border-color:#36546b;background:#0c2133}8%,24%{border-color:#70c4ff;background:#153b53}}
.motion-paused .roller-spin,.motion-paused .belt-travel,.motion-paused .flow-row,.motion-paused .conveyor-figure:after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.roller-spin,.belt-travel,.blueprint .flow-row,.conveyor-figure:after{animation:none!important}.conveyor-figure:after{display:none}.motion-toggle{display:none}}
@media(max-width:650px){.schematic-label{font-size:11px;letter-spacing:.6px}.plate-bottom{gap:10px}.plate-bottom>span{max-width:50%;line-height:1.5}.conveyor-diagram{max-height:130px}}
