/* Motion layer: entrance stagger, row cascades, chart draw, ring sweep, modal pop. Driven by motion.js. */
@property --m-sweep{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes m-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes m-row{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes m-pop{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes m-fade{from{opacity:0}to{opacity:1}}
@keyframes m-sweep{from{--m-sweep:0deg}to{--m-sweep:360deg}}
@keyframes m-draw{to{stroke-dashoffset:0}}
@keyframes m-dot{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
.m-rise{animation:m-rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--m-delay,0ms)}
.m-row{animation:m-row .3s ease-out both;animation-delay:var(--m-delay,0ms)}
.m-pop{animation:m-pop .24s cubic-bezier(.2,.8,.2,1)}
dialog[open]::backdrop{animation:m-fade .22s ease-out}
.m-draw{animation:m-draw 1.1s cubic-bezier(.3,.7,.2,1) forwards}
.m-fade{animation:m-fade .8s ease-out .25s both}
.m-dot{transform-box:fill-box;transform-origin:center;animation:m-dot .35s cubic-bezier(.3,1.6,.5,1) 1s both}
.m-ring-cover{position:absolute;inset:-1px;border-radius:50%;background:var(--panel);pointer-events:none;-webkit-mask:conic-gradient(transparent var(--m-sweep),#000 0);mask:conic-gradient(transparent var(--m-sweep),#000 0);animation:m-sweep 1s cubic-bezier(.3,.7,.2,1) .15s forwards}
.ring-inner{z-index:1}
.capacity-track i,.farm-notice-track i{transition:width .7s cubic-bezier(.2,.7,.2,1)}
.nav-item,.filter,.segmented button,.admin-tabs button,.payout-option,.role-option,.cloud-card,.button{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .15s}
.stat-card,.admin-module{transition:transform .2s,box-shadow .2s}
.stat-card:hover,.admin-module:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){
  .m-rise,.m-row,.m-pop,.m-draw,.m-fade,.m-dot,dialog[open]::backdrop{animation:none!important}
  .m-draw{stroke-dashoffset:0!important}
  .m-ring-cover{display:none}
  .stat-card:hover,.admin-module:hover{transform:none}
  .capacity-track i,.farm-notice-track i{transition:none}
}
