/* The same native actuator/bracket is read through thirteen engineering views.
 * Static geometry is the complete fallback. Existing Creo2 visibility, selected
 * disclosure, document and reduced-motion ownership alone enables these cues. */
.creo2-page .cr2-model-study :is(.cr2-art-path,.cr2-art-flow,.cr2-art-point,.cr2-tool-motion){animation:none;stroke-dashoffset:0}
.creo2-page .cr2-model-study .cr2-art-flow{stroke-dasharray:none}
.creo2-page .cr2-model-study :is(.cr2m-travel,.cr2m-jaw,.cr2m-cutter,.cr2m-build-section,.cr2m-ply){transform-box:view-box;transform-origin:0 0}
.creo2-page .cr2-model-study :is(.cr2m-load-path,.cr2m-record-branch,.cr2m-guidance-link,.cr2m-record-pair,.cr2m-toolpath) path{stroke-dashoffset:0}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-purpose .cr2m-travel{animation:cr2m-carriage-stroke 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-purpose .cr2m-interface-focus{animation:cr2m-design-focus 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-purpose .cr2m-purpose-load{animation:cr2m-evaluation-focus 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-purpose .cr2m-purpose-definition{animation:cr2m-definition-focus 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-designer .cr2m-jaw-0{animation:cr2m-jaw-near 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-designer .cr2m-jaw-1{animation:cr2m-jaw-far 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-designer .cr2m-dimension{animation:cr2m-reference-return 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-manufacturing .cr2m-cutter{animation:cr2m-tool-clearance 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] :is(.cr2-art-analyst,.cr2-art-simulation) .cr2m-load-path path{stroke-dasharray:.055 .075;animation:cr2m-load-trace 12s linear infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-cad-manager .cr2m-record-branch path{stroke-dasharray:.09 .055;animation:cr2m-record-to-model 14s linear infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-cad-manager .cr2m-record-pair path[pathLength]{stroke-dasharray:.08 .06;animation:cr2m-model-to-record 14s linear infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-leadership .cr2m-review-views{animation:cr2m-review-drawing 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-leadership .cr2m-review-focus{animation:cr2m-review-part 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-generative .cr2m-rib-primary{animation:cr2m-rib-first 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-generative .cr2m-rib-alternate{animation:cr2m-rib-second 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-cam .cr2m-cutter{animation:cr2m-cutting-pass 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-cam .cr2m-toolpath path{stroke-dasharray:1;animation:cr2m-cutting-path 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-additive .cr2m-build-section{animation:cr2m-build-section 14s linear infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-simulation .cr2m-analysis-mesh{animation:cr2m-model-mesh 12s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-simulation .cr2m-boundary-focus{animation:cr2m-boundary-review 12s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-composites .cr2m-ply-0{animation:cr2m-ply-near 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-composites .cr2m-ply-1{animation:cr2m-ply-middle 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-composites .cr2m-ply-2{animation:cr2m-ply-far 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-mbd .cr2m-note-a{animation:cr2m-annotation-first 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-mbd .cr2m-note-b{animation:cr2m-annotation-second 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-mbd .cr2m-note-c{animation:cr2m-annotation-third 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-ai .cr2m-document-focus{animation:cr2m-document-context 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-ai .cr2m-guidance-link path{stroke-dasharray:.09 .06;animation:cr2m-guidance-context 14s linear infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-ai .cr2m-ai-interface{animation:cr2m-model-context 14s ease-in-out infinite}
.creo2-page [data-cr2-motion][data-cr2-moving] .cr2-art-ai .cr2m-review-lens{animation:cr2m-human-review 14s ease-in-out infinite}

@keyframes cr2m-carriage-stroke{0%,8%,40%,100%{transform:none}22%,27%{transform:translate(-12.32px,4.76px)}}
@keyframes cr2m-design-focus{0%,8%,100%{opacity:1}20%,88%{opacity:.18}}
@keyframes cr2m-evaluation-focus{0%,35%,77%,100%{opacity:.18}45%,65%{opacity:1}}
@keyframes cr2m-definition-focus{0%,58%,100%{opacity:.25}76%,91%{opacity:1}}
@keyframes cr2m-jaw-near{0%,12%,86%,100%{transform:none}39%,60%{transform:translate(1.86px,1.02px)}}
@keyframes cr2m-jaw-far{0%,12%,86%,100%{transform:none}39%,60%{transform:translate(-1.86px,-1.02px)}}
@keyframes cr2m-reference-return{0%,15%,88%,100%{opacity:1}35%,64%{opacity:.28}}
@keyframes cr2m-tool-clearance{0%,15%,82%,100%{transform:none}40%,57%{transform:translateY(8px)}}
@keyframes cr2m-load-trace{0%,100%{stroke-dashoffset:0;opacity:.65}50%{stroke-dashoffset:-.5;opacity:1}}
@keyframes cr2m-record-to-model{0%,100%{stroke-dashoffset:0;opacity:.35}20%,48%{opacity:1}60%{stroke-dashoffset:-.6}}
@keyframes cr2m-model-to-record{0%,38%,100%{stroke-dashoffset:0;opacity:.3}65%,87%{stroke-dashoffset:-.45;opacity:1}}
@keyframes cr2m-review-drawing{0%,17%,100%{opacity:1}44%,75%{opacity:.4}}
@keyframes cr2m-review-part{0%,17%,100%{opacity:.35}44%,75%{opacity:1}}
@keyframes cr2m-rib-first{0%,16%,90%,100%{opacity:1}44%,66%{opacity:.16}}
@keyframes cr2m-rib-second{0%,16%,90%,100%{opacity:.18}44%,66%{opacity:1}}
@keyframes cr2m-cutting-pass{0%,16%,100%{transform:none}26%,31%{transform:translate(0,13px)}62%{transform:translate(15.4px,7.05px)}74%,82%{transform:translate(15.4px,-5.95px)}}
@keyframes cr2m-cutting-path{0%,23%,100%{stroke-dashoffset:1;opacity:.3}63%,88%{stroke-dashoffset:0;opacity:1}}
@keyframes cr2m-build-section{0%{transform:translateY(23px);opacity:0}10%{transform:translateY(23px);opacity:1}70%,86%{transform:none;opacity:1}100%{transform:none;opacity:0}}
@keyframes cr2m-model-mesh{0%,15%,100%{opacity:.35}35%,65%{opacity:1}}
@keyframes cr2m-boundary-review{0%,38%,100%{opacity:.25}65%,85%{opacity:1}}
@keyframes cr2m-ply-near{0%,12%,90%,100%{transform:none}40%,68%{transform:translate(1px,-2px)}}
@keyframes cr2m-ply-middle{0%,12%,90%,100%{transform:none}40%,68%{transform:translate(2px,-4px)}}
@keyframes cr2m-ply-far{0%,12%,90%,100%{transform:none}40%,68%{transform:translate(3px,-6px)}}
@keyframes cr2m-annotation-first{0%,8%,100%{opacity:.35}25%,90%{opacity:1}}
@keyframes cr2m-annotation-second{0%,27%,100%{opacity:.35}43%,90%{opacity:1}}
@keyframes cr2m-annotation-third{0%,46%,100%{opacity:.35}64%,90%{opacity:1}}
@keyframes cr2m-document-context{0%,12%,100%{opacity:1}38%,88%{opacity:.3}}
@keyframes cr2m-guidance-context{0%,14%,100%{stroke-dashoffset:0;opacity:.3}36%,58%{stroke-dashoffset:-.35;opacity:1}}
@keyframes cr2m-model-context{0%,32%,100%{opacity:.3}52%,72%{opacity:1}}
@keyframes cr2m-human-review{0%,54%,100%{opacity:.4}76%,92%{opacity:1}}

/* The feature viewer contains all seven native readings. Inactive/closed
 * descendants must not keep decorative animation running behind the visible one. */
.creo2-page [hidden] .cr2-model-study *,.creo2-page details:not([open]) .cr2-model-study *{animation:none!important}
@media(prefers-reduced-motion:reduce){.creo2-page .cr2-model-study,.creo2-page .cr2-model-study *{animation:none!important;transition:none!important}}
