.modalTranslate(@x; @y) {
    -webkit-transform: translate(@x, @y);
    -ms-transform: translate(@x, @y);
    transform: translate(@x, @y);
}

.modalAnimate() {
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
}

.modalAnimateName(@name) {
    -webkit-animation-name: @name;
    animation-name: @name;
}

.modalSlideDownTop() {
    0% {
        margin-top: -100%;
        .modalTranslate(-50%, -150%);
    }
    100% {
        margin-top: 0;
        .modalTranslate(-50%, 0);
    }
}

@-webkit-keyframes mf-modal-slide-down-top {
    .modalSlideDownTop;
}

@keyframes mf-modal-slide-down-top {
    .modalSlideDownTop;
}

.modalSlideDownMiddle() {
    0% {
        margin-top: -100%;
        .modalTranslate(-50%, -150%);
    }
    100% {
        margin-top: 0;
        .modalTranslate(-50%, -50%);
    }
}

@-webkit-keyframes mf-modal-slide-down-middle {
    .modalSlideDownMiddle;
}

@keyframes mf-modal-slide-down-middle {
    .modalSlideDownMiddle;
}

.modalSlideUpBottom() {
    0% {
        margin-bottom: -100%;
        .modalTranslate(-50%, 150%);
    }
    100% {
        margin-bottom: 0;
        .modalTranslate(-50%, 0);
    }
}

@-webkit-keyframes mf-modal-slide-up-bottom {
    .modalSlideUpBottom;
}

@keyframes mf-modal-slide-up-bottom {
    .modalSlideUpBottom;
}
