/* Osteogym's staggered reveal rhythm, translated to each project's own layers. */
.work-webgl-ready .work-archive:not(.is-list-view) .work-card--massage .work-card__media{opacity:1}
.mp-preview{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 75% 20%,#355e57,#102f2c);color:#e9e9df}
.mp-preview__label{position:absolute;top:6%;left:6%;font:500 7px/1.5 'IBM Plex Mono',monospace;letter-spacing:.09em}
.mp-preview__desktop{position:absolute;top:23%;left:5%;width:81%;border:3px solid #e9e9df;border-radius:5px;overflow:hidden;box-shadow:0 12px 28px #0006;transform:rotate(-3deg)}
.mp-preview__detail{position:absolute;right:5%;top:37%;height:55%;width:27%;border:3px solid #cad8c7;border-radius:8px;overflow:hidden;box-shadow:0 10px 22px #0007;transform:rotate(4deg)}
.work-card__media .mp-preview img{position:static;display:block;inset:auto;width:100%;height:100%;object-fit:cover;transform:none;transition:none}
.mp-preview__detail img{object-position:24% center}
.work-card :is(.mp-preview__desktop,.mf-preview__desktop,.fz-preview__photo,.cv-preview__screen){--layer-angle:-3deg;animation:case-layer-primary 9.6s cubic-bezier(.22,.78,.2,1) infinite alternate both paused!important}
.work-card :is(.mp-preview__detail,.mf-preview__detail,.fz-preview__map,.cv-preview__services){--layer-angle:4deg;animation:case-layer-secondary 9.6s cubic-bezier(.22,.78,.2,1) infinite alternate both paused!important}
.work-card :is(.mf-preview__seal,.fz-preview__logo,.cv-preview__brand){animation:case-layer-brand 9.6s ease infinite alternate both paused!important}
.work-card :is(.mf-preview__guides path,.fz-route,.cv-preview__pipes path){animation:case-layer-line 9.6s ease infinite alternate both paused!important}
.work-card :is(.mp-preview,.mf-preview,.fz-preview,.cv-preview).is-layer-active *{animation-play-state:running!important}
.work-card .osteogym-showcase:not(.is-layer-active) *,.work-card .osteogym-showcase:not(.is-layer-active)::after{animation-play-state:paused!important}
.work-motion-paused .work-card :is(.mp-preview,.mf-preview,.fz-preview,.cv-preview,.osteogym-showcase) *,
.work-motion-paused .osteogym-showcase::after{animation-play-state:paused!important}
.work-archive.is-list-view .work-card :is(.mp-preview,.mf-preview,.fz-preview,.cv-preview) *{animation:none!important;opacity:1}
@keyframes case-layer-primary{0%,7%{opacity:.12;transform:translate3d(-15%,24%,0) rotate(-8deg) scale(.91)}34%,100%{opacity:1;transform:translate3d(0,0,0) rotate(var(--layer-angle)) scale(1)}}
@keyframes case-layer-secondary{0%,18%{opacity:0;transform:translate3d(24%,-35%,0) rotate(10deg) scale(.84)}48%,100%{opacity:1;transform:translate3d(0,0,0) rotate(var(--layer-angle)) scale(1)}}
@keyframes case-layer-brand{0%,12%{opacity:0;translate:0 -8px}38%,100%{opacity:1;translate:0 0}}
@keyframes case-layer-line{0%,10%{opacity:.08;stroke-dashoffset:1}48%,100%{opacity:.8;stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){
 .work-card :is(.mp-preview,.mf-preview,.fz-preview,.cv-preview) *{animation:none!important;opacity:1;translate:none}
 .work-card :is(.mf-preview__guides path,.fz-route,.cv-preview__pipes path){stroke-dashoffset:0}
}
