/* Dev-only weight experiment. The opening and #together stay frozen. */
@keyframes weightCopy{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes weightScene{from{opacity:0;transform:translateY(34px) scale(.988)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
 html[data-scroll-mode=weight] :is(.handoff,.private-section,.catchup-section) .section-copy.has-entered,
 html[data-scroll-mode=weight] .waitlist.has-entered{animation:none}
 html[data-scroll-mode=weight] :is(.handoff,.private-section,.catchup-section) .section-copy.has-entered>*,
 html[data-scroll-mode=weight] .waitlist.has-entered>*{
  animation-name:weightCopy;
  animation-duration:1.15s;
  animation-timing-function:cubic-bezier(.16,.72,.18,1);
 }
 html[data-scroll-mode=weight] :is(.handoff-visual,.privacy-visual,.catchup-visual).has-entered{
  animation-name:weightScene;
  animation-duration:1.35s;
  animation-timing-function:cubic-bezier(.16,.72,.18,1);
 }
 html[data-scroll-mode=weight] .closing-art img{translate:0 var(--scroll-shift,0px);scale:1.1}
}
@media(pointer:coarse) and (prefers-reduced-motion:no-preference){
 html[data-scroll-mode=weight] :is(.handoff,.private-section,.catchup-section) .section-copy.has-entered>*,
 html[data-scroll-mode=weight] .waitlist.has-entered>*{animation-duration:.9s}
 html[data-scroll-mode=weight] :is(.handoff-visual,.privacy-visual,.catchup-visual).has-entered{animation-duration:1.05s}
}
@media(prefers-reduced-motion:reduce){
 html[data-scroll-mode=weight] .closing-art img{translate:none;scale:none}
}
