/* Decorative artwork keeps its original layout, captions and native media controls. */
.revimax-art-enhanced .rvx-art-scene{position:relative;isolation:isolate}
.rvx-art-object{display:block;width:100%;position:relative;z-index:1;transform:perspective(950px) rotateX(var(--art-rx,0deg)) rotateY(var(--art-ry,0deg));transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.rvx-art-image{transform-origin:50% 60%;animation:revimax-art-float var(--art-duration,10s) ease-in-out infinite;animation-play-state:paused}
.rvx-art-diagram .rvx-art-image{animation-name:revimax-drawing-float}
.revimax-motion-active .is-art-visible .rvx-art-image,.revimax-motion-active .is-art-visible.rvx-art-model::after{animation-play-state:running}
.rvx-art-model::before,.rvx-art-model::after{content:'';position:absolute;pointer-events:none;z-index:0}
.rvx-art-model::before{inset:22% 8% 18%;background-image:linear-gradient(#0f034e0c 1px,transparent 1px),linear-gradient(90deg,#0f034e0c 1px,transparent 1px);background-size:32px 32px;transform:perspective(500px) rotateX(62deg) rotateZ(-14deg);mask-image:radial-gradient(ellipse,#000 15%,transparent 70%);opacity:.75}
.rvx-art-model::after{inset:38% 15% 20%;border:1px dashed var(--accent);border-radius:50%;opacity:.15;transform:rotate(-12deg);animation:revimax-art-orbit 18s ease-in-out infinite;animation-play-state:paused}
.rvx-art-scene figcaption{position:relative;z-index:2}
.rvx-motion-toggle{position:absolute;inset-block-start:4px;inset-inline-end:4px;z-index:3;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;padding:10px;background:var(--paper);color:var(--ink);box-shadow:0 3px 14px #0f034e09;cursor:pointer;transition:background .2s,border-color .2s}
.rvx-motion-toggle:hover{background:#eeece6;border-color:var(--accent)}
.rvx-motion-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rvx-motion-toggle .rvx-play-icon{display:none}.rvx-motion-toggle[data-state=paused] .rvx-pause-icon{display:none}.rvx-motion-toggle[data-state=paused] .rvx-play-icon{display:block}
@keyframes revimax-art-float{0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(0,-10px,0) rotate(.65deg)}}
@keyframes revimax-drawing-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-3px,0)}}
@keyframes revimax-art-orbit{0%,100%{transform:rotate(-12deg) scale(1)}50%{transform:rotate(8deg) scale(1.04)}}
@media(max-width:767px){.rvx-art-model::before{background-size:24px 24px}.rvx-art-model::after{opacity:.1}.rvx-art-image{animation-name:revimax-art-float-mobile}.rvx-art-diagram .rvx-art-image{animation-name:revimax-drawing-float}}
@keyframes revimax-art-float-mobile{0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(0,-5px,0) rotate(.3deg)}}
@media(prefers-reduced-motion:reduce){.rvx-art-image,.rvx-art-model::after{animation:none!important}.rvx-art-object{transform:none!important;transition:none!important}}
.revimax-no-motion .rvx-art-object{transform:none;transition:none}
