/* Lab 04 motion polish: preserve the approved pacing while removing GPU-heavy blur transitions. */
.copy{
  filter:none!important;
  opacity:0;
  transform:translate3d(0,24px,0);
  transition:opacity .48s cubic-bezier(.2,.8,.2,1),transform .62s cubic-bezier(.2,.8,.2,1)!important;
}
.scene.is-active .copy{opacity:1;transform:translate3d(0,0,0)}
.copy h1,.copy h2{will-change:auto!important}
.scene.is-active .copy h1,.scene.is-active .copy h2{animation:lab04TypeInClean .52s cubic-bezier(.16,.84,.3,1) both!important}
.scene.is-active .lede{animation:lab04FadeInClean .56s .06s cubic-bezier(.16,.84,.3,1) both!important}
.scene.is-active .flow,.scene.is-active .stack-list,.scene.is-active .actions,.scene.is-active .case-link{animation:lab04FadeInClean .58s .10s cubic-bezier(.16,.84,.3,1) both!important}
.floating-note{backdrop-filter:none!important;background:rgba(4,8,13,.68)}
.world canvas{transition:opacity .45s ease!important}
@keyframes lab04TypeInClean{from{opacity:.22;transform:translate3d(0,14px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes lab04FadeInClean{from{opacity:.12;transform:translate3d(0,9px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(max-width:900px){
  .copy{transform:translate3d(0,18px,0)}
}
@media(prefers-reduced-motion:reduce){
  .copy,.scene.is-active .copy{opacity:1!important;transform:none!important;transition:none!important}
}
