/* AYITI Minute motion system. Loader patterns adapted from MIT-licensed
   CSS Loaders (2021) and Luke Haas CSS Loaders (2014). */
:root{--ayiti-motion-orange:#ff5f00;--ayiti-motion-lime:#ccff00}
@keyframes ayiti-motion-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ayiti-motion-spin{to{transform:rotate(360deg)}}
@keyframes ayiti-motion-bars{0%,100%{box-shadow:0 -7px 0 -3px currentColor,7px 0 0 -3px currentColor,0 7px 0 -3px currentColor,-7px 0 0 -3px currentColor}50%{box-shadow:0 -7px 0 0 currentColor,7px 0 0 -3px currentColor,0 7px 0 -3px currentColor,-7px 0 0 -3px currentColor}}
@keyframes ayiti-motion-confirm{0%{transform:scale(.94);opacity:.55}55%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
@keyframes ayiti-motion-reveal{from{opacity:0;transform:translateY(18px);filter:saturate(.75)}to{opacity:1;transform:none;filter:saturate(1)}}
@keyframes ayiti-motion-slide{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes ayiti-motion-pulse-border{0%,100%{border-color:rgba(255,95,0,.34)}50%{border-color:rgba(204,255,0,.62)}}
.ayiti-motion-enter,.panel:not(.hidden),.card,.article-block-download,.article-block-audio{animation:ayiti-motion-enter .38s ease-out both}
.panel:not(.hidden):nth-of-type(2),.card:nth-of-type(2){animation-delay:.04s}.panel:not(.hidden):nth-of-type(3),.card:nth-of-type(3){animation-delay:.08s}
button,a{transition:transform .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}
button:not(:disabled):active,a[role="button"]:active{transform:translateY(1px) scale(.985)}
button.is-loading,button[aria-busy="true"]{pointer-events:none;position:relative;padding-right:2.45rem!important}
button.is-loading::after,button[aria-busy="true"]::after{content:"";position:absolute;right:.9rem;top:50%;width:14px;height:14px;margin-top:-7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ayiti-motion-spin .7s linear infinite}
.ayiti-loader-dots{display:inline-block;width:8px;height:8px;border-radius:50%;color:var(--ayiti-motion-orange);animation:ayiti-motion-bars 1s ease-in-out infinite}
.ayiti-motion-success{animation:ayiti-motion-confirm .34s ease-out both}
.ayiti-media-copy-shell:focus-within{border-color:var(--ayiti-motion-orange);box-shadow:0 0 0 2px rgba(255,95,0,.12)}
.article-block-audio .plyr__control:hover,.article-block-download>a:hover{background:var(--ayiti-motion-orange);color:#fff;transform:translateY(-1px)}
.article-body>.article-block-media-single,.article-body>.article-block-media-row,.article-body>.article-block-quote,.article-body>.article-block-download,.article-body>.article-block-audio,.more-article-card,.video-card{animation:ayiti-motion-reveal .5s cubic-bezier(.2,.75,.25,1) both}
.article-body>:nth-child(2){animation-delay:.035s}.article-body>:nth-child(3){animation-delay:.07s}.article-body>:nth-child(4){animation-delay:.105s}.article-body>:nth-child(5){animation-delay:.14s}.article-body>:nth-child(n+6){animation-delay:.175s}
.article-block-image img,.article-block-video .plyr,.article-block-download,.article-block-audio{transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.article-block-image:hover img,.article-block-video:hover .plyr{transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.24)}
.article-block-download:hover,.article-block-audio:hover{border-color:rgba(255,95,0,.68);box-shadow:0 14px 30px rgba(0,0,0,.2)}
.ayiti-media-editor-row,.ayiti-download-tool,.ayiti-audio-tool,.ayiti-video-tool{animation:ayiti-motion-reveal .32s ease-out both}
.ayiti-media-copy-shell{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.ayiti-media-copy-shell:focus-within{transform:translateY(-1px)}
.upload-card,.input,.field,input,textarea,select{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
.input:focus,.field:focus,input:focus,textarea:focus,select:focus{box-shadow:0 0 0 2px rgba(204,255,0,.1)}
.auth-card,.crop-panel,[role="dialog"]>section{animation:ayiti-motion-reveal .38s cubic-bezier(.2,.75,.25,1) both}
.studio-toast.is-visible,.toast.is-visible,.ayiti-motion-success{animation:ayiti-motion-confirm .34s ease-out both}
.notification-unread,.ticker-row{animation:ayiti-motion-slide .32s ease-out both}
.auth-chip{animation:ayiti-motion-pulse-border 2.6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
